texlive[57189] Master/texmf-dist/doc/latex/circuit-macros:

commits+karl at tug.org commits+karl at tug.org
Mon Dec 21 23:02:51 CET 2020


Revision: 57189
          http://tug.org/svn/texlive?view=revision&revision=57189
Author:   karl
Date:     2020-12-21 23:02:51 +0100 (Mon, 21 Dec 2020)
Log Message:
-----------
circuit-macros (21dec20)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/latex/circuit-macros/CHANGES
    trunk/Master/texmf-dist/doc/latex/circuit-macros/Copying
    trunk/Master/texmf-dist/doc/latex/circuit-macros/INSTALL
    trunk/Master/texmf-dist/doc/latex/circuit-macros/README
    trunk/Master/texmf-dist/doc/latex/circuit-macros/darrow.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/AntennasMan.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/CctTableMan.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Circuit_macros.pdf
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/GroundsMan.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Makefile
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Version.tex
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/body.tex
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/defines.tex
    trunk/Master/texmf-dist/doc/latex/circuit-macros/dpictools.pic
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Antennas.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/CctTable.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Chuck.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Conn.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Connectors.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Flow.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/FlowchartDefs.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Grounds.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Heathkit.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/MC.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Makefile
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/PushPull.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Variable.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ex01.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ex09.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/examples.pdf
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/examples.tex
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/files.tex
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ics.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/mf/cct.mf
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/mpost/Makefile
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/psfrag/Makefile
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/random.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/shapes.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/BtreeSVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/CctTableSVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/ConnectorsSVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/FlowSVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/JackSVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/MCSVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Makefile
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/OpampSVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/PconnSVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/ex01SVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/ex05SVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/examplesSVG.htmx
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/paletteSVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/pwrsupplySVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/quickSVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/randomSVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/tstSVG.htmx
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/xfig/xfiglib.fig
    trunk/Master/texmf-dist/doc/latex/circuit-macros/gpic.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/lib3D.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/libcct.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/libgen.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/liblog.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/mfpic.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/mpost.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/pgf.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/postscript.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/psfrag.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/pstricks.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/svg.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/xfig.m4

Added Paths:
-----------
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ACsymbol.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ArrestersMan.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/DCsymbol.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ASME_Y14-5.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Attention.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Autoencoder.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Coxeter.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Geometry.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Lyap.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/Makefile
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/F_test.tex
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/Makefile
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test-1.svg
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.pdf
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.pic
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.svg
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.tex
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/tikztosvg
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/tstSVG.htmx
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/examples.pdf
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/examplesSVG.htmx
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/oFlow.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/AutoencoderSVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Banking.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/FourbarSVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/GeometrySVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/LyapSVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/UNO.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/UNOSVG.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Xtest.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Y14-5SVG.m4

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Timer.m4

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/CHANGES
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/CHANGES	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/CHANGES	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,6 +1,10 @@
 CHANGES
 
-Version 9.2.x: New macro ACsymbol, Proxim, Magn, options for mosfet, ground,
+Version 9.4: Changes to examples and additional SVG examples. New
+  macros RightAngle, PerpTo, langle, ArcAngle, DCsymbol.  Rewritten
+  arrester macro. Tweaked Equidist3, ground, antenna, NeedDpicTools.
+  Modified List of Macros.
+Version 9.3: New macro ACsymbol, Proxim, Magn, options for mosfet, ground,
   microphone, consource.  Bugfix for the source macro.  Tweaked examples,
   macro svg_font.  Added a short discussion of integrated circuits
   and connectors.  Removed compression of the manual to restore broken

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/Copying
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/Copying	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/Copying	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,4 +1,4 @@
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/INSTALL
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/INSTALL	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/INSTALL	2020-12-21 22:02:51 UTC (rev 57189)
@@ -38,6 +38,10 @@
   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

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/README	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/README	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,5 +1,5 @@
 
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *
@@ -166,7 +166,7 @@
   older versions, see https://repology.org/project/dpic/badges
   The best advice is to obtain the newest version.
 
-  The dpic distribution includes a manual dpic-doc.pdf containing a summary
+  The dpic distribution includes dpic-doc.pdf, a manual containing a summary
   of the pic language and of features unique to dpic.
 
 EXAMPLES
@@ -182,7 +182,7 @@
   The examples directory Makefile automates the generation of .ps, .eps,
   .png, and .pdf files for individual diagrams.  Subdirectories of the
   examples directory are for testing metafont, metapost, pgf, psfrag,
-  pdf, and xfig examples.
+  and xfig examples.
 
 INTEGRATION WITH OTHER TOOLS:
   Installation and usage of the macros have evolved smewhat since the
@@ -191,7 +191,7 @@
   I simply added commands to the appropriate Makefiles. However, others
   have developed tools that simplify workflow for their circumstances.
   The following are representative but keep in mind that systems and
-  installations evolve ovr time:
+  installations evolve over time:
 
   A Python-based GUI called PyCirkuit is
   at https://pypi.org/project/pycirkuit/ and
@@ -216,15 +216,18 @@
 
   A KDE interface created by Matteo Agostinelli can be found
   at http://wwwu.uni-klu.ac.at/magostin/cirkuit.html.  A git
-  repository of a newer version of cirkuit by Andrew G. for Linux
-  is at https://github.com/ag-ckt/cirkuit/tree/V0.5.0.  There is
-  uncertainty about installation possibilities because of changes in
-  library dependencies.
+  repository of a newer version by Andrew G. for Linux is at
+  https://github.com/ag-ckt/cirkuit/tree/V0.5.0.  There is uncertainty
+  about installation possibilities because of evolving library dependencies.
 
   A wiki offering examples and tips is at
   http://swwiki.e-dschungel.de/circuit_macros
   It is in German but Google translate works well on the page.
 
+  Another recent introduction is at
+  https://www.root.cz/clanky/publikovanie-elektrickych-schem-a-diagramov-pomocou-circuit-macros/
+  It is in Czech but, again, Google translate works well.
+
   LaTeX automation tools are discussed at, for example, 
   http://tex.stackexchange.com/questions/64/tools-for-automating-document-compilation
 
@@ -240,10 +243,12 @@
   needs and taste.  They continue to evolve in my own library as I use
   them and as others send comments.  No such collection can hope to
   include all possible circuit-related symbols, so you will probably
-  find yourself writing your own macros or adapting some of these.  Be
-  careful to rename modified macros to avoid confusion.  The learning
-  curve compares well to other packages, but there is no trivially easy
-  way to produce high-quality graphics.
+  find yourself writing your own macros or adapting some of these.
+  Be careful to rename modified macros to avoid confusion.  The learning
+  curve compares well to other packages, but there is no trivially
+  easy way to produce high-quality graphics.  (If a picture is worth
+  a thousand words, ask yourself how long it would take to write and
+  revise a thousand words.)
 
   See eschpic on Github for IEC-style electrical drawings.
 
@@ -282,29 +287,24 @@
 
 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.
+  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).
 
-  If SVG is the ultimate goal, then it may be advisable to use the tool
-  dvisvgm to convert dvi to svg. An alternative on some systems is to
-  produce pdf and then use pdf2svg, since the font selection and formatting
-  problems associated with direct production of svg are eliminated.
-
   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 basic palette
-  of circuit elements for importing into Inkscape is found in
-  examples/svg/paletteSVG.m4.  In the svg 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.
+  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 importing into Inkscape is found
+  in examples/svg/paletteSVG.m4.  In the svg 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.
 
-  Recent Inkscape versions can export graphics to eps or pdf format
-  and text to tex format, so that labels can be formatted by LaTeX and
-  overlaid on the graphics file. This process allows the use of Inkscape
-  to place and embellish circuit elements.
-
 Metafont:
   The file examples/mf/cct.mf is a Metafont source for a few variants of
   the basic elements, produced using the mfpic output of dpic.  It may

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/darrow.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/darrow.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/darrow.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,7 +1,7 @@
 divert(-1)
   darrow.m4                     Macros for double lines and arrows
 
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *
@@ -276,7 +276,6 @@
     line thick linethick/2 \
       from C+(rect_(r+dlthick/2-lthick/4,ae))-(X.x,X.y) to \
            C+(rect_(r-dlthick/2+lthick/4,ae))-(X.x,X.y)')
-# { "S" at S; "E" at E; "C" at C; "TS" at TS; "TE" at TE }
   rp_ang := ae+pi__/2
   ] with ifelse(`$1',,.S at Here,.C at `$1')
   move to last [].E

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ACsymbol.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ACsymbol.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ACsymbol.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,4 @@
+.PS
+cct_init
+ACsymbol
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ACsymbol.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/AntennasMan.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/AntennasMan.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/AntennasMan.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -31,9 +31,9 @@
        s_box(T1) below rjust at A.T1
        s_box(T2) below ljust at A.T2
        s_box(`\tt (,{,}D)') at A.n above
-  A: antenna(at A.T+(elen_,0),,P)
+  A: antenna(at A.T+(elen_,0),dimen_*3/4,P)
        s_box(T) below at A.T
-       s_box(`\tt (,{,}P)') at A.n above
+       s_box(`\tt (,dimen\_*3/4,P)') at A.n above
   A: antenna(at A.T+(elen_,0),,F)
        s_box(T) below at A.T
        s_box(`\tt (,{,}F)') at A.n above

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ArrestersMan.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ArrestersMan.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ArrestersMan.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,75 @@
+.PS
+# ArrestersMan.m4
+cct_init
+
+  sep = 0.2
+
+R1: [
+  arrester
+  {`"\tt arrester"' at last line.c+(0,-0.2)}
+  move sep
+  arrester(,G)
+  {`"\tt arrester(,G)"' at last line.c+(0,-0.2)}
+  move sep
+  arrester(,g)
+  {`"\tt ...(,g)"' at last line.c+(0,-0.2)}
+  move sep
+  arrester(,M)
+  {`"\tt \ldots(,M)"' at last line.c+(0,-0.2)}
+  move sep
+  arrester(,C)
+  {`"\tt \ldots(,C)"' at last line.c+(0,-0.2)}
+  move sep
+  arrester(,A)
+  {`"\tt \ldots(,A)"' at last line.c+(0,-0.2)}
+  ]
+
+R2: [
+  arrester(,H)
+  {`"\tt \ldots(,H)"' at last line.c+(0,-0.2)}
+  move sep
+  arrester(,HR)
+  {`"\tt \ldots(,HR)"' at last line.c+(0,-0.2)}
+  move sep
+  arrester(,P)
+  {`"\tt \ldots(,P)"' at last line.c+(0,-0.2)}
+  move sep
+  arrester(,s)
+  {`"\tt \ldots(,s)"' at last line.c+(0,-0.2)}
+  move sep
+  arrester(,F)
+  {`"\tt \ldots(,F)"' at last line.c+(0,-0.2)}
+  move sep
+  arrester(,S)
+  {`"\tt \ldots(,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; "\sl A" rjust
+    arrow <- from A.B up 0.1 right 0.1; "\sl B" ljust
+    arrow <- from A.G up 0.05 right 0.15; "\sl G" ljust
+    thicklines_ }')
+[
+  arrester(,E)
+  {`"\tt \ldots(,E)"' at last line.c+(0,-0.25)}
+  move sep
+  A: arrester(,DE)
+  {`"\tt \ldots(,DE)"' at last [].s+(0,-0.1)}
+  Dlabels
+  move sep*3
+  A: arrester(,DS)
+  {`"\tt \ldots(,DS)"' at last [].s+(0,-0.1)}
+  Dlabels
+  move sep*3
+  A: arrester(,DEL)
+  {`"\tt \ldots(,DEL)"' at last [].s+(0,-0.1)}
+  Dlabels
+  move sep*3
+  A: arrester(,DSL)
+  {`"\tt \ldots(,DSL)"' at last [].s+(0,-0.1)}
+  Dlabels
+  ] with .nw at R2.sw+(0,-0.2)
+
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ArrestersMan.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/CctTableMan.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/CctTableMan.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/CctTableMan.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -85,6 +85,8 @@
 }
    move down 0.25; right_
 { {pvcell ; move;"`{\tt pvcell}'" ljust}
+   move right_ hm
+   {arrester ; move ;"`{\tt arrester}'" ljust}
 }
 
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Circuit_macros.pdf
===================================================================
(Binary files differ)

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/DCsymbol.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/DCsymbol.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/DCsymbol.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,4 @@
+.PS
+cct_init
+DCsymbol
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/DCsymbol.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/GroundsMan.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/GroundsMan.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/GroundsMan.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,5 +1,5 @@
 .PS
-# `Grounds.m4'
+# GroundsMan.m4
 cct_init
 
 sep = 0.65
@@ -22,7 +22,7 @@
    "{\tt (,{,}E)}" at (GE,D)}
 
 
-GS: ground(,,S)
+GS: ground(,dimen_/2,S)
    move right sep
 GS90: [ground(,,S,90) ] with .n at Here
    move right sep from GS90.n
@@ -36,7 +36,7 @@
 
 C: Here+(0,-0.5)
 E: C+(0,11bp__)
-   "{\tt (,{,}S)}" at (GS,C)
+   "{\tt (,dimen\_/2,S)}" at (GS,C)
    "{\tt (,{,}S,90)}" at (GS90,E)
    "{\tt (,{,}Q)}" at (GQ,C)
    "{\tt (,{,}L)}" at (GL,E)

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Makefile
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Makefile	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Makefile	2020-12-21 22:02:51 UTC (rev 57189)
@@ -5,11 +5,12 @@
 DOCSRC = Circuit_macros.tex body.tex defines.tex
 
 PICTEX = \
-  AmpTableMan.tex AntennasMan.tex AudioMan.tex Axes.tex \
+  ACsymbol.tex \
+  AmpTableMan.tex AntennasMan.tex ArrestersMan.tex AudioMan.tex Axes.tex \
   Buffer.tex BigResistor.tex BipMan.tex \
   CctTableMan.tex Composite.tex ConfigA.tex ConfigB.tex ConfigC.tex \
   ConnMan.tex Corners.tex ContactMan.tex ContactsMan.tex \
-  Dac.tex Darlington.tex DemultiplexerMan.tex DiodesMan.tex \
+  Dac.tex Darlington.tex DCsymbol.tex DemultiplexerMan.tex DiodesMan.tex \
   EmarrowsMan.tex FF.tex FlipFlop.tex Flowdiag.tex FusesMan.tex \
   GroundsMan.tex HeadersMan.tex HybridPi.tex JackMan.tex LogicMan.tex \
   Loop.tex MultiplexerMan.tex NPDTMan.tex NLGMan.tex NportMan.tex \
@@ -89,6 +90,11 @@
            @printf "\n No file $(DOC).$(SFX)\n\n" ; \
            $(LATEX) $(DOC) ; bibtex $(DOC) ; fi
 
+ACsymbol.tex DCsymbol.tex:
+	touch $(DOC).dim
+	$(M4) $(M4LIBS) $(DOC).dim $*.m4 > $*.pic
+	$(PRE) $(PIC) $*.pic | sed -e '/end{tikzpicture}/s/$$/%/' > $*.tex
+
 citations: mode.tex $(DOC).bbl $(PICTEX)
 	@printf "\n citations:\n\n"
 	$(LATEX) $(DOC) ; bibtex $(DOC)

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Version.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Version.tex	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Version.tex	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1 +1 @@
-Version 9.3
+Version 9.4

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/body.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/body.tex	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/body.tex	2020-12-21 22:02:51 UTC (rev 57189)
@@ -92,7 +92,7 @@
 \pic interpreter to produce {\tt .tex} output that can be inserted
 into a {\tt .tex} document using the \verb|\input| command.
 
-\begin{figure}[hbt]
+\begin{figure}[ht]
  \pdftooltip{\input Flowdiag }{Flow diagram for the inclusion of figures}
  \caption{Inclusion of figures and macros in the \latex document.
  \label{Flowdiag}}
@@ -193,7 +193,7 @@
 above examples) is {\em always} the first file to be given to \Mfour.
 Put the following or its equivalent in the document body:
 \begin{verbatim}
-\begin{figure}[hbt]
+\begin{figure}[ht]
    \centering
    \input quick
    \caption{Customized caption for the figure.}
@@ -218,7 +218,7 @@
 The diagram source file is then read and
 the circuit-element macros in {\tt libcct.m4} are defined during
 expansion of {\tt cct\_init}.
-\begin{figure}[hbt]
+\begin{figure}[ht]
    \input ConfigA
    \caption{The command
      {\tt m4 pstricks.m4 quick.m4 > quick.pic}.
@@ -239,7 +239,7 @@
 \noindent
 and the figure inclusion statements are as shown:
 \begin{verbatim}
-\begin{figure}[hbt]
+\begin{figure}[ht]
    \input quick
    \centerline{\box\graph}
    \caption{Customized caption for the figure.}
@@ -470,7 +470,7 @@
 \noindent
 truncates the line at each end by {\tt x} (which may be negative)
 or, if {\tt x} is omitted, by
-the current circle radius, which is convenient when A and B are
+the current circle radius, a convenience when A and B are
 circular graph nodes, for example.  Otherwise
 
 {\tt line from A to B chop x chop y}
@@ -728,7 +728,11 @@
 There is a fundamental difference between the two-terminal elements, each
 of which is drawn along an invisible straight-line segment,
 and other elements, which are compound objects mentioned
-in \SR{Compoundobjects:}.  The two-terminal element macros follow a
+in \SR{Compoundobjects:}.
+% Specifying the straight-line segment requires four numbers, the coordinates
+% of the start and end, or equivalent, but default values are used if
+% not specified.
+The two-terminal element macros follow a
 set of conventions described in this section, and other elements will
 be described in \SR{Composite:}.
 
@@ -745,7 +749,7 @@
 %as follows:
 on the left:
 
-\begin{figure}[hbt]
+\begin{figure}[ht]
    \parbox{2in}{\tt .PS\\ \hbox{}\quad cct\_init\\ \hbox{}\quad linewid = 2.0\\ 
      \hbox{}\quad linethick\_(2.0)\\ R1: resistor}
    \raisebox{-0.3in}{\hbox{\input{BigResistor.tex}}}
@@ -829,7 +833,8 @@
 \subsection{The two-terminal elements\label{Twoterminal:}}
 The two-terminal elements are shown in \FRS{CctTable}
 % to~\REF{Diodes} and \FRS{Fuses}
-to~\REF{Switches}.
+%to~\REF{Switches}.
+to~\REF{Arresters}.
 Several elements are included more than once to illustrate
 some of their arguments, which are listed in \SR{defines}.
 \enlargethispage{\baselineskip}
@@ -846,12 +851,13 @@
 the element is drawn from the current position in the current drawing
 direction along a default length.
 The other arguments produce variants of the default elements.
-\begin{figure}[hbt]
+\begin{figure}[ht]
    \input AmpTableMan
    \caption{Amplifier, delay, and integrator.}
    \label{AmpTable}
    \end{figure}
 
+\pagebreak
 Thus, for example,
 \par
 {\tt resistor(up\_ 1.25,7)}
@@ -862,7 +868,7 @@
 The macro {\tt up\_} evaluates to {\tt up} but also resets the current
 directional parameters to point up.
 
-\begin{figure}[hbt]
+\begin{figure}[ht]
    \input SourcesMan
 %   \ifpdf\vspace*{-0.5\baselineskip}\fi%
    \caption{Sources and source-like elements.}
@@ -875,11 +881,16 @@
 As a convenience,
 the macro {\tt ACsymbol(at {\sl position, length, height,}
   [A]U|D|L|R|{\sl degrees})} is included as an interface to
-the {\tt sinusoid} macro.  For example to add the sumbol to an ebox:
+the {\tt sinusoid} macro.  For example to add the sumbol
+(\input{ACsymbol.tex}) to an ebox:
 \par
 {\tt ebox; $\lbrace$\ ACsymbol(at last [],{,},dimen\_/8) $\rbrace$}
 
-\begin{figure}[hbt]
+\noindent
+For direct current (\input{DCsymbol.tex}), there is also
+{\tt DCsymbol(at {\sl position, length, height,} U|D|L|R|{\sl degrees})}.
+
+\begin{figure}[ht]
    \input DiodesMan
    \caption{The macro
      {\tt diode(\linespec,B|CR|D|L|LE[R]|P[R]|S|T|V|v|w|Z|{\sl chars},[R][E])}.
@@ -923,6 +934,8 @@
 \noindent
 is the name of a two-terminal element in quotes, followed by the
 element arguments.  The element is drawn with reversed direction.
+
+\pagebreak
 Thus,
 \par
 {\tt diode(right\_ 0.4); reversed(`diode',right\_ 0.4)}
@@ -930,11 +943,6 @@
 \noindent
 draws two diodes to the right, but the second one points left.
 
-\begin{figure}[bt]
-   \input EmarrowsMan
-   \caption{Radiation arrows: {\tt em\_arrows({\sl type, angle, length})}}
-   \label{Emarrows}
-   \end{figure}
 Similarly, the macro
 \par
 {\tt resized(}{\sl factor},`{\sl macro name}',{\sl macro arguments}{\tt )}
@@ -949,6 +957,20 @@
 {\tt resized(1.8,`diode',right\_ 0.4);}
 {\tt resized(1.8,`reversed',`diode',right\_ 0.4)}
 
+\pagebreak
+\FR{Arresters} shows a collection of surge-protection devices, or arresters,
+of which the {\tt E} and {\tt S} types may be either 2-terminal or as
+3-terminal (composite) elements described in \SR{Composite:}.
+\begin{figure}[ht]
+   \input ArrestersMan
+   \caption{Variations of the {\tt arrester({\sl linespec, chars,}
+     {\sl wid}[{\tt :}{\sl arrowhead ht}], {\sl ht}[{\tt :}{\sl arrowhead wid})}
+     macro. Putting {\tt D} in argument 2 for the {\tt S} or {\tt E}
+     configuration creates a 3-terminal composite element
+     with terminals {\sl A, B}, and {\sl G.}}
+   \label{Arresters}
+   \end{figure}
+
 \FR{Emarrows} contains radiation-effect arrows for embellishing two-terminal
 and other macros.
 The arrow stems are named {\sl A1}, {\sl A2},
@@ -955,6 +977,11 @@
 and each pair is drawn in a \verb|[]| block, with
 the names {\sl Head} and {\sl Tail} defined to
 aid placement near another device.  The second argument specifies
+\begin{figure}[ht]
+   \input EmarrowsMan
+   \caption{Radiation arrows: {\tt em\_arrows({\sl type, angle, length})}}
+   \label{Emarrows}
+   \end{figure}
 absolute angle in degrees (default 135 degrees).
 The arrows are drawn relative to the diode direction by the {\tt LE}
 option in \FR{Diodes}.  For absolute arrow directions, one can
@@ -979,7 +1006,7 @@
 \par
    {\tt resistor(down\_ dimen\_); variable(,uN)}
 
-\begin{figure}[h!t]
+\begin{figure}[ht]
 \vspace*{-\baselineskip}
    \input VariableMan
    \caption{Illustrating
@@ -1011,7 +1038,7 @@
 \noindent
 draws an arrow from the start of the last-drawn two-terminal element
 {\sl frac} of the way toward the body.
-\begin{figure}[h!t]
+\begin{figure}[ht]
 %   \ifpdf\vspace*{-0.5\baselineskip}\fi%
    \input currents
    \caption{Illustrating {\tt b\_current, larrow,} and {\tt rarrow}.
@@ -1153,7 +1180,7 @@
 to establish element length and direction.
 
 As shown in \FR{Oblique},
-\begin{figure}[h!b]
+\begin{figure}[ht]
 \vspace{-\baselineskip}
    \parbox{4.5in}{\small \verbatiminput{Oblique.m4}}%
    \hfill\raise-0.7in\llap{\hbox{\input Oblique }}%
@@ -1196,7 +1223,7 @@
 \noindent
 draws three elements in series
 as shown in the top line of \FR{Series}.
-\begin{figure}[h!t]
+\begin{figure}[ht]
 \vspace{-\baselineskip}
    \input Series
    \caption{Three ways of drawing basic elements in series.}
@@ -1247,7 +1274,7 @@
      line from L.end to C.end
 \end{verbatim}
 
-\begin{figure}[h!t]
+\begin{figure}[ht]
 %  \vspace*{-\baselineskip}
    \input ParSeries
    \vspace*{-\baselineskip}
@@ -1305,7 +1332,7 @@
 at fractional positions along the body, with default or specified length.
 A negative length draws the arrow from the right of the current drawing
 direction.
-\begin{figure}[h!t]
+\begin{figure}[ht!]
    \input Potentiometers
    \caption{Default and multiple-tap potentiometer.}
    \label{Potentiometers}
@@ -1317,7 +1344,7 @@
     $\ldots$)},
 shown in \FR{Taps}, will add taps to the
 immediately preceding two-terminal element.
-\begin{figure}[h!t]
+\begin{figure}[ht]
    \input Taps
    \caption{Macros for adding taps to two-terminal elements.}
    \label{Taps}
@@ -1338,7 +1365,17 @@
 
 A few composite symbols derived from two-terminal elements
 are shown in \FR{Composite}.
+\begin{figure}[h!b]
+   \vspace*{-0.5ex}
+%  \vspace*{-\baselineskip}
+   \input Composite
+   \vspace*{-0.5ex}
+   \caption{Composite elements {\tt KelvinR({\sl cycles},[R],{\sl cycle wid})}
+      and {\tt FTcap({\sl chars})} .}
+   \label{Composite}
+   \end{figure}
 
+\enlargethispage{\baselineskip}
 The ground symbol is shown in \FR{Grounds}.
 The first argument specifies position; for example, the two lines shown
 have identical effect:
@@ -1347,15 +1384,6 @@
 \par
 ground(at (1.5,2)) }
 
-\begin{figure}[h!t]
-   \vspace*{-0.5ex}
-   \input Composite
-   \vspace*{-0.5ex}
-   \caption{Composite elements {\tt KelvinR({\sl cycles},[R],{\sl cycle wid})}
-      and {\tt FTcap({\sl chars})} .}
-   \label{Composite}
-   \end{figure}
-
 %\noindent
 The second argument truncates
 the stem, and the third defines the symbol type.
@@ -1369,16 +1397,16 @@
    \input GroundsMan
    \caption{The 
      {\tt ground( at }{\sl position}{\tt,
-       T, N|F|S|L|P[A]|E, U|D|L|R|{\sl degrees} )}
+       T|{\sl stem length}, N|F|S|L|P[A]|E, U|D|L|R|{\sl degrees} )}
      macro.}
    \label{Grounds}
    \end{figure}
 
-The arguments of the macro
-{\tt antenna( at }{\sl position}{\tt,
-  T, A|L|T|S|D|P|F, U|D|L|R|{\sl degrees} )}
+The arguments of
+{\tt antenna(at }{\sl position}{\tt,
+  T|{\sl stem length}, A|L|T|S|D|P|F, U|D|L|R|{\sl degrees})}
 shown in \FR{Antennas} are similar to those of {\tt ground}.
-\begin{figure}[h!t]
+\begin{figure}[h!]
    \input AntennasMan
    \caption{Antenna symbols, with macro arguments shown above and
      terminal names below.}
@@ -1385,10 +1413,11 @@
    \label{Antennas}
    \end{figure}
 
-\pagebreak
 \FR{Opamp} illustrates the macro
 {\tt opamp({\sl\linespec, - label, + label, size, chars})\label{OPAMP}}.
-\begin{figure}[h!t]
+The element is enclosed in a block
+containing the predefined internal locations shown.
+\begin{figure}[ht]
 %  \ifpdf\vspace*{-0.5\baselineskip}\fi%
    \input OpampMan
    \caption{Operational amplifiers.  The {\tt P} option adds
@@ -1396,8 +1425,6 @@
      to place and rotate arbitrary text at {\tt In1} and {\tt In2}.}
    \label{Opamp}
    \end{figure}
-The element is enclosed in a block
-containing the predefined internal locations shown.
 These locations can be referenced in later
 commands, for example as ``{\tt last [].Out}.''
 The first argument defines the direction and length of the opamp, but the
@@ -1418,7 +1445,7 @@
 as second and third arguments.
 
 The code in \FR{oax} places an opamp with three connections.
-\begin{figure}[h!t]
+\begin{figure}[h!b]
    \parbox{4in}{\small \verbatiminput{oaxbody.m4}}%
    \quad\raise-0.2in\hbox{\input oax }%
 %  \vspace{-\baselineskip}
@@ -1430,6 +1457,14 @@
 \FR{Xform} shows variants of the transformer macro,
 which has predefined internal locations
 {\sl P1,} {\sl P2,} {\sl S1,} {\sl S2,} {\sl TP,} and {\sl TS.}
+\begin{figure}[h!t]
+   \input XformMan
+  \caption{The {\tt transformer(\linespec,L|R,{\sl np},%
+[A|P][W|L][D1|D2|D12|D21],{\sl ns})}
+     macro (drawing direction {\tt down}), showing predefined terminal
+     and centre-tap points.}
+   \label{Xform}
+   \end{figure}
 The first argument
 specifies the direction and distance from {\sl P1} to {\sl P2}, with
 position determined by the enclosing block as for opamps.  The second
@@ -1442,21 +1477,18 @@
 and if it contains a {\tt W}, wide windings are drawn.
 A {\tt D1} puts phase dots at the {\sl P1, S1} end, {\tt D2} at the
 {\sl P2, S2} ends, and {\tt D12} or {\tt D21} puts dots at opposite ends.
-\begin{figure}[h!t]
-%  \ifpdf\vspace*{-\baselineskip}\fi%
-   \input XformMan
-%  \vspace{-\baselineskip}
-  \caption{The {\tt transformer(\linespec,L|R,{\sl np},%
-[A|P][W|L][D1|D2|D12|D21],{\sl ns})}
-     macro (drawing direction {\tt down}), showing predefined terminal
-     and centre-tap points.}
-   \label{Xform}
-   \end{figure}
 
-\pagebreak
 \FR{Audio} shows some audio devices, defined in {\tt []} blocks,
 with predefined internal locations as shown.
-\begin{figure}[h!t]
+The first argument specifies the device orientation.
+Thus,
+\par
+{\tt S: speaker(U) with .In2 at Here}
+
+\noindent
+places an upward-facing speaker with input {\sl In2} at the
+current location.
+\begin{figure}[ht]
 %   \ifpdf\vspace*{-\baselineskip}\fi%
    \input AudioMan
 %   \ifpdf\vspace*{-\baselineskip}\fi%
@@ -1466,20 +1498,11 @@
      earphone}, with their internally named positions and components.}
    \label{Audio}
    \end{figure}
-The first argument specifies the device orientation.
 
-Thus,
-
-{\tt S: speaker(U) with .In2 at Here}
-
-\noindent
-places an upward-facing speaker with input {\sl In2} at the
-current location.
-
 The {\tt nport({\sl box specs {\tt[;} other commands{\tt]},
   nw, nn, ne, ns, space ratio, pin lgth, style})}
 macro is shown in \FR{Nport}.
-\begin{figure}[h!t]
+\begin{figure}[ht]
 %  \ifpdf\vspace*{-\baselineskip}\fi
    \input NportMan
 %  \ifpdf\vspace*{-\baselineskip}\fi
@@ -1520,7 +1543,6 @@
 If this trick were to be used extensively, then the following custom wrapper
 would save typing, add the labels, and pass all arguments to
 {\tt nport}:
-\pagebreak
 
 \begin{verbatim}
 define(`nullor',`nport(`$1'
@@ -1529,9 +1551,9 @@
 \end{verbatim}
 
 The above example and the related gyrator macro are illustrated in
-\FR{NLG}. 
-%   \ifpdf\vspace*{\baselineskip}\fi%
-\begin{figure}[h!t]
+\FR{NLG}.\hfill\break
+
+\begin{figure}[ht]
    \input NLGMan
    \caption{The {\tt nullor} example and the {\tt gyrator}
     macro are customizations of the {\tt nport} macro.}
@@ -1538,24 +1560,12 @@
    \label{NLG}
    \end{figure}
 
-The double-throw switches shown in \FR{NPDT} are drawn in the
-current drawing direction like the two-terminal elements, but are
-composite elements that must be placed accordingly.
-\begin{figure}[h!t]
-%   \ifpdf\vspace*{-0.5\baselineskip}\fi%
-   \input NPDTMan
-%   \ifpdf\vspace*{-0.5\baselineskip}\fi%
-   \caption{Multipole double-throw switches drawn by
-    {\tt NPDT({\sl npoles}, [R])}.}
-   \label{NPDT}
-   \end{figure}
-
 \FR{Contact} shows the macro {\tt contact({\sl chars})},
 which contains predefined locations {\sl P, C, O}
 for the armature and normally closed and normally
 open terminals.
 An {\tt I} in the first argument draws open circles for contacts.
-\begin{figure}[h!t]
+\begin{figure}[ht]
 %   \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
    \input ContactMan
    \vspace{-1ex}
@@ -1565,11 +1575,9 @@
    \label{Contact}
    \end{figure}
 
-\pagebreak
 The {\tt contacts({\sl poles, chars})} macro in \FR{Contacts}
 draws multiple contacts.
-\begin{figure}[h!t]
-%   \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
+\begin{figure}[ht]
    \input ContactsMan
    \vspace{-1ex}
    \caption{The {\tt contacts({\sl poles, chars})}
@@ -1581,7 +1589,9 @@
  {\tt relaycoil({\sl chars, wid, ht,} {\tt U|D|L|R|}{\sl degrees})}
 shown in \FR{relaycoil} provides a choice of connection points and
 actuator types. 
-\begin{figure}[h!t]
+
+\pagebreak
+\begin{figure}[ht]
 %   \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
    \input relaycoilMan
    \vspace{-1ex}
@@ -1591,9 +1601,8 @@
 
 The {\tt relay({\sl poles, chars})} macro in \FR{Relay}
 defines coil terminals {\sl V1, V2} and contact
-terminals {\sl P$_i$, C$_i$, O$_i$.} 
-\begin{figure}[h!t]
-%   \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
+terminals {\sl P$_i$, C$_i$, O$_i$.}
+\begin{figure}[ht]
    \input RelayMan
    \vspace{-1ex}
    \caption{The {\tt relay({\sl poles, chars})}
@@ -1602,14 +1611,14 @@
    \end{figure}
 
 The {\tt jack} and {\tt plug} macros and their defined points are
- illustrated in \FR{Jack}.
- The first argument of both macros establishes the drawing direction.
-\begin{figure}[h!t]
+illustrated in \FR{Jack}.
+The first argument of both macros establishes the drawing direction.
+\begin{figure}[h!]
    \input JackMan
    \vspace{-1ex}
    \caption{The {\tt jack(U|D|L|R|{\sl degrees}, {\sl chars})}
- and {\tt plug(U|D|L|R|{\sl degrees},[2|3][R])} components
- and their defined points.}
+    and {\tt plug(U|D|L|R|{\sl degrees},[2|3][R])} components
+    and their defined points.}
    \label{Jack}
    \end{figure}
  The second argument is a string of characters defining drawn components.
@@ -1628,7 +1637,7 @@
 and some experimental connectors are shown in \FR{Conn} and \FR{Pconn}.
 The {\tt tstrip} macro allows ``{\sl key}{\tt =}{\sl value}{\tt ;}'' arguments
 for width and height.
-\begin{figure}[h!t]
+\begin{figure}[ht]
 %  \ifpdf\vspace*{-0.5\baselineskip}\fi%
    \input HeadersMan
 %  \ifpdf{\vspace*{-0.5ex}}\fi%
@@ -1635,7 +1644,7 @@
    \caption{Macro {\tt Header(1|2, {\sl rows, wid, ht, type})}.}
    \label{Headers}
    \end{figure}
-\begin{figure}[h!t]
+\begin{figure}[ht]
    \input ConnMan
 %  \ifpdf{\vspace*{-0.5ex}}\fi%
    \caption{Macros {\tt tstrip(R|L|U|D|{\sl degrees}, {\sl chars})},
@@ -1645,7 +1654,7 @@
    \label{Conn}
 %  \ifpdf{\vspace*{-1ex}}\fi%
    \end{figure}
-\begin{figure}[h!t]
+\begin{figure}[ht]
 %  \ifpdf{\vspace*{-1ex}}\fi%
    \input PconnMan
 %  \ifpdf{\vspace*{-0.5ex}}\fi%
@@ -1655,13 +1664,23 @@
    \label{Pconn}
    \end{figure}
 
-\pagebreak
+The double-throw switches shown in \FR{NPDT} are drawn in the
+current drawing direction like the two-terminal elements, but are
+composite elements that must be placed accordingly.
+\begin{figure}[h!b]
+   \ifpdf{\vspace*{-1ex}}\fi%
+   \input NPDTMan
+   \caption{Multipole double-throw switches drawn by
+    {\tt NPDT({\sl npoles}, [R])}.}
+   \label{NPDT}
+   \end{figure}
+
 A basic winding macro for magnetic-circuit sketches and similar figures
 is shown in \FR{Windings}.
 For simplicity, the complete spline
 is first drawn and then blanked in appropriate places using the background
 (core) color (\verb!lightgray! for example, default \verb!white!).
-\begin{figure}[h!t]
+\begin{figure}[h!b]
    \vspace*{-\baselineskip}%
 %  \ifpdf\vspace*{-2\baselineskip}\else \vspace{-\baselineskip}\fi
    \input WindingsMan
@@ -1679,7 +1698,7 @@
 which contains predefined internal locations {\sl E},
 {\sl B}, {\sl C}.
 The first argument defines the distance and direction from {\sl E}
-\begin{figure}[h!t]
+\begin{figure}[ht]
 %   \ifpdf\vspace*{-0.5\baselineskip}\fi%
    \input BipMan
 %   \ifpdf\vspace*{-0.5\baselineskip}\fi%
@@ -1694,7 +1713,7 @@
 argument to {\tt P} creates a PNP device instead of NPN, and setting the
 fourth to {\tt E} draws an envelope around the device.
 \FR{Darlington} shows a composite macro with several optional internal elements.
-\begin{figure}[h!t]
+\begin{figure}[ht]
    \input Darlington
    \caption{Macro {\tt Darlington(L|R,[E][P][B1][E1|R1][E2|R2][D][Z])},
      drawing direction {\tt up\_}.}
@@ -1703,8 +1722,8 @@
 
 The code fragment example in \FR{bitr} places a bipolar transistor,
 connects a ground to the emitter, and connects a resistor to the collector.
-\begin{figure}[h!t]
-\vspace*{-\baselineskip}
+\begin{figure}[ht]
+%\vspace*{-\baselineskip}
    \quad\quad\parbox{4in}{\small \verbatiminput{bitrbody.m4}}%
    \quad\raise-0.4in\hbox{\input bitr }%
    \vspace{-\baselineskip}
@@ -1717,8 +1736,8 @@
 draws the components of the transistor according to the characters in its
 third argument.  For example, multiple emitters and collectors can be
 specified as shown in \FR{bitrans}.
-\begin{figure}[h!t]
-\vspace*{-0.5\baselineskip}
+\begin{figure}[ht]
+%\vspace*{-0.5\baselineskip}
    \input bi_trans
    \caption{The {\tt bi\_trans(\linespec,L|R,{\sl chars},E)} macro.
    The sub-elements are specified by the third argument.  The substring
@@ -1734,7 +1753,7 @@
  {\sl G} and {\sl T1,} {\sl T2,} or
  {\sl A,} {\sl K} is in \FR{thyristor}.
 Except for the {\sl G} terminal, a thyristor (the {\tt IEC} variant excluded)
-\begin{figure}[h!t]
+\begin{figure}[ht]
 %   \ifpdf\vspace*{-\baselineskip}\else\vspace*{-0.5\baselineskip}\fi%
    \input ujtMan
 %   \ifpdf\vspace*{-0.5\baselineskip}\fi%
@@ -1768,7 +1787,7 @@
 Some FETs with predefined internal locations {\sl S,} {\sl D,} and {\sl G} are
 also included, with similar arguments to those of {\tt bi\_tr,} as shown in
 \FR{fet}.
-\begin{figure}[h!t]
+\begin{figure}[ht]
 %   \ifpdf\vspace*{-\baselineskip}\fi%
    \input fetMan
 %   \ifpdf\vspace*{-\baselineskip}\fi%
@@ -1806,7 +1825,7 @@
 \FR{thyristor} is derived from the diode and bipolar transistor macros.
 Another example is the {\tt tgate} macro shown in \FR{Tgate}, which
 also shows a pass transistor.
-\begin{figure}[h!t]
+\begin{figure}[ht]
 %   \ifpdf\vspace*{-\baselineskip}\fi%
    \input TgateMan
    \caption{The {\tt tgate({\sl linespec,} [B][R|L])} element, derived from
@@ -1824,7 +1843,7 @@
 macros, the {\tt fill\_} macro, and {\tt crossover}, which is a useful if
 archaic method to show non-touching conductor crossovers, as in
 \FR{bistable}.
-\begin{figure}[h!t]
+\begin{figure}[ht]
    \input bistableMan
 %  \vspace{-1ex}
    \caption{Bipolar transistor circuit, illustrating {\tt crossover}
@@ -1936,7 +1955,7 @@
 
 Input locations retain their positions relative to the gate body
 regardless of gate orientation, as in \FR{FF}.
-\begin{figure}[h!t]
+\begin{figure}[ht]
    \vspace*{-\baselineskip}
    \parbox{4.75in}{\small \verbatiminput{FF.m4}}%
    \input FF
@@ -1944,7 +1963,7 @@
    \caption{$SR$ flip-flop.}
    \label{FF}
    \end{figure}
-\begin{figure}[h!t]
+\begin{figure}[ht]
    \input mplex
    \caption{Eight-input multiplexer, showing a gate with wings.}
    \label{exVIII}
@@ -2018,7 +2037,7 @@
 an invisible line like a two-terminal element, which is convenient sometimes
 but requires internal locations of the block to be referenced using
 {\tt last []}, as shown in \FR{Buffer}.
-\begin{figure}[h!t]
+\begin{figure}[ht]
    \input Buffer
    \caption{The {\tt BUFFER\_gate} and {\tt BUFFER\_gen} macros.
      The bottom two examples show how the gate can be drawn as a two-terminal
@@ -2027,28 +2046,12 @@
    \label{Buffer}
    \end{figure}
 
-\FR{Multiplexer} shows a multiplexer block with variations, and
- \FR{Demultiplexer} shows
-the very similar demultiplexer.
-\begin{figure}[h!t]
-   \input MultiplexerMan
-   \caption{The {\tt Mux({\sl input count}, {\sl label}, 
-      [L][B|H|X][N[$n$]|S[$n$]][[N]OE],{\sl wid},{\sl ht})} macro.}
-   \label{Multiplexer}
-   \end{figure}
-\begin{figure}[h!t]
-   \input DemultiplexerMan
-   \caption{The {\tt Demux({\sl input count}, {\sl label}, 
-      [L][B|H|X][N[$n$]|S[$n$]][[N]OE],{\sl wid},{\sl ht})} macro.}
-   \label{Demultiplexer}
-   \end{figure}
-
 \FR{FlipFlops} shows
 the macro {\tt FlipFlop(D|T|RS|JK, {\sl label, boxspec, pinlength})},
 which is a
 wrapper for the more general macro {\tt FlipFlopX(}{\sl boxspec, label,
 leftpins, toppins, rightpins, bottompins, pinlength}{\tt )}.
-\begin{figure}[h!t]
+\begin{figure}[ht]
    \input FlipFlop
    \caption{The {\tt FlipFlop} and {\tt FlipFlopX} macros, with variations.}
    \label{FlipFlops}
@@ -2070,27 +2073,45 @@
 The {\sl pinopts} are {\tt [L|M|I|O][N][E]} as for the \verb|lg_pin| macro.
 Optional argument 7 is the pin length in drawing units.
 
+\pagebreak
+\FR{Multiplexer} shows a multiplexer block with variations, and
+ \FR{Demultiplexer} shows
+the very similar demultiplexer.
+\begin{figure}[h!t]
+   \input MultiplexerMan
+   \caption{The {\tt Mux({\sl input count}, {\sl label}, 
+      [L][B|H|X][N[$n$]|S[$n$]][[N]OE],{\sl wid},{\sl ht})} macro.}
+   \label{Multiplexer}
+   \end{figure}
+\begin{figure}[h!t]
+   \input DemultiplexerMan
+   \caption{The {\tt Demux({\sl input count}, {\sl label}, 
+      [L][B|H|X][N[$n$]|S[$n$]][[N]OE],{\sl wid},{\sl ht})} macro.}
+   \label{Demultiplexer}
+   \end{figure}
+
 Customized gates can be defined simply.
 For example, the following code defines the custom flipflops in \FR{ShiftR}.
+\begin{verbatim}
+define(`customFF',`FlipFlopX(wid 10*L_unit ht FF_ht*L_unit,,
+    :S;NE:CK;:R, N:PR, :Q;;ifelse(`$1',1,:lg_bartxt(Q)), N:CLR) ')
+\end{verbatim}
 \begin{figure}[h!t]
    \input ShiftRMan
    \caption{A 5-bit shift register.}
    \label{ShiftR}
    \end{figure}
-\begin{verbatim}
-define(`customFF',`FlipFlopX(wid 10*L_unit ht FF_ht*L_unit,,
-    :S;NE:CK;:R, N:PR, :Q;;ifelse(`$1',1,:lg_bartxt(Q)), N:CLR) ')
-\end{verbatim}
 This definition makes use of macros \verb|L_unit| and
 \verb|FF_ht| that predefine default dimensions.
-There are three pins on the right side; the centre pin is null and
+There are three pins on the right; the centre pin is null and
 the bottom is null if the first macro argument is 1.
 
+\pagebreak
 For hybrid applications, the \verb|dac| and \verb|adc| macros are
 illustrated in \FR{Dac}.
 The figure shows the default and predefined internal locations, the number
 of which can be specified as macro arguments.
-\begin{figure}[h!t]
+\begin{figure}[ht]
 %  \ifpdf\vspace*{-\baselineskip}\fi%
    \input Dac
 %   \ifpdf\vspace*{-\baselineskip}\fi%
@@ -2145,7 +2166,7 @@
 \char96{}{\sl actions}\char39,
 {\sl value1, value2, $\ldots$})}
 which executes the given actions successively with
- {\sl variable} = {\sl value1}, {\sl value2} $ldots$ and the
+ {\sl variable} = {\sl value1}, {\sl value2} $\ldots$ and the
  counter {\tt m4Lx} set to 1, 2, $\ldots$ as in the diagram.
 
 \xection{Element and diagram scaling\label{Scaling:}}
@@ -2291,7 +2312,7 @@
 Custom two-terminal elements can often be defined by writing a wrapper
 for an existing element.  For example, an enclosed thermal switch
 can be defined as shown in \FR{Thermal}.
-\begin{figure}[h!t]
+\begin{figure}[ht]
    \parbox{4.2in}{\tt define(`thermalsw',\hfill\break
    \hbox{}\space`dswitch(`\$1',`\$2',WDdBTh)\hfill\break
    \hbox{}\space\space circle rad distance(M4T,last line.c)
@@ -2360,7 +2381,7 @@
  `"$\mathrm{r_o}$"' at Ro.c+vec_(hunit/4,0)
  `$2' ] ')
 \end{verbatim}
-\begin{figure}[h!t]
+\begin{figure}[ht]
    \vspace*{-0.5ex}
    \input HybridPi
    \vspace*{-0.5ex}
@@ -2368,10 +2389,10 @@
    \label{HybridPi}
    \end{figure}
 
+%\enlargethispage{\baselineskip}
 \Example{4}
 A number of elements have arguments meant explicitly for customization.
-\FR{Sinus} customizes the {\tt source} macro to show a cycle of a horizontal
-sinusoid with adjustable phase given by argument 2 in degrees,
+\FR{Sinus} customizes the {\tt source} macro to show a cycle of a horizontal sinusoid with adjustable phase given by argument 2 in degrees,
 as might be wanted for a 3-phase circuit:
 \begin{figure}[ht]
 \hfill\input Sinus
@@ -2391,14 +2412,13 @@
    \end{figure}
 
 \Example{5}
-Repeated subcircuits might have different orientations
-that
-include only the element and its mirror image, for example, so the
+Repeated subcircuits might appear only
+as the subcircuit and its mirror image, for example, so the
 power of the \verb|vec_()| and \verb|rvec_()| macros is not required.
 Suppose that an optoisolator is to be drawn with left-right or right-left
 orientation as shown in \FR{Opto}.
 %\vspace*{-0.5em}
-\begin{figure}[h!t]
+\begin{figure}[h!b]
    \input Opto
    \caption{Showing {\tt opto} and {\tt opto(BR)} with defined labels.}
    \label{Opto}
@@ -2423,6 +2443,7 @@
 using the {\tt ifinstr()} macro rather than requiring an exact match.
 A draft of the macro follows, and the file {\tt Optoiso.m4} in the examples
 directory adds a third type option.
+
 \begin{verbatim}
 #                           `opto([R|L][A|B])'
 define(`opto',`[{u = dimen_/2
@@ -2470,7 +2491,7 @@
   ground(at F2.G)
 \end{verbatim}
 \vspace*{-0.5em}
-\begin{figure}[h!t]
+\begin{figure}[ht]
    \input fbfilter
    \caption{Showing the result of two invocations of the {\tt fbfilter} macro,
      with labels.}
@@ -2546,8 +2567,8 @@
 text, and also to write the text dimensions into a supplementary file.
 Then the diagram source is processed again, reading the required
 dimensions from the supplementary file and producing a diagram ready
-for final \latex{}ing.  This hackery is summarized below, with an example
-in \FR{stringdim}.
+for final \latex{}ing.
+This hackery is summarized below, with an example in \FR{stringdim}.
 \begin{itemize}
 \item Put \verb|\usepackage{boxdims}| into the document source.
 \item Insert the following at the beginning of the diagram source,
@@ -2558,9 +2579,9 @@
  typeset text of known size, or alternatively, invoke the macros
  \verb|\boxdims| and \verb|boxdim| described later.
  The argument of {\tt s\_box} need not be text exclusively; it can
- be anything that produces a \TeX\ box.
+ be anything that produces a \TeX\ box, for example, \verb|\includegraphics|.
 \end{itemize}
-\begin{figure}[h!t]
+\begin{figure}[ht]
    \parbox{3.5in}{\small\tt.PS\\
      gen\_init\\
      sinclude(Circuit\_macros.dim)\\
@@ -2649,6 +2670,8 @@
 
 Here is a second small example.  Suppose that the file {\tt tsbox.m4} contains
 the following:
+
+\pagebreak
 \begin{verbatim}
 \documentclass{article}
 \usepackage{boxdims,ifpstricks(pstricks,tikz)}
@@ -2682,7 +2705,7 @@
 The small source file in \FR{boxdims}, for example,
 produces the box in the figure.
 %\vspace*{-\baselineskip}%
-\begin{figure}[h!t]
+\begin{figure}[ht]
    \parbox{4.2in}{\small \input eboxdims.verb }%
    \hfill\llap{\raise-0.35in\hbox{\input eboxdims }}%
    \vspace{-\baselineskip}
@@ -2736,13 +2759,12 @@
 \noindent shows a nice way of including eps graphics in a diagram.  The
 included picture (named {\tt Picture} in the example) has known position and
 dimensions, which can be used to add vector graphics or text to the
-picture.  To aid in overlaying objects, the macro {\tt boxcoord(}{\sl
-object name, x-fraction, y-fraction}{\tt)} evaluates to a position,
-with {\tt boxcoord(}{\sl object name}{\tt,0,0)} at the lower left
-corner of the object, and {\tt boxcoord(}{\sl object name}{\tt,1,1)} at
-its upper right.
+picture.  To aid in overlaying objects, the macro
+{\tt boxcoord(}{\sl object name, x-fraction, y-fraction}{\tt)}
+evaluates to a position, with {\tt boxcoord(}{\sl object name}{\tt,0,0)}
+at the lower left corner of the object, and {\tt boxcoord(}{\sl object
+name}{\tt,1,1)} at its upper right.
 
-\pagebreak
 \xection{\PSTricks and other tricks\label{Pstricks:}}
 This section applies only to a \pic processor (\dpic) that is
 capable of producing output compatible with
@@ -2764,7 +2786,7 @@
 vertical line.
 This rotation of text is also implemented by the macro
 {\tt rs\_box}, which is similar
-to {\tt s\_box} but rotates its text argument by $90^\circ,$ a default angle
+to {\tt s\_box} but rotates its argument by~$90^\circ,$ a default angle
 that can be changed by preceding invocation with
 \verb|define(`text_ang',|{\sl degrees}{\tt )}.  The {\tt rs\_box} macro
 requires either \PSTricks or \TPGF and, like {\tt s\_box}, it calculates the
@@ -2814,15 +2836,6 @@
 previously can be used to hide code differences.
 
 \subsection{\Tikz\ with pic}\label{Tikzwithpic:}
-%The line
-%
-%\vspace{\parsep}
-%\noindent{\tt command "}{\sl string}{\tt "}
-%\vspace{\parsep}
-%
-%\noindent
-%allows arbitrary postprocessor code to be embedded in \pic output.  However,
-%one can also embed 
 Arbitrary \pic output can be inserted into a {\tt \bsl{}tikzpicture} 
 environment.  The trick is to keep the \pic and \Tikz coordinate systems
 the same.
@@ -2830,7 +2843,7 @@
 
 \vspace{\parsep}
 \noindent\verb|\begin{tikzpicture}[scale=2.54]|\\
-\noindent\verb|\end{tikzpicture}|
+\noindent\verb|\end{tikzpicture}%|
 \vspace{\parsep}
 
 \noindent in the {\tt dpic -g} output must be changed to
@@ -2837,7 +2850,7 @@
 
 \vspace{\parsep}
 \noindent\verb|\begin{scope}[scale=2.54]|\\
-\noindent\verb|\end{scope}|
+\noindent\verb|\end{scope}%|
 \vspace{\parsep}
 
 This is accomplished, for example, by adapting the {\tt \bsl{}mtotex}
@@ -3010,6 +3023,7 @@
 responsible for ensuring that the correct fonts are provided and for
 formatting the text.
 
+\pagebreak
 Many thanks to the people who continue to send comments, questions,
 and, occasionally, bug fixes. What began as a tool for my own use changed
 into a hobby that has persisted, thanks to your help and advice.
@@ -3181,6 +3195,8 @@
 
 {\tt for\_(1,5,1,`s\_box(A[m4x]); move')}
 
+Note that the loop index variable {\tt m4x} is automatically defined.
+
 \item 
 \bflistitem{Quotes}{quotes}
  Single quote characters are stripped in pairs by \Mfour, so the string
@@ -3201,6 +3217,11 @@
   not optimal or where the quotes could be omitted, and there are
   rare exceptions such as the {\tt parallel\_} macro.
 
+  To keep track of paired single quotes, parentheses ``{\tt (}, {\tt)},''
+  braces ``\lbr, \rbr,'' and brackets ``{\tt [}, {\tt ]},'' use an editor
+  that highlights these pairs.  For example, the vim editor highlights
+  single quotes with the command \verb|:set mps+=`:'|.
+
 \item 
 \bflistitem{Dollar signs}{dollarsigns}
 The $i$-th argument of an \Mfour macro is {\tt \$}$i,$ where $i$ is

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/defines.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/defines.tex	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/defines.tex	2020-12-21 22:02:51 UTC (rev 57189)
@@ -8,11 +8,11 @@
 %
 \newbox\Defbox
 
-\newcommand{\macx}[2]{%
-  \phantomsection\pdfbookmark[subsection]{#1}{#2}#1}
+%\newcommand{\macx}[2]{%
+%  \phantomsection\pdfbookmark[subsection]{#1}{#2}#1}
 
 \newcommand{\macrodef}[5]{%\begin{samepage}%
-\phantomsection\pdfbookmark[subsection]{#1}{#2}%
+\phantomsection\pdfbookmark[subsubsection]{#1}{#2}%
 \setbox\Defbox=\hbox{\tt #1#3}%
   \ifdim\wd\Defbox>\textwidth%
     \setbox\Defbox=\hbox{\parbox{\textwidth}{\tt #1#3}}\fi
@@ -22,12 +22,26 @@
   \hbox to \libwid{#4\hfill}\parbox[t]{\rightwid}%
    {\raggedright #5}%
 %   \end{samepage}%
-  \vspace{\parsep}\\}
+  \vspace{\parsep}\\}%
 
 \newcommand{\seesect}[1]{ (\SR{#1})}
 
+\newcommand{\Letter}[1]{\noindent%
+  \pdfbookmark[subsection]{#1}{#1}%
+  \hskip-2em\hbox to 2em{#1\label{#1}\hfill}\relax}%
+
+\newcommand{\LR}[1]{\hyperref[#1]{{#1}}\hskip1em}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
 \vspace{\abovedisplayskip}
 \noindent
+\LR{A} \LR{B} \LR{C} \LR{D} \LR{E} \LR{F} \LR{G} \LR{H} \LR{I} \LR{J}
+\LR{K} \LR{L} \LR{M} \LR{N} \LR{O} \LR{P}
+\LR{R} \LR{S} \LR{T} \LR{U} \LR{V} \LR{W} \LR{X}
+\\
+
+\Letter{A}%
 \macrodef{above\_}{above_}{}
   {gen}
   {string position above relative to current direction}
@@ -39,8 +53,8 @@
   {cct}
   {draw an AC symbol ( 1-cycle sine wave); If arg 4 contains A, two arcs
    are drawn.  The current drawing direction is default, otherwise Up, Down,
-   Left, Right, or at {\sl degrees} slant; e.g., 
-   {\tt ebox; $\lbrace$ ACsymbol(at last [],{,}dimen\_/8) $\rbrace$} }
+   Left, Right, or at {\sl degrees} slant; \seesect{Twoterminal:} e.g.,\\ 
+   {\tt ebox; $\lbrace$ACsymbol(at last [],{,}dimen\_/8)$\rbrace$}}
 \macrodef{adc}{adc}{({\sl width,height,nIn,nN,nOut,nS})}
   {cct}
   {ADC with defined width, height, and number of inputs {\tt In$i$},
@@ -107,6 +121,12 @@
    {\sl modifiers}) }
   {gen}
   {arc with acute angle (obtuse if radius is negative), drawn in a [ ] block}
+\macrodef{ArcAngle}{ArcAngle}{({\sl position, position, position, radius,
+  modifiers}) }
+  {gen}
+  {Arc angle symbol drawn ccw at arg2. Arg4 is the radius from arg2;
+     arg5 contains line attributes, e.g., {\tt thick linethick/2}}
+
 \macrodef{arcd}{arcd}{({\sl center},
   {\sl radius},{\sl start degrees},{\sl end degrees}) }
   {gen}
@@ -139,6 +159,29 @@
     radius},[dashed|dotted])}
   {gen}
   {line toward position 1 with rounded corner toward position 2}
+\macrodef{arrester}{arrester}{(\linespec,{\sl chars},
+                                   {\sl len}[:arrowhead ht],
+                                   {\sl ht}[:arrowhead wid] )}
+  {cct}
+{
+                                 {\sl Arg2 chars:}
+                                   {\tt G=} spark gap (default),
+                                   {\tt g=} general (dots),
+                                   {\tt E=} gas discharge,
+                                   {\tt S=} box enclosure,
+                                   {\tt C=} carbon block,
+                                   {\tt A=} electrolytic cell,
+                                   {\tt H=} horn gap,
+                                   {\tt P=} protective gap,
+                                   {\tt s=} sphere gap,
+                                   {\tt F=} film element,
+                                   {\tt M=} multigap.
+                                 {\sl Modifiers in arg2:}
+                                   {\tt R=} right orientation,
+                                   {\tt L=} left orientation,
+                                   {\tt D=} 3-terminal element for {\tt S, E}
+                                      only, with terminals {\sl A, B, G}
+   \seesect{Twoterminal:}}
 \macrodef{arrowline}{arrowline}{(\linespec)}
   {cct}
   {line (dotted, dashed permissible) with centred arrowhead
@@ -176,6 +219,7 @@
    Setting {\tt offset=}{\sl value} displaces the
    drawn input list in order to disambiguate the input connections when {\tt L}
    is used}
+\Letter{B}%
 \macrodef{b\_}{b_}{}
   {gen}
   {blue color value}
@@ -276,6 +320,7 @@
   {cct}
   {buzzer, {\sl In1} to {\sl In3} defined, C=curved
    \seesect{Composite:}}
+\Letter{C}%
 \macrodef{c\_fet}{c_fet}{(\linespec,L|R,P)}
   {cct}
   {left or right, plain or negated pin simplified MOSFET}
@@ -387,6 +432,7 @@
 \macrodef{csdim\_}{csdim_}{}
   {cct}
   {controlled-source width}
+\Letter{D}%
 \macrodef{d\_fet}{d_fet}{(\linespec,L|R,P,S,E|S)}
   {cct}
   {left or right, N or P depletion MOSFET, normal or simplified,
@@ -473,6 +519,14 @@
 \macrodef{dcosine3D}{dcosine3D}{({\sl i,x,y,z})}
   {3D}
   {extract i-th entry of triple x,y,z}
+\macrodef{DCsymbol}{DCsymbol}{(at {\sl position, len, ht,}
+  U|D|L|R|{\sl degrees}) }
+  {cct}
+  {A DC symbol (a dashed line below a solid line).
+   The current drawing direction is default, otherwise Up, Down,
+   Left, Right, or at {\sl degrees} slant; e.g., 
+   {\tt source(up\_ dimen\_); $\lbrace$ DCsymbol(at last [],,,R) $\rbrace$}
+   \seesect{Twoterminal:} }
 \macrodef{delay\_rad\_}{delay_rad_}{}
   {cct}
   {delay radius}
@@ -510,7 +564,7 @@
   {difference of two triples}
 \macrodef{dimen\_}{dimen_}{}
   {cct}
-  {size parameter for circuit elements \seesect{Circuitscaling:}}
+  {size parameter for scaling circuit element bodies \seesect{Circuitscaling:}}
 \macrodef{dimension\_}{dimension_}{(\linespec,{\sl offset},{\sl label},
     D|H|W|{\sl blank width},{\sl tic offset},{\sl arrowhead })}
   {gen}
@@ -653,6 +707,7 @@
 \macrodef{dturn}{dturn}{({\sl degrees ccw})}
   {darrow}
   {turn dline arg1 degrees left (ccw)}
+\Letter{E}%
 \macrodef{E\_\_}{E__}{}
   {gen}
   {the constant $e$}
@@ -692,14 +747,15 @@
 \macrodef{endshade}{endshade}{}
   {gen}
   {end gray shading, see {\tt beginshade}}
-\macrodef{Equidist3}{Equidist3}{({\sl Pos1, Pos2, Pos3, Result})}
+\macrodef{Equidist3}{Equidist3}{({\sl Pos1, Pos2, Pos3, Result, distance})}
   {gen}
   {Calculates location named {\sl Result} equidistant from the first three
    positions, i.e.\ the centre of the circle passing through the three
-   positions}
+   positions.  If arg5 is nonblank, it is equated to the radius.}
 \macrodef{expe}{expe}{}
   {gen}
   {exponential, base $e$}
+\Letter{F}%
 \macrodef{f\_box}{f_box}{({\sl boxspecs},{\sl text},{\sl expr1},$\cdots$)}
   {gen}
   {like {\tt s\_box} but the text is overlaid on a box of identical size.
@@ -778,6 +834,7 @@
   {cct}
   {fuse symbol, type$=$
   {\tt  A|B|C|D|S|HB|HC|SB} or {\tt dA=D}\seesect{Twoterminal:}}
+\Letter{G}%
 \macrodef{g\_}{g_}{}
   {gen}
   {green color value}
@@ -809,10 +866,10 @@
 \macrodef{grid\_}{grid_}{({\sl x},{\sl y})}
   {log}
   {absolute grid location}
-\macrodef{ground}{ground}{(at {\sl location}, T, N|F|S|L|P[A]|E, U|D|L|R|{\sl
-    degrees})}
+\macrodef{ground}{ground}{(at {\sl location}, T|{\sl stem length},
+   N|F|S|L|P[A]|E, U|D|L|R|{\sl degrees})}
   {cct}
-  { ground, without stem for nonblank 2nd arg;
+  { ground, without stem for 2nd arg = T;
     {\tt N}=normal, {\tt F}=frame, {\tt S}=signal, {\tt L}=low-noise,
     {\tt P}=protective,
     {\tt PA}=protective alternate,
@@ -828,6 +885,7 @@
   {Gyrator two-port wrapper for {\tt nport}, {\tt N} omits pin dots; {\tt V}
    gives a vertical orientation
    \seesect{Composite:}}
+\Letter{H}%
 \macrodef{H\_ht}{H_ht}{}
   {log}
   {hysteresis symbol dimension in {\tt L\_unit}s}
@@ -867,6 +925,7 @@
 \macrodef{ht\_}{ht_}{}
   {gen}
   {height relative to current direction}
+\Letter{I}%
 \macrodef{ifdpic}{ifdpic}{({\sl if true},{\sl if false})}
   {gen}
   {test if dpic has been specified as pic processor}
@@ -942,6 +1001,7 @@
     along the line; {\tt P}= label only;
     {\tt N}=with {\tt NOT\_circle};
     {\tt R}=circle to right of current direction }
+\Letter{J}%
 \macrodef{j\_fet}{j_fet}{(\linespec,L|R,P,E)}
   {cct}
   {left or right, N or P JFET, without or with envelope
@@ -952,10 +1012,12 @@
    one or more {\tt L[M][B]} for L and auxiliary contacts with make or break
    points; {\tt S[M][B]} for S and auxiliary contacts
    \seesect{Composite:}}
+\Letter{K}%
 \macrodef{KelvinR}{KelvinR}{({\sl cycles},[R],{\sl cycle wid})}
   {cct}
   {IEEE resistor in a {\tt [ ]} block with Kelvin taps {\sl T1} and {\sl T2}
    \seesect{Composite:}}
+\Letter{L}%
 \macrodef{L\_unit}{L_unit}{}
   {log}
   {logic-element grid size}
@@ -1073,6 +1135,7 @@
 \macrodef{lthick}{lthick}{}
   {gen}
   {current line thickness in drawing units}
+\Letter{M}%
 \macrodef{m4\_arrow}{m4_arrow}{(\linespec,{\sl ht},{\sl wid})}
   {gen}
   {arrow with adjustable head, filled when possible}
@@ -1169,6 +1232,7 @@
 \macrodef{Mx\_pins}{Mx_pins}{}
   {log}
   {max number of gate inputs without wings}
+\Letter{N}%
 \macrodef{n\_}{n_}{}
   {gen}
   {.n with respect to current direction}
@@ -1254,6 +1318,7 @@
    Otherwise, arg1 can be a sequence of letters {\tt P|N}
    to define normal or negated inputs.
     \seesect{Logicgates:}}
+\Letter{O}%
 \macrodef{opamp}{opamp}{(\linespec,{\sl label},{\sl label},{\sl size},{\sl
     chars}, other commands)}
   {cct}
@@ -1283,6 +1348,7 @@
 \macrodef{OR\_rad}{OR_rad}{}
   {log}
   {radius of OR input face in {\tt L\_unit}s}
+\Letter{P}%
 \macrodef{parallel\_}{parallel_}{(\char96{\sl elementspec}\char39,%
  \char96{\sl elementspec}\char39 $\ldots$)}
   {cct}
@@ -1339,6 +1405,10 @@
 \macrodef{point\_}{point_}{({\sl angle})}
   {gen}
   {(radians) set direction cosines}
+\macrodef{PerpTo}{PerpTo}{({\sl Pos1, Line, Point})}
+  {gen}
+  {{\sl Point} is the label for the point on {\sl Line} of the perpendicular
+   from {\sl Point} to {\sl Line}.}
 \macrodef{Point\_}{Point_}{({\sl integer})}
   {gen}
   {sets direction cosines in degrees \seesect{Placing:}}
@@ -1345,6 +1415,9 @@
 \macrodef{polar\_}{polar_}{({\sl x},{\sl y})}
   {gen}
   {rectangular-to polar conversion}
+\macrodef{langle}{langle}{({\sl Start, End})}
+  {gen}
+  {Angle in radians from horizontal of the line from {\sl Start} to {\sl End}.}
 \macrodef{potentiometer}{potentiometer}{(\linespec,%
   {\sl cycles},{\sl fractional pos},{\sl length},$\cdots$)}
   {cct}
@@ -1371,6 +1444,7 @@
   {cct}
   {pass transistor; {\tt L=} left orientation
     \seesect{Semiconductors:}}
+\Letter{R}%
 \macrodef{r\_}{r_}{}
   {gen}
   {red color value}
@@ -1450,9 +1524,12 @@
   {reverse polarity of 2-terminal element}
 \macrodef{rgbdraw}{rgbdraw}{({\sl color triple}, {\sl drawing commands})}
   {gen}
-  {color drawing for PSTricks, pgf, MetaPost, svg postprocessors;
+  {color drawing for PSTricks, pgf, MetaPost, SVG postprocessors;
    (color entries are 0 to 1 except for SVG entries which are 0 to 255),
-   see {\tt setrgb} \seesect{Semiconductors:}}
+   see {\tt setrgb} \seesect{Semiconductors:}.
+   Exceptionally, the color of
+   SVG arrows other than the default black has to be defined using
+   the {\tt outlined }{\sl string} and {\tt shaded }{\sl string} constructs.}
 \macrodef{rgbfill}{rgbfill}{({\sl color triple}, {\sl closed path})}
   {gen}
   {fill with arbitrary color (color entries are 0 to 1 except 
@@ -1470,6 +1547,11 @@
 \macrodef{right\_}{right_}{}
   {gen}
   {set current direction right \seesect{Placing:}}
+\macrodef{RightAngle}{RightAngle}{({\sl Pos1, Pos2, Pos3, line len,
+  attributes})}
+  {gen}
+  {Draw a right-angle symbol at {\sl Pos2}, of size given by arg4. Arg5 =
+   line attributes, e.g., {\tt outlined "gray"}}
 \macrodef{rjust\_}{rjust_}{}
   {gen}
   {right justify with respect to current direction}
@@ -1538,6 +1620,7 @@
 \macrodef{rvec\_}{rvec_}{({\sl x},{\sl y})}
   {gen}
   {location relative to current direction}
+\Letter{S}%
 \macrodef{s\_}{s_}{}
   {gen}
   {.s with respect to current direction}
@@ -1611,6 +1694,12 @@
   {gen}
   {define colour for lines and text, optionally named (default {\tt lcspec});
    svg values are integers from 0 to 255\seesect{Semiconductors:}}
+\macrodef{setkey\_}{setkey_}{({\sl string, key, default,}[N])}
+  {gen}
+  {Key-value definition. The string contains semicolon-separated terms
+   of the form {\sl key}{\tt =}{\sl value}.  Then macro {\tt m4{\sl key}}
+   is defined using {\tt pushdef} to be {\tt ({\sl value})} but if arg4 is
+   nonbland, the parentheses are omitted.}
 \macrodef{setview}{setview}{({\sl azimuth degrees},{\sl elevation degrees})}
   {3D}
   {set projection viewpoint}
@@ -1784,6 +1873,7 @@
      if arg4=B (button switch): arg3 = O{\tt|}C
        O=normally open, C=normally closed,
      if arg4=D: arg3 = same as for dswitch \seesect{Twoterminal:}}
+\Letter{T}%
 \macrodef{ta\_xy}{ta_xy}{({\sl x, y})}
   {cct}
   {macro-internal coordinates adjusted for {\tt L|R}}
@@ -1901,6 +1991,7 @@
 \macrodef{twopi\_}{twopi_}{}
   {gen}
   {$2\pi$}
+\Letter{U}%
 \macrodef{ujt}{ujt}{(\linespec,R,P,E)}
   {cct}
   {unijunction transistor, right, P-channel, envelope
@@ -1914,6 +2005,7 @@
 \macrodef{up\_}{up_}{}
   {gen}
   {set current direction up \seesect{Placing:}}
+\Letter{V}%
 \macrodef{variable}{variable}{(`{\sl element}',
   {\tt [A|P|L|[u]N|[u]NN][C|S]},{\sl angle},{\sl length})}
   {cct}
@@ -1961,6 +2053,7 @@
   {gen}
   {{\tt Vsum\_(A,B)} evaluates to {\tt A+B} with dpic, {\tt A+(B.x,B.y)}
    with gpic}
+\Letter{W}%
 \macrodef{w\_}{w_}{}
   {gen}
   {.w with respect to current direction}
@@ -1984,6 +2077,7 @@
 \macrodef{XOR\_off}{XOR_off}{}
   {log}
   {XOR and NXOR offset of input face}
+\Letter{X}%
 \macrodef{xtal}{xtal}{(\linespec)}
   {cct}
   {quartz crystal\seesect{Twoterminal:}}

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/dpictools.pic
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/dpictools.pic	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/dpictools.pic	2020-12-21 22:02:51 UTC (rev 57189)
@@ -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 9.3, copyright (c) 2020 J. D. Aplevich under      #
+# Circuit_macros Version 9.4, copyright (c) 2020 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 #

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ASME_Y14-5.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ASME_Y14-5.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ASME_Y14-5.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,168 @@
+divert(-1)
+#                                   `datumarrow(linespec,wid,ht)'
+define(`datumarrow',`line `$1'
+  M4_E: last line.end
+  datum_ht = ifelse(`$3',,`textht',`$3')
+  M4_P: vperp(last line,(datum_ht*2/sqrt(3)))
+  M4_X: datum_ht/lin_leng(last line) between M4_E and last line.start 
+  {ifsvg(,`m4fshade(m4fill,')line from M4_E to M4_E+M4_P/2 dnl
+     then to M4_X then to M4_E-M4_P/2 then to M4_E ifsvg(`fill_(0)',`)')}')
+
+#                          `Y14_frame( arg1, arg2, ... )
+                             Each arg is a ;-separated sequence of 1 or more of
+                               "string"[ wid val],
+                               "(letter)",
+                               or tolerance symbol.
+                             The term "(letter)" expands to the circled letter.
+                             The frame contains as many boxes as arguments.'
+                            `Symbol definitions from ASME Y14.5 Appendix C'
+define(`Y14_frameht',`textht*2')
+define(`Y14_defaultwid',`textht*2')
+#
+define(`Y14_frame',`[ tmpthick = linethick; thicklines_
+  right_; B:[ Y14_fram_($@) ]
+  box wid B.wid ht Y14_frameht at B
+  linethick = tmpthick ]')
+define(`Y14_fram_',`ifelse(`$1',,,
+`stacksplit_(`Y14',`$1',;) stackreverse_(`Y14')
+ Bx: [stackdo_(`Y14',
+ `[ifelse(index(Y14,`"('),0,
+    `circle diam textht*5/3
+     patsubst(Y14,`"(\(.\))"',`"\1"') ht textht*0.8 at last circle',
+   index(Y14,`"'),0,
+    `Y14 ifinstr(Y14,`wid ',,`wid textht*2/3*(len(Y14)-2)')',
+   `Y14')]
+   move right max(last [].wid+textht/2,Y14_defaultwid) with .c at last []; ')]
+ ifelse(`$2',,,`{ line up Y14_frameht with .c at Here }')
+ Y14_fram_(shift($@))') ')
+
+#                           Each symbol definition has an abbreviated version
+define(`Y14_straightness',
+`line right textht*2 ')
+define(`Y14_str_',`Y14_straightness($@)')
+
+define(`Y14_flatness',
+`line right textht*3/4 then down textht left textht/2 \
+   then left textht*3/2 then up textht right textht/2 \
+   then right textht*3/4 ')
+define(`Y14_fla_',`Y14_flatness($@)')
+
+define(`Y14_circularity',`circle diam textht*3/2 ')
+define(`Y14_cir_',`Y14_circularity($@)')
+
+define(`Y14_cylindricity',
+`circle diam textht
+ Y14_C: last circle
+ Y14_R: (Rect_(last circle.rad,-30))
+ Y14_A: (Rect_(textht,60))
+ line from Y14_C+Y14_R+Y14_A to Y14_C+Y14_R-Y14_A/2
+ line from Y14_C-Y14_R-Y14_A to Y14_C-Y14_R+Y14_A/2 ')
+define(`Y14_cyl_',`Y14_cylindricity($@)')
+
+define(`Y14_lineprofile',`arc from (textht,0) to (-textht,0) with .c at Here ')
+define(`Y14_lin_',`Y14_lineprofile($@)')
+
+define(`Y14_surfaceprofile',
+`arc from (textht,0) to (-textht,0) with .c at Here
+ line from last arc.start to last arc.end ')
+define(`Y14_sur_',`Y14_surfaceprofile($@)')
+
+define(`Y14_perpendicularity',
+`line from (-textht,0) to (textht,0)
+ line from (0,0) to (0,textht*3/2) ')
+define(`Y14_per_',`Y14_perpendicularity($@)')
+
+define(`Y14_angularity',
+`line from (textht*3/2,0) to (0,0) then to (textht*3/2,textht*sqrt(3)/2) ')
+define(`Y14_ang_',`Y14_angularity($@)')
+
+define(`Y14_parallelism',
+`line up textht*3/2*sqrt(3)/2 right textht*3/4
+ move right textht*0.6
+ line down textht*3/2*sqrt(3)/2 left textht*3/4 ')
+define(`Y14_par_',`Y14_parallelism($@)')
+
+define(`Y14_symmetry', dnl obsolete!
+`line from (-textht/2,0) to (textht/2,0)
+ line from (-textht/3,textht/4) to (textht/3,textht/4)
+ line from (-textht/3,-textht/4) to (textht/3,-textht/4) ')
+define(`Y14_sym_',`Y14_symmetry($@)')
+
+define(`Y14_position',
+`circle diam textht
+ line up    textht*3/2 with .c at last circle
+ line right textht*3/2 with .c at last circle ')
+define(`Y14_pos_',`Y14_position($@)')
+
+define(`Y14_concentricity', dnl obsolete!
+`circle diam textht
+ circle diam textht/2 at last circle ')
+define(`Y14_con_',`Y14_concentricity($@)')
+
+define(`Y14_circularrunout',
+`arrow ht textht*0.8 wid textht*0.6 up textht*3/2 right textht*3/2 ')
+define(`Y14_cir_',`Y14_circularrunout($@)')
+
+define(`Y14_totalrunout',
+`arrow <-> ht textht*0.8 wid textht*0.6 \
+ down textht*3/2 left textht*3/2 then right textht*1.1 \
+ then up textht*3/2 right textht*3/2 ')
+define(`Y14_tot_',`Y14_totalrunout($@)')
+
+define(`Y14_diameter',
+`circle diam textht
+ line up textht*3/2 right textht*3/4 with .c at last circle')
+define(`Y14_dia_',`Y14_diameter($@)')
+
+#                             The following are not Y14.5 but go well with them:
+
+                             `r_box(angle,pos,string)
+                              Rotated text on a white background
+                              (requires pstricks)'
+define(`r_box',
+ `ifpstricks(`M4tmp: ifelse(`$2',,Here,`$2')
+  command sprintf("\rput{%g}(%g,%g){",`$1',crl(M4tmp.x),crl(M4tmp.y))
+  f_box(`$3') at Orig
+ command "}%"')')
+define(`crl',`int(`($1)'/scale*1000000)/1000000')
+
+                             `r_dimen(linespec,offset,label,tic offset,<->,pos)
+                              dimension_ with rotated text on white background'
+define(`r_dimen',
+ `M4tmp: dimension_(`$1',`$2',,,`$4',`$5')
+  r_box(rp_ang*rtod_,ifelse(`$6',,M4tmp+vec_(0,`$2'),`$6'),`$3')')
+
+                             `ctrline(linespec,cycle len)
+                              Centerline'
+define(`cdashl',0.1*scale)
+define(`cgapl',0.03*scale)
+define(`ctrline',`rpoint_(ifelse(`$1',,`to rvec_(linewid,0)',`$1'))
+  define(`m4h',ifelse(`$2',,1*scale,`$2'))dnl
+  m4n = int(rp_len/2/(m4h))*2+1
+  for i=1 to m4n do {
+    line to rvec_(rp_len/m4n/2-cdashl/2-cgapl,0)
+    move to rvec_(cgapl,0); line to rvec_(cdashl,0); move to rvec_(cgapl,0)
+    line to rvec_(rp_len/m4n/2-cdashl/2-cgapl,0) } ')
+
+                             `ctrarcr(pos,radius,startang,endang,len)
+                              Arc cr centerline'
+define(`ctrarcr',`dnl
+  define(`m5h',ifelse(`$5',,1*scale,`$5'))dnl
+  rp_len = abs((`$2')*(`$4'-(`$3')))
+  m5n = int(rp_len/2/(m5h))*2+1
+  m5a = (rp_len/m5n/2-cdashl/2-cgapl)/(`$2')
+  m5s = cdashl/(`$2')
+  m5sa = `$3'
+  for m4irr=1 to m5n do {
+    arc from `$1'+(rect_(`$2',m5sa)) to `$1'+(rect_(`$2',m5sa+m5a)) \
+      with .c at `$1'
+    m5sa = m5sa+m5a+cgapl/(`$2')
+    arc from `$1'+(rect_(`$2',m5sa)) to `$1'+(rect_(`$2',m5sa+m5s)) \
+      with .c at `$1'
+    m5sa = m5sa+m5s+cgapl/(`$2')
+    arc from `$1'+(rect_(`$2',m5sa)) to `$1'+(rect_(`$2',m5sa+m5a)) \
+      with .c at `$1'
+    m5sa = m5sa+m5a
+    } ')
+
+divert(0)dnl


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ASME_Y14-5.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Antennas.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Antennas.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Antennas.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -31,9 +31,9 @@
        s_box(T1) below rjust at A.T1
        s_box(T2) below ljust at A.T2
        s_box(`\tt (,{,}D)') at A.n above
-  A: antenna(at A.T+(elen_,0),,P)
+  A: antenna(at A.T+(elen_,0),dimen_*3/4,P)
        s_box(T) below at A.T
-       s_box(`\tt (,{,}P)') at A.n above
+       s_box(`\tt (,dimen\_*3/4,P)') at A.n above
   A: antenna(at A.T+(elen_,0),,F)
        s_box(T) below at A.T
        s_box(`\tt (,{,}F)') at A.n above

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Attention.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Attention.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Attention.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,41 @@
+.PS
+# Attention.m4
+gen_init
+scale = 2.54
+linethick = 0.2
+
+define dot2 { (($1).x*($2).x + ($1).y*($2).y) }
+
+ nlines = 128
+ nr = 50
+ innerrad = 1
+ outerrad = 8
+ diff = outerrad - innerrad
+B: box wid outerrad*2 ht outerrad*2 outline "red" shaded "red"
+C: circle rad outerrad at B
+ circle rad innerrad at C shaded "black"
+ P[0]: C+(innerrad,0)
+ t = 0
+ for i=1 to nr do {
+   r = innerrad+i/nr*diff
+   t = t + i/nr*(-pi_/2)/nr
+   P[i]: C+(rect_(r,t))
+   }
+ dth = twopi_/nlines
+ R: (cos(dth),-sin(dth))
+ S: (sin(dth),cos(dth))
+ for j = 0 to nlines-1 do {
+ for i=0 to nr do {
+   X: P[i]-C
+   Q[nr-i]: (dot2(R,X),dot2(S,X)) + C
+   }
+ shade(j%2,
+  fitcurve(P,nr)
+  line from P[nr] to Q[0]
+  fitcurve(Q,nr)
+  line from Q[nr] to P[0] 
+  )
+ for i=0 to nr do { P[i]: Q[nr-i] }
+ }
+
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Attention.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Autoencoder.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Autoencoder.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Autoencoder.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,82 @@
+.PS
+# Masked_Autoencoder.m4
+gen_init
+NeedDpicTools
+
+  circlerad = 0.2
+  circlesep = 0.5
+  rowsep = 0.9
+  arrowht = arrowht*0.8
+  arrowwid = arrowwid*1.4
+  linethick = 1
+
+define plan {
+  m = 0
+  for i=1 to 4 do {
+    for j=1 to ncircles[i] do {
+      exec sprintf("C[i,j]: circle thick 1.6 at Here \"\large\sf $%g\"",m+j)
+      if i>1 then {
+        if "$1"=="" then {
+          for k=1 to ncircles[i-1] do { arrow from C[i,j] to C[i-1,k] chop } }
+        }
+      if j!=ncircles[i] then { move right_ circlesep from C[i,j] }
+      }
+    m += ncircles[i]
+    case(i,
+      move to C[1,1]+(-circlesep/2,-rowsep),
+      move to C[2,1]+(0,-rowsep),
+      move to C[3,1]+(circlesep/2,-rowsep), )
+    }
+  }
+  gridsiz = 0.78/4
+define grid { [ SW: 0,0
+  for i=1 to $1 do {
+    move to (0,(0.5-i)*gridsiz)
+    exec sprintf("fv = $%g",2+i)
+    for j=1 to $2 do { fl = 1-(int(fv / 2^(j-1)) % 2)
+      box wid gridsiz ht gridsiz outlined "gray" shaded rgbstring(fl,fl,fl) }
+    } ]}
+define cxt {
+  m = 1
+  for i=2 to 4 do {
+    for j=1 to ncircles[i] do {
+      exec sprintf("narrows = $%g",m)
+      for k=1 to narrows do {
+        exec sprintf("cnum = $%g",m+k)
+        arrow from C[i,j] to C[i-1,cnum] chop
+        }
+      m += narrows+1 
+      } } }
+
+  array(ncircles,3,4,4,3)
+  plan()
+  for j=1 to 3 do {
+    sprintf("$\hat{x}_%g$",j) at C[1,j].n above
+    sprintf("$x_%g$",j) at C[4,j].s+(0,-2bp__) below
+    }
+  "V" at 0.5 between C[2,1].w and C[1,1].w
+  "W$^2$" at 0.5 between C[3,1].w and C[2,1].w
+  "W$^1$" at 0.5 between C[3,1].w and C[4,1].w
+
+GV: grid(3,4,0,15,6) with .w at C[2,4]+(circlerad*2,rowsep/2)
+  "$=\hbox{M}^{\hbox{V}}$" at GV.e ljust
+G2: grid(4,4,13,0,0,13) with .w at (GV.w,C[3,4]+(circlerad*2,rowsep/2))
+  "$=\hbox{M}^{\hbox{V}^2}$" at G2.e ljust
+G1: grid(4,3,1,5,1,1) with .w at (GV.w,C[4,3]+(circlerad*2,rowsep/2))
+  "$=\hbox{M}^{\hbox{V}^1}$" at G1.e ljust
+
+  move to (GV.x+3*circlesep,C[1,1].y)
+  plan(3,1,2,1,2,2,1,2,1,2,2,3,1,2)
+  for i=2 to 4 do {
+    rgbdraw(0.5,0.5,0.5,
+      cxt(2,1,3,0,0,2,1,3, 0,4,1,2,3,4,0,0, 0,4,1,2,3,4,0) )
+    cxt(0,1,1,1,1,0, 2,2,3,0,2,2,3,2,2,3, 0,0,3,1,3,4)
+    }
+  for j=1 to 3 do { sprintf("$x_%g$",j) at C[4,j].s+(0,-2bp__) below }
+  arrow dotted from C[1,2].n up circlesep/2; "$p(x_2)$" above
+  "$p(x_3|x_2)$" at (C[1,3]+(circlesep/2,0),last "") above
+  arrow dotted from C[1,3] to last "".s chop circlerad chop textoffset
+  "$p(x_1|x_2,x_3)$" at (C[1,1]+(-circlesep/2,0),last "") above
+  arrow dotted from C[1,1] to last "".s chop circlerad chop textoffset
+
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Autoencoder.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/CctTable.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/CctTable.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/CctTable.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -85,6 +85,9 @@
 }
    move down 0.25; right_
 { {pvcell ; move;"`{\tt pvcell}'" ljust}
+   move right_ hm
+   {arrester ; move ;"`{\tt arrester}'" ljust}
 }
 
+
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Chuck.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Chuck.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Chuck.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,53 +1,28 @@
 .PS
+# Chuck.m4
 threeD_init s_init(Views) sinclude(tst.dim)
 #
-# Chuck.m4
-#
+#################################################################
 divert(-1)
-                               `Dimensioning for diagrams
-                                dimension_(linespec,vert offset,
-                                      label,blank width,tic offset,<-|->,R)'
-define(`dimension_',`rpoint_(`$1') ; {
-  define(`m4h',`(rp_len ifelse((`$4'),(),,`-($4)'))')dnl
-  ifelse((`$2'),(),,`if (`$2') != 0 then {
-     {move to rvec_(0,     ifelse(`$5',,`sign($2)*3.6bp__',`$5'))
-       line to rvec_(0,`$2')}
-     {move to rvec_(rp_len,ifelse(`$5',,`sign($2)*3.6bp__',`$5'))
-       line to rvec_(0,`$2')}
-     move to rvec_(0,`$2') }')
-  if m4h > 2*arrowht then {
-      { line ifelse(`$6',,<-,index($6,<),0,<-) to rvec_(m4h/2,0)
-        ifelse((`$4'),(),,`move to rvec_(($4),0)')
-        line ifelse(`$6',,->,eval(index($6,>)>0),1,->) to rvec_(m4h/2,0) }
-    } else {
-      { arrow from rvec_(-arrowht*1.5,0) to Here
-        arrow from rvec_(rp_len+arrowht*1.5,0) to rvec_(rp_len,0) }
-    }
-  define(`m4txt',`ifelse(`$7',,
-   `ifelse(index(`$3',"),0,`$3',"`$3'")',
-   `ifdef(`pstricks_',`sprintf("\rput{%g}(0,0){`$3'}",rp_ang*rtod_)',`"$3"')')')
-  ifelse(`$3',,,`m4txt at rvec_(rp_len/2,0)')
-  }')
 
-define(`rottxt',
- `ifdef(`pstricks_',`sprintf("\rput{%g}(0,0){`$2'}",`$1')')')
-                               `rotate(angle,at pos, objects at origin)'
-define(`rotate',
- `ifdef(`pstricks_',`M4tmp: "" ifelse(`$2',,Here,`$2')
-  sprintf("\rput{%g}(%g,%g){`$3'}",`$1',M4tmp.x/scale,M4tmp.y/scale)')')
-                             `r_box(angle,pos,string)'
-define(`crl',`int(`($1)'/scale*1000000)/1000000')
+                             `r_box(angle,pos,string)
+                              Rotated text on a white background
+                              (requires pstricks)'
 define(`r_box',
- `ifdef(`pstricks_',`M4tmp: ifelse(`$2',,Here,`$2')
+ `ifpstricks(`M4tmp: ifelse(`$2',,Here,`$2')
   command sprintf("\rput{%g}(%g,%g){",`$1',crl(M4tmp.x),crl(M4tmp.y))
-  w_box(`$3') at Orig
+  f_box(`$3') at Orig
  command "}%"')')
-                             `r_dimen(linespec,offset,label,tic offset,<->,pos)'
+define(`crl',`int(`($1)'/scale*1000000)/1000000')
+
+                             `r_dimen(linespec,offset,label,tic offset,<->,pos)
+                              dimension_ with rotated text on white background'
 define(`r_dimen',
  `M4tmp: dimension_(`$1',`$2',,,`$4',`$5')
   r_box(rp_ang*rtod_,ifelse(`$6',,M4tmp+vec_(0,`$2'),`$6'),`$3')')
 
-                             `ctrline(linespec,len)'
+                             `ctrline(linespec,len)
+                              Centerline'
 define(`cdashl',0.1*scale)
 define(`cgapl',0.03*scale)
 define(`ctrline',`rpoint_(ifelse(`$1',,`to rvec_(linewid,0)',`$1'))
@@ -58,7 +33,8 @@
     move to rvec_(cgapl,0); line to rvec_(cdashl,0); move to rvec_(cgapl,0)
     line thick dimensionth to rvec_(rp_len/m4n/2-cdashl/2-cgapl,0) } ')
 
-                             `ctrarcr(pos,radius,startang,endang,len)'
+                             `ctrarcr(pos,radius,startang,endang,len)
+                              Arc cr centerline'
 define(`ctrarcr',`dnl
   define(`m5h',ifelse(`$5',,1*scale,`$5'))dnl
   rp_len = abs((`$2')*(`$4'-(`$3')))
@@ -79,6 +55,7 @@
     } ')
 
 divert(0)dnl
+#################################################################
 
 scale = 25.4*2
 tic = 3.6bp__
@@ -90,9 +67,9 @@
 #include(Lettering.m4)
 #Letter_init
 
-define(`visible',`linethick_(visibleth)')
-define(`hidden',`linethick_(hiddenth)')
-define(`dimension',`linethick_(dimensionth)
+define(`visible_thick',`linethick_(visibleth)')
+define(`hidden_thick',`linethick_(hiddenth)')
+define(`dimension_thick',`linethick_(dimensionth)
   arrowwid = 1.5*arrowwid; arrowht = 1.5*arrowht; ')
 
 d1 = 230
@@ -104,7 +81,7 @@
   hiddenth = dimensionth
 
 Orig: Here
-visible
+visible_thick
   D3: circle diam d3 at Orig
   D2: circle diam d2 at Orig
 
@@ -115,42 +92,32 @@
   X1: rect_(rr,thet)
   P1: rect_(rr+r,thet)
 
-dimension
+dimension_thick
   cross(at (P1.x,-P1.y))
   cross(at (-P1.x,P1.y))
 
 # Top outer visible line
-visible
-# arc ccw from (-P1.x,h) to (-X1.x,X1.y) rad r with .c at (-P1.x,P1.y)
-  arcs = atan2(P1.x-X1.x,P1.y-X1.y) 
-  n = 0
-  nn = 8
-  for i = 0 to nn do {P[n]:(-P1.x,P1.y)+(rect_(r,-twopi_/4+i/nn*arcs)); n=n+1}
-  for i = 1 to nn do {P[n]:Orig+(rect_(rr,pi_-thet-i/nn/2*(pi_-2*thet))); n=n+1}
-  n = n-1
-  for i = 1 to n do { P[n+i]:(-P[n-i].x,P[n-i].y) }
-  fitcurve(P,2*n)
-# top arc
-# arc cw to X1 rad rr with .c at Orig
-# arc ccw from X1 to (P1.x,h) rad 4 with .c at P1
+visible_thick
+# top arcs
+  arc ccw from (-P1.x,h) to (-X1.x,X1.y) with .c at (-P1.x,P1.y)
+  arc cw to X1 with .c at Orig
+  arc ccw from X1 to (P1.x,h) with .c at P1
 # right end
   line from (P1.x,h) to (305/2,h) then to (305/2,32/2) then left 40-3
   arc ccw rad 3
   line down 32-2*3
   arc ccw rad 3
-dimension {
+dimension_thick {
   r_dimen(up 32 with .c at (305/2-5,0),0,32)
   arrow <- up 8 right 8 then right 4 from last arc.sw
   "3$\,$R" ljust
   r_dimen(up h*2 at (305/2,0),-10,110)
-}; visible
+}; visible_thick
   line right 40-3 then to (305/2,-h) then to (P1.x,-h) 
-# arc ccw to (X1.x,-X1.y) rad r with .c at P1.x,-P1.y
-# bottom arc
-  for i = 0 to 2*n do { P[i]: (-P[2*n-i].x,-P[i].y) }
-  fitcurve(P,2*n)
-# arc cw to (-X1.x,-X1.y) rad rr with .c at Orig
-# arc ccw to (-P1.x,-h) rad r with .c at (-P1.x,-P1.y)
+# bottom arcs
+  arc ccw to (X1.x,-X1.y) with .c at P1.x,-P1.y
+  arc cw to (-X1.x,-X1.y) with .c at Orig
+  arc ccw to (-P1.x,-h) with .c at (-P1.x,-P1.y)
 # left end
   line from (-P1.x,-h) to (-305/2,-h) then to (-305/2,-25/2) then right 25
   down; arc ccw rad 3
@@ -163,7 +130,7 @@
   arc ccw rad 3
   line to (-305/2,25/2) then to (-305/2,h) then to (-P1.x,h)
 
-dimension
+dimension_thick
 # centre
   ctrline(right 305-30 with .c at Orig,60)
   ctrline(up d1+10 with .c at Orig,)
@@ -172,7 +139,7 @@
   Q: line invis from BX.n to BX.s; R: line invis from BX.se up 10 left 10
   X: Intersect_(Q,R)
   line <-> from BX.se to X then to (X.x,-X.y) then to BX.nw
-  r_box(90,BX,`3$\,$R')
+  r_box(90,BX,```3$\,$R''')
 
 # Drill centres
   D[1]: 35,sqrt(85^2-35^2)
@@ -185,41 +152,42 @@
   ctrline(from D[2] to D[4] chop 15)
   ctrline(to rvec_(2*15,0))
   ctrline(from D[2]+vec_(-15,0) to D[2]+vec_(15,0))
-visible
+visible_thick
   for i=1 to 4 do {
     circle diam 16 at D[i]
     for j = 0 to 7 do { arcr(D[i],23/2,j/8*twopi_,(j+3/4)/8*twopi_) ccw }
     }
 
-hidden
+hidden_thick
   for s=-1 to 1 by 2 do {
-  line dashed from (-305/2,s*h) to (305/2,s*h)
-  line dashed from (-305/2,s*30.6) to (305/2,s*30.6)
-  line dashed from (-305/2,s*21.1) to (305/2,s*21.1)
-  line dashed from (-305/2+25+2,s*21.1) to (305/2,s*21.1)
-  line dashed  dashwid/2 from (-305/2+25,s*25/2) down -s*(40/2-25/2-2);
-  if s<0 then { arc dashed dashwid/4 ccw rad 2 } else { up; arc dashed dashwid/4 cw rad 2 }
-  line dashed to ((305/2,0),Here)
-  for k = -1 to 1 by 2 do {
-    move to (k*305/2,s*(30.6+10))
-    { dashline(from Here+(0,s*9.5/2) right -k*16,,dashwid/2)
-      dashline(right -k*9.5/2/2 up -s*9.5/2,,dashwid/3)
-      dashline(left -k*9.5/2/2 up -s*9.5/2,,dashwid/3)
-      dashline(left -k*16,,dashwid/2)
-      dashline(from Here+(-k*16,0) up s*9.5,,dashwid/2.5) }
-    { dashline(from Here+(0,s*11/2) right -k*36.5,,dashwid/2)
-      dashline(right -k*11/2/2 up -s*11/2,,dashwid/3)
-      dashline(left -k*11/2/2 up -s*11/2,,dashwid/3)
-      dashline(left -k*36.5,,dashwid/2)
-      dashline(from Here+(-k*36.5,0) up s*11,,dashwid/2.5) }
-    { dashline(from Here+(0,s*13/2) right -k*32,,dashwid/2)
-      dashline(down s*13,,dashwid/2)
-      dashline(left -k*32,,dashwid/2) }
-    ctrline(right -k*20 chop -3 chop 0); ctrline(right -k*20 chop 0 chop -3)
+    line dashed from (-305/2,s*h) to (305/2,s*h)
+    line dashed from (-305/2,s*30.6) to (305/2,s*30.6)
+    line dashed from (-305/2,s*21.1) to (305/2,s*21.1)
+    line dashed from (-305/2+25+2,s*21.1) to (305/2,s*21.1)
+    line dashed  dashwid/2 from (-305/2+25,s*25/2) down -s*(40/2-25/2-2);
+    if s<0 then { arc dashed dashwid/4 ccw rad 2 } \
+    else { up; arc dashed dashwid/4 cw rad 2 }
+    line dashed to ((305/2,0),Here)
+    for k = -1 to 1 by 2 do {
+      move to (k*305/2,s*(30.6+10))
+      { dashline(from Here+(0,s*9.5/2) right -k*16,,dashwid/2)
+        dashline(right -k*9.5/2/2 up -s*9.5/2,,dashwid/3)
+        dashline(left -k*9.5/2/2 up -s*9.5/2,,dashwid/3)
+        dashline(left -k*16,,dashwid/2)
+        dashline(from Here+(-k*16,0) up s*9.5,,dashwid/2.5) }
+      { dashline(from Here+(0,s*11/2) right -k*36.5,,dashwid/2)
+        dashline(right -k*11/2/2 up -s*11/2,,dashwid/3)
+        dashline(left -k*11/2/2 up -s*11/2,,dashwid/3)
+        dashline(left -k*36.5,,dashwid/2)
+        dashline(from Here+(-k*36.5,0) up s*11,,dashwid/2.5) }
+      { dashline(from Here+(0,s*13/2) right -k*32,,dashwid/2)
+        dashline(down s*13,,dashwid/2)
+        dashline(left -k*32,,dashwid/2) }
+      ctrline(right -k*20 chop -3 chop 0); ctrline(right -k*20 chop 0 chop -3)
+      }
     }
-  }
 
-dimension
+dimension_thick
 # bottom
   dimension_(from (-305/2,-h) to (305/2,-h),-(rr*1.1-h),"305",20pt__)
 # outer radii
@@ -233,7 +201,7 @@
   r_dimen(from (Rect_(d3/2,180-12)) to (Rect_(d3/2,-12)),,140,,,(Rect_(25,-12)))
   
 # bolt hole placement diameter
-  r_dimen(from Orig to (Rect_(85,-43)),,`85$\,$R',,->,(Rect_(20,-43)))
+  r_dimen(from Orig to (Rect_(85,-43)),,``85$\,$R'',,->,(Rect_(20,-43)))
 # left slot
   r_dimen(from (-305/2+6,-25/2) up 25,0,25)
   r_dimen(from (-305/2,-26) right 40,0,40)
@@ -256,8 +224,8 @@
 # arrow <- down 30 left 30 from D[3] chop 16/2 chop 0 then left 5
 # "16 DRILL 23 CBORE" rjust "4 HOLES" rjust
 
-  arrow <- from (-305/2,30.6+10+2) up 5 left 5 then up 13
-  s_box(SEE (A)) with .sw at Here+(-5pt__,2pt__)
+# arrow <- from (-305/2,30.6+10+2) up 5 left 5 then up 13
+# s_box(SEE (A)) with .sw at Here+(-5pt__,2pt__)
 
 command "}%"
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Conn.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Conn.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Conn.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -59,9 +59,9 @@
 B: [
   tbox(V_2)
   { `"\tt tbox(V\_2)"' at last [].sw below ljust }
-  tbox(V_1,,,<) with .sw at last [].se+(0.75,0)
+  tbox(V_1,,,<) with .sw at last [].se+(1.25,0)
   { `"\tt tbox(V\_1,{,},<)"' at last [].s below }
-  tbox(V_1,,,<>) with .sw at last [].se+(0.75,0)
+  tbox(V_1,,,<>) with .sw at last [].se+(1.25,0)
   { `"\tt tbox(V\_1,{,},<>)"' at last [].s below }
 ] with .nw at T.sw+(0,-0.2)
 

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Connectors.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Connectors.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Connectors.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -3,22 +3,26 @@
 log_init
 include(ics.m4)
 
+  ifelse(ifpgf(T)`'ifpstricks(T)`'ifpsfrag(T),T,`command "{\small\sf"')
 # ArduinoUno
-# "{\sf Arduino Uno Rev 3}" at last [].Connector.s below
  Ar:  ArduinoLeonardo #with .sw at last [].se+(0.25,0)
-  "{\sf Arduino Leonardo}" at last [].Connector.s below
 
  RPI: RPi with .sw at last [].se+(0.25,0)
-  "{\sf Raspberry Pi 4 GPIO}" at last [].GPIO.s below
 
  HD: HDMI_micro with .nw at last [].ne+(0.25,0.5)
-  "\sf Micro" rjust at HD.Base.sw+(-2bp__,10bp__) "\sf HDMI" rjust
 
  S: USB_C_Socket with .sw at (HD.e.x+0.25,RPI.s.y)
- "\sf USB-C Socket" at S.Base.s below
- "\sf B12" at S.B12.end above ljust
- "\sf B1" at S.B1.end above ljust
- "\sf A1" at S.A1.end above rjust
- "\sf A12" at S.A12.end above rjust
 
+  ifelse(ifpgf(T)`'ifpstricks(T)`'ifpsfrag(T),T,`command "}"')
+
+  "{\sf Arduino Leonardo}" at Ar.Connector.s below
+  "{\sf Raspberry Pi 4 GPIO}" at RPI.GPIO.s below
+  "\sf Micro" rjust at HD.Base.sw+(-2bp__,0) "\sf HDMI" rjust
+
+  "\sf USB-C Socket" at S.Base.s below
+  "\sf B12" at S.B12.end above ljust
+  "\sf B1" at S.B1.end above ljust
+  "\sf A1" at S.A1.end above rjust
+  "\sf A12" at S.A12.end above rjust
+
 .PE

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Coxeter.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Coxeter.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Coxeter.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,38 @@
+.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


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Coxeter.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Flow.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Flow.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Flow.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -3,19 +3,41 @@
 gen_init
 ifdef(`FlowchartDefs_',,`include(FlowchartDefs.m4)')
 
-# Could use xcolor with option dvipsnames but define color here for portability:
 define(`Thistle',`rgbstring(0.85,0.75,0.85)')dnl
 define(`RubineRed',`rgbstring(0.81,0,0.35)')dnl
 define(`YellowGreen',`rgbstring(0.68,1,0.18)')dnl
 define(`SeaGreen',`rgbstring(0.13,0.70,0.67)')dnl
 define(`Goldenrod',`rgbstring(0.85,0.65,0.13)')dnl
+define(`Beaublue',`rgbstring(0.74,0.83,0.9)')dnl
+define(`Celadon',`rgbstring(0.67,0.88,0.69)')dnl
 
   linethick_(1.0)
   arrowwid = 0.05
   arrowht = 0.1
-  fillval = 0.8
-  down
+  fillval = 0.9
+  maxpsht = 20
 
+define(`shad',`shaded rgbstring(0.9,0.8,0.7)')
+define(`Below',`with .nw at last [].sw+(0,-0.25)')
+TL: Here
+Simple: [
+  Fbox("\tt F{}box",,shad)
+  Ftest("\tt F{}test",,shad) Below
+  Fdata("\tt F{}data") Below
+  Fprep("\tt F{}prep",) Below
+  Fkeying("\tt F{}keying") Below
+  Fkeyboard("\tt F{}keyboard") Below
+  Fdocument("\tt F{}document",,shaded rgbstring(0.9,0.8,0.7)) Below
+  Fdelay("\tt F{}delay",,shaded Beaublue) Below
+  Fdisplay("\tt F{}display",,shaded Celadon) Below
+  Fstored("\tt F{}stored",,shaded Thistle) Below
+  Fconnect(,,shaded Thistle) Below
+  Fconnect("45",wid boxwid ht boxht:45,shaded Thistle) \
+    with .w at last [].e+(boxht/8,0)
+  "\tt F{}connect" at last [].nw + (0,boxht/6)
+  ] with .nw at TL+(0.1,0); move from Simple.nw to TL
+#showbox_
+Complex: [
 Case: Fcase(,
   "Test 1",[Fbox("Task 1",, shaded Thistle); W:last [].W; N:last [].N
             arrow down linewid/3 from last [].S
@@ -28,8 +50,7 @@
 
    "\sl .N" at Case.N rjust above; "\sl .S" at Case.S rjust below
    "\sl .E" at Case.E ljust; "\sl .W" at Case.W rjust
-   "\sl Case statement" below at Case.s+(0,-0.2)
-   move to Case.nw+(-12bp__,10bp__)
+   "\tt F{}case" below at Case.s #+(0,-0.1)
 
 Whiledo: Fwhiledo("$i < n$",,,Fbox("Task"),"T" above ljust at Test.E) \
   with .nw at Case.ne+(0.25,0)
@@ -36,27 +57,25 @@
 
   "\sl .N" at Whiledo.N rjust; "\sl .S" at Whiledo.S rjust below
   "\sl .E" at Whiledo.E ljust; "\sl .W" at Whiledo.W rjust
-  "\sl While-do" below at Whiledo.s+(0,-0.2)
+  "\tt F{}whiledo" below at Whiledo.s
 
 Repeatuntil: Frepeatuntil("$n \geq 5$",,,Fbox("Task"),
-   "T" at Test.E above ljust) with .nw at Whiledo.sw + (0.25,-1)
+   "T" at Test.E above ljust) with .nw at Whiledo.sw + (0.25,-0.5)
 
   "\sl .N" at Repeatuntil.N rjust above; "\sl .S" at Repeatuntil.S rjust below
   "\sl .E" at Repeatuntil.E ljust; "\sl .W" at Repeatuntil.W rjust
-  "\sl Repeat-until" below at Repeatuntil.s+(0,-0.2)
+  "\tt F{}repeatuntil" below at Repeatuntil.se +(-0.0,0.2)
 
 Ifthenelse: Fifthenelse("$A<B$",,,
      Fbox("False"),
      Fbox("True",ht fboxht*1.2 wid fboxwid)dnl
-     ) with .nw at Repeatuntil.sw +(0.5,-0.5)
+     ) with .nw at Repeatuntil.sw +(-0.5,-0.3)
 
   "\sl .N" at Ifthenelse.N rjust above; "\sl .S" at Ifthenelse.S below rjust
-  "\sl .E" at Ifthenelse.E ljust; "\sl .W" at Ifthenelse.W rjust
-  "\sl If-then-else" below at Ifthenelse.s+(0,-0.3) \
-  "\sl (the True and False tasks are optional)"
+  "\sl .E" wid 12bp__ at Ifthenelse.E ljust; "\sl .W" at Ifthenelse.W rjust
+  "\tt F{}ifthenelse" below at Ifthenelse.s+(0,-0.15)
 
-# Compound statement:
-[ right 
+Compound: [ right 
   ellipse shaded YellowGreen "Start"
   arrow right linewid/2
 
@@ -71,10 +90,13 @@
     "T" at Test.E above ljust),
     "T" at Test.E above ljust) with .N at Here
 
-  A: arrow down 0.25 from last [].S ] with .nw at Case.sw + (-12bp__,-0.7)
+  A: arrow down 0.25 from last [].S ] with .nw at Case.sw + (-12bp__,-0.3)
 
-  "\sl Compound statement" below at last [].A.end
+  "\sl Compound statements" at last [].A.end+(0.1,0) ljust above
 
+  ] with .nw at Simple.ne+(0.1,0)
+#showbox_
+
 Example: [ fillvalue = 0.8; awid = linewid/2; right_
   Start: ellipse wid boxwid/2 ht boxwid/3 shaded "green"
   arrow right_ awid
@@ -99,10 +121,12 @@
   arrow from RT.E to (B3.S,RT.E) then to B3.S
   B4: Fbox(`"Extra\c{c}\~ao"') with .S at B3.N+(0,awid)
   arrow from B3.N to B4.S
-  arrow right_ awid from B4.E
+# arrow right_ awid from B4.E
+  arrow up_ awid from B4.N
   B5: Fbox(`"Conclus\~ao"')
-  ellipse wid boxwid/2 ht boxwid/3 shaded "red" at (B5.S,Start)
-  arrow down_ awid from B5.S to last ellipse.n
-] with .nw at last [].sw+(0,-fboxht)
+  arrow up_ awid from B5.N
+  ellipse wid boxwid/2 ht boxwid/3 shaded "red" # at (B5.S,Start)
+# arrow down_ awid from B5.S to last ellipse.n
+] with .nw at last [].Compound.sw+(0,2.5*fboxht)
 
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/FlowchartDefs.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/FlowchartDefs.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/FlowchartDefs.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,8 +1,9 @@
 divert(-1)
+  Google flowchart display symbol
   FlowchartDefs.m4
                                 `Some experimental flow-chart macros.  
-                                In the following, every subchart is in
-                                [] brackets, with .N, .S, .E and .W
+                                In the following, every block (subchart) is
+                                in [] brackets, with .N, .S, .E and .W
                                 internally defined.  Follow this convention
                                 if you create compound constructs.
 
@@ -19,18 +20,17 @@
 
 define(`FlowchartDefs_')
 
-                                `Default sizes:'
+                               `Default sizes:'
 define(`fboxwid',linewid*2)
 define(`fboxht',linewid*0.75)
 define(`farrowht',linewid*0.5)
 
-                                `Fbox( "text", wid expr ht expr,
-                                attributes ) The basic task box: arg1 may
-                                be 1 or more label strings. Attributes
-                                include box line and fill specs.
-                                To adjust the box size to the size of
-                                the typeset text, see the \boxdims macro
-                                in the manual. Example:
+                               `Fbox( "text", wid expr ht expr, attributes )
+                                The basic task box: arg1 may be 1 or more
+                                text strings. Attributes include box
+                                line and fill specs.  To adjust the box
+                                size to the size of the typeset text, see
+                                the \boxdims macro in the manual. Example:
                                 Fbox("$x < 1$",,
                                      shaded rgbstring(0.46,0.53,0.63))'
 define(`Fbox',`[ boxwid = fboxwid; boxht = fboxht
@@ -38,26 +38,149 @@
   N: Box.n; S:Box.s; E:Box.e; W: Box.w
  `$4']')
 
-                                `If-then
+                               `Fdelay("text",wid expr ht expr,attributes)'
+define(`Fdelay',`[ boxwid = fboxwid; boxht = fboxht
+  Box: box invis `$2'
+  N: Box.n; S: Box.s; E: Box.e; W: Box.w
+  arc from Box.se-(Box.ht/2,0) to Box.ne-(Box.ht/2,0) \
+    with .c at Box.e-(Box.ht/2,0) `$3'
+  line to Box.nw to Box.sw to Box.se-(Box.ht/2,0) `$3'
+  ifelse(`$1',,,`$1' at Box)
+ `$4']')
+
+                               `Fdisplay("text",wid expr ht expr,attributes)'
+define(`Fdisplay',`[ boxwid = fboxwid; boxht = fboxht
+  Box: box invis `$2'
+  N: Box.n; S: Box.s; E: Box.e; W: Box.w
+  NE: Box.ne-(Box.ht/4,0); SE: (NE,Box.s)
+  NW: Box.nw+(Box.ht/2,0); SW: (NW,Box.s)
+  ifelse(`$3',,,`
+  box wid NE.x-NW.x ht Box.ht with .ne at NE `$3' invis
+    line from W to NW then to SW then to W `$3' invis ')
+  arc from SE to NE with .c at E-(Box.ht*2/3,0) `$3'
+  line to NW `$3'
+  arc from NW to W with .c at (NW,Box)+(Box.ht/4,-Box.ht/4) `$3'
+  arc from W to SW with .c at (NW,Box)+(Box.ht/4,Box.ht/4) `$3'
+  line to SE `$3'
+  ifelse(`$1',,,`$1' at Box)
+ `$4']')
+
+                               `Fstored("text",wid expr ht expr,attributes)'
+define(`Fstored',`[ boxwid = fboxwid; boxht = fboxht
+  Box: box invis `$2'
+  r = Box.ht*7/8; d = r - sqrt(r^2-(Box.ht/2)^2)
+  N: Box.n; S: Box.s; E: Box.e-(d,0); W: Box.w
+  NW: Box.nw+(d,0); SW: (NW,Box.s); NE: Box.ne; SE: Box.se
+  ifelse(`$3',,,`
+    box wid NE.x-NW.x ht Box.ht with .nw at NW `$3' invis ')
+  arc from NW to SW with .c at Box.w+(r,0) `$3'; round
+  line to SE; round
+  arc cw to NE with .c at E+(r,0) fill_(1); round
+  line to NW `$3'; round
+  ifelse(`$1',,,`$1' at Box)
+ `$4']')
+
+                               `Fconnect("text",
+                                  wid expr ht expr[:U|D|L|R|angle], attributes)'
+define(`Fconnect',`[ boxht = fboxht; boxwid = boxht
+  define(`m4wh',`m4Leftstr(`$2')')dnl
+  define(`m4wid',`patsubst(patsubst(m4wh, ht .*),^wid ,)')dnl
+  ifelse(m4wid,,`define(`m4wid',boxwid)')dnl
+  define(`m4ht',`patsubst(m4wh,.* *ht *,)')dnl
+  ifelse(m4ht,,`define(`m4ht',boxht)')dnl
+  define(`m4cpt',`m4Rightstr(`$2')')dnl
+  setdir_(ifelse(m4cpt,,`ifdef(`m4a_',rp_ang*rtod_,0)',m4cpt))
+# {Box: [lbox(m4wid,m4ht,invis)]}
+  W: Here; NW: vec_(0,m4ht/2); N: vec_(m4wid/2,m4ht/2); NE: vec_(m4wid,m4ht/2)
+  SW: vec_(0,-m4ht/2); S: vec_(m4wid/2,-m4ht/2); SE: vec_(m4wid,-m4ht/2)
+  E: vec_(m4wid,0); C: 3/8 between W and E
+  line from 1/2 between NW and N \
+    to NW to SW to S to E to N to 1/2 between NW and N `$3'
+  ifelse(`$1',,,`$1' at C)
+ `$4'; resetdir_ ]')
+
+                               `Fdata("text",wid expr ht expr,
+                                  xslant,attributes)'
+define(`Fdata',`[ boxwid = fboxwid; boxht = fboxht
+  Box: box invis `$2'
+  xs = ifelse(`$3',,fboxht/6,`($3)/2')
+  NE: Box.ne+(xs,0); SE: Box.se-(xs,0)
+  NW: Box.nw+(xs,0); SW: Box.sw-(xs,0)
+  N: Box.n; E: Box.e; S: Box.s; W: Box.w
+  line from N to NE then to SE then to SW then to NW then to N \
+    ifelse(`$4',,`fill_(fillval)',`$4')
+  ifelse(`$1',,,`$1' at Box)
+  `$5']')
+
+                               `Fprep("text",wid expr ht expr,attributes)'
+define(`Fprep',`[ boxwid = fboxwid; boxht = fboxht
+  Box: box invis `$2'
+  NE: Box.ne-(fboxht/4,0); E: Box.e; SE: (NE,Box.s); N: Box.n
+  NW: Box.nw+(fboxht/4,0); W: Box.w; SW: (NW,Box.s); S: Box.s
+  line from N to NE to E to SE to SW to W to NW to N \
+    ifelse(`$3',,`fill_(fillval)',`$3')
+  ifelse(`$1',,,`$1' at Box)
+  `$4']')
+
+                               `Fkeyboard("text",wid expr ht expr,attributes)'
+define(`Fkeyboard',`[ boxwid = fboxwid; boxht = fboxht
+  Box: box invis `$2'
+  NW: Box.nw-(0,min(Box.ht/4,Box.wid/16)); W: Box.w; SW: Box.sw; S: Box.s
+  NE: Box.ne+(0,min(Box.ht/4,Box.wid/16)); E: Box.e; SE: Box.se; N: 0.5 between NW and NE
+  line from N to NE to SE to SW to NW to N ifelse(`$3',,`fill_(fillval)',`$3')
+  ifelse(`$1',,,`$1' at Box)
+  `$4']')
+
+                               `Fdocument("text",wid expr ht expr,attributes)'
+define(`Fdocument',`[ boxwid = fboxwid; boxht = fboxht
+  Box: box invis `$2'; Q: move from Box.sw to Box.se
+  NE: Box.ne; E: Box.e; SE: Box.se-(0,Box.ht/4); N: Box.n
+  NW: Box.nw; W: Box.w; SW: Box.sw-(0,Box.ht/4); S: Box.s-(0,Box.ht/4)
+  line from SE to NE to NW to SW `$3'
+  arc to S with .c at (0.5 between SW and S) + (0,Box.ht) `$3'
+  arc to SE with .c at (0.5 between S and SE) -(0,Box.ht) cw \
+    ifelse(`$3',,,``$3' shaded rgbstring(1,1,1)')
+  ifelse(`$1',,,`$1' at Box)
+  `$4']')
+
+                               `Fkeying("text",wid expr ht expr,attributes)'
+define(`Fkeying',`[ boxwid = fboxwid; boxht = fboxht
+  Box: box `$2' invis
+  hsq = (Box.wid/2)^2-(Box.ht/2)^2
+  if hsq > 0 then { d = Box.wid/2-sqrt(hsq) } else { d = 0 }
+  W: Box.w; NW: Box.nw+(d,0); N: Box.n; NE: Box.ne-(d,0)
+  E: Box.e; SE: Box.se-(d,0); S: Box.s; SW: Box.sw+(d,0)
+  if hsq >= 0 then { x = 0 } else { x = sqrt(-hsq) }
+  box wid NE.x-NW.x ht N.y-S.y `$3' invis at Box
+  arc from SE to NE with .c at Box - (x,0) `$3'; round(,,`$3')
+  line to NW `$3'; round(,,`$3')
+  arc to SW with .c at Box + (x,0) `$3'; round(,,`$3')
+  line to SE `$3'; round(,,`$3')
+  ifelse(`$1',,,`$1' at Box)
+  `$4']')
+
+                               `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
  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 then to last box.s then to last box.w then to last box.n \
-  then to 0.5 between last box.n and last box.e \
+ 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 \
   ifelse(`$3',,`fill_(fillval)',`$3')
   ifelse(`$1',,,`$1' at Box)
  `$4']')
 
-                                `case statement
-             Fcase(wid expr ht expr,
-                   "Test string 1",task, ...,
-                   "Test string n",task)'
-             `arg1 adjusts the size of the tests
-              A task is a flow subchart with internal names .E and .S defined
-              The test blocks are labeled Test1, Test2, ... and the tasks are
-              labeled Task1, Task2, ...  '
+                               `Fcase: case statement
+                                Fcase(wid expr ht expr,
+                                  "Test string 1"[:attributes],task, ...,
+                                  "Test string n"[:attributes],task )'
+                               `arg1 adjusts the size of the tests
+                                The optional attributes for each string apply
+                                to the Ftest containing the string.
+                                The Ftest blocks are labeled Test1, Test2, ...
+                                A task is a flow subchart with internal
+                                names .E and .S defined. The tasks are
+                                labeled Task1, Task2, ...  '
 define(`Fcase',`[ down; S: Here; sx = S.x
   Fcaseloop_(1,$@)
   ifelse(`$2',,`E:S; W:S; N:S',
@@ -66,7 +189,8 @@
   arrow from E to (E,S) then to S ]')
 
   define(`Fcaseloop_',`ifelse(`$3',,,
-   `Test`$1': Ftest(`$3',`$2') with .N at S
+   `Test`$1': Ftest(patsubst(`$3',":.*,"),`$2',
+      ifinstr(`$3',":,`patsubst(`$3',.*":,)')) with .N at S
     Task`$1': `$4' with .nw at Test`$1'.E+(linewid/2,min(Test`$1'.ht,fboxht)/2)
       arrow right linewid/4 from Test`$1'.E \
         then down Test`$1'.E.y-Task`$1'.W.y then to Task`$1'.W
@@ -76,11 +200,12 @@
       Fcaseloop_(incr($1),`$2',shift(shift(shift(shift($@)))))')')
   define(`Fcasearrow_',`ifelse(`$3',,,
    `arrow from Task`$1'.E to (E,Task`$1'.E)
-    Fcasearrow_(incr($1),`$2',shift(shift(shift(shift($@)))))')')
+    Fcasearrow_(incr($1),,shift(shift(shift(shift($@)))))')')
   
-                                `while statement with explicit test
-                   Fwhiledo("test text", wid x ht y, attributes, task spec )
-                   The task structure is given label Task '
+                               `while statement with explicit test
+                                Fwhiledo("test text", wid x ht y,
+                                          attributes, task spec )
+                                The task structure is given label Task '
 define(`Fwhiledo',`[ down
   Test: Ftest(`$1',`$2',`$3')
     arrow right linewid/2 from Test.E
@@ -92,13 +217,14 @@
     arrow to Test.n
  `$5']')
 
-                                `repeat statement with explicit test
-                         Frepeatuntil("test",wid x ht y,attributes, task spec )
-                         The task structure is given label Task '
+                               `repeat statement with explicit test
+                                Frepeatuntil("test",wid x ht y,
+                                              attributes, task spec )
+                                The task structure is given label Task '
 define(`Frepeatuntil',`[ N: Here
   Task: ifelse(`$4',,Here,`$4' with .N at N)
   W: Task.W
-    arrow down linewid/3
+    arrow from Task.S down linewid/3
   Test: Ftest(`$1',`$2',`$3')
   E: Task.E+(linewid/2+max(0,Test.e.x-Task.e.x),0)
     arrow from Test.e to (E,Test) then to E then to Task.E
@@ -105,11 +231,12 @@
   S: Test.S
  `$5']')
 
-                                `if-then-else
-                Fifthenelse( "test", wid x ht y, attributes,
-                              left tasks, right tasks)
-                The left task structure is given label Ltask and the right
-                task structure is given label Rtask '
+                               `if-then-else
+                                Fifthenelse( "test", wid x ht y, attributes,
+                                              left tasks, right tasks)
+                                The left task structure is given label
+                                Ltask and the right task structure is
+                                given label Rtask '
 define(`Fifthenelse',`[ Test: Ftest(`$1',`$2',`$3')
   N: Test.N
   Ltask: ifelse(`$4',,`Test.S; W:Test.W; LS:Ltask',

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Geometry.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Geometry.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Geometry.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,46 @@
+.PS
+# Geometry.m4
+gen_init
+ scale = 5/4
+
+ A: Here;               "A" at A above
+ B: A+(-1,-3.5);        "B" at B below rjust 
+ C: B+(4.6,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)
+
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Geometry.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Grounds.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Grounds.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Grounds.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,5 +1,5 @@
 .PS
-# `Grounds.m4'
+# Grounds.m4
 cct_init
 
 sep = 0.65
@@ -22,7 +22,7 @@
    "{\tt (,{,}E)}" at (GE,D)}
 
 
-GS: ground(,,S)
+GS: ground(,dimen_/2,S)
    move right sep
 GS90: [ground(,,S,90) ] with .n at Here
    move right sep from GS90.n
@@ -36,7 +36,7 @@
 
 C: Here+(0,-0.5)
 E: C+(0,11bp__)
-   "{\tt (,{,}S)}" at (GS,C)
+   "{\tt (,dimen\_/2,S)}" at (GS,C)
    "{\tt (,{,}S,90)}" at (GS90,E)
    "{\tt (,{,}Q)}" at (GQ,C)
    "{\tt (,{,}L)}" at (GL,E)

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Heathkit.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Heathkit.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Heathkit.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -5,9 +5,13 @@
 maxpswid = 11
 maxpsht = 8.5
 
-#                               Set small text size
-  iflatex(`ifpsfrag(`textht = 7.5bp__; textoffset = 0.5bp__',
-          `latexcommand({\tiny\sf)') ')
+#                               Set small text size: tikz-pgf changes
+#                               text offset for globally-defined tiny font
+#                               so we define tsf() to set size locally
+  iflatex(`ifpsfrag(`define(`tsf',"`$1'") dnl
+                     textht = 7.5bp__; textoffset = 0.5bp__',
+                    `define(`tsf',`"\tiny\sf `$1'"')')',
+          `define(`tsf',"`$1'")')
 
 #                               Grid parameters
   picwid = 8.5
@@ -52,32 +56,32 @@
 #                               Circuit board
   Board: box dashed thick 2 wid 58*g ht 55*g with .se at L1.end+(-7*g,-2*g)
   P: box invis wid 12*g ht 4*g with .s at Board.sw+(26*g,0)
-  { "POWER SUPPLY" ljust "CIRCUIT BOARD" ljust at P.w+(g,0) }
+  { tsf(POWER SUPPLY) ljust tsf(CIRCUIT BOARD) ljust at P.w+(g,0) }
   line dashed thick 2 from P.sw to P.nw; line dashed thick 2 to P.ne
   line dashed thick 2 to P.se
 
-define Pad { P`$1': box fill_(1) "$1" }
+define Pad { P`$1': box fill_(1) tsf($1) }
 #                               Board connections on the right
   Pad(1) at (Board.e,L1.end)
-    line from P1.e to L1.end "RED" above
+    line from P1.e to L1.end tsf(RED) above
   Pad(2) at (Board.e,L1.start)
-    line from P2.e to L1.start "RED" above
+    line from P2.e to L1.start tsf(RED) above
   Pad(3) at (Board.e,L2.end)
-    GRN1: line left 4*g from L2.start "GRN" above ; ground
-    GRN2: line from P3.e to L2.end "GRN" above
+    GRN1: line left 4*g from L2.start tsf(GRN) above ; ground
+    GRN2: line from P3.e to L2.end tsf(GRN) above
     spline <-> from GRN2.end+(-g,0) up 2.5*g right 0.5*g then up 5*g left g \
       then up 2.5*g right 0.5*g
-    box invis fill_(1) wid 3*g ht g "\SI{6}{VAC}" at L2.c-(2*g,0)
+    box invis fill_(1) wid 3*g ht g tsf(6 VAC) at L2.c-(2*g,0)
   Pad(4) at P3-(0,3*g)
-    line right_ 3*g from P4.e "BRN" above
+    line right_ 3*g from P4.e tsf(BRN) above
     arrow down_ 2*g ht arrowht*2/3
-    "TO DIAL" "LAMPS" at Here+(0,-g)below
+    tsf(TO DIAL) tsf(LAMPS) at Here+(0,-g)below
   Pad(5) at (Board.e,L3.end)
-    line from P5.e to L3.end "BLU" above
+    line from P5.e to L3.end tsf(BLU) above
   Pad(7) at (Board.e,L3.start)
-    line from P7.e to L3.start "BLU" above
+    line from P7.e to L3.start tsf(BLU) above
   Pad(6) at 0.5 between P5 and P7
-    line from P6.e to L3.c "BLU-YEL" above
+    line from P6.e to L3.c tsf(BLU-YEL) above
 
 #                               Power wiring, plug, switch
 define(`socket',`[
@@ -88,19 +92,19 @@
   line from Outer.e to R.e
   ] ')
 
-  BLK: line from L4.end to (int(L4.end.x/g+8)*g,L4.end.y) "BLK" below ; dot
+  BLK: line from L4.end to (int(L4.end.x/g+8)*g,L4.end.y) tsf(BLK) below ; dot
     b = lin_leng(BLK)
-  BLKYEL: line from L4.start right_ b "BLK-YEL" above ; dot
-  BLKGRN: line from L5.end right_ b "BLK-GRN" below ; dot
-  BLKRED: line from L5.start right_ b "BLK-RED" above ; dot
+  BLKYEL: line from L4.start right_ b tsf(BLK-YEL) above ; dot
+  BLKGRN: line from L5.end right_ b tsf(BLK-GRN) below ; dot
+  BLKRED: line from L5.start right_ b tsf(BLK-RED) above ; dot
     line right_ g; PL: dot
     line from BLKYEL.end right g then to Here+(0,-g)
     fuse(down_ 3*g,D)
-    rlabel(,"\SI{3}{\ampere} FUSE" rjust "SLOW BLOW")
+    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; "A" rjust
-    line from Sckt1.e right_ lin_leng(last line); B: dot; "B" ljust
+    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
   Sckt2: socket at (Sckt1,P1+(0,6*g))
     line from Sckt2.w to (A,Sckt2); dot
     line from Sckt2.e to (B,Sckt2); dot
@@ -117,22 +121,22 @@
     line from T2 to (T2,F.c)-(0,2*g) ]')
 
   PP: plug with .F.c at Sckt3+(0,-8*g)
-    "\SI{120}{VAC}" ljust "\SI{50/60}{\hertz}" ljust at PP.e
+    tsf(120 VAC) ljust tsf(50/60 Hz) ljust at PP.e
 
 define(`pwrswitch',`[ right; circlerad = 1.75*g/2
-  C1: circle "1"
-  C4: circle "4"
-  C2: circle "2" with .n at C1.s+(0,-C1.rad)
-  C5: circle "5"
-  C3: circle "3" with .n at C2.s+(0,-C1.rad)
-  C6: circle "6"
+  C1: circle tsf(1)
+  C4: circle tsf(4)
+  C2: circle tsf(2) with .n at C1.s+(0,-C1.rad)
+  C5: circle tsf(5)
+  C3: circle tsf(3) with .n at C2.s+(0,-C1.rad)
+  C6: circle tsf(6)
   hatchbox(wid g ht C2.n.y-C3.s.y,0.05) with .w at 0.5 between C5.e and C6.e
   ]')
 
   Psw: pwrswitch with .C4.e at Sckt1+(0,-4*g)
-    "POWER" at Psw.w+(-2*g,0) rjust
+    tsf(POWER) at Psw.w+(-2*g,0) rjust
     arrow up Psw.ht/2 at Psw.e+(1.5*g,0)
-    "ON" above; "OFF" at last arrow.start below
+    tsf(ON) above; tsf(OFF) at last arrow.start below
     line from Psw.C1.w to (A,Psw.C1) then to A
     line from Psw.C2.w to (A,Psw.C2); contline to (Here,PP.T1) then to PP.T1
     line from PP.T2 to (B,PP.T2) then to (B,L4.end) then to L4.end
@@ -140,12 +144,12 @@
 
 #                               Bottom connections
   Pad(25) at Board.se+(-3*g,0)
-  R516: resistor(down_ 6*g from P25.s); rlabel(,"R516" rjust "22"); ground(,T)
+  R516: resistor(down_ 6*g from P25.s); rlabel(,tsf(R516) rjust tsf(22)); ground(,T)
     dot(at P25.s+(0,-g)); line right_ 5*g
-    reversed(`source',down_ 4*g,B); llabel(,"No 49" ljust "HI" ljust "TEMP")
+    reversed(`source',down_ 4*g,B); llabel(,tsf(No 49) ljust tsf(HI) ljust tsf(TEMP))
     line to (P25,Here); dot
     t = linethick; linethick_(0.4)
-    arrow <- from P25.s+(0,-g/2) right_ 2*g up_ g/4; "BRN" ljust; linethick_(t)
+    arrow <- from P25.s+(0,-g/2) right_ 2*g up_ g/4; tsf(BRN) ljust; linethick_(t)
 
   Pad(24) at P25+(-4*g,0)
     line from P24.s to (P24,R516.end); ground(,T)
@@ -153,8 +157,8 @@
     line from P23.s to (P23,R516.end); ground(,T)
 
   Pad(22) at Board.sw+(0,3*g)
-  R514: resistor(right_ 8*g from P22.e); llabel(,"R514")
-    rlabel(,"\SI{680}{\kilo{}}")
+  R514: resistor(right_ 8*g from P22.e); llabel(,tsf(R514))
+    rlabel(,tsf(680 k))
     dot; { ground }
     line to (P23,Here) then to P23.n
 
@@ -161,20 +165,20 @@
 #                               Diode bridge
   BE: dot(at (P24,L1.c))
     d1h = lin_leng(L1)/2
-    diode(left_ d1h up_ d1h); rlabel(,,"D508")
+    diode(left_ d1h up_ d1h); rlabel(,,tsf(D508))
   BN: dot
-    diode(left_ d1h down_ d1h); rlabel("D506")
+    diode(left_ d1h down_ d1h); rlabel(tsf(D506))
   BW: dot
-    diode(from BE left_ d1h down_ d1h); llabel(,,"D509")
+    diode(from BE left_ d1h down_ d1h); llabel(,,tsf(D509))
   BS: dot
-    diode(left_ d1h up_ d1h); llabel(D507)
-    capacitor(down_ from BN to BS,C); llabel("C507",,\num{.22})
+    diode(left_ d1h up_ d1h); llabel(tsf(D507))
+    capacitor(down_ from BN to BS,C); llabel(tsf(C507),,tsf(.22))
     line from BE to P24.n
     line from BN to P2.w
     line from BS to P1.w
     spline <-> from (BE.x+2*g,BS.y) \
       up d1h/2 right g/2 then up d1h left g then up d1h/2 right g/2
-    box invis fill_(1) ht 2*g wid 2*g "57" "VAC" at last spline.c
+    box invis fill_(1) ht 2*g wid 2*g tsf(57) tsf(VAC) at last spline.c
 
 #                               Left board connections
   Pad(21) at (Board.w,BW); line from P21.e to BW
@@ -184,41 +188,40 @@
 #                               Transistor with circles
 define(`hbi_tr',`[ linewid = linewid*4/4.16
   Q: bi_tr(`$1',`$2',`$3',E)
-  E: circle rad m4_xyU at 5/4 between Q.A1 and Q.E "E"
-  B: circle rad m4_xyU at 5/4 between Q.A1 and Q.B "B"
-  C: circle rad m4_xyU at 5/4 between Q.A1 and Q.C "C"
+  E: circle rad m4_xyU at 5/4 between Q.A1 and Q.E tsf(E)
+  B: circle rad m4_xyU at 5/4 between Q.A1 and Q.B tsf(B)
+  C: circle rad m4_xyU at 5/4 between Q.A1 and Q.C tsf(C)
   ]')
 
 #                               Interior circuits
   line from P6.w left 2*g; ground
   line from P5.w left 4*g; dot
-  { C504: capacitor(down_ 4*g,C); llabel("C504",,\num{.22}); ground(,T) }
-  D504: diode(left_ 5*g); rlabel(,"D504"); dot
+  { C504: capacitor(down_ 4*g,C); llabel(tsf(C504),,tsf(.22)); ground(,T) }
+  D504: diode(left_ 5*g); rlabel(,tsf(D504)); dot
   { C505: capacitor(down_ to (Here,C504.end),C+L)
-    rlabel("C505",\num{100},\SI{75}{\volt}); ground(,T) }
+    rlabel(tsf(C505),tsf(100),tsf(75 V)); ground(,T) }
   line right_ to (Here,P7); dot
-  { D503: reversed(`diode',to (D504.start,Here)); llabel(,"D503")
+  { D503: reversed(`diode',to (D504.start,Here)); llabel(,tsf(D503))
   line to P7.w }
   d3 = lin_leng(L3)
   spline <-> from C504.start+(g/2,0) \
     up d3/4 right g/4 then up d3*2/4 left g/2 then up d3/4 right g/4
-  box invis fill_(1) ht g wid 4*g "\SI{100}{VAC}" \
-    at last spline.c+(-g,0)
+  box invis fill_(1) ht g wid 4*g tsf(100 VAC) at last spline.c+(-g,0)
 
   down_
   Q503: hbi_tr(,R,P) with .E at (C505,P3)
     line from Q503.C.e to (P25,Q503.C) then to P25.n
     line from Q503.B.s to (Q503.B.x,Q503.E.y-4*g)
-  R513: resistor(down_ 5*g); llabel(,"R513" ljust "1500"); ground(,T)
+  R513: resistor(down_ 5*g); llabel(,tsf(R513) ljust tsf(1500)); ground(,T)
     line from P19.e to (BW-(2*g,0),P19) then up Q503.E.y-P19.y+2*g
-  R511: resistor(right_ 5*g); llabel(,"R511"); rlabel(,\num{470});
+  R511: resistor(right_ 5*g); llabel(,tsf(R511)); rlabel(,tsf(470));
     line to (Q503.E,Here) then to Q503.E.n
     line from P20.e to (BW,P20) then up R513.end.y-P20.y
     resistor(up_ lin_leng(R513))
-    rlabel(,"R512" ljust "5600" ljust "\SI{1}{\watt}")
+    rlabel(,tsf(R512) ljust tsf(5600) ljust tsf(1 W))
     line to (Here,Q503.B) then to Q503.B.w
-    "Q503" "S2091 HI TEMP" "CONTROL" at Q503.E+(1.5*g,4*g)
-  D505: reversed(`diode',right_ from Q503.E.e to (C504,Q503.E)); llabel(,"D505")
+    tsf(Q503) tsf(S2091 HI TEMP) tsf(CONTROL) at Q503.E+(1.5*g,4*g)
+  D505: reversed(`diode',right_ from Q503.E.e to (C504,Q503.E)); llabel(,tsf(D505))
     line to P3.w
 
   line from P4.w left_ 2*g then up P3.y-P4.y; dot
@@ -226,9 +229,9 @@
   { Pad(8) at (Here,Board.n) }
   { line to P8.s }
   R505: resistor(down_ to (Here,P6))
-  llabel(,"R505" ljust "\SI{12}{\kilo{}}"); dot
+  llabel(,tsf(R505) ljust tsf(12 k)); dot
   { C503: capacitor(down_ to (Here,C505.end),C+L)
-    rlabel(,"C503" rjust "100" rjust "\SI{70}{\volt}")
+    rlabel(,tsf(C503) rjust tsf(100) rjust tsf(70 V))
     ground(,T) }
   right_
   Q502: hbi_tr(,R) with .B at (R511.start,Here)
@@ -235,14 +238,14 @@
     line from Q502.C.e to R505.start
     line from Q502.B.e to R505.end
   R504: resistor(down_ from Q502.B.s to (Q502.B,C505.end))
-    rlabel(,"R504" rjust "\SI{51}{\kilo{}}"); ground(,T)
-    "Q502" "TA7311" "REGULATOR" "CONTROL" at Q502.C+(-1*g,3.5*g)
+    rlabel(,tsf(R504) rjust tsf(51 k)); ground(,T)
+    tsf(Q502) tsf(TA7311) tsf(REGULATOR) tsf(CONTROL) at Q502.C+(-1*g,3.5*g)
 
   Pad(9) at (Q502.E,Board.n)
     line from Q502.E.n to P9.s
   Pad(10) at (Q502.B-(9*g,0),Board.n)
   R502: resistor(left_ from Q502.E.w to (P10,Q502.E))
-    rlabel(,"R502"); llabel(,\num{150}); dot
+    rlabel(,tsf(R502)); llabel(,tsf(150)); dot
 
   Pad(11) at (Board.w,Q502.E)
   Pad(14) at P11+(0,2.5*g)
@@ -257,7 +260,7 @@
     line from Q501.B.s to P9.n
     line from Q501.C.e to (P8,Q501.C) then to P8.n
     line from Q501.E.w to (P10,Q501.E) then to P10.n
-    "Q501" "2N3055" "REGULATOR" at Q501.n+(0,2*g)
+    tsf(Q501) tsf(2N3055) tsf(REGULATOR) at Q501.n+(0,2*g)
     line from P14.e to (P10,P14); dot
 
   Pad(17) at (Board.w,R511)
@@ -270,84 +273,81 @@
     line from P17.e to Q504.E.w
     line from Q504.B.s to (Q504.B,R513.start)
   R508:resistor(down_ to (Here,R513.end))
-  llabel(,"R508" ljust "680"); ground(,T)
+  llabel(,tsf(R508) ljust tsf(680)); ground(,T)
     dot(at (P10,P15))
   { line to P10.s }
   { resistor(down_ 5*g)
     llabel(,
-     "R510" ljust "225" ljust "\SI{10}{\watt}" ljust "\SI{5}{\hbox{\%}}")
+     tsf(R510) ljust tsf(225) ljust tsf(10 W) ljust tsf(5 \%))
     line to Q504.C.n }
-  R503:resistor(left_ 10*g); rlabel(,"R503")
-  { "290" "\SI{10}{\watt} \SI{5}{\hbox{\%}}" at last [].s+(0,-1.3*g) }
+  R503:resistor(left_ 10*g); rlabel(,tsf(R503))
+  { tsf(290) tsf(10 W 5 \%) at last [].s+(0,-1.3*g) }
     dot
     line to (Here,Q504.B)
-    resistor(right_ to Q504.B.w); llabel(,"R507"); rlabel(,\num{100})
+    resistor(right_ to Q504.B.w); llabel(,tsf(R507)); rlabel(,tsf(100))
     line from P15.e to R503.end
-#   "Q504" "40409" "REGULATOR" at Q504.C+(3.5*g,3*g)
-    "Q504" "40409" "REGULATOR" at Q504.n+(-2*g,3*g)
-    resistor(left_ from R502.end to (R503.end,P11)); rlabel(,"R501")
-    {"390" "\SI{5}{\watt} \SI{5}{\hbox{\%}}" at last [].s+(0,-1.3*g)}
+    tsf(Q504) tsf(40409) tsf(REGULATOR) at Q504.n+(-2*g,3*g)
+    resistor(left_ from R502.end to (R503.end,P11)); rlabel(,tsf(R501))
+    {tsf(390) tsf(5 W 5 \%) at last [].s+(0,-1.3*g)}
     line to P11.e
 
-    resistor(right_ from P16.e to (R514.end,P16)); llabel(,"R506")
-    rlabel(,\num{82})
+    resistor(right_ from P16.e to (R514.end,P16)); llabel(,tsf(R506))
+    rlabel(,tsf(82))
     line down P16.y-P17.y; dot
 
     dot(at (R514.end,P11))
-  C501: capacitor(down_ 6*g,C+); llabel("C501")
-    {"100" ljust "\SI{30}{\volt}" ljust at last [].s+(0,-g) below }
+  C501: capacitor(down_ 6*g,C+); llabel(tsf(C501))
+    {tsf(100) ljust tsf(30 V) ljust at last [].s+(0,-g) below }
     ground(,T)
     dot(at (Here.x+4*g,P11.y))
-  ZD501: reversed(`diode',down_ lin_leng(C501),Z); llabel("ZD501"); ground(,T)
+  ZD501: reversed(`diode',down_ lin_leng(C501),Z); llabel(tsf(ZD501)); ground(,T)
 
     dot(at (R514.end,P15))
-  C502: capacitor(down_ 6*g,C+); llabel("C502")
-    {"100" ljust "\SI{30}{\volt}" ljust at last [].s+(0,-g) below }
+  C502: capacitor(down_ 6*g,C+); llabel(tsf(C502))
+    {tsf(100) ljust tsf(30 V) ljust at last [].s+(0,-g) below }
     ground(,T)
     dot(at (Here.x+4*g,P15.y))
-  ZD502: reversed(`diode',down_ lin_leng(C502),Z); llabel("ZD502"); ground(,T)
+  ZD502: reversed(`diode',down_ lin_leng(C502),Z); llabel(tsf(ZD502)); ground(,T)
 
     line from (C502,P17) to (C502,R508.start+(0,g))
-  C506: capacitor(down_ to (Here,R508.end),C+); llabel("C506")
-    {"100" ljust "\SI{30}{\volt}" ljust at last [].s+(0,-g) below }
+  C506: capacitor(down_ to (Here,R508.end),C+); llabel(tsf(C506))
+    {tsf(100) ljust tsf(30 V) ljust at last [].s+(0,-g) below }
     ground(,T)
 
 #                               Left-side boxes
   boxwid = 10*g
   boxht = 5*g
-  line left 3*g from P22.w "GRY" above
-  line left 3*g from P19.w "VIOL" above
+  line left 3*g from P22.w tsf(GRY) above
+  line left 3*g from P19.w tsf(VIOL) above
   box with .e at (Here,0.5 between P19 and P22) \
-    "\shortstack[l]{TO SIGNAL\\ METER\\ CIRCUIT}"
+    tsf(\shortstack[l]{TO SIGNAL\\ METER\\ CIRCUIT})
 
-  line left 8*g from P21.w "RED TO C508" above
-  line left 8*g from P20.w "VIOL" above
+  line left 8*g from P21.w tsf(RED TO C508) above
+  line left 8*g from P20.w tsf(VIOL) above
 
-  line left 3*g from P17.w "RED" above
-  line left 3*g from P18.w "WHT-" "RED" above
+  line left 3*g from P17.w tsf(RED) above
+  line left 3*g from P18.w tsf(WHT-) tsf(RED) above
   box with .e at (Here,0.5 between P17 and P18) \
-    "\shortstack[l]{\SI{12.7}{\volt} SOURCE\\ TO MULTIPLEX}"
+    tsf(\shortstack[l]{12.7 V SOURCE\\ TO MULTIPLEX})
 
-  line left 3*g from P16.w "WHT" above
+  line left 3*g from P16.w tsf(WHT) above
   box with .se at Here+(0,-g) \
-    "\shortstack[l]{\SI{12}{\volt} SOURCE\\ TO FM TUNER\\ SOURCE SWITCH}"
+    tsf(\shortstack[l]{12 V SOURCE\\ TO FM TUNER\\ SOURCE SWITCH})
 
-  line left 3*g from P15.w "ORG" above
+  line left 3*g from P15.w tsf(ORG) above
   box ht 3*g with .e at Here \
-    "\shortstack[l]{\SI{15}{\volt} SOURCE\\ TO FM TUNER}"
+    tsf(\shortstack[l]{15 V SOURCE\\ TO FM TUNER})
 
-  line left 3*g from P13.w "BLU" above
-  line left 3*g from P12.w " WHT-" "RED"
-  line left 3*g from P11.w "RED" above
+  line left 3*g from P13.w tsf(BLU) above
+  line left 3*g from P12.w tsf( WHT-) tsf(RED)
+  line left 3*g from P11.w tsf(RED) above
   box ht 6*g with .e at (Here,P12) \
-    "\shortstack[l]{\SI{27}{\volt} SOURCE\\ TO CONTROL\\ PREAMP AND\\ PWR\
-     AMPLIFIER}"
+    tsf(\shortstack[l]{27 V SOURCE\\ TO CONTROL\\ PREAMP AND\\ PWR\
+     AMPLIFIER})
 
   line left 3*g from P14.w
-  { "WHT-" "GRY-" "GRN" at last line.c+(0,2*g) }
+  { tsf(WHT-) tsf(GRY-) tsf(GRN) at last line.c+(0,2*g) }
   box with .se at Here+(0,-g) \
-    "\shortstack[l]{\SI{50}{\volt} SOURCE\\ TO PHONO\\ PREAMP}"
+    tsf(\shortstack[l]{50 V SOURCE\\ TO PHONO\\ PREAMP})
 
- iflatex(`ifpsfrag(,`latexcommand(})')')
-
 .PE

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Lyap.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Lyap.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Lyap.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,159 @@
+.PS
+# Lyap.m4
+threeD_init
+scale = 1/1.2
+
+viewaz = 30
+viewel = 18
+setview(viewaz,viewel)
+
+Origin: project(0,0,0)
+#                             Components of view vector W
+w1 = view3D1
+w2 = view3D2
+w3 = view3D3
+#                             Shape factor of the ellipse on the xy plane
+q = Cos(40)
+
+#                             cost function
+h = 0.5
+c = 1
+#                             The projected ellipse is (x/q)^2 + y^2 = c.
+#                             The cost is v = c+h
+define(`vs',``$2'*q*cos(`$1'),`$2'*sin(`$1')')
+define(`vp',`vs(`$1',`$2'),0')
+define(`vx',`sum3D(vp(`$1',`$2'),0,0,h+(`$2')^2)')
+
+#                             The gradient of v is (2x/q, 2y, -1) and the line
+#                             separating front and back is W^T * grad(v) = 0
+#                             This line intersects the projected ellipse at
+#                             x1,y1 and x2,y2
+  ap = w2^2*q^2/w1^2+1
+  bp = -w2*w3*q^2/w1^2
+  cp = w3^2*q^2/4/w1^2-c
+  m = sqrt(bp^2-4*ap*cp)
+  y1 = (-bp+m)/ap/2 ; x1 = (w3-2*y1*w2)*q/2/w1
+  y2 = (-bp-m)/ap/2 ; x2 = (w3-2*y2*w2)*q/2/w1
+  t1 = atan2(y1,x1)
+  t2 = atan2(y2,x2)
+  theta1 = min(t1,t2)
+  theta2 = max(t1,t2)
+
+#                             tangent curve
+  nT = 11
+  for i = 0 to nT do {
+    y = y1 + (y2-y1)/nT*i
+    theta = atan2(y,(w3-2*y*w2)*q/2/w1)
+    r = y/sin(theta)
+    T[i]: project(vx(theta,r))
+    }
+
+#                             front and back parts of the top curve
+  n = 12
+  for i = 0 to n do {
+    theta = theta1 + (theta2-theta1)/n*i
+    F[i]: project(vx(theta,c))
+    Fp[i]: project(vp(theta,c))
+    }
+  for i = 0 to n do {
+    theta = theta2 + (theta1+twopi_-theta2)/n*i
+    B[i]: project(vx(theta,c))
+    Bp[i]: project(vp(theta,c))
+    }
+
+#                             trajectory
+rotations = 1.55
+nx = 7
+thetas = 75*dtor_
+thetaf = thetas - rotations*twopi_
+rx = c*0.9
+beta = exp(log(.5)/20)
+
+define(`defX',` rx = `$5' ; np = np-1
+  ts = `$1' ; tf = `$2'
+  for i = 0 to `$3' do {
+    tha = ts + (tf-ts)*i/(`$3')
+    for thx = tha to -twopi_ by twopi_ do {}
+    `$4'[i]: project(vx(thx,rx))
+    Xp[np]: project(vp(thx,rx))
+    np = np+1
+    rx = beta*rx
+    }')
+
+np = 1
+defX(thetas,theta1,nx,X1,rx)
+defX(theta1,theta2-twopi_,nx,X2,rx/beta)
+defX(theta2-twopi_,theta1-twopi_,nx,X3,rx/beta)
+defX(theta1-twopi_,thetaf,5,X4,rx/beta)
+
+#                             First draw the inside back
+#                             B is the back curve
+#                             T is the outline
+ifpstricks(`
+\psset{gradbegin=lightgray,gradend=darkgray,gradlines=1000}
+\pscustom[fillstyle=gradient,gradmidpoint=0.7]{
+  fitcurve(B,n)
+  for i = 0 to nT do {TT[i]: T[nT-i] }
+  fitcurve(TT,nT)
+\relax} ',
+` fitcurve(B,n)
+  for i = 0 to nT do {TT[i]: T[nT-i] }
+  fitcurve(TT,nT) ')
+
+#                             Centre axis
+thinlines_
+line from Origin to project(0,0,h)
+#                             F[0] is the leftmost point of the front curve
+line from F[0] to Fp[0]
+#                             F[n] is the rightmost point of the front curve
+line from F[n] to Fp[n]
+thicklines_
+
+#                             Now draw the outside front
+ifpstricks(`
+\newgray{gray1}{0.9}%
+\newgray{gray2}{0.4}%
+\psset{gradbegin=gray1,gradend=gray2,gradlines=1000}
+\pscustom[linewidth=0pt,fillstyle=gradient,gradmidpoint=0.99]{
+  fitcurve(F,n)
+  fitcurve(T,nT)
+\relax} ',
+` shade(1,fitcurve(F,n)
+  fitcurve(T,nT)) ')
+#                             T is the limit curve of visibility
+  fitcurve(T,nT)
+#                             F is the top front
+  fitcurve(F,n)
+#                             Front and back projections of the top on xy
+  fitcurve(Fp,n)
+  fitcurve(Bp,n)
+
+#                             The trajectory in pieces, to allow dashed parts
+  fitcurve(X1,nx)
+  fitcurve(X2,nx,dotted 0.025)
+  fitcurve(X3,nx)
+  fitcurve(X4,3,dotted 0.015)
+  arca(from X4[4] to X4[2],ccw,0.3,<-)
+
+#                             Projected trajectory
+  np = np-2
+  fitcurve(Xp,np-1)
+  arca(from Xp[np] to Xp[np-2],ccw,0.18,<-)
+  "$X(t)$" at Xp[np]-(2bp__,0) ljust
+
+#                             Axes and vertical lines
+thinlines_
+  line from X1[0] to Xp[0]
+arrow from Origin to project(1.5,0,0)
+"$x_1$" rjust below
+arrow from Origin to project(0,1.5,0)
+"$x_2$" ljust
+line dashed from project(0,0,h) to F[n/2] chop 0 chop arrowht/4
+arrow from F[n/2] to project(0,0,2)
+"$v(X)$" ljust
+
+"`${0}$'" at Origin+(0,1 pt__) below
+"$\Omega$" at project(0,0.9*c,0) above
+"`$v(X) = c$'" at (project(vp(100*dtor_,c)))+(2bp__,0) above ljust
+
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Lyap.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/MC.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/MC.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/MC.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -36,12 +36,13 @@
 ]
 
 Three: [
+  gapht = 4*dimen_
   dv = dimen_*0.6
-  dh = dimen_
+  dh = dimen_*5/6
   define(`swfet',`mosfet(`$1',,dMEDSuBQPy)')
   define(`swpair',`[ up_
     BS: swfet(up_ dimen_); { "`$1'" at BS.D-(0,2bp__) rjust }
-    L: line up_ 3*dimen_ from BS.D
+    L: line up_ gapht-2*dimen_ from BS.D
     TS: swfet(up_ dimen_) with .S at Here; { "`$2'" at TS.S+(0,2bp__) rjust }
     T: TS.D
     B: BS.S
@@ -48,33 +49,33 @@
     C: L.c 
     ]')
 
-  V1: gap(up_ 5*dimen_,1,A); { "$V_1$" at last arrow.c rjust }
-  line right_  dh/2
+  V1: gap(up_ gapht,1,A); { "$V_1$" at last arrow.c rjust }
+  line right_  dimen_/2
   { C1: capacitor(down_ to (Here,V1.start)); llabel(C_1) }
   for_(1,3,1,`
-    line right_ dh ifelse(m4x,1,,*5/4)
+    line right_ dimen_ ifelse(m4x,1,,*5/4)
    {SP1`'m4x: swpair(S1`'eval(m4x+3),S1`'m4x) with .T at Here
     dot(at last [].C + (0,(2-m4x)*dh)) 
-    line right_ (3-m4x)*dh*5/4
+    line right_ (3-m4x)*dimen_*5/4 + dimen_/4
     inductor(right_ dimen_,L); llabel(,L_{1\char`'eval(64+m4x)})
-    line down_ (2-m4x)*dimen_*2/3
+    line down_ (2-m4x)*dh*2/3
     pushdef(`dimen_',dimen_*1.2) inductor(right_ dimen_*3/4) popdef(`dimen_')
-    line down_ (2-m4x)*dimen_/3
+    line down_ (2-m4x)*dh/3
     M: move right_ dimen_/8
-    line up_ (2-m4x)*dimen_/3
+    line up_ (2-m4x)*dh/3
     pushdef(`dimen_',dimen_*1.2) inductor(right_ dimen_*3/4) popdef(`dimen_')
-    line up_ (2-m4x)*dimen_*2/3
+    line up_ (2-m4x)*dh*2/3
     inductor(right_ dimen_,L); llabel(,L_{2\char`'eval(64+m4x)})
-    line right_ dimen_/8+(m4x-1)*dh*5/4
+    line right_ dimen_/8+(m4x-1)*dh*5/4 + dimen_/4
     dot
     SP2`'m4x: swpair(S2`'eval(m4x+3),S2`'m4x) with .C at Here+(0,(m4x-2)*dh) }
   ')
-  "$T_r$" at M.c+(0,dimen_/2)
+  "$T_r$" at M.c+(0,dimen_*2/3)
   line from V1.start to SP13.B
   line from SP21.B to SP23.B+(dh*3/4,0)
   { C2: capacitor(up_ to (Here,V1.end)); llabel(,,C_2) }
-  line right_ dh/2
-  gap(up_ 5*dimen_,1,A); { "$V_2$" at last arrow.c ljust }
+  line right_ dimen_/2
+  gap(up_ gapht,1,A); { "$V_2$" at last arrow.c ljust }
   line to SP21.T chop dotrad_ chop 0
 
 ] with .nw at MC.sw+(0,-0.2)

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Makefile
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Makefile	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Makefile	2020-12-21 22:02:51 UTC (rev 57189)
@@ -5,10 +5,11 @@
 # Type "make <diag>.ps" to make a postscript file from <diag>.m4
 #  It may be necessary to type "make clean" before this or any of the following:
 # Type "make <diag>.eps" to make an .eps file from <diag>.m4
+# Type "make <diag>.svg" to make an .svg file from <diag>.m4 using pdf2svg
 #   The following require ImageMagick convert:
 # Type "make <diag>.png" to make a .png file from <diag>.m4
 # Type "make <diag>.tif" to make a .tif file from <diag>.m4
-# Type "make <diag>.svg" to make a .svg file from <diag>.m4
+#
 #       See also: the svg subdirectory for generating svg directly.
 #
 # To test the file test.m4, type "make tst" if boxdims is used, otherwise
@@ -28,9 +29,9 @@
 # The dpic processor:
 PIC = dpic -p
 #PIC = $$HOME/dpic/build/p2c/ftp/dpic -p
-#PIC = $$HOME/dpic/dev/p2c/ftp/dpic -p
+#PIC = $$HOME/dpic/pa*dev/p2c/ftp/dpic -p
 #PIC = $$HOME/dpic/bison/dpic -p
-#PIC = $$HOME/dpic/bdev/dpic -p
+#PIC = $$HOME/dpic/bi*v/dpic -p
 
 CONFIGFILE = pstricks.m4
 
@@ -66,21 +67,21 @@
   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 I2L.tex Incleps.tex Jack.tex \
-  lcct.tex Logic.tex Loglog.tex MC.tex Mixer.tex MotorControl.tex \
+  lcct.tex Lyap.tex Logic.tex Loglog.tex MC.tex Mixer.tex MotorControl.tex \
   Multiplexer.tex NLG.tex NPDT.tex Nport.tex Opamp.tex Optoiso.tex \
   Pconn.tex PushPull.tex pwrsupply.tex Quantum.tex quick.tex random.tex \
   Rectifiers.tex recycle.tex relaycoil.tex Relay.tex rose.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 Timer.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
 
 # Files that have to be processed twice:
-BOXDIMS = ex09.tex Crow.tex Incleps.tex Loglog.tex Opamp.tex random.tex \
- Ttree.tex Windings.tex
-BOXPICS = ex09.pic Crow.pic Incleps.pic Loglog.pic Opamp.pic random.pic \
- Ttree.pic Windings.pic
+BOXDIMS = ex09.tex Crow.tex Incleps.tex Lyap.tex Loglog.tex Opamp.tex \
+ random.tex Ttree.tex Windings.tex
+BOXPICS = ex09.pic Crow.pic Incleps.pic Lyap.pic Loglog.pic Opamp.pic \
+ random.pic Ttree.pic Windings.pic
 
 DVIPSOPTS = -Ppdf -G0 -t letter
 DVIPSOPTS = -G0 -t letter
@@ -91,6 +92,18 @@
 # Might be needed (change latex commands to $(LTX) )
 # LTX = latex --shell-escape
 
+LTXFILE=printf "|documentclass[11pt]{article}\n\
+|usepackage{times,pstricks,boxdims,graphicx,pst-grad,pst-slpe}\n\
+|usepackage{siunitx}\n\
+|setlength{|textwidth}{28cm}|setlength{|textheight}{28cm}\n\
+|setlength{|oddsidemargin}{0pt}|setlength{|evensidemargin}{0pt}\n\
+|setlength{|hoffset}{-1cm}\n\
+|pagestyle{empty}|thispagestyle{empty}\n\
+|newbox|graph\n\
+|begin{document}\n\
+|noindent|input{"$*".tex}\n\
+|end{document}\n" | $(BS)
+
 .SUFFIXES: .ps .dvi .tex .m4 .pic .eps .png .pdf .svg .tif .gif
 .dvi.ps:
 	dvips $(DVIPSOPTS) $* -o $*.ps
@@ -106,25 +119,25 @@
 	@if test -n "$(DIMFILE)" ; then touch $(DIMFILE) ; fi
 	$(M4) $(M4LIBS) $(DIMFILE) $*.m4 > $*.pic
 .m4.dvi:
-	make $*.tex
-	printf "|documentclass[11pt]{article}\n\
-|usepackage{times,pstricks,boxdims,graphicx,pst-grad,pst-slpe}\n\
-|usepackage{siunitx}\n\
-|setlength{|textwidth}{28cm}|setlength{|textheight}{28cm}\n\
-|setlength{|oddsidemargin}{0pt}|setlength{|evensidemargin}{0pt}\n\
-|setlength{|hoffset}{-1cm}\n\
-|pagestyle{empty}|thispagestyle{empty}\n\
-|newbox|graph\n\
-|begin{document}\n\
-|noindent|input{"$*".tex}\n\
-|end{document}\n" | $(BS) > F_$*.tex
-	latex F_$*
+	@if test -n "$(DIMFILE)" ; then touch $(DIMFILE) ; fi ; touch F_$*.dim
+	$(M4) $(M4LIBS) $(DIMFILE) F_$*.dim $*.m4 | sed -e '/^ *$$/d' \
+      | $(PIC) > $*.tex
+	$(LTXFILE) > F_$*.tex
+	latex --quiet F_$*
 	touch F_$*.dim $(DIMFILE) ; rm -f $*.tex $*.pic ; make $*.tex 
-	latex F_$*
+	latex --quiet F_$*
 	touch F_$*.dim $(DIMFILE) ; rm -f $*.tex $*.pic ; make $*.tex 
-	latex F_$*
+	latex --quiet F_$*
 .m4.eps:
-	make $*.dvi
+	@if test -n "$(DIMFILE)" ; then touch $(DIMFILE) ; fi ; touch F_$*.dim
+	$(M4) $(M4LIBS) $(DIMFILE) F_$*.dim $*.m4 | sed -e '/^ *$$/d' \
+      | $(PIC) > $*.tex
+	$(LTXFILE) > F_$*.tex
+	latex --quiet F_$*
+	touch F_$*.dim $(DIMFILE) ; rm -f $*.tex $*.pic ; make $*.tex 
+	latex --quiet F_$*
+	touch F_$*.dim $(DIMFILE) ; rm -f $*.tex $*.pic ; make $*.tex 
+	latex --quiet F_$*
 	dvips F_$* -T128cm,28cm -o $*.ps
 #	dvips -Ppdf F_$* -T128cm,28cm -o $*.ps
 # Recent changes to PSTricks(?) have clashed with the use of TeXtoEPS
@@ -140,9 +153,9 @@
 	make $*.tex && mv $*.tex test.tex; latex tst
 	dvips $(DVIPSOPTS) tst -o $*.ps
 	chmod 644 $*.ps
-.m4.svg:
-	make $*.eps
-	convert $(EPSOPTS) $*.eps $*.svg
+#.m4.svg:
+#	make $*.eps
+#	convert $(EPSOPTS) $*.eps $*.svg
 .m4.png:
 	make $*.eps
 	convert $(PNGOPTS) $*.eps $*.png
@@ -161,11 +174,24 @@
 	$(PIC) -g $*.pic > test.tex
 	sed -e '/^\\usepackage.*graphicx/s/^.*$$/\\usepackage{tikz}/' \
      -e '/pstricks/d' tst.tex > F_$*.tex
-	pdflatex F_$*
+	pdflatex --quiet F_$*
 	$(M4) pgf.m4 F_$*.dim $*.m4 > $*.pic
 	$(PIC) -g $*.pic > test.tex
-	pdflatex F_$*
+	pdflatex --quiet F_$*
 	mv F_$*.pdf $*.pdf
+.m4.svg:
+	touch F_$*.dim
+	$(M4) pgf.m4 F_$*.dim $*.m4 > $*.pic
+	$(PIC) -g $*.pic > test.tex
+	sed -e '/^\\usepackage.*graphicx/s/^.*$$/\\usepackage{tikz}/' \
+     -e '/pstricks/d' tst.tex > F_$*.tex
+	pdflatex --quiet F_$*
+	$(M4) pgf.m4 F_$*.dim $*.m4 > $*.pic
+	$(PIC) -g $*.pic > test.tex
+	pdflatex --quiet F_$*
+	mv F_$*.pdf $*.pdf
+	pdf2svg $*.pdf $*.svg
+	rm -f $*.pdf $*.pic F_$**
 
 #########################################################################
 
@@ -237,7 +263,7 @@
       do (if test -d $$dir ; then cd $$dir; make clobber; fi) ; done
 	rm -f *.warn
 	rm -f examples.pdf
-	rm -rf index.html html basenames *.png* dist zips htmlfiles svgfiles
+	rm -rf index.html html basenames *.png* dist zips htmlfiles
 	rm -rf $(TMP)/Cir* $(ECETMP)/Cir* $(ECEDIR)
 	if test -f Incl.pdf ; then \
       mv Incl.pdf Incl.pdx; rm -f *.pdf; mv Incl.pdx Incl.pdf ; fi
@@ -249,7 +275,7 @@
 clean:
 	@printf "\n examples clean:\n"
 	rm -f core boxdims.tar.gz pics
-	rm -f *.dvi *.aux *.log *.toc *.blg *.eps *.tif *.epsi eps *-mfpic*
+	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 *.dim *.bak *.frs *.frp $(RPICS) rotate.ps tst.ps *.bbl *-pics.ps
 	rm -f *.tfm *[0-9]pk *.png *.1 *.gif

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/PushPull.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/PushPull.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/PushPull.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -21,13 +21,13 @@
   T1: Xform21
   line left_ del from T1.L3.end; corner; ground(,,F)
   line left_ 2*del from T1.L3.start
-  In: dot(,,1); { "RF" wid 12bp__ at In.n above }
+  In: dot(,,1); { "\small RF" wid 12bp__ at In.n above }
   up_
   Q1: mosfet(,,dBSDFQM1,E) with .G0 at T1.T+(2*dimen_+del/2,dimen_)
-  { "3N200" at last [].n above }
+  { "\small 3N200" at last [].n above }
   line from T1.L2.end to (T1.L2.end,Q1.G0) then to Q1.G0
   Q2: mosfet(,,dBSDFQM1,E) with .G0 at (Q1.G0.x,T1.T.y-dimen_)
-  { "3N200" at last [].n above }
+  { "\small 3N200" at last [].n above }
   line from T1.L1.start to (T1.L1.start,Q2.G0) then to Q2.G0
 
   resistor(right_ dimen_ from T1.T); llabel(,\SI{330}{\Omega}); Tx:dot
@@ -63,7 +63,7 @@
   line right_ del from T2.L3.start; corner
   capacitor(down_ dimen_,C); llabel(\SI{1000}{pF}); ground(,T,F)
   line right_ 2*del from T2.L3.end
-  Out: dot(,,1); { "IF" wid 12bp__ at Out.n above }; move right_ 0.3
+  Out: dot(,,1); { "\small IF" wid 12bp__ at Out.n above }; move right_ 0.3
 
   line from T2.L1.start to (T2.L1,Q1.D) then to Q1.D
   line from T2.L2.end to (T2.L2.end,Q2.D) then to Q2.D
@@ -83,7 +83,7 @@
   dot(at Q3.B+(del,0))
   line up_ (TL.y+Q3.C.y)/2 - Here.y+del/4 then left_ Here.x-TL.x
   reversed(`capacitor',left_ dimen_,C); llabel(,\SI{1500}{pF})
-  Osc: dot(,,1); { "Osc" above at Osc.n }
+  Osc: dot(,,1); { "\small Osc" above at Osc.n }
 
   line from Q3.B to (Vc,Q3.B)
   line from Q3.C to (Q3.C,TL); dot

Deleted: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Timer.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Timer.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Timer.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,52 +0,0 @@
-.PS
-# Timer.m4
-cct_init
-iflatex(`latexcommand({\small\sf)')
-
-define(`ic555',`[Chip: box ht boxwid wid boxwid "555"
-  P7: "7" ljust at 1/6<Chip.sw,Chip.nw>
-  P6: "6" ljust at 1/2<Chip.sw,Chip.nw>
-  P2: "2" ljust at 5/6<Chip.sw,Chip.nw>
-  P4: "4" below at 1/3<Chip.nw,Chip.ne>
-  P8: "8" below at 2/3<Chip.nw,Chip.ne>
-  P3: "3" rjust at Chip.e
-  P1: "1" above at Chip.s
-  ]')
-
-  define(`elen_',`linewid')
-Vs: dot
-  down_
-  variable(`resistor(,E); llabel(,\SI{1}{M})')
-  resistor(,E); llabel(,\SI{100}{\kilo{}})
-  capacitor(,E); llabel(\SI{220}{\micro{}})
-Zero: dot
-
-  dot(at Vs+(elen_*4/3,0))
-  resistor(,E); llabel(,\SI{33}{\kilo{}})
-  line to (Here,Zero) chop 0 chop elen_
-C2: capacitor; llabel(\SI{0.1}{\micro{}})
-  dot
-
-IC1: ic555 with .P7 at C2.start + (elen_,0)
-  line from IC1.P4 to (IC1.P4,Vs); dot
-  line from IC1.P8 to (IC1.P8,Vs); dot
-  line from IC1.P1 to (IC1.P1,Zero); dot
-  line from IC1.P2 to (C2,IC1.P2); dot
-  crossover(from IC1.P7 to (Zero,IC1.P7),R,C2); dot
-  line from IC1.P6 left elen_/2 then down IC1.P6.y-IC1.P7.y; dot
-  line from IC1.P3 right elen_*2/3
-R: dot
-  line right_ elen_/3
-B: buzzer(,,C) with .In3 at Here
-  line from B.In1 to (R,B.In1)
-  reversed(`diode',to (Here,Vs),LE); "red" at last line.c+(elen_/2,0)
-  resistor(down_ elen_ from R,E); llabel(,\num{470})
-  diode(to (Here,Zero),LE); {"green" at last line.c+(elen_*2/3,0)}
-  line to Zero chop 0 chop -elen_
-  line up_ (Vs.y-Here.y)/3
-  battery(up_ (Vs.y-Here.y)/3); rlabel(,,\SI{9}{V})
-  switch(to (Here,Vs),,D)
-  line to (R,Vs)
-
-iflatex(`latexcommand(})')
-.PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Variable.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Variable.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Variable.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -3,11 +3,11 @@
 cct_init
 
 define(`elen_',dimen_); down_
-[ { variable(`resistor',A) }; {"A" at last line.end below}; move right
-  { variable(`resistor',N) }; {"N" at last line.end below}; move right
-  { variable(`resistor',uN) }; {"uN" at last line.end below}; move right
-  { variable(`resistor',NN) }; {"uN" at last line.end below}; move right
-  { variable(`resistor',uNN) }; {"uNN" at last line.end below}; #; move right
+[ { variable(`resistor',A) }; {"\tt A" at last line.end below}; move right
+  { variable(`resistor',N) }; {"\tt N" at last line.end below}; move right
+  { variable(`resistor',uN) }; {"\tt uN" at last line.end below}; move right
+  { variable(`resistor',NN) }; {"\tt NN" at last line.end below}; move right
+  { variable(`resistor',uNN) }; {"\tt uNN" at last line.end below};
   ]
 [
   skp = 0.4

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ex01.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ex01.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ex01.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,6 +1,56 @@
 .PS
+# Timer.m4
+cct_init
+iflatex(`latexcommand({\small\sf)')
+
+define(`ic555',`[Chip: box ht boxwid wid boxwid "555"
+  P7: "7" ljust at 1/6<Chip.sw,Chip.nw>
+  P6: "6" ljust at 1/2<Chip.sw,Chip.nw>
+  P2: "2" ljust at 5/6<Chip.sw,Chip.nw>
+  P4: "4" below at 1/3<Chip.nw,Chip.ne>
+  P8: "8" below at 2/3<Chip.nw,Chip.ne>
+  P3: "3" rjust at Chip.e
+  P1: "1" above at Chip.s
+  ]')
+
+Timer: [
+  define(`elen_',`linewid')
+Vs: dot
+  down_
+  variable(`resistor(,E); llabel(,\SI{1}{M})')
+  resistor(,E); llabel(,\SI{100}{\kilo{}})
+  capacitor(,E); llabel(\SI{220}{\micro{}})
+Zero: dot
+
+  dot(at Vs+(elen_*4/3,0))
+  resistor(,E); llabel(,\SI{33}{\kilo{}})
+  line to (Here,Zero) chop 0 chop elen_
+C2: capacitor; llabel(\SI{0.1}{\micro{}})
+  dot
+
+IC1: ic555 with .P7 at C2.start + (elen_,0)
+  line from IC1.P4 to (IC1.P4,Vs); dot
+  line from IC1.P8 to (IC1.P8,Vs); dot
+  line from IC1.P1 to (IC1.P1,Zero); dot
+  line from IC1.P2 to (C2,IC1.P2); dot
+  crossover(from IC1.P7 to (Zero,IC1.P7),R,C2); dot
+  line from IC1.P6 left elen_/2 then down IC1.P6.y-IC1.P7.y; dot
+  line from IC1.P3 right elen_*2/3
+R: dot
+  line right_ elen_/3
+B: buzzer(,,C) with .In3 at Here
+  line from B.In1 to (R,B.In1)
+  reversed(`diode',to (Here,Vs),LE); "red" at last line.c+(elen_/2,0)
+  resistor(down_ elen_ from R,E); llabel(,\num{470})
+  diode(to (Here,Zero),LE); {"green" at last line.c+(elen_*2/3,0)}
+  line to Zero chop 0 chop -elen_
+  line up_ (Vs.y-Here.y)/3
+  battery(up_ (Vs.y-Here.y)/3); rlabel(,,\SI{9}{V})
+  switch(to (Here,Vs),,D)
+  line to (R,Vs)
+]
+Ex01: [
 # ex01.m4
-cct_init
   linewid = linewid*1.5     # let's make the circuit elements bigger than usual
   define(`elen_',linewid)   # but not longer
   del = elen_/4             # a spacing parameter
@@ -18,4 +68,7 @@
   arcd(last []+(4pt__,0),del,30,330) <- ; "$i_2$" at last arc
   arcd(Vin.c+(4*del,0),2*del,30,330) <- ; "$i_1$" at last arc
 
+  ] with .sw at Timer.se+(0.5,0)
+
+iflatex(`latexcommand(}%)')
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ex09.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ex09.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ex09.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -132,4 +132,5 @@
 
 ] with .nw at 1st [].ne+(0.8*sk,0)
 
+
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/examples.pdf
===================================================================
(Binary files differ)

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/examples.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/examples.tex	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/examples.tex	2020-12-21 22:02:51 UTC (rev 57189)
@@ -35,7 +35,7 @@
   This document duplicates a few diagrams from the manual
   Circuit\_macros.pdf.  There are also a few files in the
   examples directory that are not included in this document. To process
-  {\sl file}.m4, type, for example, "make {\sl file}.pdf."
+  {\sl file}.m4, for example, type "make {\sl file}.pdf."
 
 % Some of the boundaries of what macros and the pic language can do are
 % tested toward the end of the following examples.

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/files.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/files.tex	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/files.tex	2020-12-21 22:02:51 UTC (rev 57189)
@@ -195,11 +195,9 @@
   }
 
 \bfig{
-    \centerline{\getpic{ex01}\quad
-                \getpic{Timer}}
+    \centerline{\getpic{ex01}}
     \caption{Two simple labeled circuits
-    \src{ex01.m4}%
-    \src{Timer.m4}.}
+    \src{ex01.m4}.}
   }
 
 \bfig{
@@ -457,7 +455,7 @@
       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.
+      on the right.  THe lower examples illustrate the L, R, and V options.)
     \src{Alogix.m4}.}
   }
 
@@ -554,7 +552,7 @@
 
 \bfig{
     \centerline{\getpic{random}}
-    \caption{Testing random numbers
+    \caption{Testing random number generation
     \src{random.m4}.}
   }
 
@@ -586,6 +584,12 @@
   }
 
 \bfig{
+    \centerline{\getpic{Lyap}}
+    \caption{Illustrating a Lyapunov function
+    \src{Lyap.m4}.}
+  }
+
+\bfig{
     \centerline{\getpic{csc}}
     \caption{Conestoga Sailing Club (illustrating the filling of arbitrary
       shapes)

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ics.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ics.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ics.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -118,7 +118,6 @@
  define(`m4bwid',`ifelse(`$1',,`24*L_unit',`$1')')dnl
  define(`m4bht',`ifelse(`$2',,`20*lg_pinsep',`$2')')dnl
 #
- command "{\small\sf"
  Connector: box wid m4bwid ht m4bht
 #
  plen = ifelse(`$4',,`2*L_unit',`$4')
@@ -135,7 +134,6 @@
  SCL, SDA, AREF, GND, D13, D12, \char126 D11, \char126 D10, \char126 D9, D8,
  nul, D7, \char126 D6, \char126 D5, D4, \char126 D3, D2, TX D1, RX D0)
 #
- command "}"
  `$4'] ')
 
                            `ArduinoLeonardo( wid,ht,pinlen )'
@@ -143,7 +141,6 @@
  define(`m4bwid',`ifelse(`$1',,`24*L_unit',`$1')')dnl
  define(`m4bht',`ifelse(`$2',,`20*lg_pinsep',`$2')')dnl
 #
- command "{\small\sf"
  Connector: box wid m4bwid ht m4bht
 #
  plen = ifelse(`$4',,`2*L_unit',`$4')
@@ -161,7 +158,6 @@
  \char126 D13, D12, \char126 D11, \char126 D10, \char126 D9, D8,
  nul, D7, \char126 D6, \char126 D5, D4, \char126 D3, D2, TX D1, RX D0)
 #
- command "}"
  `$4'] ')
 
                            `RPi( wid,ht,pinlen )'
@@ -169,7 +165,6 @@
  define(`m4bwid',`ifelse(`$1',,`34*L_unit',`$1')')dnl
  define(`m4bht',`ifelse(`$2',,`21*lg_pinsep',`$2')')dnl
 #
- command "{\small\sf"
  GPIO: box wid m4bwid ht m4bht
  plen = ifelse(`$4',,`6*L_unit',`$4')
 #
@@ -212,7 +207,6 @@
   ;GND,
   16;, 20;, 21; ) 
 #
- command "}"
  `$4'] ')
 
                            `USB_C_Socket( wid, ht, pinlen )'
@@ -219,7 +213,6 @@
 define(`USB_C_Socket',`[
  define(`m4bwid',`ifelse(`$1',,`18*L_unit',`$1')')dnl
  define(`m4bht',`ifelse(`$2',,`14*lg_pinsep',`$2')')dnl
- command "{\small\sf"
 #
  Base: box wid m4bwid ht m4bht rad 5/3*lg_pinsep
  plen = ifelse(`$4',,`6*L_unit',`$4')
@@ -235,7 +228,6 @@
    {"x" rjust at last line.start}',
   GND, TX1$+$, TX1$-$, VBUS, CC1, D$+$, D$-$, SBU1, VBUS, RX2$-$, RX2$+$, GND)
 #
- command "}"
  `$4']')
 
                            `HDMI_micro( wid, ht, pinlen )'
@@ -242,7 +234,6 @@
 define(`HDMI_micro',`[
  define(`m4bwid',`ifelse(`$1',,`16*L_unit',`$1')')dnl
  define(`m4bht',`ifelse(`$2',,`20*lg_pinsep+m4bwid*2/3',`$2')')dnl
- command "{\small\sf"
 #
  Base:[line up m4bht/2 then right m4bwid*2/3 \
   then right m4bwid/3 down m4bwid/3 \
@@ -269,7 +260,6 @@
  r_text(22) at last line.c+(-5bp__,0)
  r_text(SH3) at last line.start + (0, 10bp__)
 #
- command "}"
  `$4']')
 
 divert(0)dnl

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/mf/cct.mf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/mf/cct.mf	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/mf/cct.mf	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,5 +1,5 @@
 % cct.mf, generated by Mfpic, v1.10 2012/12/03,
-% from TeX source "font" on 2020/05/01 at 17:17
+% from TeX source "font" on 2020/12/20 at 17:40
 numeric mfpicversion; mfpicversion := 110;
 if unknown mode: mode := localfont; fi
 if unknown mag: mag := 1000/1000; fi

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/mpost/Makefile
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/mpost/Makefile	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/mpost/Makefile	2020-12-21 22:02:51 UTC (rev 57189)
@@ -27,7 +27,7 @@
   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 \
-  Logic.1 Loglog.1 MC.1 Mixer.1 MotorControl.1 Multiplexer.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 \

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/Makefile
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/Makefile	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/Makefile	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,92 @@
+LIBDIR = $$HOME/lib
+M4LIBS = svg.m4 SVGconfig.m4
+M4LIBS = svg.m4
+
+# To process a single file, copy it to test.m4 and type "make tst"
+# to produce tstSVG.html
+
+DPIC = dpic
+#DPIC = $$HOME/dpic/build/p2c/ftp/dpic
+#DPIC = ../../../dpic/build/p2c/ftp/dpic
+#DPIC = ../../../dpic/bison/dpic
+#DPIC = ../../../dpic/bdev/dpic
+
+# To test the Windows executable.  Change these as needed for the operating
+# system.  NOTE: AntiqueClockSVG.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
+.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
+
+PAGES = examples_1.svg
+
+examplesSVG.html: examplesSVG.htmx pages
+	Version=`sed -e 's/Version //' $(LIBDIR)/doc/Version.tex` ; \
+      sed -e 's/Version XXX/Version '$$Version'/' examplesSVG.htmx \
+      | m4 > examplesSVG.html
+
+pages:
+	(cd .. ; make )
+	cp ../examples.pdf .
+	pdf2svg examples.pdf
+	touch pages
+
+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
+
+AntiqueClockSVG.svg ConnectorsSVG.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__
+	rm -f pages
+	@printf "\n"
+
+clobber: clean
+	(cd dev; make clobber)
+	rm -f test.m4


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/Makefile
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/F_test.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/F_test.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/F_test.tex	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,5 @@
+\documentclass[crop,tikz,multi=false]{standalone}
+\usepackage{boxdims,siunitx,amssymb}
+\begin{document}
+\input test.tex
+\end{document}


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/F_test.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/Makefile
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/Makefile	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/Makefile	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,81 @@
+LIBDIR = $$HOME/lib
+M4LIBS = pgf.m4
+M4 = m4
+
+# To process a single file, copy it to test.m4 and type "make tst"
+# to produce tstSVG.html
+
+DPIC = dpic
+#DPIC = $$HOME/dpic/build/p2c/ftp/dpic
+#DPIC = $$HOME/dpic/build/p2c/ftp/dpic
+#DPIC = $$HOME/dpic/bison/dpic
+#DPIC = $$HOME/dpic/bdev/dpic
+
+.SUFFIXES: .pic .svg .m4 .pdf
+.pic.svg:
+	$(DPIC) -v $*.pic > $*.svg
+	grep '<\!-- width' $*.svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' > $*.siz
+.m4.svg:
+	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_$*
+	pdf2svg F_$*.pdf $*.svg
+	rm -f F_$**
+.m4.pdf:
+	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_$*
+	mv F_$*.pdf $*.pdf
+
+examplesSVG.html: examplesSVG.htmx pages
+	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
+
+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
+
+clean:
+	@printf "\n svg clean:\n"
+	rm -f *.svg *.dim *.ps *log *.siz *.pic examplesSVG.html Incleps.png
+	rm -f tstSVG.html copy_tmp__
+	rm -f pages
+	@printf "\n"
+
+clobber: clean
+	(cd dev; make clobber)
+	rm -f test.m4


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/Makefile
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test-1.svg
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test-1.svg	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test-1.svg	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,162 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<!-- This file was generated by dvisvgm 2.6.3 -->
+<svg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' width='337.972pt' height='139.358pt' viewBox='0 -139.358 337.972 139.358'>
+<g id='page1'>
+<g transform='matrix(1 0 0 -1 0 0)'>
+<path d='M14.37648 26.83561C13.78867 26.447172 13.44992 26.237797 12.46398 26.237797C11.02929 26.237797 10.13304 27.73217 10.13304 29.16655C10.13304 30.52123 10.95961 32.08498 12.48367 32.08498C13.19117 32.08498 13.6393 31.91592 14.18711 31.56717L14.32648 32.38405C13.89836 32.59311 13.13117 32.7228 12.49367 32.7228C10.65086 32.7228 9.236483 31.16873 9.236483 29.07686C9.236483 27.50311 10.4218 25.590297 12.49367 25.590297C13.41023 25.590297 13.78867 25.749672 14.43617 26.148109L14.37648 26.83561Z'/>
+<path d='M7.0763 92.0121H6.19974L3.600049 85.098973H4.33692L5.10411 87.13116H8.00286L8.75974 85.098973H9.6763L7.0763 92.0121ZM7.78349 87.68897H5.31317L5.96067 89.49179C6.17005 90.0796 6.4788 90.92616 6.54849 91.29491H6.55849C6.57817 91.15554 6.64817 90.90647 6.87724 90.24897L7.78349 87.68897ZM14.5152 88.34647C14.5152 89.13335 14.4755 90.0596 14.0571 90.86647C13.6486 91.61366 12.96146 91.85272 12.45333 91.85272C11.86552 91.85272 11.16833 91.58366 10.75989 90.6971C10.43114 89.96991 10.38145 89.14335 10.38145 88.34647C10.38145 87.55929 10.42114 86.8321 10.72021 86.10491C11.11864 85.148661 11.87552 84.879911 12.44333 84.879911C13.17052 84.879911 13.798 85.288348 14.1168 85.975536C14.4158 86.62304 14.5152 87.28054 14.5152 88.34647ZM12.45333 85.487411C11.93521 85.487411 11.52708 85.865848 11.32771 86.58335C11.16833 87.15085 11.15833 87.68897 11.15833 88.46585C11.15833 89.09335 11.15833 89.69116 11.32771 90.23897C11.38739 90.42835 11.63646 91.24491 12.44333 91.24491C13.22021 91.24491 13.4793 90.48804 13.549 90.30866C13.7383 89.75085 13.7383 89.08335 13.7383 88.46585C13.7383 87.80835 13.7383 87.18085 13.559 86.55335C13.29989 85.646786 12.77208 85.487411 12.45333 85.487411Z'/>
+<path d='M7.0763 113.61213H6.19974L3.600049 106.699004H4.33692L5.10411 108.73119H8.00286L8.75974 106.699004H9.6763L7.0763 113.61213ZM7.78349 109.289H5.31317L5.96067 111.09182C6.17005 111.67963 6.4788 112.52619 6.54849 112.89494H6.55849C6.57817 112.75557 6.64817 112.5065 6.87724 111.849L7.78349 109.289ZM12.94145 113.45275H12.74208C12.15458 112.84494 11.32771 112.81525 10.84958 112.79525V112.21744C11.17833 112.22744 11.65645 112.24744 12.15458 112.4565V107.276817H10.90927V106.699004H14.1865V107.276817H12.94145V113.45275Z'/>
+<path d='M7.0763 135.21314H6.19974L3.600049 128.300016H4.33692L5.10411 130.3322H8.00286L8.75974 128.300016H9.6763L7.0763 135.21314ZM7.78349 130.89002H5.31317L5.96067 132.69283C6.17005 133.28064 6.4788 134.1272 6.54849 134.49595H6.55849C6.57817 134.35658 6.64817 134.10752 6.87724 133.45002L7.78349 130.89002ZM11.69614 130.17283L10.46114 128.937516V128.300016H14.4355V129.007203H12.62271C12.50302 129.007203 12.38364 128.997203 12.26396 128.997203H11.17833C11.49708 129.276266 12.25395 130.02345 12.56302 130.3122C12.75208 130.49158 13.26021 130.9097 13.4496 131.08908C13.8977 131.53752 14.4355 132.06533 14.4355 132.9122C14.4355 134.05752 13.6286 135.05377 12.31396 135.05377C11.17833 135.05377 10.62052 134.27689 10.38145 133.42002C10.50083 133.25064 10.55083 133.19095 10.57052 133.16095C10.59052 133.14127 10.6902 133.01158 10.78989 132.8722C10.98895 133.63908 11.26802 134.41627 12.17427 134.41627C13.11083 134.41627 13.6186 133.66908 13.6186 132.8922C13.6186 132.04533 13.05114 131.47752 12.46333 130.88002L11.69614 130.17283Z'/>
+<path d='M16.464844 131.762H43.4648' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M56.0625 131.762L43.4648 124.5586V138.961L56.0625 131.762' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M61.4648 131.762C61.4648 133.254 60.2539 134.461 58.7617 134.461C57.2695 134.461 56.0625 133.254 56.0625 131.762S57.2695 129.0586 58.7617 129.0586C60.2539 129.0586 61.4648 130.27 61.4648 131.762Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M61.4648 131.762H79.4648' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M97.4648 131.762L84.8633 124.5586V138.961L97.4648 131.762' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M84.8672 131.762C84.8672 133.254 83.6563 134.461 82.1641 134.461S79.4609 133.254 79.4609 131.762S80.6719 129.0586 82.1641 129.0586S84.8672 130.27 84.8672 131.762Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M16.464844 110.1602H43.4648' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M56.0625 110.1602L43.4648 102.9609V117.3594L56.0625 110.1602' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M61.4648 110.1602C61.4648 111.6523 60.2539 112.8594 58.7617 112.8594C57.2695 112.8594 56.0625 111.6523 56.0625 110.1602C56.0625 108.668 57.2695 107.457 58.7617 107.457C60.2539 107.457 61.4648 108.668 61.4648 110.1602Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M61.4648 110.1602H79.4648' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M97.4648 110.1602L84.8633 102.9609V117.3594L97.4648 110.1602' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M84.8672 110.1602C84.8672 111.6523 83.6563 112.8594 82.1641 112.8594S79.4609 111.6523 79.4609 110.1602C79.4609 108.668 80.6719 107.457 82.1641 107.457S84.8672 108.668 84.8672 110.1602Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M16.464844 88.5586H43.4648' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M56.0625 88.5586L43.4648 81.3594V95.7617L56.0625 88.5586' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M61.4648 88.5586C61.4648 90.0508 60.2539 91.2617 58.7617 91.2617C57.2695 91.2617 56.0625 90.0508 56.0625 88.5586C56.0625 87.0664 57.2695 85.8594 58.7617 85.8594C60.2539 85.8594 61.4648 87.0664 61.4648 88.5586Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M61.4648 88.5586H79.4648' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M97.4648 88.5586L84.8633 81.3594V95.7617L97.4648 88.5586' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M84.8672 88.5586C84.8672 90.0508 83.6563 91.2617 82.1641 91.2617S79.4609 90.0508 79.4609 88.5586C79.4609 87.0664 80.6719 85.8594 82.1641 85.8594S84.8672 87.0664 84.8672 88.5586Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M58.7617 29.160156L46.1641 21.95703V36.35937L58.7617 29.160156' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M39.2617 77.7578H30.4648' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M30.7891 77.918C34.1055 71.0508 34.1328 63.0469 30.8633 56.1602' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M30.4648 56.1602H39.2617' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M39.2617 77.7578C46.4961 77.7578 53.0625 73.5391 56.0625 66.957' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M39.2617 56.1602C46.4961 56.1602 53.0625 60.3789 56.0625 66.957' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M61.4648 66.957C61.4648 68.4492 60.2539 69.6602 58.7617 69.6602C57.2695 69.6602 56.0625 68.4492 56.0625 66.957C56.0625 65.4687 57.2695 64.2578 58.7617 64.2578C60.2539 64.2578 61.4648 65.4687 61.4648 66.957Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M84.4648 56.1602H75.6641' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M75.9883 56.3164C79.3047 49.4492 79.332 41.4492 76.0625 34.55859' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M75.6641 34.55859H84.4648' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M84.4648 56.1602C91.6953 56.1602 98.2617 51.9375 101.2656 45.3594' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M84.4648 34.55859C91.6953 34.55859 98.2617 38.78125 101.2656 45.3594' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M106.6641 45.3594C106.6641 46.8516 105.457 48.0625 103.9648 48.0625C102.4727 48.0625 101.2617 46.8516 101.2617 45.3594C101.2617 43.8672 102.4727 42.6602 103.9648 42.6602C105.457 42.6602 106.6641 43.8672 106.6641 45.3594Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M202.066 112.8594H187.664V134.461H202.066' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M202.066 134.461C208.027 134.461 212.867 129.625 212.867 123.6602C212.867 117.6953 208.027 112.8594 202.066 112.8594' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M202.066 42.6602H187.664V64.2578H202.066' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M202.066 64.2578C208.027 64.2578 212.867 59.4258 212.867 53.457C212.867 47.4961 208.027 42.6602 202.066 42.6602' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M245.266 58.8594H230.867V80.4609H245.266' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M245.266 80.4609C251.23 80.4609 256.066 75.625 256.066 69.6602C256.066 63.6953 251.23 58.8594 245.266 58.8594' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M280.621 129.0586H271.82' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M272.145 129.219C275.461 122.3477 275.488 114.3516 272.219 107.4609' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M271.82 107.4609H280.621' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M280.621 129.0586C287.852 129.0586 294.418 124.8398 297.418 118.2617' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M280.621 107.4609C287.852 107.4609 294.418 111.6797 297.418 118.2617' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M302.82 118.2617C302.82 119.75 301.613 120.9609 300.121 120.9609C298.629 120.9609 297.418 119.75 297.418 118.2617C297.418 116.7695 298.629 115.5586 300.121 115.5586C301.613 115.5586 302.82 116.7695 302.82 118.2617Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M280.621 69.6602H271.82' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M272.145 69.8164C275.461 62.9492 275.488 54.9492 272.219 48.0586' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M271.82 48.0586H280.621' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M280.621 69.6602C287.852 69.6602 294.418 65.4375 297.418 58.8594' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M280.621 48.0586C287.852 48.0586 294.418 52.2812 297.418 58.8594' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M302.82 58.8594C302.82 60.3516 301.613 61.5625 300.121 61.5625C298.629 61.5625 297.418 60.3516 297.418 58.8594C297.418 57.3672 298.629 56.1602 300.121 56.1602C301.613 56.1602 302.82 57.3672 302.82 58.8594Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M139.52534 9.38724C139.56534 9.59661 139.57503 9.6963 139.77441 9.73599C139.86409 9.75599 140.14284 9.75599 140.32222 9.75599C141.48784 9.75599 141.84628 9.58661 141.84628 8.59036C141.84628 8.32161 141.82628 8.08255 141.79659 7.82349H142.04566L142.23472 10.06474H136.14847L135.58066 7.82349H135.82972C136.25816 9.36755 136.35784 9.75599 137.95159 9.75599C138.10097 9.75599 138.33003 9.75599 138.38972 9.74599C138.59909 9.72599 138.64878 9.6963 138.64878 9.54661C138.64878 9.46692 138.62878 9.37755 138.61878 9.29786L137.74222 4.078174C137.69253 3.759424 137.66253 3.629736 136.60659 3.629736H136.22816L136.17847 3.320986C136.42753 3.340986 136.86566 3.340986 137.11472 3.340986L138.07097 3.350986C138.52909 3.350986 139.54534 3.350986 139.95378 3.320986L140.00347 3.629736H139.62503C138.77816 3.629736 138.61878 3.709424 138.61878 3.928486C138.61878 3.938486 138.61878 3.978486 138.63878 4.087861L139.52534 9.38724Z'/>
+<path d='M145.9198 5.85099C145.9198 6.95692 145.1426 7.78349 144.06698 7.78349C142.6523 7.78349 141.4373 6.39911 141.4373 5.07411C141.4373 4.038174 142.19417 3.211299 143.3098 3.211299C144.6348 3.211299 145.9198 4.40661 145.9198 5.85099ZM143.3498 3.460361C143.07073 3.460361 142.23417 3.560049 142.23417 4.75536C142.23417 5.12411 142.36355 6.21974 142.6723 6.72786C143.16042 7.52474 143.85761 7.56442 144.02698 7.56442C144.34573 7.56442 145.1526 7.41505 145.1526 6.29942C145.1526 6.07036 145.0729 4.99442 144.7245 4.33692C144.41542 3.769111 143.86761 3.460361 143.3498 3.460361Z'/>
+<path d='M154.2178 5.85099C154.2178 6.95692 153.4407 7.78349 152.365 7.78349C150.9503 7.78349 149.7353 6.39911 149.7353 5.07411C149.7353 4.038174 150.4922 3.211299 151.6078 3.211299C152.9328 3.211299 154.2178 4.40661 154.2178 5.85099ZM151.6478 3.460361C151.3688 3.460361 150.5322 3.560049 150.5322 4.75536C150.5322 5.12411 150.6616 6.21974 150.9703 6.72786C151.4585 7.52474 152.1557 7.56442 152.325 7.56442C152.6438 7.56442 153.4507 7.41505 153.4507 6.29942C153.4507 6.07036 153.371 4.99442 153.0225 4.33692C152.7135 3.769111 152.1657 3.460361 151.6478 3.460361ZM156.5094 7.30536H157.9338C157.9538 7.40505 157.9638 7.51474 157.9838 7.61442H156.5594L156.8582 9.44724H156.6091C156.4497 8.51067 155.9219 7.55442 155.0053 7.52474L154.9753 7.30536H155.8122L155.3638 4.58599C155.3341 4.40661 155.3341 4.38692 155.3341 4.257236C155.3341 3.290986 156.141 3.211299 156.4397 3.211299C156.9078 3.211299 157.2166 3.520361 157.396 3.858799C157.5753 4.167549 157.5953 4.297236 157.7247 5.12411H157.4757C157.3563 4.39692 157.3363 4.257236 157.2069 3.998486C157.1272 3.848799 156.8978 3.460361 156.5194 3.460361C156.101 3.460361 156.0016 3.848799 156.0016 4.137861C156.0016 4.247236 156.0113 4.287236 156.0213 4.35692L156.5094 7.30536ZM163.0535 6.33911C163.0835 6.51849 163.0835 6.54849 163.0835 6.70786C163.0835 7.46474 162.5954 7.7238 161.9079 7.7238C161.0614 7.7238 160.5332 7.1163 160.3342 6.78755L160.3242 6.79755L160.902 10.23411L159.6467 10.13442C159.627 10.13442 159.4776 10.12442 159.4676 10.11442C159.4376 10.09474 159.3979 9.84567 159.3979 9.81567C159.9654 9.81567 160.1051 9.76599 160.1051 9.49692C160.1051 9.48692 160.1051 9.41724 160.0751 9.23786L159.2085 4.058174C159.1489 3.679736 159.1089 3.629736 158.3717 3.629736H158.3617L158.312 3.320986C158.6507 3.330986 159.1785 3.350986 159.4376 3.350986C159.6867 3.350986 160.2245 3.330986 160.5432 3.320986L160.6029 3.629736C160.1051 3.629736 159.876 3.629736 159.876 3.878799C159.876 3.908799 159.9457 4.287236 159.9754 4.4863C160.0451 4.92474 160.1151 5.36317 160.1948 5.8013C160.2445 6.13005!
  160.3342 6.60817 160.8223 7.0763C161.121 7.34536 161.4995 7.50474 161.8282 7.50474C162.2167 7.50474 162.416 7.30536 162.416 6.83724C162.416 6.68786 162.396 6.57817 162.3064 6.00067L161.9676 4.008174C161.9079 3.629736 161.7485 3.629736 161.141 3.629736H161.131L161.0814 3.320986C161.4198 3.330986 161.9479 3.350986 162.207 3.350986C162.4557 3.350986 162.9939 3.330986 163.3126 3.320986L163.3723 3.629736C162.8742 3.629736 162.6451 3.629736 162.6451 3.878799C162.6451 3.918799 162.6551 3.978486 162.6651 4.028174L163.0535 6.33911ZM167.7918 5.62192C168.0309 5.62192 168.0509 5.62192 168.0806 5.8113C168.1106 6.03036 168.1106 6.18974 168.1106 6.24974C168.1106 7.42505 167.3237 7.78349 166.6065 7.78349C165.2615 7.78349 164.1359 6.4388 164.1359 5.1338C164.1359 4.018174 164.9528 3.211299 165.9987 3.211299C167.224 3.211299 167.8515 4.34692 167.8515 4.5163C167.8515 4.5563 167.8315 4.62599 167.7421 4.62599C167.6621 4.62599 167.6425 4.58599 167.5925 4.4863C167.1143 3.570049 166.3275 3.460361 166.0584 3.460361C165.6003 3.460361 164.9331 3.749424 164.9331 4.82505C164.9331 5.12411 164.9928 5.47255 165.0225 5.62192H167.7918ZM165.0625 5.8313C165.4112 7.41505 166.3575 7.56442 166.5965 7.56442C167.4631 7.56442 167.4631 6.58817 167.4631 6.38911C167.4631 6.17005 167.4531 6.10005 167.4134 5.8313H165.0625ZM170.187 6.68786L170.3564 7.7238L169.141 7.63411C168.9617 7.62411 168.952 7.60442 168.942 7.55442C168.942 7.52474 168.902 7.32536 168.902 7.30536C169.4698 7.30536 169.6092 7.25567 169.6092 6.98661C169.6092 6.97661 169.6092 6.90692 169.5795 6.72786L169.131 4.058174C169.0714 3.679736 169.0317 3.629736 168.2945 3.629736H168.2845L168.2348 3.320986C168.6332 3.330986 169.0914 3.350986 169.3801 3.350986C169.4401 3.350986 170.3167 3.340986 170.6354 3.320986C170.6551 3.420674 170.6651 3.530049 170.6851 3.629736H170.4957C169.8882 3.629736 169.7685 3.689424 169.7685 3.908799C169.7685 4.048174 170.0873 5.8113 170.1373 6.01036C170.3067 6.56849 170.7151 7.50474 171.6214 7.50474V7.49474C171.462 7.42505 171.3526 7.24567 171.3526 7.04661C171.3526 6.74755 17!
 1.6017 6.67786 171.731 6.67786C171.9801 6.67786 172.2192 6.87724 172.2192 7.17599C172.2192 7.49474 171.9501 7.7238 171.5617 7.7238C170.9242 7.7238 170.436 7.19599 170.197 6.67786L170.187 6.68786Z'/>
+<path d='M178.0887 10.23411L176.8334 10.13442C176.8137 10.13442 176.664 10.12442 176.6543 10.11442C176.6243 10.09474 176.5843 9.84567 176.5843 9.81567C177.1521 9.81567 177.2918 9.76599 177.2918 9.49692C177.2918 9.48692 177.2918 9.41724 177.2618 9.23786L176.3953 4.058174C176.3353 3.679736 176.2956 3.629736 175.5584 3.629736H175.5484L175.4987 3.320986C175.8275 3.330986 176.3553 3.350986 176.6043 3.350986C176.8434 3.350986 177.3415 3.330986 177.7 3.320986L177.76 3.629736C177.2618 3.629736 177.0328 3.629736 177.0328 3.878799C177.0328 3.918799 177.0428 3.978486 177.0528 4.028174L178.0887 10.23411ZM182.8385 4.76536C182.7985 4.5063 182.7288 4.087861 182.6991 3.998486C182.6194 3.699424 182.43 3.570049 182.2807 3.570049C182.0616 3.570049 181.9916 3.789111 181.9916 3.978486C181.9916 4.078174 182.0813 4.56599 182.1013 4.69567C182.161 5.01442 182.3903 6.30942 182.3903 6.52849C182.3903 7.28567 181.7128 7.78349 180.876 7.78349C179.87 7.78349 179.1925 7.13599 179.1925 6.57817C179.1925 6.40911 179.2922 6.18974 179.601 6.18974C179.89 6.18974 180.1191 6.4288 180.1191 6.70786C180.1191 6.96692 179.9397 7.0963 179.7007 7.1063C180.0094 7.45474 180.5472 7.56442 180.8463 7.56442C181.4141 7.56442 181.7128 7.0963 181.7128 6.59817C181.7128 6.49849 181.6432 5.96067 181.6032 5.93067C181.5835 5.92099 181.5635 5.92099 181.3344 5.91099C179.6907 5.85099 178.5053 5.06411 178.5053 4.137861C178.5053 3.370674 179.4716 3.211299 179.9497 3.211299C180.8363 3.211299 181.3044 3.908799 181.3841 4.048174C181.3841 3.360986 181.8125 3.261299 182.0216 3.261299C182.3107 3.261299 182.8685 3.460361 182.9878 4.187549C183.0178 4.317236 183.0278 4.39692 183.0875 4.76536H182.8385ZM181.4338 4.81505C181.3841 4.5163 181.3344 4.207549 180.9557 3.839111C180.7166 3.600049 180.3682 3.430674 180.0194 3.430674C179.591 3.430674 179.2722 3.709424 179.2722 4.117861C179.2722 4.127861 179.2722 5.61192 181.5835 5.71161L181.4338 4.81505ZM185.3094 7.30536H186.7338C186.7538 7.40505 186.7638 7.51474 186.7838 7.61442H185.3594L185.6582 9.44724H185.4091C185.2497 8.51067 184.721!
 9 7.55442 183.8053 7.52474L183.7753 7.30536H184.6122L184.1638 4.58599C184.1341 4.40661 184.1341 4.38692 184.1341 4.257236C184.1341 3.290986 184.941 3.211299 185.2397 3.211299C185.7078 3.211299 186.0166 3.520361 186.196 3.858799C186.3753 4.167549 186.3953 4.297236 186.5247 5.12411H186.2757C186.1563 4.39692 186.1363 4.257236 186.0069 3.998486C185.9272 3.848799 185.6978 3.460361 185.3194 3.460361C184.901 3.460361 184.8016 3.848799 184.8016 4.137861C184.8016 4.247236 184.8113 4.287236 184.8213 4.35692L185.3094 7.30536ZM191.0267 7.16599C190.5089 7.14599 190.4589 6.73755 190.4589 6.63817C190.4589 6.4688 190.5585 6.24974 190.8673 6.24974C191.1164 6.24974 191.3954 6.4388 191.3954 6.83724C191.3954 7.48474 190.6782 7.78349 190.0207 7.78349C188.656 7.78349 187.4607 6.4788 187.4607 5.09411C187.4607 3.958486 188.2776 3.211299 189.2735 3.211299C190.6082 3.211299 191.1164 4.41661 191.1164 4.5063C191.1164 4.58599 191.0467 4.60599 190.997 4.60599C190.9173 4.60599 190.9073 4.58599 190.8473 4.46661C190.5189 3.789111 189.951 3.460361 189.3732 3.460361C188.8851 3.460361 188.2676 3.809111 188.2676 4.88505C188.2676 6.22974 188.9848 7.53474 190.0207 7.53474C190.1601 7.53474 190.7379 7.51474 191.0267 7.16599Z'/>
+<path d='M196.0042 6.33911C196.0342 6.51849 196.0342 6.54849 196.0342 6.70786C196.0342 7.46474 195.546 7.7238 194.8585 7.7238C194.012 7.7238 193.4839 7.1163 193.2848 6.78755L193.2748 6.79755L193.8526 10.23411L192.5973 10.13442C192.5776 10.13442 192.4282 10.12442 192.4182 10.11442C192.3882 10.09474 192.3485 9.84567 192.3485 9.81567C192.916 9.81567 193.0557 9.76599 193.0557 9.49692C193.0557 9.48692 193.0557 9.41724 193.0257 9.23786L192.1592 4.058174C192.0995 3.679736 192.0595 3.629736 191.3223 3.629736H191.3123L191.2626 3.320986C191.6014 3.330986 192.1292 3.350986 192.3882 3.350986C192.6373 3.350986 193.1751 3.330986 193.4939 3.320986L193.5535 3.629736C193.0557 3.629736 192.8267 3.629736 192.8267 3.878799C192.8267 3.908799 192.8964 4.287236 192.926 4.4863C192.9957 4.92474 193.0657 5.36317 193.1454 5.8013C193.1951 6.13005 193.2848 6.60817 193.7729 7.0763C194.0717 7.34536 194.4501 7.50474 194.7789 7.50474C195.1673 7.50474 195.3667 7.30536 195.3667 6.83724C195.3667 6.68786 195.3467 6.57817 195.257 6.00067L194.9182 4.008174C194.8585 3.629736 194.6992 3.629736 194.0917 3.629736H194.0817L194.032 3.320986C194.3704 3.330986 194.8985 3.350986 195.1576 3.350986C195.4064 3.350986 195.9445 3.330986 196.2632 3.320986L196.3229 3.629736C195.8248 3.629736 195.5957 3.629736 195.5957 3.878799C195.5957 3.918799 195.6057 3.978486 195.6157 4.028174L196.0042 6.33911ZM200.7425 5.62192C200.9815 5.62192 201.0015 5.62192 201.0312 5.8113C201.0612 6.03036 201.0612 6.18974 201.0612 6.24974C201.0612 7.42505 200.2743 7.78349 199.5571 7.78349C198.2121 7.78349 197.0865 6.4388 197.0865 5.1338C197.0865 4.018174 197.9034 3.211299 198.9493 3.211299C200.1746 3.211299 200.8021 4.34692 200.8021 4.5163C200.8021 4.5563 200.7821 4.62599 200.6928 4.62599C200.6128 4.62599 200.5931 4.58599 200.5431 4.4863C200.065 3.570049 199.2781 3.460361 199.009 3.460361C198.5509 3.460361 197.8837 3.749424 197.8837 4.82505C197.8837 5.12411 197.9434 5.47255 197.9731 5.62192H200.7425ZM198.0131 5.8313C198.3618 7.41505 199.3081 7.56442 199.5471 7.56442C200.4137 7.56442!
  200.4137 6.58817 200.4137 6.38911C200.4137 6.17005 200.4037 6.10005 200.364 5.8313H198.0131ZM204.9507 7.53474C204.9704 7.62411 204.9704 7.64411 204.9704 7.67411C204.9704 7.7338 204.9407 7.78349 204.861 7.78349C204.821 7.78349 204.801 7.78349 204.6517 7.65411C204.5323 7.56442 204.5223 7.56442 204.4526 7.50474C204.1239 7.78349 203.6854 7.78349 203.556 7.78349C202.1317 7.78349 201.7629 6.88724 201.7629 6.40911C201.7629 6.07036 201.9223 5.8413 202.1217 5.67192C202.3907 5.44286 202.6895 5.38286 203.1576 5.29317C203.5957 5.2038 204.1935 5.08411 204.1935 4.47661C204.1935 4.137861 203.9445 3.430674 202.8885 3.430674C202.4004 3.430674 201.8129 3.600049 201.7529 4.80536C201.7432 4.96474 201.7432 5.01442 201.6235 5.01442C201.5239 5.01442 201.5139 4.98442 201.4842 4.80536L201.2551 3.470361C201.2351 3.380674 201.2351 3.360986 201.2351 3.320986C201.2351 3.251299 201.2748 3.211299 201.3448 3.211299C201.3945 3.211299 201.4045 3.221299 201.6135 3.420674C201.6732 3.470361 201.8129 3.600049 201.8626 3.649736C202.1217 3.310986 202.5001 3.211299 202.8885 3.211299C204.3429 3.211299 204.7214 4.267236 204.7214 4.78536C204.7214 5.1638 204.562 5.41286 204.3829 5.58224C204.0939 5.88099 203.8351 5.93067 203.297 6.03036C202.8489 6.12005 202.291 6.22974 202.291 6.72786C202.291 6.73755 202.291 7.59442 203.556 7.59442C203.7454 7.59442 204.5323 7.59442 204.5323 6.68786C204.5323 6.55849 204.5123 6.4288 204.5123 6.39911C204.5123 6.30942 204.602 6.29942 204.632 6.29942C204.7414 6.29942 204.7514 6.35911 204.7814 6.52849L204.9507 7.53474Z'/>
+<path d='M32.7109 72.3594H16.464844' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M8.704212 75.81309V68.899969H11.3239C13.01734 68.899969 14.37202 70.41403 14.37202 72.29684C14.37202 74.22934 13.02734 75.81309 11.31421 75.81309H8.704212ZM9.56077 69.457781V75.25528H11.08484C12.47952 75.25528 13.51546 74.04997 13.51546 72.29684C13.51546 70.60341 12.47952 69.457781 11.08484 69.457781H9.56077Z'/>
+<path d='M32.7109 61.5586H16.464844' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M14.10396 61.37616V61.98397H10.81678V64.3446H12.19146C12.31115 64.3446 12.43053 64.3346 12.55021 64.3346H14.37303V64.9821H9.930214V58.098973H14.5124V58.806161H13.2574C13.13771 58.806161 13.01834 58.796161 12.89865 58.796161H10.81678V61.37616H14.10396Z'/>
+<path d='M25.14844 61.5586C25.14844 62.3555 24.50391 63 23.71094 63C22.91406 63 22.26953 62.3555 22.26953 61.5586C22.26953 60.7656 22.91406 60.1211 23.71094 60.1211C24.50391 60.1211 25.14844 60.7656 25.14844 61.5586Z'/>
+<path d='M25.14844 61.5586C25.14844 62.3555 24.50391 63 23.71094 63C22.91406 63 22.26953 62.3555 22.26953 61.5586C22.26953 60.7656 22.91406 60.1211 23.71094 60.1211C24.50391 60.1211 25.14844 60.7656 25.14844 61.5586Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M23.71094 61.5586V39.957H77.9102' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M16.464844 29.160156H46.1641' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M71.9023 131.762C71.9023 132.555 71.2578 133.199 70.4648 133.199C69.668 133.199 69.0234 132.555 69.0234 131.762C69.0234 130.965 69.668 130.32 70.4648 130.32C71.2578 130.32 71.9023 130.965 71.9023 131.762Z'/>
+<path d='M71.9023 131.762C71.9023 132.555 71.2578 133.199 70.4648 133.199C69.668 133.199 69.0234 132.555 69.0234 131.762C69.0234 130.965 69.668 130.32 70.4648 130.32C71.2578 130.32 71.9023 130.965 71.9023 131.762Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M70.4648 131.762V120.9609' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M70.4648 120.9609H133.664' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M131.863 21.95703L133.664 14.7578L135.465 21.95703Z'/>
+<path d='M131.863 21.95703L133.664 14.7578L135.465 21.95703Z' stroke='#000' fill='none' stroke-width='0.5' stroke-miterlimit='10'/>
+<path d='M133.664 120.9609V16.4062' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M71.9023 110.1602C71.9023 110.9531 71.2578 111.6016 70.4648 111.6016C69.668 111.6016 69.0234 110.9531 69.0234 110.1602C69.0234 109.3633 69.668 108.7188 70.4648 108.7188C71.2578 108.7188 71.9023 109.3633 71.9023 110.1602Z'/>
+<path d='M71.9023 110.1602C71.9023 110.9531 71.2578 111.6016 70.4648 111.6016C69.668 111.6016 69.0234 110.9531 69.0234 110.1602C69.0234 109.3633 69.668 108.7188 70.4648 108.7188C71.2578 108.7188 71.9023 109.3633 71.9023 110.1602Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M70.4648 110.1602V99.3594' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M70.4648 99.3594H124.664' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M122.863 21.95703L124.664 14.7578L126.465 21.95703Z'/>
+<path d='M122.863 21.95703L124.664 14.7578L126.465 21.95703Z' stroke='#000' fill='none' stroke-width='0.5' stroke-miterlimit='10'/>
+<path d='M124.664 99.3594V16.4062' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M71.9023 88.5586C71.9023 89.3555 71.2578 90 70.4648 90C69.668 90 69.0234 89.3555 69.0234 88.5586C69.0234 87.7656 69.668 87.1211 70.4648 87.1211C71.2578 87.1211 71.9023 87.7656 71.9023 88.5586Z'/>
+<path d='M71.9023 88.5586C71.9023 89.3555 71.2578 90 70.4648 90C69.668 90 69.0234 89.3555 69.0234 88.5586C69.0234 87.7656 69.668 87.1211 70.4648 87.1211C71.2578 87.1211 71.9023 87.7656 71.9023 88.5586Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M70.4648 88.5586V77.7578' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M70.4648 77.7578H115.6641' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M113.8633 21.95703L115.6641 14.7578L117.465 21.95703Z'/>
+<path d='M113.8633 21.95703L115.6641 14.7578L117.465 21.95703Z' stroke='#000' fill='none' stroke-width='0.5' stroke-miterlimit='10'/>
+<path d='M115.6641 77.7578V16.4062' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M71.9023 67.0391C71.9023 67.832 71.2578 68.4766 70.4648 68.4766C69.668 68.4766 69.0234 67.832 69.0234 67.0391C69.0234 66.2422 69.668 65.5977 70.4648 65.5977C71.2578 65.5977 71.9023 66.2422 71.9023 67.0391Z'/>
+<path d='M71.9023 67.0391C71.9023 67.832 71.2578 68.4766 70.4648 68.4766C69.668 68.4766 69.0234 67.832 69.0234 67.0391C69.0234 66.2422 69.668 65.5977 70.4648 65.5977C71.2578 65.5977 71.9023 66.2422 71.9023 67.0391Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M70.4648 67.0391V50.7578H77.9102' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M187.664 131.762H151.664' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M149.863 21.95703L151.664 14.7578L153.465 21.95703Z'/>
+<path d='M149.863 21.95703L151.664 14.7578L153.465 21.95703Z' stroke='#000' fill='none' stroke-width='0.5' stroke-miterlimit='10'/>
+<path d='M151.664 131.762V16.4062' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M187.664 126.3594H160.664' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M158.863 21.95703L160.664 14.7578L162.465 21.95703Z'/>
+<path d='M158.863 21.95703L160.664 14.7578L162.465 21.95703Z' stroke='#000' fill='none' stroke-width='0.5' stroke-miterlimit='10'/>
+<path d='M160.664 126.3594V16.4062' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M187.664 120.9609H169.664' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M167.863 21.95703L169.664 14.7578L171.465 21.95703Z'/>
+<path d='M167.863 21.95703L169.664 14.7578L171.465 21.95703Z' stroke='#000' fill='none' stroke-width='0.5' stroke-miterlimit='10'/>
+<path d='M169.664 120.9609V16.4062' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M187.664 115.5586H178.664' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M176.863 21.95703L178.664 14.7578L180.465 21.95703Z'/>
+<path d='M176.863 21.95703L178.664 14.7578L180.465 21.95703Z' stroke='#000' fill='none' stroke-width='0.5' stroke-miterlimit='10'/>
+<path d='M178.664 115.5586V16.4062' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M97.4648 131.762H151.664' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M153.105 131.762C153.105 132.555 152.461 133.199 151.664 133.199S150.223 132.555 150.223 131.762C150.223 130.965 150.867 130.32 151.664 130.32S153.105 130.965 153.105 131.762Z'/>
+<path d='M153.105 131.762C153.105 132.555 152.461 133.199 151.664 133.199S150.223 132.555 150.223 131.762C150.223 130.965 150.867 130.32 151.664 130.32S153.105 130.965 153.105 131.762Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M97.4648 110.1602H160.664' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M162.105 110.1602C162.105 110.9531 161.461 111.6016 160.664 111.6016S159.223 110.9531 159.223 110.1602C159.223 109.3633 159.867 108.7188 160.664 108.7188S162.105 109.3633 162.105 110.1602Z'/>
+<path d='M162.105 110.1602C162.105 110.9531 161.461 111.6016 160.664 111.6016S159.223 110.9531 159.223 110.1602C159.223 109.3633 159.867 108.7188 160.664 108.7188S162.105 109.3633 162.105 110.1602Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M97.4648 88.5586H169.664' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M171.105 88.5586C171.105 89.3555 170.461 90 169.664 90C168.871 90 168.223 89.3555 168.223 88.5586C168.223 87.7656 168.871 87.1211 169.664 87.1211C170.461 87.1211 171.105 87.7656 171.105 88.5586Z'/>
+<path d='M171.105 88.5586C171.105 89.3555 170.461 90 169.664 90C168.871 90 168.223 89.3555 168.223 88.5586C168.223 87.7656 168.871 87.1211 169.664 87.1211C170.461 87.1211 171.105 87.7656 171.105 88.5586Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M61.4648 66.957L178.664 67.0391' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M180.105 67.0391C180.105 67.832 179.461 68.4766 178.664 68.4766C177.871 68.4766 177.227 67.832 177.227 67.0391C177.227 66.2422 177.871 65.5977 178.664 65.5977C179.461 65.5977 180.105 66.2422 180.105 67.0391Z'/>
+<path d='M180.105 67.0391C180.105 67.832 179.461 68.4766 178.664 68.4766C177.871 68.4766 177.227 67.832 177.227 67.0391C177.227 66.2422 177.871 65.5977 178.664 65.5977C179.461 65.5977 180.105 66.2422 180.105 67.0391Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M187.664 61.5586H151.664' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M153.105 61.5586C153.105 62.3555 152.461 63 151.664 63S150.223 62.3555 150.223 61.5586C150.223 60.7656 150.867 60.1211 151.664 60.1211S153.105 60.7656 153.105 61.5586Z'/>
+<path d='M153.105 61.5586C153.105 62.3555 152.461 63 151.664 63S150.223 62.3555 150.223 61.5586C150.223 60.7656 150.867 60.1211 151.664 60.1211S153.105 60.7656 153.105 61.5586Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M187.664 56.1602H160.664' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M162.105 56.1602C162.105 56.9531 161.461 57.5977 160.664 57.5977S159.223 56.9531 159.223 56.1602C159.223 55.3633 159.867 54.7187 160.664 54.7187S162.105 55.3633 162.105 56.1602Z'/>
+<path d='M162.105 56.1602C162.105 56.9531 161.461 57.5977 160.664 57.5977S159.223 56.9531 159.223 56.1602C159.223 55.3633 159.867 54.7187 160.664 54.7187S162.105 55.3633 162.105 56.1602Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M187.664 50.7578H169.664' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M171.105 50.7578C171.105 51.5547 170.461 52.1992 169.664 52.1992C168.871 52.1992 168.223 51.5547 168.223 50.7578C168.223 49.9648 168.871 49.3203 169.664 49.3203C170.461 49.3203 171.105 49.9648 171.105 50.7578Z'/>
+<path d='M171.105 50.7578C171.105 51.5547 170.461 52.1992 169.664 52.1992C168.871 52.1992 168.223 51.5547 168.223 50.7578C168.223 49.9648 168.871 49.3203 169.664 49.3203C170.461 49.3203 171.105 49.9648 171.105 50.7578Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M106.6641 45.3594H187.664' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M144.105 45.3594C144.105 46.1562 143.461 46.8008 142.664 46.8008C141.867 46.8008 141.223 46.1562 141.223 45.3594C141.223 44.5625 141.867 43.918 142.664 43.918C143.461 43.918 144.105 44.5625 144.105 45.3594Z'/>
+<path d='M144.105 45.3594C144.105 46.1562 143.461 46.8008 142.664 46.8008C141.867 46.8008 141.223 46.1562 141.223 45.3594C141.223 44.5625 141.867 43.918 142.664 43.918C143.461 43.918 144.105 44.5625 144.105 45.3594Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M140.863 21.95703L142.664 14.7578L144.465 21.95703Z'/>
+<path d='M140.863 21.95703L142.664 14.7578L144.465 21.95703Z' stroke='#000' fill='none' stroke-width='0.5' stroke-miterlimit='10'/>
+<path d='M142.664 45.3594V16.4062' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M212.867 123.6602H274.066' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M302.82 118.2617H311.82' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M313.262 118.2617C313.262 119.0547 312.617 119.6992 311.82 119.6992C311.023 119.6992 310.379 119.0547 310.379 118.2617C310.379 117.4648 311.023 116.8203 311.82 116.8203C312.617 116.8203 313.262 117.4648 313.262 118.2617Z'/>
+<path d='M313.262 118.2617C313.262 119.0547 312.617 119.6992 311.82 119.6992C311.023 119.6992 310.379 119.0547 310.379 118.2617C310.379 117.4648 311.023 116.8203 311.82 116.8203C312.617 116.8203 313.262 117.4648 313.262 118.2617Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M311.82 118.2617H320.82' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M327.64537 115.750748C328.731 116.59731 329.09975 117.81262 329.09975 118.85856C329.09975 120.95044 327.65537 122.55418 326.00162 122.55418C324.30819 122.55418 322.893811 120.93044 322.893811 118.85856C322.893811 116.74669 324.36819 115.202935 325.99162 115.202935C326.151 115.202935 326.51975 115.212935 326.94819 115.381998L327.80475 114.177H328.83069L327.64537 115.750748ZM326.55944 115.930123C326.54975 115.930123 326.29069 115.840435 326.00162 115.840435C324.82631 115.840435 323.75037 117.00575 323.75037 118.85856C323.75037 120.72137 324.83631 121.91669 325.99162 121.91669C327.18725 121.91669 328.24287 120.70137 328.24287 118.85856C328.24287 118.21106 328.1235 117.12544 327.22694 116.30856L326.44006 117.3545H325.5535L326.55944 115.930123ZM331.98037 121.24919C332.10006 121.24919 332.21944 121.25918 332.3391 121.25918H333.5444C332.07006 119.63575 331.1835 117.64325 331.1835 115.31231H332.02037C332.02037 118.30075 333.4447 120.43262 334.2216 121.30919V121.95669H330.08787V121.24919H331.98037Z'/>
+<path d='M311.82 118.2617V100.2617L221.867 84.0586' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M221.867 84.0586V75.0586H230.867' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M274.066 112.8594H221.867' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M221.867 112.8594V103.8594L311.82 76.8594' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M311.82 76.8594V58.9375L302.82 58.8594' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M256.066 69.6602H265.066' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M265.066 69.6602V64.2578H274.066' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M212.867 53.457H274.066' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M230.867 64.2578H221.867' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M220.066 21.95703L221.867 14.7578L223.664 21.95703Z'/>
+<path d='M220.066 21.95703L221.867 14.7578L223.664 21.95703Z' stroke='#000' fill='none' stroke-width='0.5' stroke-miterlimit='10'/>
+<path d='M221.867 64.2578V16.4062' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M223.305 29.160156C223.305 29.953125 222.66 30.59766 221.867 30.59766C221.07 30.59766 220.426 29.953125 220.426 29.160156C220.426 28.363281 221.07 27.71875 221.867 27.71875C222.66 27.71875 223.305 28.363281 223.305 29.160156Z'/>
+<path d='M223.305 29.160156C223.305 29.953125 222.66 30.59766 221.867 30.59766C221.07 30.59766 220.426 29.953125 220.426 29.160156C220.426 28.363281 221.07 27.71875 221.867 27.71875C222.66 27.71875 223.305 28.363281 223.305 29.160156Z' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+<path d='M221.867 29.160156H58.7617' stroke='#000' fill='none' stroke-width='0.8' stroke-miterlimit='10'/>
+</g>
+</g>
+</svg>
\ No newline at end of file

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.pdf	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.pdf	2020-12-21 22:02:51 UTC (rev 57189)

Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.pic
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.pic	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.pic	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,383 @@
+.PS
+# ex08.m4
+# log_init Version 9.3: TikZ PGF m4 macro settings.
+  
+# log_init begin
+  # gen_init Version 9.3: 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
+
+
+# log_init end
+
+
+
+
+# Input labels
+C: (0,0); "\sf C " rjust at C
+DE: C+(0,((linewid/10))*((2*3)*7/4))
+A0: DE+(0,((linewid/10))*(4*3/2)); "\sf A0 " rjust at A0
+A1: A0+(0,((linewid/10))*(4*3/2)); "\sf A1 " rjust at A1
+A2: A1+(0,((linewid/10))*(4*3/2)); "\sf A2 " rjust at A2
+  move to (-0.2,0)   # Lettering within the global object 
+
+# Buffer strings
+ line right 3*(linewid/10)*5/2 from A2
+   B1:        [Tm: line from (((linewid/10))*(3.5),0) \
+     to (0,((linewid/10))*(-4/2)) \
+     then to (0,((linewid/10))*(4/2)) \
+     then to (((linewid/10))*(3.5),0)
+     Tc: (((linewid/10))*(3.5/2),0)
+            NE: (((linewid/10))*(3.5/2),((linewid/10))*(4/4))
+      SE: (((linewid/10))*(3.5/2),((linewid/10))*(-4/4))
+           Out: (((linewid/10))*(3.5+(3/2)),0)
+    N_Out: circle diam (3/2)*(linewid/10) \
+     at (((linewid/10))*(3.5+((3/2)/2)),0)
+            In1: (0,0)
+      C: (((linewid/10))*(3.5/3),0)
+      
+  
+  
+  ]; line right 2*(linewid/10)*5/2
+   T1: last line.c
+   B2:        [Tm: line from (((linewid/10))*(3.5),0) \
+     to (0,((linewid/10))*(-4/2)) \
+     then to (0,((linewid/10))*(4/2)) \
+     then to (((linewid/10))*(3.5),0)
+     Tc: (((linewid/10))*(3.5/2),0)
+           In1: (((linewid/10))*(-(3/2)),0)
+    N_In1: circle diam (3/2)*(linewid/10) \
+      at (((linewid/10))*(-((3/2)/2)),0)
+      NE: (((linewid/10))*(3.5/2),((linewid/10))*(4/4))
+      SE: (((linewid/10))*(3.5/2),((linewid/10))*(-4/4))
+                Out: (((linewid/10))*(3.5),0)
+        C: (((linewid/10))*(3.5/3),0)
+      
+  
+  
+  ] 
+   line right 3*(linewid/10)*5/2 from A1
+   B3:        [Tm: line from (((linewid/10))*(3.5),0) \
+     to (0,((linewid/10))*(-4/2)) \
+     then to (0,((linewid/10))*(4/2)) \
+     then to (((linewid/10))*(3.5),0)
+     Tc: (((linewid/10))*(3.5/2),0)
+            NE: (((linewid/10))*(3.5/2),((linewid/10))*(4/4))
+      SE: (((linewid/10))*(3.5/2),((linewid/10))*(-4/4))
+           Out: (((linewid/10))*(3.5+(3/2)),0)
+    N_Out: circle diam (3/2)*(linewid/10) \
+     at (((linewid/10))*(3.5+((3/2)/2)),0)
+            In1: (0,0)
+      C: (((linewid/10))*(3.5/3),0)
+      
+  
+  
+  ]; line right 2*(linewid/10)*5/2
+   T2: last line.c
+   B4:        [Tm: line from (((linewid/10))*(3.5),0) \
+     to (0,((linewid/10))*(-4/2)) \
+     then to (0,((linewid/10))*(4/2)) \
+     then to (((linewid/10))*(3.5),0)
+     Tc: (((linewid/10))*(3.5/2),0)
+           In1: (((linewid/10))*(-(3/2)),0)
+    N_In1: circle diam (3/2)*(linewid/10) \
+      at (((linewid/10))*(-((3/2)/2)),0)
+      NE: (((linewid/10))*(3.5/2),((linewid/10))*(4/4))
+      SE: (((linewid/10))*(3.5/2),((linewid/10))*(-4/4))
+                Out: (((linewid/10))*(3.5),0)
+        C: (((linewid/10))*(3.5/3),0)
+      
+  
+  
+  ] 
+   line right 3*(linewid/10)*5/2 from A0
+   B5:        [Tm: line from (((linewid/10))*(3.5),0) \
+     to (0,((linewid/10))*(-4/2)) \
+     then to (0,((linewid/10))*(4/2)) \
+     then to (((linewid/10))*(3.5),0)
+     Tc: (((linewid/10))*(3.5/2),0)
+            NE: (((linewid/10))*(3.5/2),((linewid/10))*(4/4))
+      SE: (((linewid/10))*(3.5/2),((linewid/10))*(-4/4))
+           Out: (((linewid/10))*(3.5+(3/2)),0)
+    N_Out: circle diam (3/2)*(linewid/10) \
+     at (((linewid/10))*(3.5+((3/2)/2)),0)
+            In1: (0,0)
+      C: (((linewid/10))*(3.5/3),0)
+      
+  
+  
+  ]; line right 2*(linewid/10)*5/2
+   T3: last line.c
+   B6:        [Tm: line from (((linewid/10))*(3.5),0) \
+     to (0,((linewid/10))*(-4/2)) \
+     then to (0,((linewid/10))*(4/2)) \
+     then to (((linewid/10))*(3.5),0)
+     Tc: (((linewid/10))*(3.5/2),0)
+           In1: (((linewid/10))*(-(3/2)),0)
+    N_In1: circle diam (3/2)*(linewid/10) \
+      at (((linewid/10))*(-((3/2)/2)),0)
+      NE: (((linewid/10))*(3.5/2),((linewid/10))*(4/4))
+      SE: (((linewid/10))*(3.5/2),((linewid/10))*(-4/4))
+                Out: (((linewid/10))*(3.5),0)
+        C: (((linewid/10))*(3.5/3),0)
+      
+  
+  
+  ] 
+  
+
+B7:        [Tm: line from (((linewid/10))*(3.5),0) \
+     to (0,((linewid/10))*(-4/2)) \
+     then to (0,((linewid/10))*(4/2)) \
+     then to (((linewid/10))*(3.5),0)
+     Tc: (((linewid/10))*(3.5/2),0)
+            NE: (((linewid/10))*(3.5/2),((linewid/10))*(4/4))
+      SE: (((linewid/10))*(3.5/2),((linewid/10))*(-4/4))
+                Out: (((linewid/10))*(3.5),0)
+      In1: (0,0)
+      C: (((linewid/10))*(3.5/3),0)
+      
+  
+  
+  ] at (B1,C)
+
+G1:       [           Bt: line from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+     to (0,((linewid/10))*((2*3)/2)) chop 0 chop -(linethick *(scale/72)/2)
+    ArcB: arc cw to (0,((linewid/10))*(-(2*3)/2)) \
+      with .c at (((linewid/10))*(0-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)),0)
+    Bb: line to (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) chop -(linethick *(scale/72)/2) chop 0
+         ArcN: arc  cw from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+     to (((linewid/10))*(0+7),0) \
+     with .c at (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+   ArcS: arc ccw from (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) \
+     to (((linewid/10))*(0+7),0) \
+     with .c at (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+          NE: (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((60)*dtor_))))
+      SE: (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((-60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((-60)*dtor_))))
+            N_Out: circle diam (3/2)*(linewid/10) \
+    at (((linewid/10))*(0+7+((3/2)/2)),0)
+    Out: (((linewid/10))*(0+7+(3/2)),0)
+                         In1: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*1))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*1)))
+            
+       In2: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*2))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*2)))
+            
+  
+  
+    C: (((linewid/10))*(0+7/2),0)
+  ] with .Out at (B1.Out,DE)
+G2:       [           Bt: line from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+     to (0,((linewid/10))*((2*3)/2)) chop 0 chop -(linethick *(scale/72)/2)
+    ArcB: arc cw to (0,((linewid/10))*(-(2*3)/2)) \
+      with .c at (((linewid/10))*(0-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)),0)
+    Bb: line to (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) chop -(linethick *(scale/72)/2) chop 0
+         ArcN: arc  cw from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+     to (((linewid/10))*(0+7),0) \
+     with .c at (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+   ArcS: arc ccw from (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) \
+     to (((linewid/10))*(0+7),0) \
+     with .c at (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+          NE: (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((60)*dtor_))))
+      SE: (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((-60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((-60)*dtor_))))
+            N_Out: circle diam (3/2)*(linewid/10) \
+    at (((linewid/10))*(0+7+((3/2)/2)),0)
+    Out: (((linewid/10))*(0+7+(3/2)),0)
+                         In1: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*1))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*1)))
+            
+       In2: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*2))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*2)))
+            
+  
+  
+    C: (((linewid/10))*(0+7/2),0)
+  ] at (B2+(((linewid/10))*(((3/2)/2)),0),G1-(0,((linewid/10))*((2*3))))
+G3:                  [ Bm: line from (((linewid/10))*(7-(2*3)/2),((linewid/10))*(-(2*3)/2)) \
+     to (0,((linewid/10))*(-(2*3)/2)) \
+     then to (0,((linewid/10))*((2*3)/2)) then \
+     to (((linewid/10))*(7-(2*3)/2),((linewid/10))*((2*3)/2))
+       Arc: arc cw rad (2*3)/2 \
+     to Here+(0,((linewid/10))*(-(2*3))) \
+     with .c at Here+(0,((linewid/10))*(-(2*3)/2))
+           NE: (((linewid/10))*(7-(2*3)/2),0)+(((linewid/10))*(((2*3)/2)*(cos((45)*dtor_))),((linewid/10))*(((2*3)/2)*(sin((45)*dtor_))))
+         SE: (((linewid/10))*(7-(2*3)/2),0)+(((linewid/10))*(((2*3)/2)*(cos((-45)*dtor_))),((linewid/10))*(((2*3)/2)*(sin((-45)*dtor_))))
+             Out: (((linewid/10))*(7),0)
+               
+   In1: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-1)))     
+   In2: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-2)))     
+   In3: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-3)))     
+   In4: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-4)))     
+   
+    C: (((linewid/10))*(7/2),0)
+  ] with .In1 at (G2.Out+(9*(linewid/10)*5/2,0),A2)
+G5:                  [ Bm: line from (((linewid/10))*(7-(2*3)/2),((linewid/10))*(-(2*3)/2)) \
+     to (0,((linewid/10))*(-(2*3)/2)) \
+     then to (0,((linewid/10))*((2*3)/2)) then \
+     to (((linewid/10))*(7-(2*3)/2),((linewid/10))*((2*3)/2))
+       Arc: arc cw rad (2*3)/2 \
+     to Here+(0,((linewid/10))*(-(2*3))) \
+     with .c at Here+(0,((linewid/10))*(-(2*3)/2))
+           NE: (((linewid/10))*(7-(2*3)/2),0)+(((linewid/10))*(((2*3)/2)*(cos((45)*dtor_))),((linewid/10))*(((2*3)/2)*(sin((45)*dtor_))))
+         SE: (((linewid/10))*(7-(2*3)/2),0)+(((linewid/10))*(((2*3)/2)*(cos((-45)*dtor_))),((linewid/10))*(((2*3)/2)*(sin((-45)*dtor_))))
+             Out: (((linewid/10))*(7),0)
+               
+   In1: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-1)))     
+   In2: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-2)))     
+   In3: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-3)))     
+   In4: (0,((linewid/10))*((2*3)/min(4,6-1)*((4+1)/2-4)))     
+   
+    C: (((linewid/10))*(7/2),0)
+  ] with .In4 at (G3.In1,G2.Out)
+G6:            [ Bm: line from (((linewid/10))*(7-(2*3)/2),((linewid/10))*(-(2*3)/2)) \
+     to (0,((linewid/10))*(-(2*3)/2)) \
+     then to (0,((linewid/10))*((2*3)/2)) then \
+     to (((linewid/10))*(7-(2*3)/2),((linewid/10))*((2*3)/2))
+       Arc: arc cw rad (2*3)/2 \
+     to Here+(0,((linewid/10))*(-(2*3))) \
+     with .c at Here+(0,((linewid/10))*(-(2*3)/2))
+           NE: (((linewid/10))*(7-(2*3)/2),0)+(((linewid/10))*(((2*3)/2)*(cos((45)*dtor_))),((linewid/10))*(((2*3)/2)*(sin((45)*dtor_))))
+         SE: (((linewid/10))*(7-(2*3)/2),0)+(((linewid/10))*(((2*3)/2)*(cos((-45)*dtor_))),((linewid/10))*(((2*3)/2)*(sin((-45)*dtor_))))
+             Out: (((linewid/10))*(7),0)
+               
+   In1: (0,((linewid/10))*((2*3)/min(2,6-1)*((2+1)/2-1)))     
+   In2: (0,((linewid/10))*((2*3)/min(2,6-1)*((2+1)/2-2)))     
+   
+    C: (((linewid/10))*(7/2),0)
+  ] at G5+(((linewid/10))*(7),((linewid/10))*((2*3)*3/4))+((linewid/10)*5/2*2,0)
+G4:       [           Bt: line from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+     to (0,((linewid/10))*((2*3)/2)) chop 0 chop -(linethick *(scale/72)/2)
+    ArcB: arc cw to (0,((linewid/10))*(-(2*3)/2)) \
+      with .c at (((linewid/10))*(0-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)),0)
+    Bb: line to (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) chop -(linethick *(scale/72)/2) chop 0
+         ArcN: arc  cw from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+     to (((linewid/10))*(0+7),0) \
+     with .c at (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+   ArcS: arc ccw from (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) \
+     to (((linewid/10))*(0+7),0) \
+     with .c at (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+          NE: (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((60)*dtor_))))
+      SE: (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((-60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((-60)*dtor_))))
+            N_Out: circle diam (3/2)*(linewid/10) \
+    at (((linewid/10))*(0+7+((3/2)/2)),0)
+    Out: (((linewid/10))*(0+7+(3/2)),0)
+                         In1: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*1))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*1)))
+            
+       In2: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*2))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*2)))
+            
+  
+  
+    C: (((linewid/10))*(0+7/2),0)
+  ] with .In1 at (G6.Out,G3)+(2*(linewid/10)*5/2,0)
+G7:       [           Bt: line from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+     to (0,((linewid/10))*((2*3)/2)) chop 0 chop -(linethick *(scale/72)/2)
+    ArcB: arc cw to (0,((linewid/10))*(-(2*3)/2)) \
+      with .c at (((linewid/10))*(0-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)),0)
+    Bb: line to (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) chop -(linethick *(scale/72)/2) chop 0
+         ArcN: arc  cw from (((linewid/10))*(0+7/3),((linewid/10))*((2*3)/2)) \
+     to (((linewid/10))*(0+7),0) \
+     with .c at (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+   ArcS: arc ccw from (((linewid/10))*(0+7/3),((linewid/10))*(-(2*3)/2)) \
+     to (((linewid/10))*(0+7),0) \
+     with .c at (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))
+          NE: (((linewid/10))*(0+7/3),((linewid/10))*(-((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((60)*dtor_))))
+      SE: (((linewid/10))*(0+7/3),((linewid/10))*(((7*2/3)^2-((2*3)/2)^2)/((2*3))))+(((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(cos((-60)*dtor_))),((linewid/10))*(((2*3)/2+((7*2/3)^2-((2*3)/2)^2)/((2*3)))*(sin((-60)*dtor_))))
+            N_Out: circle diam (3/2)*(linewid/10) \
+    at (((linewid/10))*(0+7+((3/2)/2)),0)
+    Out: (((linewid/10))*(0+7+(3/2)),0)
+                         In1: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*1))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*1)))
+            
+       In2: (((linewid/10))*(-sqrt((7*(2*3)/((2*3)))^2-((2*3)/2)^2)+sqrt((7*(2*3)/((2*3)))^2-((2*3)/2/min(2,6-1)*(2+1-2*2))^2)),((linewid/10))*((2*3)/2/min(2,6-1)*(2+1-2*2)))
+            
+  
+  
+    C: (((linewid/10))*(0+7/2),0)
+  ] with .In2 at (G4.In2,G5.Out)
+
+# Output to other latches
+TOL: (G2.Out,C)+(4*(linewid/10)*5/2,-4*(linewid/10))
+  move to TOL+(3*(linewid/10)*5/2,-(linewid/10)*5/2/3) ; {move down 0.15}
+  "\sf {\sl To other latches}" below
+
+# Remaining input lines
+  line from G1.In1 to (DE,G1.In1); "\sf D " rjust
+  line from G1.In2 to (DE,G1.In2); "\sf E " rjust
+  [  circle rad (0.04*linewid)  fill 0    ] with .c at G1.In2-((linewid/10)*5/2,0)
+  move to last [].c; line to (Here,G2.In2) then to G2.In2
+  line from C to B7.In1
+
+# Connect Bi, and connect to output bus
+ [  circle rad (0.04*linewid)  fill 0    ] with .c at T1.c
+  move to last [].c ; line down (A2.y-A1.y)/2
+  line to (TOL-(1*(linewid/10)*5/2,0),Here) ; arrow to (Here,TOL) 
+   [  circle rad (0.04*linewid)  fill 0    ] with .c at T2.c
+  move to last [].c ; line down (A2.y-A1.y)/2
+  line to (TOL-(2*(linewid/10)*5/2,0),Here) ; arrow to (Here,TOL) 
+   [  circle rad (0.04*linewid)  fill 0    ] with .c at T3.c
+  move to last [].c ; line down (A2.y-A1.y)/2
+  line to (TOL-(3*(linewid/10)*5/2,0),Here) ; arrow to (Here,TOL) 
+  
+
+# G1 to G2
+  [  circle rad (0.04*linewid)  fill 0    ] with .c at (T1.c,G1)
+  move to last [].c; line to (Here,G2.In1) then to G2.In1
+
+# Upper And inputs to output bus
+ line left 4*(linewid/10)*5/2 from G3.In1
+  arrow to (Here,TOL) 
+   line left 3*(linewid/10)*5/2 from G3.In2
+  arrow to (Here,TOL) 
+   line left 2*(linewid/10)*5/2 from G3.In3
+  arrow to (Here,TOL) 
+   line left 1*(linewid/10)*5/2 from G3.In4
+  arrow to (Here,TOL) 
+  
+
+  line from B2.Out to (G3.In1,B2)-(4*(linewid/10)*5/2,0) ; [  circle rad (0.04*linewid)  fill 0    ] with .c at Here
+  move to last [].c
+  line from B4.Out to (G3.In2,B4)-(3*(linewid/10)*5/2,0) ; [  circle rad (0.04*linewid)  fill 0    ] with .c at Here
+  move to last [].c
+  line from B6.Out to (G3.In3,B6)-(2*(linewid/10)*5/2,0) ; [  circle rad (0.04*linewid)  fill 0    ] with .c at Here
+  move to last [].c
+  line from G1.Out to (G3.In4,G1)-((linewid/10)*5/2,0) ; [  circle rad (0.04*linewid)  fill 0    ] with .c at Here
+  move to last [].c
+
+# Lower And inputs
+  line left 4*(linewid/10)*5/2 from G5.In1 ; [  circle rad (0.04*linewid)  fill 0    ] with .c at Here
+  move to last [].c
+  line left 3*(linewid/10)*5/2 from G5.In2 ; [  circle rad (0.04*linewid)  fill 0    ] with .c at Here
+  move to last [].c
+  line left 2*(linewid/10)*5/2 from G5.In3 ; [  circle rad (0.04*linewid)  fill 0    ] with .c at Here
+  move to last [].c
+  line from G2.Out to G5.In4 ; [  circle rad (0.04*linewid)  fill 0    ] with .c at (TOL,Here)
+  move to last [].c ; arrow to (Here,TOL)
+
+# Fix up G4, G6, G7
+  line from G3.Out to G4.In1
+  line right (linewid/10)*5/2 from G4.Out
+  {[  circle rad (0.04*linewid)  fill 0    ] with .c at Here
+  move to last [].c; line right (linewid/10)*5/2 ; "\sf  Q7" ljust; move right 0.2 } # letters in object
+  line down 2*(linewid/10)*5/2 then to G6.In1+(-(linewid/10)*5/2,(linewid/10)*5/2)
+    line to (Here,G6.In1) then to G6.In1
+  line from G4.In2 to (G6.In1+(-(linewid/10)*5/2,0),G4.In2)
+    line down (linewid/10)*5/2 then to G7.Out+((linewid/10)*5/2,2*(linewid/10)*5/2)
+    line to (Here,G7) then to G7.Out
+  line from G6.Out right (linewid/10)*5/2 ; line to (Here,G7.In1) then to G7.In1
+  line from G5.Out to G7.In2
+  line left (linewid/10)*5/2 from G6.In2 ; arrow to (Here,TOL)
+  [  circle rad (0.04*linewid)  fill 0    ] with .c at (Here,C)
+  move to last [].c ; line to B7.Out
+
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.pic
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.svg
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.svg	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.svg	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,239 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="337.972pt" height="139.358pt" viewBox="0 0 337.972 139.358" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 5.796875 -1.140625 C 5.21875 -0.75 4.875 -0.53125 3.890625 -0.53125 C 2.453125 -0.53125 1.5625 -2.03125 1.5625 -3.46875 C 1.5625 -4.828125 2.375 -6.390625 3.90625 -6.390625 C 4.609375 -6.390625 5.0625 -6.21875 5.609375 -5.875 L 5.75 -6.6875 C 5.328125 -6.890625 4.5625 -7.03125 3.921875 -7.03125 C 2.078125 -7.03125 0.65625 -5.46875 0.65625 -3.375 C 0.65625 -1.796875 1.84375 0.109375 3.921875 0.109375 C 4.828125 0.109375 5.21875 -0.046875 5.859375 -0.453125 Z M 5.796875 -1.140625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 3.765625 -6.921875 L 2.875 -6.921875 L 0.28125 0 L 1.015625 0 L 1.78125 -2.03125 L 4.6875 -2.03125 L 5.4375 0 L 6.359375 0 Z M 4.46875 -2.59375 L 2 -2.59375 L 2.640625 -4.390625 C 2.84375 -4.984375 3.15625 -5.828125 3.234375 -6.203125 C 3.265625 -6.0625 3.328125 -5.8125 3.5625 -5.15625 Z M 4.46875 -2.59375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 4.5625 -3.25 C 4.5625 -4.03125 4.515625 -4.96875 4.09375 -5.765625 C 3.6875 -6.515625 3 -6.765625 2.5 -6.765625 C 1.90625 -6.765625 1.203125 -6.484375 0.796875 -5.609375 C 0.46875 -4.875 0.421875 -4.046875 0.421875 -3.25 C 0.421875 -2.46875 0.453125 -1.734375 0.75 -1 C 1.15625 -0.046875 1.90625 0.21875 2.484375 0.21875 C 3.203125 0.21875 3.84375 -0.1875 4.15625 -0.875 C 4.453125 -1.53125 4.5625 -2.1875 4.5625 -3.25 Z M 2.5 -0.390625 C 1.96875 -0.390625 1.5625 -0.765625 1.359375 -1.484375 C 1.203125 -2.046875 1.203125 -2.59375 1.203125 -3.375 C 1.203125 -4 1.203125 -4.59375 1.359375 -5.140625 C 1.421875 -5.328125 1.671875 -6.15625 2.484375 -6.15625 C 3.265625 -6.15625 3.515625 -5.390625 3.59375 -5.21875 C 3.78125 -4.65625 3.78125 -3.984375 3.78125 -3.375 C 3.78125 -2.71875 3.78125 -2.078125 3.59375 -1.453125 C 3.34375 -0.546875 2.8125 -0.390625 2.5 -0.390625 Z M 2.5 -0.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 2.984375 -6.765625 L 2.78125 -6.765625 C 2.1875 -6.15625 1.359375 -6.125 0.890625 -6.09375 L 0.890625 -5.515625 C 1.21875 -5.53125 1.6875 -5.546875 2.1875 -5.765625 L 2.1875 -0.578125 L 0.953125 -0.578125 L 0.953125 0 L 4.234375 0 L 4.234375 -0.578125 L 2.984375 -0.578125 Z M 2.984375 -6.765625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 1.734375 -1.875 L 0.5 -0.640625 L 0.5 0 L 4.46875 0 L 4.46875 -0.703125 L 2.65625 -0.703125 C 2.546875 -0.703125 2.421875 -0.703125 2.296875 -0.703125 L 1.21875 -0.703125 C 1.53125 -0.984375 2.296875 -1.71875 2.609375 -2.015625 C 2.796875 -2.1875 3.296875 -2.609375 3.484375 -2.796875 C 3.9375 -3.234375 4.46875 -3.765625 4.46875 -4.609375 C 4.46875 -5.765625 3.671875 -6.765625 2.359375 -6.765625 C 1.21875 -6.765625 0.65625 -5.984375 0.421875 -5.125 C 0.53125 -4.953125 0.59375 -4.890625 0.609375 -4.859375 C 0.625 -4.84375 0.734375 -4.71875 0.828125 -4.578125 C 1.03125 -5.34375 1.3125 -6.125 2.21875 -6.125 C 3.15625 -6.125 3.65625 -5.375 3.65625 -4.59375 C 3.65625 -3.75 3.09375 -3.1875 2.5 -2.578125 Z M 1.734375 -1.875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 0.953125 -6.921875 L 0.953125 0 L 3.578125 0 C 5.28125 0 6.625 -1.515625 6.625 -3.40625 C 6.625 -5.328125 5.28125 -6.921875 3.5625 -6.921875 Z M 1.8125 -0.5625 L 1.8125 -6.359375 L 3.34375 -6.359375 C 4.734375 -6.359375 5.765625 -5.15625 5.765625 -3.40625 C 5.765625 -1.703125 4.734375 -0.5625 3.34375 -0.5625 Z M 1.8125 -0.5625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 5.109375 -3.28125 L 5.109375 -3.890625 L 1.828125 -3.890625 L 1.828125 -6.25 L 3.203125 -6.25 C 3.3125 -6.25 3.4375 -6.234375 3.5625 -6.234375 L 5.390625 -6.234375 L 5.390625 -6.890625 L 0.9375 -6.890625 L 0.9375 0 L 5.515625 0 L 5.515625 -0.703125 L 4.265625 -0.703125 C 4.140625 -0.703125 4.03125 -0.703125 3.90625 -0.703125 L 1.828125 -0.703125 L 1.828125 -3.28125 Z M 5.109375 -3.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 5.3125 -0.328125 C 6.40625 -1.171875 6.765625 -2.390625 6.765625 -3.4375 C 6.765625 -5.53125 5.328125 -7.140625 3.671875 -7.140625 C 1.96875 -7.140625 0.5625 -5.515625 0.5625 -3.4375 C 0.5625 -1.328125 2.03125 0.21875 3.65625 0.21875 C 3.8125 0.21875 4.1875 0.203125 4.609375 0.046875 L 5.46875 1.25 L 6.5 1.25 Z M 4.234375 -0.515625 C 4.21875 -0.515625 3.953125 -0.421875 3.671875 -0.421875 C 2.5 -0.421875 1.421875 -1.578125 1.421875 -3.4375 C 1.421875 -5.296875 2.5 -6.5 3.65625 -6.5 C 4.859375 -6.5 5.90625 -5.28125 5.90625 -3.4375 C 5.90625 -2.796875 5.796875 -1.703125 4.890625 -0.890625 L 4.109375 -1.9375 L 3.21875 -1.9375 Z M 4.234375 -0.515625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 2.3125 -5.828125 C 2.4375 -5.828125 2.546875 -5.84375 2.671875 -5.84375 L 3.875 -5.84375 C 2.40625 -4.21875 1.515625 -2.21875 1.515625 0.109375 L 2.359375 0.109375 C 2.359375 -2.875 3.78125 -5.015625 4.5625 -5.890625 L 4.5625 -6.546875 L 0.421875 -6.546875 L 0.421875 -5.828125 Z M 2.3125 -5.828125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M 5.046875 -6.078125 C 5.09375 -6.28125 5.109375 -6.375 5.296875 -6.421875 C 5.390625 -6.4375 5.671875 -6.4375 5.859375 -6.4375 C 7.015625 -6.4375 7.375 -6.265625 7.375 -5.28125 C 7.375 -5 7.359375 -4.765625 7.328125 -4.5 L 7.578125 -4.5 L 7.765625 -6.75 L 1.671875 -6.75 L 1.109375 -4.5 L 1.359375 -4.5 C 1.78125 -6.046875 1.890625 -6.4375 3.484375 -6.4375 C 3.625 -6.4375 3.859375 -6.4375 3.921875 -6.4375 C 4.125 -6.40625 4.171875 -6.375 4.171875 -6.234375 C 4.171875 -6.15625 4.15625 -6.0625 4.140625 -5.984375 L 3.265625 -0.75 C 3.21875 -0.4375 3.1875 -0.3125 2.140625 -0.3125 L 1.75 -0.3125 L 1.703125 0 C 1.953125 -0.015625 2.390625 -0.015625 2.640625 -0.015625 L 3.59375 -0.03125 C 4.0625 -0.03125 5.078125 -0.03125 5.484375 0 L 5.53125 -0.3125 L 5.15625 -0.3125 C 4.3125 -0.3125 4.140625 -0.390625 4.140625 -0.609375 C 4.140625 -0.625 4.140625 -0.65625 4.171875 -0.765625 Z M 5.046875 -6.078125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M 5.078125 -2.53125 C 5.078125 -3.640625 4.3125 -4.46875 3.234375 -4.46875 C 1.8125 -4.46875 0.59375 -3.078125 0.59375 -1.75 C 0.59375 -0.71875 1.359375 0.109375 2.46875 0.109375 C 3.796875 0.109375 5.078125 -1.09375 5.078125 -2.53125 Z M 2.515625 -0.140625 C 2.234375 -0.140625 1.390625 -0.234375 1.390625 -1.4375 C 1.390625 -1.796875 1.53125 -2.90625 1.828125 -3.40625 C 2.328125 -4.203125 3.015625 -4.25 3.1875 -4.25 C 3.515625 -4.25 4.3125 -4.09375 4.3125 -2.984375 C 4.3125 -2.75 4.234375 -1.671875 3.890625 -1.015625 C 3.578125 -0.453125 3.03125 -0.140625 2.515625 -0.140625 Z M 2.515625 -0.140625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M 2.390625 -3.984375 L 3.8125 -3.984375 C 3.84375 -4.09375 3.84375 -4.203125 3.875 -4.296875 L 2.4375 -4.296875 L 2.734375 -6.125 L 2.5 -6.125 C 2.328125 -5.1875 1.796875 -4.234375 0.890625 -4.203125 L 0.859375 -3.984375 L 1.6875 -3.984375 L 1.25 -1.265625 C 1.21875 -1.09375 1.21875 -1.0625 1.21875 -0.9375 C 1.21875 0.03125 2.03125 0.109375 2.328125 0.109375 C 2.796875 0.109375 3.09375 -0.203125 3.28125 -0.53125 C 3.453125 -0.84375 3.484375 -0.984375 3.609375 -1.796875 L 3.359375 -1.796875 C 3.234375 -1.078125 3.21875 -0.9375 3.09375 -0.671875 C 3.015625 -0.53125 2.78125 -0.140625 2.40625 -0.140625 C 1.984375 -0.140625 1.890625 -0.53125 1.890625 -0.8125 C 1.890625 -0.921875 1.890625 -0.96875 1.90625 -1.03125 Z M 2.390625 -3.984375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M 5.0625 -3.015625 C 5.09375 -3.203125 5.09375 -3.234375 5.09375 -3.390625 C 5.09375 -4.140625 4.609375 -4.40625 3.921875 -4.40625 C 3.078125 -4.40625 2.546875 -3.796875 2.34375 -3.46875 L 2.328125 -3.484375 L 2.90625 -6.921875 L 1.65625 -6.8125 C 1.640625 -6.8125 1.484375 -6.8125 1.46875 -6.796875 C 1.453125 -6.78125 1.40625 -6.53125 1.40625 -6.5 C 1.96875 -6.5 2.109375 -6.453125 2.109375 -6.1875 C 2.109375 -6.171875 2.109375 -6.09375 2.078125 -5.921875 L 1.21875 -0.734375 C 1.15625 -0.359375 1.109375 -0.3125 0.375 -0.3125 L 0.3125 0 C 0.65625 -0.015625 1.1875 -0.03125 1.453125 -0.03125 C 1.6875 -0.03125 2.234375 -0.015625 2.546875 0 L 2.609375 -0.3125 C 2.109375 -0.3125 1.890625 -0.3125 1.890625 -0.5625 C 1.890625 -0.59375 1.953125 -0.96875 1.984375 -1.171875 C 2.046875 -1.609375 2.125 -2.046875 2.203125 -2.484375 C 2.25 -2.8125 2.34375 -3.296875 2.828125 -3.765625 C 3.125 -4.03125 3.515625 -4.1875 3.84375 -4.1875 C 4.234375 -4.1875 4.421875 -3.984375 4.421875 -3.515625 C 4.421875 -3.375 4.40625 -3.265625 4.3125 -2.6875 L 3.984375 -0.6875 C 3.921875 -0.3125 3.765625 -0.3125 3.15625 -0.3125 L 3.140625 -0.3125 L 3.09375 0 C 3.421875 -0.015625 3.953125 -0.03125 4.21875 -0.03125 C 4.46875 -0.03125 5 -0.015625 5.328125 0 L 5.390625 -0.3125 C 4.890625 -0.3125 4.65625 -0.3125 4.65625 -0.5625 C 4.65625 -0.59375 4.671875 -0.65625 4.671875 -0.703125 Z M 5.0625 -3.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M 4.265625 -2.296875 C 4.5 -2.296875 4.53125 -2.296875 4.5625 -2.5 C 4.578125 -2.71875 4.578125 -2.875 4.578125 -2.9375 C 4.578125 -4.109375 3.796875 -4.46875 3.078125 -4.46875 C 1.734375 -4.46875 0.609375 -3.125 0.609375 -1.8125 C 0.609375 -0.703125 1.421875 0.109375 2.46875 0.109375 C 3.703125 0.109375 4.328125 -1.03125 4.328125 -1.203125 C 4.328125 -1.234375 4.3125 -1.3125 4.21875 -1.3125 C 4.140625 -1.3125 4.109375 -1.265625 4.0625 -1.171875 C 3.59375 -0.25 2.796875 -0.140625 2.53125 -0.140625 C 2.078125 -0.140625 1.40625 -0.421875 1.40625 -1.5 C 1.40625 -1.796875 1.46875 -2.15625 1.5 -2.296875 Z M 1.53125 -2.515625 C 1.890625 -4.09375 2.828125 -4.25 3.078125 -4.25 C 3.9375 -4.25 3.9375 -3.265625 3.9375 -3.078125 C 3.9375 -2.84375 3.921875 -2.78125 3.890625 -2.515625 Z M 1.53125 -2.515625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d="M 2.234375 -3.375 L 2.40625 -4.40625 L 1.1875 -4.3125 C 1 -4.3125 1 -4.28125 0.984375 -4.234375 C 0.984375 -4.203125 0.953125 -4 0.953125 -3.984375 C 1.515625 -3.984375 1.65625 -3.9375 1.65625 -3.671875 C 1.65625 -3.65625 1.65625 -3.59375 1.625 -3.40625 L 1.171875 -0.734375 C 1.109375 -0.359375 1.078125 -0.3125 0.34375 -0.3125 L 0.328125 -0.3125 L 0.28125 0 C 0.671875 -0.015625 1.140625 -0.03125 1.421875 -0.03125 C 1.484375 -0.03125 2.359375 -0.015625 2.6875 0 C 2.703125 -0.09375 2.71875 -0.203125 2.734375 -0.3125 L 2.546875 -0.3125 C 1.9375 -0.3125 1.8125 -0.375 1.8125 -0.59375 C 1.8125 -0.734375 2.140625 -2.5 2.1875 -2.6875 C 2.359375 -3.25 2.765625 -4.1875 3.671875 -4.1875 L 3.671875 -4.171875 C 3.515625 -4.109375 3.40625 -3.921875 3.40625 -3.734375 C 3.40625 -3.421875 3.65625 -3.359375 3.78125 -3.359375 C 4.03125 -3.359375 4.265625 -3.5625 4.265625 -3.859375 C 4.265625 -4.171875 4 -4.40625 3.609375 -4.40625 C 2.96875 -4.40625 2.484375 -3.875 2.25 -3.359375 Z M 2.234375 -3.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-7">
+<path style="stroke:none;" d="M 2.921875 -6.921875 L 1.671875 -6.8125 C 1.640625 -6.8125 1.5 -6.8125 1.484375 -6.796875 C 1.453125 -6.78125 1.421875 -6.53125 1.421875 -6.5 C 1.984375 -6.5 2.125 -6.453125 2.125 -6.1875 C 2.125 -6.171875 2.125 -6.09375 2.09375 -5.921875 L 1.21875 -0.734375 C 1.171875 -0.359375 1.125 -0.3125 0.390625 -0.3125 L 0.375 -0.3125 L 0.328125 0 C 0.65625 -0.015625 1.1875 -0.03125 1.4375 -0.03125 C 1.671875 -0.03125 2.171875 -0.015625 2.53125 0 L 2.59375 -0.3125 C 2.09375 -0.3125 1.859375 -0.3125 1.859375 -0.5625 C 1.859375 -0.59375 1.875 -0.65625 1.890625 -0.703125 Z M 2.921875 -6.921875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-8">
+<path style="stroke:none;" d="M 4.90625 -1.453125 C 4.859375 -1.1875 4.796875 -0.765625 4.765625 -0.671875 C 4.6875 -0.375 4.5 -0.25 4.34375 -0.25 C 4.125 -0.25 4.0625 -0.46875 4.0625 -0.65625 C 4.0625 -0.75 4.140625 -1.25 4.171875 -1.375 C 4.234375 -1.6875 4.453125 -2.984375 4.453125 -3.203125 C 4.453125 -3.96875 3.78125 -4.46875 2.9375 -4.46875 C 1.9375 -4.46875 1.25 -3.8125 1.25 -3.265625 C 1.25 -3.09375 1.359375 -2.875 1.671875 -2.875 C 1.953125 -2.875 2.1875 -3.109375 2.1875 -3.390625 C 2.1875 -3.65625 2 -3.78125 1.765625 -3.78125 C 2.078125 -4.140625 2.609375 -4.25 2.90625 -4.25 C 3.484375 -4.25 3.78125 -3.78125 3.78125 -3.28125 C 3.78125 -3.1875 3.703125 -2.640625 3.671875 -2.609375 C 3.65625 -2.609375 3.625 -2.609375 3.40625 -2.59375 C 1.75 -2.53125 0.5625 -1.75 0.5625 -0.8125 C 0.5625 -0.046875 1.53125 0.109375 2.015625 0.109375 C 2.90625 0.109375 3.375 -0.59375 3.453125 -0.734375 C 3.453125 -0.046875 3.875 0.0625 4.09375 0.0625 C 4.375 0.0625 4.9375 -0.140625 5.046875 -0.875 C 5.078125 -1 5.09375 -1.078125 5.15625 -1.453125 Z M 3.5 -1.5 C 3.453125 -1.203125 3.40625 -0.890625 3.015625 -0.515625 C 2.78125 -0.28125 2.4375 -0.109375 2.078125 -0.109375 C 1.65625 -0.109375 1.328125 -0.390625 1.328125 -0.796875 C 1.328125 -0.8125 1.328125 -2.296875 3.65625 -2.390625 Z M 3.5 -1.5 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-9">
+<path style="stroke:none;" d="M 4.234375 -3.84375 C 3.71875 -3.828125 3.671875 -3.421875 3.671875 -3.3125 C 3.671875 -3.15625 3.765625 -2.9375 4.078125 -2.9375 C 4.328125 -2.9375 4.609375 -3.125 4.609375 -3.515625 C 4.609375 -4.171875 3.890625 -4.46875 3.234375 -4.46875 C 1.859375 -4.46875 0.671875 -3.15625 0.671875 -1.78125 C 0.671875 -0.640625 1.484375 0.109375 2.484375 0.109375 C 3.8125 0.109375 4.328125 -1.09375 4.328125 -1.1875 C 4.328125 -1.265625 4.25 -1.28125 4.203125 -1.28125 C 4.125 -1.28125 4.109375 -1.265625 4.0625 -1.140625 C 3.734375 -0.46875 3.15625 -0.140625 2.578125 -0.140625 C 2.09375 -0.140625 1.46875 -0.484375 1.46875 -1.5625 C 1.46875 -2.90625 2.1875 -4.21875 3.234375 -4.21875 C 3.375 -4.21875 3.953125 -4.203125 4.234375 -3.84375 Z M 4.234375 -3.84375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-10">
+<path style="stroke:none;" d="M 4.046875 -4.21875 C 4.0625 -4.3125 4.0625 -4.328125 4.0625 -4.359375 C 4.0625 -4.421875 4.03125 -4.46875 3.953125 -4.46875 C 3.921875 -4.46875 3.890625 -4.46875 3.75 -4.34375 C 3.625 -4.25 3.625 -4.25 3.546875 -4.1875 C 3.21875 -4.46875 2.78125 -4.46875 2.65625 -4.46875 C 1.21875 -4.46875 0.859375 -3.5625 0.859375 -3.09375 C 0.859375 -2.75 1.015625 -2.515625 1.21875 -2.359375 C 1.484375 -2.125 1.78125 -2.0625 2.25 -1.96875 C 2.6875 -1.890625 3.296875 -1.765625 3.296875 -1.15625 C 3.296875 -0.8125 3.046875 -0.109375 1.984375 -0.109375 C 1.5 -0.109375 0.90625 -0.28125 0.84375 -1.484375 C 0.84375 -1.640625 0.84375 -1.6875 0.71875 -1.6875 C 0.625 -1.6875 0.609375 -1.671875 0.578125 -1.484375 L 0.34375 -0.15625 C 0.328125 -0.0625 0.328125 -0.046875 0.328125 0 C 0.328125 0.0625 0.375 0.109375 0.4375 0.109375 C 0.484375 0.109375 0.5 0.09375 0.703125 -0.09375 C 0.765625 -0.15625 0.90625 -0.28125 0.953125 -0.328125 C 1.21875 0.015625 1.59375 0.109375 1.984375 0.109375 C 3.4375 0.109375 3.8125 -0.953125 3.8125 -1.46875 C 3.8125 -1.84375 3.65625 -2.09375 3.484375 -2.265625 C 3.1875 -2.5625 2.9375 -2.609375 2.390625 -2.71875 C 1.9375 -2.796875 1.390625 -2.90625 1.390625 -3.40625 C 1.390625 -3.421875 1.390625 -4.28125 2.65625 -4.28125 C 2.84375 -4.28125 3.625 -4.28125 3.625 -3.375 C 3.625 -3.234375 3.609375 -3.109375 3.609375 -3.078125 C 3.609375 -2.984375 3.703125 -2.984375 3.734375 -2.984375 C 3.84375 -2.984375 3.84375 -3.046875 3.875 -3.203125 Z M 4.046875 -4.21875 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface1">
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-1" x="8.579" y="113.658"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-2" x="3.321" y="54.259"/>
+  <use xlink:href="#glyph0-3" x="9.963065" y="54.259"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-2" x="3.321" y="32.659"/>
+  <use xlink:href="#glyph0-4" x="9.963065" y="32.659"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-2" x="3.321" y="11.058"/>
+  <use xlink:href="#glyph0-5" x="9.963065" y="11.058"/>
+</g>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.00184375 102.601344 L 27.001844 102.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 39.5995 102.601344 L 27.001844 95.402125 L 27.001844 109.800563 L 39.5995 102.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 45.001844 102.601344 C 45.001844 104.093531 43.790906 105.300563 42.298719 105.300563 C 40.806531 105.300563 39.5995 104.093531 39.5995 102.601344 C 39.5995 101.109156 40.806531 99.898219 42.298719 99.898219 C 43.790906 99.898219 45.001844 101.109156 45.001844 102.601344 Z M 45.001844 102.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 45.001844 102.601344 L 63.001844 102.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 81.001844 102.601344 L 68.400281 95.402125 L 68.400281 109.800563 L 81.001844 102.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 68.404188 102.601344 C 68.404188 104.093531 67.19325 105.300563 65.701063 105.300563 C 64.208875 105.300563 62.997938 104.093531 62.997938 102.601344 C 62.997938 101.109156 64.208875 99.898219 65.701063 99.898219 C 67.19325 99.898219 68.404188 101.109156 68.404188 102.601344 Z M 68.404188 102.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.00184375 80.999781 L 27.001844 80.999781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 39.5995 80.999781 L 27.001844 73.800563 L 27.001844 88.202906 L 39.5995 80.999781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 45.001844 80.999781 C 45.001844 82.491969 43.790906 83.702906 42.298719 83.702906 C 40.806531 83.702906 39.5995 82.491969 39.5995 80.999781 C 39.5995 79.507594 40.806531 78.300563 42.298719 78.300563 C 43.790906 78.300563 45.001844 79.507594 45.001844 80.999781 Z M 45.001844 80.999781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 45.001844 80.999781 L 63.001844 80.999781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 81.001844 80.999781 L 68.400281 73.800563 L 68.400281 88.202906 L 81.001844 80.999781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 68.404188 80.999781 C 68.404188 82.491969 67.19325 83.702906 65.701063 83.702906 C 64.208875 83.702906 62.997938 82.491969 62.997938 80.999781 C 62.997938 79.507594 64.208875 78.300563 65.701063 78.300563 C 67.19325 78.300563 68.404188 79.507594 68.404188 80.999781 Z M 68.404188 80.999781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.00184375 59.402125 L 27.001844 59.402125 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 39.5995 59.402125 L 27.001844 52.199 L 27.001844 66.601344 L 39.5995 59.402125 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 45.001844 59.402125 C 45.001844 60.890406 43.790906 62.101344 42.298719 62.101344 C 40.806531 62.101344 39.5995 60.890406 39.5995 59.402125 C 39.5995 57.909938 40.806531 56.699 42.298719 56.699 C 43.790906 56.699 45.001844 57.909938 45.001844 59.402125 Z M 45.001844 59.402125 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 45.001844 59.402125 L 63.001844 59.402125 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 81.001844 59.402125 L 68.400281 52.199 L 68.400281 66.601344 L 81.001844 59.402125 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 68.404188 59.402125 C 68.404188 60.890406 67.19325 62.101344 65.701063 62.101344 C 64.208875 62.101344 62.997938 60.890406 62.997938 59.402125 C 62.997938 57.909938 64.208875 56.699 65.701063 56.699 C 67.19325 56.699 68.404188 57.909938 68.404188 59.402125 Z M 68.404188 59.402125 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 42.298719 -0.00021875 L 29.701063 -7.199437 L 29.701063 7.199 L 42.298719 -0.00021875 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 22.798719 48.601344 L 14.001844 48.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 14.326063 48.757594 C 17.642469 41.890406 17.669813 33.890406 14.400281 26.999781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 14.001844 26.999781 L 22.798719 26.999781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 22.798719 48.601344 C 30.033094 48.601344 36.5995 44.378688 39.5995 37.800563 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 22.798719 26.999781 C 30.033094 26.999781 36.5995 31.222438 39.5995 37.800563 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 45.001844 37.800563 C 45.001844 39.29275 43.790906 40.499781 42.298719 40.499781 C 40.806531 40.499781 39.5995 39.29275 39.5995 37.800563 C 39.5995 36.308375 40.806531 35.097438 42.298719 35.097438 C 43.790906 35.097438 45.001844 36.308375 45.001844 37.800563 Z M 45.001844 37.800563 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 68.001844 26.999781 L 59.201063 26.999781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.525281 27.156031 C 62.841688 20.288844 62.869031 12.288844 59.5995 5.398219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 59.201063 5.398219 L 68.001844 5.398219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 68.001844 26.999781 C 75.232313 26.999781 81.798719 22.781031 84.802625 16.199 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 68.001844 5.398219 C 75.232313 5.398219 81.798719 9.620875 84.802625 16.199 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 90.201063 16.199 C 90.201063 17.691188 88.994031 18.902125 87.501844 18.902125 C 86.009656 18.902125 84.798719 17.691188 84.798719 16.199 C 84.798719 14.706813 86.009656 13.499781 87.501844 13.499781 C 88.994031 13.499781 90.201063 14.706813 90.201063 16.199 Z M 90.201063 16.199 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 185.603406 83.702906 L 171.201063 83.702906 L 171.201063 105.300563 L 185.603406 105.300563 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 185.603406 105.300563 C 191.564344 105.300563 196.404188 100.464625 196.404188 94.499781 C 196.404188 88.534938 191.564344 83.702906 185.603406 83.702906 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 185.603406 13.499781 L 171.201063 13.499781 L 171.201063 35.101344 L 185.603406 35.101344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 185.603406 35.101344 C 191.564344 35.101344 196.404188 30.265406 196.404188 24.300563 C 196.404188 18.335719 191.564344 13.499781 185.603406 13.499781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 228.802625 29.699 L 214.404188 29.699 L 214.404188 51.300563 L 228.802625 51.300563 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 228.802625 51.300563 C 234.767469 51.300563 239.603406 46.464625 239.603406 40.499781 C 239.603406 34.534938 234.767469 29.699 228.802625 29.699 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 264.158094 99.902125 L 255.357313 99.902125 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 255.681531 100.058375 C 258.997937 93.191188 259.025281 85.191188 255.75575 78.300563 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 255.357313 78.300563 L 264.158094 78.300563 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 264.158094 99.902125 C 271.388562 99.902125 277.954969 95.679469 280.954969 89.101344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 264.158094 78.300563 C 271.388562 78.300563 277.954969 82.523219 280.954969 89.101344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 286.357312 89.101344 C 286.357312 90.593531 285.150281 91.800563 283.658094 91.800563 C 282.165906 91.800563 280.954969 90.593531 280.954969 89.101344 C 280.954969 87.609156 282.165906 86.398219 283.658094 86.398219 C 285.150281 86.398219 286.357312 87.609156 286.357312 89.101344 Z M 286.357312 89.101344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 264.158094 40.499781 L 255.357313 40.499781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 255.681531 40.656031 C 258.997937 33.788844 259.025281 25.788844 255.75575 18.898219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 255.357313 18.898219 L 264.158094 18.898219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 264.158094 40.499781 C 271.388562 40.499781 277.954969 36.281031 280.954969 29.699 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 264.158094 18.898219 C 271.388562 18.898219 277.954969 23.120875 280.954969 29.699 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 286.357312 29.699 C 286.357312 31.191188 285.150281 32.402125 283.658094 32.402125 C 282.165906 32.402125 280.954969 31.191188 280.954969 29.699 C 280.954969 28.210719 282.165906 26.999781 283.658094 26.999781 C 285.150281 26.999781 286.357312 28.210719 286.357312 29.699 Z M 286.357312 29.699 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-1" x="134.475" y="136.037"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-2" x="140.843094" y="136.037"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-2" x="149.14194" y="136.037"/>
+  <use xlink:href="#glyph1-3" x="154.12324" y="136.037"/>
+  <use xlink:href="#glyph1-4" x="157.997695" y="136.037"/>
+  <use xlink:href="#glyph1-5" x="163.532915" y="136.037"/>
+  <use xlink:href="#glyph1-6" x="167.960295" y="136.037"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-7" x="175.180191" y="136.037"/>
+  <use xlink:href="#glyph1-8" x="177.947801" y="136.037"/>
+  <use xlink:href="#glyph1-3" x="182.929101" y="136.037"/>
+  <use xlink:href="#glyph1-9" x="186.803557" y="136.037"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph1-4" x="190.961946" y="136.037"/>
+  <use xlink:href="#glyph1-5" x="196.497166" y="136.037"/>
+  <use xlink:href="#glyph1-10" x="200.924546" y="136.037"/>
+</g>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 16.247938 43.199 L 0.00184375 43.199 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-6" x="7.748" y="70.458"/>
+</g>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 16.247938 32.398219 L 0.00184375 32.398219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-7" x="8.994" y="81.259"/>
+</g>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.685438 32.398219 C 8.685438 33.195094 8.040906 33.839625 7.247938 33.839625 C 6.451063 33.839625 5.806531 33.195094 5.806531 32.398219 C 5.806531 31.60525 6.451063 30.960719 7.247938 30.960719 C 8.040906 30.960719 8.685438 31.60525 8.685438 32.398219 Z M 8.685438 32.398219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 7.247938 32.398219 L 7.247938 10.800563 L 61.447156 10.800563 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.00184375 -0.00021875 L 29.701063 -0.00021875 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 55.439344 102.601344 C 55.439344 103.398219 54.794813 104.04275 54.001844 104.04275 C 53.204969 104.04275 52.560438 103.398219 52.560438 102.601344 C 52.560438 101.804469 53.204969 101.159938 54.001844 101.159938 C 54.794813 101.159938 55.439344 101.804469 55.439344 102.601344 Z M 55.439344 102.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 54.001844 102.601344 L 54.001844 91.800563 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 54.001844 91.800563 L 117.201063 91.800563 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.12;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 115.400281 -7.199437 L 117.201063 -14.398656 L 119.001844 -7.199437 Z M 115.400281 -7.199437 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 117.201063 91.800563 L 117.201063 -12.750219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 55.439344 80.999781 C 55.439344 81.796656 54.794813 82.441188 54.001844 82.441188 C 53.204969 82.441188 52.560438 81.796656 52.560438 80.999781 C 52.560438 80.206813 53.204969 79.562281 54.001844 79.562281 C 54.794813 79.562281 55.439344 80.206813 55.439344 80.999781 Z M 55.439344 80.999781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 54.001844 80.999781 L 54.001844 70.202906 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 54.001844 70.202906 L 108.201063 70.202906 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.12;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 106.400281 -7.199437 L 108.201063 -14.398656 L 110.001844 -7.199437 Z M 106.400281 -7.199437 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 108.201063 70.202906 L 108.201063 -12.750219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 55.439344 59.402125 C 55.439344 60.195094 54.794813 60.839625 54.001844 60.839625 C 53.204969 60.839625 52.560438 60.195094 52.560438 59.402125 C 52.560438 58.60525 53.204969 57.960719 54.001844 57.960719 C 54.794813 57.960719 55.439344 58.60525 55.439344 59.402125 Z M 55.439344 59.402125 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 54.001844 59.402125 L 54.001844 48.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 54.001844 48.601344 L 99.201063 48.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.12;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 97.400281 -7.199437 L 99.201063 -14.398656 L 101.001844 -7.199437 Z M 97.400281 -7.199437 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 99.201063 48.601344 L 99.201063 -12.750219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 55.439344 37.878688 C 55.439344 38.675563 54.794813 39.320094 54.001844 39.320094 C 53.204969 39.320094 52.560438 38.675563 52.560438 37.878688 C 52.560438 37.081813 53.204969 36.437281 54.001844 36.437281 C 54.794813 36.437281 55.439344 37.081813 55.439344 37.878688 Z M 55.439344 37.878688 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 54.001844 37.878688 L 54.001844 21.601344 L 61.447156 21.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 171.201063 102.601344 L 135.201063 102.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.12;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 133.400281 -7.199437 L 135.201063 -14.398656 L 137.001844 -7.199437 Z M 133.400281 -7.199437 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 135.201063 102.601344 L 135.201063 -12.750219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 171.201063 97.202906 L 144.201063 97.202906 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.12;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 142.400281 -7.199437 L 144.201063 -14.398656 L 146.001844 -7.199437 Z M 142.400281 -7.199437 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 144.201063 97.202906 L 144.201063 -12.750219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 171.201063 91.800563 L 153.201063 91.800563 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.12;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 151.400281 -7.199437 L 153.201063 -14.398656 L 155.001844 -7.199437 Z M 151.400281 -7.199437 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 153.201063 91.800563 L 153.201063 -12.750219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 171.201063 86.402125 L 162.201063 86.402125 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.12;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 160.400281 -7.199437 L 162.201063 -14.398656 L 164.001844 -7.199437 Z M 160.400281 -7.199437 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 162.201063 86.402125 L 162.201063 -12.750219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 81.001844 102.601344 L 135.201063 102.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 136.642469 102.601344 C 136.642469 103.398219 135.997938 104.04275 135.201063 104.04275 C 134.404188 104.04275 133.759656 103.398219 133.759656 102.601344 C 133.759656 101.804469 134.404188 101.159938 135.201063 101.159938 C 135.997938 101.159938 136.642469 101.804469 136.642469 102.601344 Z M 136.642469 102.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 81.001844 80.999781 L 144.201063 80.999781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 145.642469 80.999781 C 145.642469 81.796656 144.997938 82.441188 144.201063 82.441188 C 143.404188 82.441188 142.759656 81.796656 142.759656 80.999781 C 142.759656 80.206813 143.404188 79.562281 144.201063 79.562281 C 144.997938 79.562281 145.642469 80.206813 145.642469 80.999781 Z M 145.642469 80.999781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 81.001844 59.402125 L 153.201063 59.402125 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 154.642469 59.402125 C 154.642469 60.195094 153.997938 60.839625 153.201063 60.839625 C 152.408094 60.839625 151.759656 60.195094 151.759656 59.402125 C 151.759656 58.60525 152.408094 57.960719 153.201063 57.960719 C 153.997938 57.960719 154.642469 58.60525 154.642469 59.402125 Z M 154.642469 59.402125 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 45.001844 37.800563 L 162.201063 37.878688 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 163.642469 37.878688 C 163.642469 38.675563 162.997938 39.320094 162.201063 39.320094 C 161.408094 39.320094 160.763563 38.675563 160.763563 37.878688 C 160.763563 37.081813 161.408094 36.437281 162.201063 36.437281 C 162.997938 36.437281 163.642469 37.081813 163.642469 37.878688 Z M 163.642469 37.878688 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 171.201063 32.398219 L 135.201063 32.398219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 136.642469 32.398219 C 136.642469 33.195094 135.997938 33.839625 135.201063 33.839625 C 134.404188 33.839625 133.759656 33.195094 133.759656 32.398219 C 133.759656 31.60525 134.404188 30.960719 135.201063 30.960719 C 135.997938 30.960719 136.642469 31.60525 136.642469 32.398219 Z M 136.642469 32.398219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 171.201063 26.999781 L 144.201063 26.999781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 145.642469 26.999781 C 145.642469 27.796656 144.997938 28.441188 144.201063 28.441188 C 143.404188 28.441188 142.759656 27.796656 142.759656 26.999781 C 142.759656 26.206813 143.404188 25.558375 144.201063 25.558375 C 144.997938 25.558375 145.642469 26.206813 145.642469 26.999781 Z M 145.642469 26.999781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 171.201063 21.601344 L 153.201063 21.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 154.642469 21.601344 C 154.642469 22.394313 153.997938 23.038844 153.201063 23.038844 C 152.408094 23.038844 151.759656 22.394313 151.759656 21.601344 C 151.759656 20.804469 152.408094 20.159938 153.201063 20.159938 C 153.997938 20.159938 154.642469 20.804469 154.642469 21.601344 Z M 154.642469 21.601344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 90.201063 16.199 L 171.201063 16.199 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 127.642469 16.199 C 127.642469 16.995875 126.997938 17.640406 126.201063 17.640406 C 125.404188 17.640406 124.759656 16.995875 124.759656 16.199 C 124.759656 15.406031 125.404188 14.7615 126.201063 14.7615 C 126.997938 14.7615 127.642469 15.406031 127.642469 16.199 Z M 127.642469 16.199 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.12;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 124.400281 -7.199437 L 126.201063 -14.398656 L 128.001844 -7.199437 Z M 124.400281 -7.199437 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 126.201063 16.199 L 126.201063 -12.750219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 196.404188 94.499781 L 257.603406 94.499781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 286.357312 89.101344 L 295.357312 89.101344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 296.798719 89.101344 C 296.798719 89.898219 296.154187 90.54275 295.357312 90.54275 C 294.560437 90.54275 293.915906 89.898219 293.915906 89.101344 C 293.915906 88.304469 294.560437 87.659938 295.357312 87.659938 C 296.154187 87.659938 296.798719 88.304469 296.798719 89.101344 Z M 296.798719 89.101344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 295.357312 89.101344 L 304.357312 89.101344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+  <use xlink:href="#glyph0-8" x="322.336" y="23.936"/>
+  <use xlink:href="#glyph0-9" x="329.66947" y="23.936"/>
+</g>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 295.357312 89.101344 L 295.357312 71.101344 L 205.404188 54.902125 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 205.404188 54.902125 L 205.404188 45.902125 L 214.404188 45.902125 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 257.603406 83.702906 L 205.404188 83.702906 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 205.404188 83.702906 L 205.404188 74.702906 L 295.357312 47.699 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 295.357312 47.699 L 295.357312 29.777125 L 286.357312 29.699 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 239.603406 40.499781 L 248.603406 40.499781 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 248.603406 40.499781 L 248.603406 35.101344 L 257.603406 35.101344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 196.404188 24.300563 L 257.603406 24.300563 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 214.404188 35.101344 L 205.404188 35.101344 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.12;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 203.603406 -7.199437 L 205.404188 -14.398656 L 207.201063 -7.199437 Z M 203.603406 -7.199437 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 205.404188 35.101344 L 205.404188 -12.750219 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill-rule:nonzero;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 206.841688 -0.00021875 C 206.841688 0.796656 206.197156 1.441188 205.404188 1.441188 C 204.607313 1.441188 203.962781 0.796656 203.962781 -0.00021875 C 203.962781 -0.797094 204.607313 -1.441625 205.404188 -1.441625 C 206.197156 -1.441625 206.841688 -0.797094 206.841688 -0.00021875 Z M 206.841688 -0.00021875 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+<path style="fill:none;stroke-width:0.8;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 205.404188 -0.00021875 L 42.298719 -0.00021875 " transform="matrix(1,0,0,-1,16.463,110.199)"/>
+</g>
+</svg>

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.tex	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.tex	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,1136 @@
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.06.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
+\draw (0,0) node[left=-2bp]{\sf C };
+\draw (0,0.825) node[left=-2bp]{\sf A0 };
+\draw (0,1.125) node[left=-2bp]{\sf A1 };
+\draw (0,1.425) node[left=-2bp]{\sf A2 };
+\dpicdraw (0,1.425)
+ --(0.375,1.425)\dpicstop
+\dpicdraw (0.55,1.425)
+ --(0.375,1.325)
+ --(0.375,1.525)
+ --(0.55,1.425)\dpicstop
+\dpicdraw (0.5875,1.425) circle (0.014764in)\dpicstop
+\dpicdraw (0.625,1.425)
+ --(0.875,1.425)\dpicstop
+\dpicdraw (1.125,1.425)
+ --(0.95,1.325)
+ --(0.95,1.525)
+ --(1.125,1.425)\dpicstop
+\dpicdraw (0.9125,1.425) circle (0.014764in)\dpicstop
+\dpicdraw (0,1.125)
+ --(0.375,1.125)\dpicstop
+\dpicdraw (0.55,1.125)
+ --(0.375,1.025)
+ --(0.375,1.225)
+ --(0.55,1.125)\dpicstop
+\dpicdraw (0.5875,1.125) circle (0.014764in)\dpicstop
+\dpicdraw (0.625,1.125)
+ --(0.875,1.125)\dpicstop
+\dpicdraw (1.125,1.125)
+ --(0.95,1.025)
+ --(0.95,1.225)
+ --(1.125,1.125)\dpicstop
+\dpicdraw (0.9125,1.125) circle (0.014764in)\dpicstop
+\dpicdraw (0,0.825)
+ --(0.375,0.825)\dpicstop
+\dpicdraw (0.55,0.825)
+ --(0.375,0.725)
+ --(0.375,0.925)
+ --(0.55,0.825)\dpicstop
+\dpicdraw (0.5875,0.825) circle (0.014764in)\dpicstop
+\dpicdraw (0.625,0.825)
+ --(0.875,0.825)\dpicstop
+\dpicdraw (1.125,0.825)
+ --(0.95,0.725)
+ --(0.95,0.925)
+ --(1.125,0.825)\dpicstop
+\dpicdraw (0.9125,0.825) circle (0.014764in)\dpicstop
+\dpicdraw (0.5875,0)
+ --(0.4125,-0.1)
+ --(0.4125,0.1)
+ --(0.5875,0)\dpicstop
+\dpicdraw (0.316667,0.675)
+ --(0.194444,0.675)\dpicstop
+\dpicdraw (0.198957,0.677179)
+ ..controls (0.245009,0.581799) and (0.245392,0.470695)
+ ..(0.2,0.375)\dpicstop
+\dpicdraw (0.194444,0.375)
+ --(0.316667,0.375)\dpicstop
+\dpicdraw (0.316667,0.675)
+ ..controls (0.417105,0.675) and (0.508302,0.616374)
+ ..(0.55,0.525)\dpicstop
+\dpicdraw (0.316667,0.375)
+ ..controls (0.417105,0.375) and (0.508302,0.433626)
+ ..(0.55,0.525)\dpicstop
+\dpicdraw (0.5875,0.525) circle (0.014764in)\dpicstop
+\dpicdraw (0.944444,0.375)
+ --(0.822222,0.375)\dpicstop
+\dpicdraw (0.826735,0.377179)
+ ..controls (0.872787,0.281799) and (0.87317,0.170695)
+ ..(0.827778,0.075)\dpicstop
+\dpicdraw (0.822222,0.075)
+ --(0.944444,0.075)\dpicstop
+\dpicdraw (0.944444,0.375)
+ ..controls (1.044883,0.375) and (1.136079,0.316374)
+ ..(1.177778,0.225)\dpicstop
+\dpicdraw (0.944444,0.075)
+ ..controls (1.044883,0.075) and (1.136079,0.133626)
+ ..(1.177778,0.225)\dpicstop
+\dpicdraw (1.215278,0.225) circle (0.014764in)\dpicstop
+\dpicdraw (2.577778,1.1625)
+ --(2.377778,1.1625)
+ --(2.377778,1.4625)
+ --(2.577778,1.4625)\dpicstop
+\dpicdraw (2.577778,1.4625)
+ ..controls (2.66062,1.4625) and (2.727778,1.395343)
+ ..(2.727778,1.3125)
+ ..controls (2.727778,1.229657) and (2.66062,1.1625)
+ ..(2.577778,1.1625)\dpicstop
+\dpicdraw (2.577778,0.1875)
+ --(2.377778,0.1875)
+ --(2.377778,0.4875)
+ --(2.577778,0.4875)\dpicstop
+\dpicdraw (2.577778,0.4875)
+ ..controls (2.66062,0.4875) and (2.727778,0.420343)
+ ..(2.727778,0.3375)
+ ..controls (2.727778,0.254657) and (2.66062,0.1875)
+ ..(2.577778,0.1875)\dpicstop
+\dpicdraw (3.177778,0.4125)
+ --(2.977778,0.4125)
+ --(2.977778,0.7125)
+ --(3.177778,0.7125)\dpicstop
+\dpicdraw (3.177778,0.7125)
+ ..controls (3.26062,0.7125) and (3.327778,0.645343)
+ ..(3.327778,0.5625)
+ ..controls (3.327778,0.479657) and (3.26062,0.4125)
+ ..(3.177778,0.4125)\dpicstop
+\dpicdraw (3.668802,1.3875)
+ --(3.54658,1.3875)\dpicstop
+\dpicdraw (3.551093,1.389679)
+ ..controls (3.597145,1.294299) and (3.597528,1.183195)
+ ..(3.552136,1.0875)\dpicstop
+\dpicdraw (3.54658,1.0875)
+ --(3.668802,1.0875)\dpicstop
+\dpicdraw (3.668802,1.3875)
+ ..controls (3.769241,1.3875) and (3.860437,1.328874)
+ ..(3.902136,1.2375)\dpicstop
+\dpicdraw (3.668802,1.0875)
+ ..controls (3.769241,1.0875) and (3.860437,1.146126)
+ ..(3.902136,1.2375)\dpicstop
+\dpicdraw (3.939636,1.2375) circle (0.014764in)\dpicstop
+\dpicdraw (3.668802,0.5625)
+ --(3.54658,0.5625)\dpicstop
+\dpicdraw (3.551093,0.564679)
+ ..controls (3.597145,0.469299) and (3.597528,0.358195)
+ ..(3.552136,0.2625)\dpicstop
+\dpicdraw (3.54658,0.2625)
+ --(3.668802,0.2625)\dpicstop
+\dpicdraw (3.668802,0.5625)
+ ..controls (3.769241,0.5625) and (3.860437,0.503874)
+ ..(3.902136,0.4125)\dpicstop
+\dpicdraw (3.668802,0.2625)
+ ..controls (3.769241,0.2625) and (3.860437,0.321126)
+ ..(3.902136,0.4125)\dpicstop
+\dpicdraw (3.939636,0.4125) circle (0.014764in)\dpicstop
+\draw (2.127778,-0.241667) node[below=-2bp]{\sf {\sl To other latches}};
+\dpicdraw (0.225642,0.6)
+ --(0,0.6)\dpicstop
+\draw (0,0.6) node[left=-2bp]{\sf D };
+\dpicdraw (0.225642,0.45)
+ --(0,0.45)\dpicstop
+\draw (0,0.45) node[left=-2bp]{\sf E };
+\dpicdraw[fill=black](0.100642,0.45) circle (0.007874in)\dpicstop
+\dpicdraw (0.100642,0.45)
+ --(0.100642,0.15)
+ --(0.85342,0.15)\dpicstop
+\dpicdraw (0,0)
+ --(0.4125,0)\dpicstop
+\dpicdraw[fill=black](0.75,1.425) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,1.425)
+ --(0.75,1.275)\dpicstop
+\dpicdraw (0.75,1.275)
+ --(1.627778,1.275)\dpicstop
+\filldraw[line width=0bp](1.602778,-0.1)
+ --(1.627778,-0.2)
+ --(1.652778,-0.1) --cycle\dpicstop
+\dpicdraw (1.627778,1.275)
+ --(1.627778,-0.177094)\dpicstop
+\dpicdraw[fill=black](0.75,1.125) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,1.125)
+ --(0.75,0.975)\dpicstop
+\dpicdraw (0.75,0.975)
+ --(1.502778,0.975)\dpicstop
+\filldraw[line width=0bp](1.477778,-0.1)
+ --(1.502778,-0.2)
+ --(1.527778,-0.1) --cycle\dpicstop
+\dpicdraw (1.502778,0.975)
+ --(1.502778,-0.177094)\dpicstop
+\dpicdraw[fill=black](0.75,0.825) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,0.825)
+ --(0.75,0.675)\dpicstop
+\dpicdraw (0.75,0.675)
+ --(1.377778,0.675)\dpicstop
+\filldraw[line width=0bp](1.352778,-0.1)
+ --(1.377778,-0.2)
+ --(1.402778,-0.1) --cycle\dpicstop
+\dpicdraw (1.377778,0.675)
+ --(1.377778,-0.177094)\dpicstop
+\dpicdraw[fill=black](0.75,0.526089) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,0.526089)
+ --(0.75,0.3)
+ --(0.85342,0.3)\dpicstop
+\dpicdraw (2.377778,1.425)
+ --(1.877778,1.425)\dpicstop
+\filldraw[line width=0bp](1.852778,-0.1)
+ --(1.877778,-0.2)
+ --(1.902778,-0.1) --cycle\dpicstop
+\dpicdraw (1.877778,1.425)
+ --(1.877778,-0.177094)\dpicstop
+\dpicdraw (2.377778,1.35)
+ --(2.002778,1.35)\dpicstop
+\filldraw[line width=0bp](1.977778,-0.1)
+ --(2.002778,-0.2)
+ --(2.027778,-0.1) --cycle\dpicstop
+\dpicdraw (2.002778,1.35)
+ --(2.002778,-0.177094)\dpicstop
+\dpicdraw (2.377778,1.275)
+ --(2.127778,1.275)\dpicstop
+\filldraw[line width=0bp](2.102778,-0.1)
+ --(2.127778,-0.2)
+ --(2.152778,-0.1) --cycle\dpicstop
+\dpicdraw (2.127778,1.275)
+ --(2.127778,-0.177094)\dpicstop
+\dpicdraw (2.377778,1.2)
+ --(2.252778,1.2)\dpicstop
+\filldraw[line width=0bp](2.227778,-0.1)
+ --(2.252778,-0.2)
+ --(2.277778,-0.1) --cycle\dpicstop
+\dpicdraw (2.252778,1.2)
+ --(2.252778,-0.177094)\dpicstop
+\dpicdraw (1.125,1.425)
+ --(1.877778,1.425)\dpicstop
+\dpicdraw[fill=black](1.877778,1.425) circle (0.007874in)\dpicstop
+\dpicdraw (1.125,1.125)
+ --(2.002778,1.125)\dpicstop
+\dpicdraw[fill=black](2.002778,1.125) circle (0.007874in)\dpicstop
+\dpicdraw (1.125,0.825)
+ --(2.127778,0.825)\dpicstop
+\dpicdraw[fill=black](2.127778,0.825) circle (0.007874in)\dpicstop
+\dpicdraw (0.625,0.525)
+ --(2.252778,0.526089)\dpicstop
+\dpicdraw[fill=black](2.252778,0.526089) circle (0.007874in)\dpicstop
+\dpicdraw (2.377778,0.45)
+ --(1.877778,0.45)\dpicstop
+\dpicdraw[fill=black](1.877778,0.45) circle (0.007874in)\dpicstop
+\dpicdraw (2.377778,0.375)
+ --(2.002778,0.375)\dpicstop
+\dpicdraw[fill=black](2.002778,0.375) circle (0.007874in)\dpicstop
+\dpicdraw (2.377778,0.3)
+ --(2.127778,0.3)\dpicstop
+\dpicdraw[fill=black](2.127778,0.3) circle (0.007874in)\dpicstop
+\dpicdraw (1.252778,0.225)
+ --(2.377778,0.225)\dpicstop
+\dpicdraw[fill=black](1.752778,0.225) circle (0.007874in)\dpicstop
+\filldraw[line width=0bp](1.727778,-0.1)
+ --(1.752778,-0.2)
+ --(1.777778,-0.1) --cycle\dpicstop
+\dpicdraw (1.752778,0.225)
+ --(1.752778,-0.177094)\dpicstop
+\dpicdraw (2.727778,1.3125)
+ --(3.577778,1.3125)\dpicstop
+\dpicdraw (3.977136,1.2375)
+ --(4.102136,1.2375)\dpicstop
+\dpicdraw[fill=black](4.102136,1.2375) circle (0.007874in)\dpicstop
+\dpicdraw (4.102136,1.2375)
+ --(4.227136,1.2375)\dpicstop
+\draw (4.227136,1.2375) node[right=-2bp]{\sf  Q7};
+\dpicdraw (4.102136,1.2375)
+ --(4.102136,0.9875)
+ --(2.852778,0.7625)\dpicstop
+\dpicdraw (2.852778,0.7625)
+ --(2.852778,0.6375)
+ --(2.977778,0.6375)\dpicstop
+\dpicdraw (3.577778,1.1625)
+ --(2.852778,1.1625)\dpicstop
+\dpicdraw (2.852778,1.1625)
+ --(2.852778,1.0375)
+ --(4.102136,0.6625)\dpicstop
+\dpicdraw (4.102136,0.6625)
+ --(4.102136,0.413589)
+ --(3.977136,0.4125)\dpicstop
+\dpicdraw (3.327778,0.5625)
+ --(3.452778,0.5625)\dpicstop
+\dpicdraw (3.452778,0.5625)
+ --(3.452778,0.4875)
+ --(3.577778,0.4875)\dpicstop
+\dpicdraw (2.727778,0.3375)
+ --(3.577778,0.3375)\dpicstop
+\dpicdraw (2.977778,0.4875)
+ --(2.852778,0.4875)\dpicstop
+\filldraw[line width=0bp](2.827778,-0.1)
+ --(2.852778,-0.2)
+ --(2.877778,-0.1) --cycle\dpicstop
+\dpicdraw (2.852778,0.4875)
+ --(2.852778,-0.177094)\dpicstop
+\dpicdraw[fill=black](2.852778,0) circle (0.007874in)\dpicstop
+\dpicdraw (2.852778,0)
+ --(0.5875,0)\dpicstop
+\end{tikzpicture}
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.06.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
+\draw (0,0) node[left=-2bp]{\sf C };
+\draw (0,0.825) node[left=-2bp]{\sf A0 };
+\draw (0,1.125) node[left=-2bp]{\sf A1 };
+\draw (0,1.425) node[left=-2bp]{\sf A2 };
+\dpicdraw (0,1.425)
+ --(0.375,1.425)\dpicstop
+\dpicdraw (0.55,1.425)
+ --(0.375,1.325)
+ --(0.375,1.525)
+ --(0.55,1.425)\dpicstop
+\dpicdraw (0.5875,1.425) circle (0.014764in)\dpicstop
+\dpicdraw (0.625,1.425)
+ --(0.875,1.425)\dpicstop
+\dpicdraw (1.125,1.425)
+ --(0.95,1.325)
+ --(0.95,1.525)
+ --(1.125,1.425)\dpicstop
+\dpicdraw (0.9125,1.425) circle (0.014764in)\dpicstop
+\dpicdraw (0,1.125)
+ --(0.375,1.125)\dpicstop
+\dpicdraw (0.55,1.125)
+ --(0.375,1.025)
+ --(0.375,1.225)
+ --(0.55,1.125)\dpicstop
+\dpicdraw (0.5875,1.125) circle (0.014764in)\dpicstop
+\dpicdraw (0.625,1.125)
+ --(0.875,1.125)\dpicstop
+\dpicdraw (1.125,1.125)
+ --(0.95,1.025)
+ --(0.95,1.225)
+ --(1.125,1.125)\dpicstop
+\dpicdraw (0.9125,1.125) circle (0.014764in)\dpicstop
+\dpicdraw (0,0.825)
+ --(0.375,0.825)\dpicstop
+\dpicdraw (0.55,0.825)
+ --(0.375,0.725)
+ --(0.375,0.925)
+ --(0.55,0.825)\dpicstop
+\dpicdraw (0.5875,0.825) circle (0.014764in)\dpicstop
+\dpicdraw (0.625,0.825)
+ --(0.875,0.825)\dpicstop
+\dpicdraw (1.125,0.825)
+ --(0.95,0.725)
+ --(0.95,0.925)
+ --(1.125,0.825)\dpicstop
+\dpicdraw (0.9125,0.825) circle (0.014764in)\dpicstop
+\dpicdraw (0.5875,0)
+ --(0.4125,-0.1)
+ --(0.4125,0.1)
+ --(0.5875,0)\dpicstop
+\dpicdraw (0.316667,0.675)
+ --(0.194444,0.675)\dpicstop
+\dpicdraw (0.198957,0.677179)
+ ..controls (0.245009,0.581799) and (0.245392,0.470695)
+ ..(0.2,0.375)\dpicstop
+\dpicdraw (0.194444,0.375)
+ --(0.316667,0.375)\dpicstop
+\dpicdraw (0.316667,0.675)
+ ..controls (0.417105,0.675) and (0.508302,0.616374)
+ ..(0.55,0.525)\dpicstop
+\dpicdraw (0.316667,0.375)
+ ..controls (0.417105,0.375) and (0.508302,0.433626)
+ ..(0.55,0.525)\dpicstop
+\dpicdraw (0.5875,0.525) circle (0.014764in)\dpicstop
+\dpicdraw (0.944444,0.375)
+ --(0.822222,0.375)\dpicstop
+\dpicdraw (0.826735,0.377179)
+ ..controls (0.872787,0.281799) and (0.87317,0.170695)
+ ..(0.827778,0.075)\dpicstop
+\dpicdraw (0.822222,0.075)
+ --(0.944444,0.075)\dpicstop
+\dpicdraw (0.944444,0.375)
+ ..controls (1.044883,0.375) and (1.136079,0.316374)
+ ..(1.177778,0.225)\dpicstop
+\dpicdraw (0.944444,0.075)
+ ..controls (1.044883,0.075) and (1.136079,0.133626)
+ ..(1.177778,0.225)\dpicstop
+\dpicdraw (1.215278,0.225) circle (0.014764in)\dpicstop
+\dpicdraw (2.577778,1.1625)
+ --(2.377778,1.1625)
+ --(2.377778,1.4625)
+ --(2.577778,1.4625)\dpicstop
+\dpicdraw (2.577778,1.4625)
+ ..controls (2.66062,1.4625) and (2.727778,1.395343)
+ ..(2.727778,1.3125)
+ ..controls (2.727778,1.229657) and (2.66062,1.1625)
+ ..(2.577778,1.1625)\dpicstop
+\dpicdraw (2.577778,0.1875)
+ --(2.377778,0.1875)
+ --(2.377778,0.4875)
+ --(2.577778,0.4875)\dpicstop
+\dpicdraw (2.577778,0.4875)
+ ..controls (2.66062,0.4875) and (2.727778,0.420343)
+ ..(2.727778,0.3375)
+ ..controls (2.727778,0.254657) and (2.66062,0.1875)
+ ..(2.577778,0.1875)\dpicstop
+\dpicdraw (3.177778,0.4125)
+ --(2.977778,0.4125)
+ --(2.977778,0.7125)
+ --(3.177778,0.7125)\dpicstop
+\dpicdraw (3.177778,0.7125)
+ ..controls (3.26062,0.7125) and (3.327778,0.645343)
+ ..(3.327778,0.5625)
+ ..controls (3.327778,0.479657) and (3.26062,0.4125)
+ ..(3.177778,0.4125)\dpicstop
+\dpicdraw (3.668802,1.3875)
+ --(3.54658,1.3875)\dpicstop
+\dpicdraw (3.551093,1.389679)
+ ..controls (3.597145,1.294299) and (3.597528,1.183195)
+ ..(3.552136,1.0875)\dpicstop
+\dpicdraw (3.54658,1.0875)
+ --(3.668802,1.0875)\dpicstop
+\dpicdraw (3.668802,1.3875)
+ ..controls (3.769241,1.3875) and (3.860437,1.328874)
+ ..(3.902136,1.2375)\dpicstop
+\dpicdraw (3.668802,1.0875)
+ ..controls (3.769241,1.0875) and (3.860437,1.146126)
+ ..(3.902136,1.2375)\dpicstop
+\dpicdraw (3.939636,1.2375) circle (0.014764in)\dpicstop
+\dpicdraw (3.668802,0.5625)
+ --(3.54658,0.5625)\dpicstop
+\dpicdraw (3.551093,0.564679)
+ ..controls (3.597145,0.469299) and (3.597528,0.358195)
+ ..(3.552136,0.2625)\dpicstop
+\dpicdraw (3.54658,0.2625)
+ --(3.668802,0.2625)\dpicstop
+\dpicdraw (3.668802,0.5625)
+ ..controls (3.769241,0.5625) and (3.860437,0.503874)
+ ..(3.902136,0.4125)\dpicstop
+\dpicdraw (3.668802,0.2625)
+ ..controls (3.769241,0.2625) and (3.860437,0.321126)
+ ..(3.902136,0.4125)\dpicstop
+\dpicdraw (3.939636,0.4125) circle (0.014764in)\dpicstop
+\draw (2.127778,-0.241667) node[below=-2bp]{\sf {\sl To other latches}};
+\dpicdraw (0.225642,0.6)
+ --(0,0.6)\dpicstop
+\draw (0,0.6) node[left=-2bp]{\sf D };
+\dpicdraw (0.225642,0.45)
+ --(0,0.45)\dpicstop
+\draw (0,0.45) node[left=-2bp]{\sf E };
+\dpicdraw[fill=black](0.100642,0.45) circle (0.007874in)\dpicstop
+\dpicdraw (0.100642,0.45)
+ --(0.100642,0.15)
+ --(0.85342,0.15)\dpicstop
+\dpicdraw (0,0)
+ --(0.4125,0)\dpicstop
+\dpicdraw[fill=black](0.75,1.425) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,1.425)
+ --(0.75,1.275)\dpicstop
+\dpicdraw (0.75,1.275)
+ --(1.627778,1.275)\dpicstop
+\filldraw[line width=0bp](1.602778,-0.1)
+ --(1.627778,-0.2)
+ --(1.652778,-0.1) --cycle\dpicstop
+\dpicdraw (1.627778,1.275)
+ --(1.627778,-0.177094)\dpicstop
+\dpicdraw[fill=black](0.75,1.125) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,1.125)
+ --(0.75,0.975)\dpicstop
+\dpicdraw (0.75,0.975)
+ --(1.502778,0.975)\dpicstop
+\filldraw[line width=0bp](1.477778,-0.1)
+ --(1.502778,-0.2)
+ --(1.527778,-0.1) --cycle\dpicstop
+\dpicdraw (1.502778,0.975)
+ --(1.502778,-0.177094)\dpicstop
+\dpicdraw[fill=black](0.75,0.825) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,0.825)
+ --(0.75,0.675)\dpicstop
+\dpicdraw (0.75,0.675)
+ --(1.377778,0.675)\dpicstop
+\filldraw[line width=0bp](1.352778,-0.1)
+ --(1.377778,-0.2)
+ --(1.402778,-0.1) --cycle\dpicstop
+\dpicdraw (1.377778,0.675)
+ --(1.377778,-0.177094)\dpicstop
+\dpicdraw[fill=black](0.75,0.526089) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,0.526089)
+ --(0.75,0.3)
+ --(0.85342,0.3)\dpicstop
+\dpicdraw (2.377778,1.425)
+ --(1.877778,1.425)\dpicstop
+\filldraw[line width=0bp](1.852778,-0.1)
+ --(1.877778,-0.2)
+ --(1.902778,-0.1) --cycle\dpicstop
+\dpicdraw (1.877778,1.425)
+ --(1.877778,-0.177094)\dpicstop
+\dpicdraw (2.377778,1.35)
+ --(2.002778,1.35)\dpicstop
+\filldraw[line width=0bp](1.977778,-0.1)
+ --(2.002778,-0.2)
+ --(2.027778,-0.1) --cycle\dpicstop
+\dpicdraw (2.002778,1.35)
+ --(2.002778,-0.177094)\dpicstop
+\dpicdraw (2.377778,1.275)
+ --(2.127778,1.275)\dpicstop
+\filldraw[line width=0bp](2.102778,-0.1)
+ --(2.127778,-0.2)
+ --(2.152778,-0.1) --cycle\dpicstop
+\dpicdraw (2.127778,1.275)
+ --(2.127778,-0.177094)\dpicstop
+\dpicdraw (2.377778,1.2)
+ --(2.252778,1.2)\dpicstop
+\filldraw[line width=0bp](2.227778,-0.1)
+ --(2.252778,-0.2)
+ --(2.277778,-0.1) --cycle\dpicstop
+\dpicdraw (2.252778,1.2)
+ --(2.252778,-0.177094)\dpicstop
+\dpicdraw (1.125,1.425)
+ --(1.877778,1.425)\dpicstop
+\dpicdraw[fill=black](1.877778,1.425) circle (0.007874in)\dpicstop
+\dpicdraw (1.125,1.125)
+ --(2.002778,1.125)\dpicstop
+\dpicdraw[fill=black](2.002778,1.125) circle (0.007874in)\dpicstop
+\dpicdraw (1.125,0.825)
+ --(2.127778,0.825)\dpicstop
+\dpicdraw[fill=black](2.127778,0.825) circle (0.007874in)\dpicstop
+\dpicdraw (0.625,0.525)
+ --(2.252778,0.526089)\dpicstop
+\dpicdraw[fill=black](2.252778,0.526089) circle (0.007874in)\dpicstop
+\dpicdraw (2.377778,0.45)
+ --(1.877778,0.45)\dpicstop
+\dpicdraw[fill=black](1.877778,0.45) circle (0.007874in)\dpicstop
+\dpicdraw (2.377778,0.375)
+ --(2.002778,0.375)\dpicstop
+\dpicdraw[fill=black](2.002778,0.375) circle (0.007874in)\dpicstop
+\dpicdraw (2.377778,0.3)
+ --(2.127778,0.3)\dpicstop
+\dpicdraw[fill=black](2.127778,0.3) circle (0.007874in)\dpicstop
+\dpicdraw (1.252778,0.225)
+ --(2.377778,0.225)\dpicstop
+\dpicdraw[fill=black](1.752778,0.225) circle (0.007874in)\dpicstop
+\filldraw[line width=0bp](1.727778,-0.1)
+ --(1.752778,-0.2)
+ --(1.777778,-0.1) --cycle\dpicstop
+\dpicdraw (1.752778,0.225)
+ --(1.752778,-0.177094)\dpicstop
+\dpicdraw (2.727778,1.3125)
+ --(3.577778,1.3125)\dpicstop
+\dpicdraw (3.977136,1.2375)
+ --(4.102136,1.2375)\dpicstop
+\dpicdraw[fill=black](4.102136,1.2375) circle (0.007874in)\dpicstop
+\dpicdraw (4.102136,1.2375)
+ --(4.227136,1.2375)\dpicstop
+\draw (4.227136,1.2375) node[right=-2bp]{\sf  Q7};
+\dpicdraw (4.102136,1.2375)
+ --(4.102136,0.9875)
+ --(2.852778,0.7625)\dpicstop
+\dpicdraw (2.852778,0.7625)
+ --(2.852778,0.6375)
+ --(2.977778,0.6375)\dpicstop
+\dpicdraw (3.577778,1.1625)
+ --(2.852778,1.1625)\dpicstop
+\dpicdraw (2.852778,1.1625)
+ --(2.852778,1.0375)
+ --(4.102136,0.6625)\dpicstop
+\dpicdraw (4.102136,0.6625)
+ --(4.102136,0.413589)
+ --(3.977136,0.4125)\dpicstop
+\dpicdraw (3.327778,0.5625)
+ --(3.452778,0.5625)\dpicstop
+\dpicdraw (3.452778,0.5625)
+ --(3.452778,0.4875)
+ --(3.577778,0.4875)\dpicstop
+\dpicdraw (2.727778,0.3375)
+ --(3.577778,0.3375)\dpicstop
+\dpicdraw (2.977778,0.4875)
+ --(2.852778,0.4875)\dpicstop
+\filldraw[line width=0bp](2.827778,-0.1)
+ --(2.852778,-0.2)
+ --(2.877778,-0.1) --cycle\dpicstop
+\dpicdraw (2.852778,0.4875)
+ --(2.852778,-0.177094)\dpicstop
+\dpicdraw[fill=black](2.852778,0) circle (0.007874in)\dpicstop
+\dpicdraw (2.852778,0)
+ --(0.5875,0)\dpicstop
+\end{tikzpicture}
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.06.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
+\draw (0,0) node[left=-2bp]{\sf C };
+\draw (0,0.825) node[left=-2bp]{\sf A0 };
+\draw (0,1.125) node[left=-2bp]{\sf A1 };
+\draw (0,1.425) node[left=-2bp]{\sf A2 };
+\dpicdraw (0,1.425)
+ --(0.375,1.425)\dpicstop
+\dpicdraw (0.55,1.425)
+ --(0.375,1.325)
+ --(0.375,1.525)
+ --(0.55,1.425)\dpicstop
+\dpicdraw (0.5875,1.425) circle (0.014764in)\dpicstop
+\dpicdraw (0.625,1.425)
+ --(0.875,1.425)\dpicstop
+\dpicdraw (1.125,1.425)
+ --(0.95,1.325)
+ --(0.95,1.525)
+ --(1.125,1.425)\dpicstop
+\dpicdraw (0.9125,1.425) circle (0.014764in)\dpicstop
+\dpicdraw (0,1.125)
+ --(0.375,1.125)\dpicstop
+\dpicdraw (0.55,1.125)
+ --(0.375,1.025)
+ --(0.375,1.225)
+ --(0.55,1.125)\dpicstop
+\dpicdraw (0.5875,1.125) circle (0.014764in)\dpicstop
+\dpicdraw (0.625,1.125)
+ --(0.875,1.125)\dpicstop
+\dpicdraw (1.125,1.125)
+ --(0.95,1.025)
+ --(0.95,1.225)
+ --(1.125,1.125)\dpicstop
+\dpicdraw (0.9125,1.125) circle (0.014764in)\dpicstop
+\dpicdraw (0,0.825)
+ --(0.375,0.825)\dpicstop
+\dpicdraw (0.55,0.825)
+ --(0.375,0.725)
+ --(0.375,0.925)
+ --(0.55,0.825)\dpicstop
+\dpicdraw (0.5875,0.825) circle (0.014764in)\dpicstop
+\dpicdraw (0.625,0.825)
+ --(0.875,0.825)\dpicstop
+\dpicdraw (1.125,0.825)
+ --(0.95,0.725)
+ --(0.95,0.925)
+ --(1.125,0.825)\dpicstop
+\dpicdraw (0.9125,0.825) circle (0.014764in)\dpicstop
+\dpicdraw (0.5875,0)
+ --(0.4125,-0.1)
+ --(0.4125,0.1)
+ --(0.5875,0)\dpicstop
+\dpicdraw (0.316667,0.675)
+ --(0.194444,0.675)\dpicstop
+\dpicdraw (0.198957,0.677179)
+ ..controls (0.245009,0.581799) and (0.245392,0.470695)
+ ..(0.2,0.375)\dpicstop
+\dpicdraw (0.194444,0.375)
+ --(0.316667,0.375)\dpicstop
+\dpicdraw (0.316667,0.675)
+ ..controls (0.417105,0.675) and (0.508302,0.616374)
+ ..(0.55,0.525)\dpicstop
+\dpicdraw (0.316667,0.375)
+ ..controls (0.417105,0.375) and (0.508302,0.433626)
+ ..(0.55,0.525)\dpicstop
+\dpicdraw (0.5875,0.525) circle (0.014764in)\dpicstop
+\dpicdraw (0.944444,0.375)
+ --(0.822222,0.375)\dpicstop
+\dpicdraw (0.826735,0.377179)
+ ..controls (0.872787,0.281799) and (0.87317,0.170695)
+ ..(0.827778,0.075)\dpicstop
+\dpicdraw (0.822222,0.075)
+ --(0.944444,0.075)\dpicstop
+\dpicdraw (0.944444,0.375)
+ ..controls (1.044883,0.375) and (1.136079,0.316374)
+ ..(1.177778,0.225)\dpicstop
+\dpicdraw (0.944444,0.075)
+ ..controls (1.044883,0.075) and (1.136079,0.133626)
+ ..(1.177778,0.225)\dpicstop
+\dpicdraw (1.215278,0.225) circle (0.014764in)\dpicstop
+\dpicdraw (2.577778,1.1625)
+ --(2.377778,1.1625)
+ --(2.377778,1.4625)
+ --(2.577778,1.4625)\dpicstop
+\dpicdraw (2.577778,1.4625)
+ ..controls (2.66062,1.4625) and (2.727778,1.395343)
+ ..(2.727778,1.3125)
+ ..controls (2.727778,1.229657) and (2.66062,1.1625)
+ ..(2.577778,1.1625)\dpicstop
+\dpicdraw (2.577778,0.1875)
+ --(2.377778,0.1875)
+ --(2.377778,0.4875)
+ --(2.577778,0.4875)\dpicstop
+\dpicdraw (2.577778,0.4875)
+ ..controls (2.66062,0.4875) and (2.727778,0.420343)
+ ..(2.727778,0.3375)
+ ..controls (2.727778,0.254657) and (2.66062,0.1875)
+ ..(2.577778,0.1875)\dpicstop
+\dpicdraw (3.177778,0.4125)
+ --(2.977778,0.4125)
+ --(2.977778,0.7125)
+ --(3.177778,0.7125)\dpicstop
+\dpicdraw (3.177778,0.7125)
+ ..controls (3.26062,0.7125) and (3.327778,0.645343)
+ ..(3.327778,0.5625)
+ ..controls (3.327778,0.479657) and (3.26062,0.4125)
+ ..(3.177778,0.4125)\dpicstop
+\dpicdraw (3.668802,1.3875)
+ --(3.54658,1.3875)\dpicstop
+\dpicdraw (3.551093,1.389679)
+ ..controls (3.597145,1.294299) and (3.597528,1.183195)
+ ..(3.552136,1.0875)\dpicstop
+\dpicdraw (3.54658,1.0875)
+ --(3.668802,1.0875)\dpicstop
+\dpicdraw (3.668802,1.3875)
+ ..controls (3.769241,1.3875) and (3.860437,1.328874)
+ ..(3.902136,1.2375)\dpicstop
+\dpicdraw (3.668802,1.0875)
+ ..controls (3.769241,1.0875) and (3.860437,1.146126)
+ ..(3.902136,1.2375)\dpicstop
+\dpicdraw (3.939636,1.2375) circle (0.014764in)\dpicstop
+\dpicdraw (3.668802,0.5625)
+ --(3.54658,0.5625)\dpicstop
+\dpicdraw (3.551093,0.564679)
+ ..controls (3.597145,0.469299) and (3.597528,0.358195)
+ ..(3.552136,0.2625)\dpicstop
+\dpicdraw (3.54658,0.2625)
+ --(3.668802,0.2625)\dpicstop
+\dpicdraw (3.668802,0.5625)
+ ..controls (3.769241,0.5625) and (3.860437,0.503874)
+ ..(3.902136,0.4125)\dpicstop
+\dpicdraw (3.668802,0.2625)
+ ..controls (3.769241,0.2625) and (3.860437,0.321126)
+ ..(3.902136,0.4125)\dpicstop
+\dpicdraw (3.939636,0.4125) circle (0.014764in)\dpicstop
+\draw (2.127778,-0.241667) node[below=-2bp]{\sf {\sl To other latches}};
+\dpicdraw (0.225642,0.6)
+ --(0,0.6)\dpicstop
+\draw (0,0.6) node[left=-2bp]{\sf D };
+\dpicdraw (0.225642,0.45)
+ --(0,0.45)\dpicstop
+\draw (0,0.45) node[left=-2bp]{\sf E };
+\dpicdraw[fill=black](0.100642,0.45) circle (0.007874in)\dpicstop
+\dpicdraw (0.100642,0.45)
+ --(0.100642,0.15)
+ --(0.85342,0.15)\dpicstop
+\dpicdraw (0,0)
+ --(0.4125,0)\dpicstop
+\dpicdraw[fill=black](0.75,1.425) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,1.425)
+ --(0.75,1.275)\dpicstop
+\dpicdraw (0.75,1.275)
+ --(1.627778,1.275)\dpicstop
+\filldraw[line width=0bp](1.602778,-0.1)
+ --(1.627778,-0.2)
+ --(1.652778,-0.1) --cycle\dpicstop
+\dpicdraw (1.627778,1.275)
+ --(1.627778,-0.177094)\dpicstop
+\dpicdraw[fill=black](0.75,1.125) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,1.125)
+ --(0.75,0.975)\dpicstop
+\dpicdraw (0.75,0.975)
+ --(1.502778,0.975)\dpicstop
+\filldraw[line width=0bp](1.477778,-0.1)
+ --(1.502778,-0.2)
+ --(1.527778,-0.1) --cycle\dpicstop
+\dpicdraw (1.502778,0.975)
+ --(1.502778,-0.177094)\dpicstop
+\dpicdraw[fill=black](0.75,0.825) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,0.825)
+ --(0.75,0.675)\dpicstop
+\dpicdraw (0.75,0.675)
+ --(1.377778,0.675)\dpicstop
+\filldraw[line width=0bp](1.352778,-0.1)
+ --(1.377778,-0.2)
+ --(1.402778,-0.1) --cycle\dpicstop
+\dpicdraw (1.377778,0.675)
+ --(1.377778,-0.177094)\dpicstop
+\dpicdraw[fill=black](0.75,0.526089) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,0.526089)
+ --(0.75,0.3)
+ --(0.85342,0.3)\dpicstop
+\dpicdraw (2.377778,1.425)
+ --(1.877778,1.425)\dpicstop
+\filldraw[line width=0bp](1.852778,-0.1)
+ --(1.877778,-0.2)
+ --(1.902778,-0.1) --cycle\dpicstop
+\dpicdraw (1.877778,1.425)
+ --(1.877778,-0.177094)\dpicstop
+\dpicdraw (2.377778,1.35)
+ --(2.002778,1.35)\dpicstop
+\filldraw[line width=0bp](1.977778,-0.1)
+ --(2.002778,-0.2)
+ --(2.027778,-0.1) --cycle\dpicstop
+\dpicdraw (2.002778,1.35)
+ --(2.002778,-0.177094)\dpicstop
+\dpicdraw (2.377778,1.275)
+ --(2.127778,1.275)\dpicstop
+\filldraw[line width=0bp](2.102778,-0.1)
+ --(2.127778,-0.2)
+ --(2.152778,-0.1) --cycle\dpicstop
+\dpicdraw (2.127778,1.275)
+ --(2.127778,-0.177094)\dpicstop
+\dpicdraw (2.377778,1.2)
+ --(2.252778,1.2)\dpicstop
+\filldraw[line width=0bp](2.227778,-0.1)
+ --(2.252778,-0.2)
+ --(2.277778,-0.1) --cycle\dpicstop
+\dpicdraw (2.252778,1.2)
+ --(2.252778,-0.177094)\dpicstop
+\dpicdraw (1.125,1.425)
+ --(1.877778,1.425)\dpicstop
+\dpicdraw[fill=black](1.877778,1.425) circle (0.007874in)\dpicstop
+\dpicdraw (1.125,1.125)
+ --(2.002778,1.125)\dpicstop
+\dpicdraw[fill=black](2.002778,1.125) circle (0.007874in)\dpicstop
+\dpicdraw (1.125,0.825)
+ --(2.127778,0.825)\dpicstop
+\dpicdraw[fill=black](2.127778,0.825) circle (0.007874in)\dpicstop
+\dpicdraw (0.625,0.525)
+ --(2.252778,0.526089)\dpicstop
+\dpicdraw[fill=black](2.252778,0.526089) circle (0.007874in)\dpicstop
+\dpicdraw (2.377778,0.45)
+ --(1.877778,0.45)\dpicstop
+\dpicdraw[fill=black](1.877778,0.45) circle (0.007874in)\dpicstop
+\dpicdraw (2.377778,0.375)
+ --(2.002778,0.375)\dpicstop
+\dpicdraw[fill=black](2.002778,0.375) circle (0.007874in)\dpicstop
+\dpicdraw (2.377778,0.3)
+ --(2.127778,0.3)\dpicstop
+\dpicdraw[fill=black](2.127778,0.3) circle (0.007874in)\dpicstop
+\dpicdraw (1.252778,0.225)
+ --(2.377778,0.225)\dpicstop
+\dpicdraw[fill=black](1.752778,0.225) circle (0.007874in)\dpicstop
+\filldraw[line width=0bp](1.727778,-0.1)
+ --(1.752778,-0.2)
+ --(1.777778,-0.1) --cycle\dpicstop
+\dpicdraw (1.752778,0.225)
+ --(1.752778,-0.177094)\dpicstop
+\dpicdraw (2.727778,1.3125)
+ --(3.577778,1.3125)\dpicstop
+\dpicdraw (3.977136,1.2375)
+ --(4.102136,1.2375)\dpicstop
+\dpicdraw[fill=black](4.102136,1.2375) circle (0.007874in)\dpicstop
+\dpicdraw (4.102136,1.2375)
+ --(4.227136,1.2375)\dpicstop
+\draw (4.227136,1.2375) node[right=-2bp]{\sf  Q7};
+\dpicdraw (4.102136,1.2375)
+ --(4.102136,0.9875)
+ --(2.852778,0.7625)\dpicstop
+\dpicdraw (2.852778,0.7625)
+ --(2.852778,0.6375)
+ --(2.977778,0.6375)\dpicstop
+\dpicdraw (3.577778,1.1625)
+ --(2.852778,1.1625)\dpicstop
+\dpicdraw (2.852778,1.1625)
+ --(2.852778,1.0375)
+ --(4.102136,0.6625)\dpicstop
+\dpicdraw (4.102136,0.6625)
+ --(4.102136,0.413589)
+ --(3.977136,0.4125)\dpicstop
+\dpicdraw (3.327778,0.5625)
+ --(3.452778,0.5625)\dpicstop
+\dpicdraw (3.452778,0.5625)
+ --(3.452778,0.4875)
+ --(3.577778,0.4875)\dpicstop
+\dpicdraw (2.727778,0.3375)
+ --(3.577778,0.3375)\dpicstop
+\dpicdraw (2.977778,0.4875)
+ --(2.852778,0.4875)\dpicstop
+\filldraw[line width=0bp](2.827778,-0.1)
+ --(2.852778,-0.2)
+ --(2.877778,-0.1) --cycle\dpicstop
+\dpicdraw (2.852778,0.4875)
+ --(2.852778,-0.177094)\dpicstop
+\dpicdraw[fill=black](2.852778,0) circle (0.007874in)\dpicstop
+\dpicdraw (2.852778,0)
+ --(0.5875,0)\dpicstop
+\end{tikzpicture}
+\begin{tikzpicture}[scale=2.54]
+% dpic version 2020.06.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
+\draw (0,0) node[left=-2bp]{\sf C };
+\draw (0,0.825) node[left=-2bp]{\sf A0 };
+\draw (0,1.125) node[left=-2bp]{\sf A1 };
+\draw (0,1.425) node[left=-2bp]{\sf A2 };
+\dpicdraw (0,1.425)
+ --(0.375,1.425)\dpicstop
+\dpicdraw (0.55,1.425)
+ --(0.375,1.325)
+ --(0.375,1.525)
+ --(0.55,1.425)\dpicstop
+\dpicdraw (0.5875,1.425) circle (0.014764in)\dpicstop
+\dpicdraw (0.625,1.425)
+ --(0.875,1.425)\dpicstop
+\dpicdraw (1.125,1.425)
+ --(0.95,1.325)
+ --(0.95,1.525)
+ --(1.125,1.425)\dpicstop
+\dpicdraw (0.9125,1.425) circle (0.014764in)\dpicstop
+\dpicdraw (0,1.125)
+ --(0.375,1.125)\dpicstop
+\dpicdraw (0.55,1.125)
+ --(0.375,1.025)
+ --(0.375,1.225)
+ --(0.55,1.125)\dpicstop
+\dpicdraw (0.5875,1.125) circle (0.014764in)\dpicstop
+\dpicdraw (0.625,1.125)
+ --(0.875,1.125)\dpicstop
+\dpicdraw (1.125,1.125)
+ --(0.95,1.025)
+ --(0.95,1.225)
+ --(1.125,1.125)\dpicstop
+\dpicdraw (0.9125,1.125) circle (0.014764in)\dpicstop
+\dpicdraw (0,0.825)
+ --(0.375,0.825)\dpicstop
+\dpicdraw (0.55,0.825)
+ --(0.375,0.725)
+ --(0.375,0.925)
+ --(0.55,0.825)\dpicstop
+\dpicdraw (0.5875,0.825) circle (0.014764in)\dpicstop
+\dpicdraw (0.625,0.825)
+ --(0.875,0.825)\dpicstop
+\dpicdraw (1.125,0.825)
+ --(0.95,0.725)
+ --(0.95,0.925)
+ --(1.125,0.825)\dpicstop
+\dpicdraw (0.9125,0.825) circle (0.014764in)\dpicstop
+\dpicdraw (0.5875,0)
+ --(0.4125,-0.1)
+ --(0.4125,0.1)
+ --(0.5875,0)\dpicstop
+\dpicdraw (0.316667,0.675)
+ --(0.194444,0.675)\dpicstop
+\dpicdraw (0.198957,0.677179)
+ ..controls (0.245009,0.581799) and (0.245392,0.470695)
+ ..(0.2,0.375)\dpicstop
+\dpicdraw (0.194444,0.375)
+ --(0.316667,0.375)\dpicstop
+\dpicdraw (0.316667,0.675)
+ ..controls (0.417105,0.675) and (0.508302,0.616374)
+ ..(0.55,0.525)\dpicstop
+\dpicdraw (0.316667,0.375)
+ ..controls (0.417105,0.375) and (0.508302,0.433626)
+ ..(0.55,0.525)\dpicstop
+\dpicdraw (0.5875,0.525) circle (0.014764in)\dpicstop
+\dpicdraw (0.944444,0.375)
+ --(0.822222,0.375)\dpicstop
+\dpicdraw (0.826735,0.377179)
+ ..controls (0.872787,0.281799) and (0.87317,0.170695)
+ ..(0.827778,0.075)\dpicstop
+\dpicdraw (0.822222,0.075)
+ --(0.944444,0.075)\dpicstop
+\dpicdraw (0.944444,0.375)
+ ..controls (1.044883,0.375) and (1.136079,0.316374)
+ ..(1.177778,0.225)\dpicstop
+\dpicdraw (0.944444,0.075)
+ ..controls (1.044883,0.075) and (1.136079,0.133626)
+ ..(1.177778,0.225)\dpicstop
+\dpicdraw (1.215278,0.225) circle (0.014764in)\dpicstop
+\dpicdraw (2.577778,1.1625)
+ --(2.377778,1.1625)
+ --(2.377778,1.4625)
+ --(2.577778,1.4625)\dpicstop
+\dpicdraw (2.577778,1.4625)
+ ..controls (2.66062,1.4625) and (2.727778,1.395343)
+ ..(2.727778,1.3125)
+ ..controls (2.727778,1.229657) and (2.66062,1.1625)
+ ..(2.577778,1.1625)\dpicstop
+\dpicdraw (2.577778,0.1875)
+ --(2.377778,0.1875)
+ --(2.377778,0.4875)
+ --(2.577778,0.4875)\dpicstop
+\dpicdraw (2.577778,0.4875)
+ ..controls (2.66062,0.4875) and (2.727778,0.420343)
+ ..(2.727778,0.3375)
+ ..controls (2.727778,0.254657) and (2.66062,0.1875)
+ ..(2.577778,0.1875)\dpicstop
+\dpicdraw (3.177778,0.4125)
+ --(2.977778,0.4125)
+ --(2.977778,0.7125)
+ --(3.177778,0.7125)\dpicstop
+\dpicdraw (3.177778,0.7125)
+ ..controls (3.26062,0.7125) and (3.327778,0.645343)
+ ..(3.327778,0.5625)
+ ..controls (3.327778,0.479657) and (3.26062,0.4125)
+ ..(3.177778,0.4125)\dpicstop
+\dpicdraw (3.668802,1.3875)
+ --(3.54658,1.3875)\dpicstop
+\dpicdraw (3.551093,1.389679)
+ ..controls (3.597145,1.294299) and (3.597528,1.183195)
+ ..(3.552136,1.0875)\dpicstop
+\dpicdraw (3.54658,1.0875)
+ --(3.668802,1.0875)\dpicstop
+\dpicdraw (3.668802,1.3875)
+ ..controls (3.769241,1.3875) and (3.860437,1.328874)
+ ..(3.902136,1.2375)\dpicstop
+\dpicdraw (3.668802,1.0875)
+ ..controls (3.769241,1.0875) and (3.860437,1.146126)
+ ..(3.902136,1.2375)\dpicstop
+\dpicdraw (3.939636,1.2375) circle (0.014764in)\dpicstop
+\dpicdraw (3.668802,0.5625)
+ --(3.54658,0.5625)\dpicstop
+\dpicdraw (3.551093,0.564679)
+ ..controls (3.597145,0.469299) and (3.597528,0.358195)
+ ..(3.552136,0.2625)\dpicstop
+\dpicdraw (3.54658,0.2625)
+ --(3.668802,0.2625)\dpicstop
+\dpicdraw (3.668802,0.5625)
+ ..controls (3.769241,0.5625) and (3.860437,0.503874)
+ ..(3.902136,0.4125)\dpicstop
+\dpicdraw (3.668802,0.2625)
+ ..controls (3.769241,0.2625) and (3.860437,0.321126)
+ ..(3.902136,0.4125)\dpicstop
+\dpicdraw (3.939636,0.4125) circle (0.014764in)\dpicstop
+\draw (2.127778,-0.241667) node[below=-2bp]{\sf {\sl To other latches}};
+\dpicdraw (0.225642,0.6)
+ --(0,0.6)\dpicstop
+\draw (0,0.6) node[left=-2bp]{\sf D };
+\dpicdraw (0.225642,0.45)
+ --(0,0.45)\dpicstop
+\draw (0,0.45) node[left=-2bp]{\sf E };
+\dpicdraw[fill=black](0.100642,0.45) circle (0.007874in)\dpicstop
+\dpicdraw (0.100642,0.45)
+ --(0.100642,0.15)
+ --(0.85342,0.15)\dpicstop
+\dpicdraw (0,0)
+ --(0.4125,0)\dpicstop
+\dpicdraw[fill=black](0.75,1.425) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,1.425)
+ --(0.75,1.275)\dpicstop
+\dpicdraw (0.75,1.275)
+ --(1.627778,1.275)\dpicstop
+\filldraw[line width=0bp](1.602778,-0.1)
+ --(1.627778,-0.2)
+ --(1.652778,-0.1) --cycle\dpicstop
+\dpicdraw (1.627778,1.275)
+ --(1.627778,-0.177094)\dpicstop
+\dpicdraw[fill=black](0.75,1.125) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,1.125)
+ --(0.75,0.975)\dpicstop
+\dpicdraw (0.75,0.975)
+ --(1.502778,0.975)\dpicstop
+\filldraw[line width=0bp](1.477778,-0.1)
+ --(1.502778,-0.2)
+ --(1.527778,-0.1) --cycle\dpicstop
+\dpicdraw (1.502778,0.975)
+ --(1.502778,-0.177094)\dpicstop
+\dpicdraw[fill=black](0.75,0.825) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,0.825)
+ --(0.75,0.675)\dpicstop
+\dpicdraw (0.75,0.675)
+ --(1.377778,0.675)\dpicstop
+\filldraw[line width=0bp](1.352778,-0.1)
+ --(1.377778,-0.2)
+ --(1.402778,-0.1) --cycle\dpicstop
+\dpicdraw (1.377778,0.675)
+ --(1.377778,-0.177094)\dpicstop
+\dpicdraw[fill=black](0.75,0.526089) circle (0.007874in)\dpicstop
+\dpicdraw (0.75,0.526089)
+ --(0.75,0.3)
+ --(0.85342,0.3)\dpicstop
+\dpicdraw (2.377778,1.425)
+ --(1.877778,1.425)\dpicstop
+\filldraw[line width=0bp](1.852778,-0.1)
+ --(1.877778,-0.2)
+ --(1.902778,-0.1) --cycle\dpicstop
+\dpicdraw (1.877778,1.425)
+ --(1.877778,-0.177094)\dpicstop
+\dpicdraw (2.377778,1.35)
+ --(2.002778,1.35)\dpicstop
+\filldraw[line width=0bp](1.977778,-0.1)
+ --(2.002778,-0.2)
+ --(2.027778,-0.1) --cycle\dpicstop
+\dpicdraw (2.002778,1.35)
+ --(2.002778,-0.177094)\dpicstop
+\dpicdraw (2.377778,1.275)
+ --(2.127778,1.275)\dpicstop
+\filldraw[line width=0bp](2.102778,-0.1)
+ --(2.127778,-0.2)
+ --(2.152778,-0.1) --cycle\dpicstop
+\dpicdraw (2.127778,1.275)
+ --(2.127778,-0.177094)\dpicstop
+\dpicdraw (2.377778,1.2)
+ --(2.252778,1.2)\dpicstop
+\filldraw[line width=0bp](2.227778,-0.1)
+ --(2.252778,-0.2)
+ --(2.277778,-0.1) --cycle\dpicstop
+\dpicdraw (2.252778,1.2)
+ --(2.252778,-0.177094)\dpicstop
+\dpicdraw (1.125,1.425)
+ --(1.877778,1.425)\dpicstop
+\dpicdraw[fill=black](1.877778,1.425) circle (0.007874in)\dpicstop
+\dpicdraw (1.125,1.125)
+ --(2.002778,1.125)\dpicstop
+\dpicdraw[fill=black](2.002778,1.125) circle (0.007874in)\dpicstop
+\dpicdraw (1.125,0.825)
+ --(2.127778,0.825)\dpicstop
+\dpicdraw[fill=black](2.127778,0.825) circle (0.007874in)\dpicstop
+\dpicdraw (0.625,0.525)
+ --(2.252778,0.526089)\dpicstop
+\dpicdraw[fill=black](2.252778,0.526089) circle (0.007874in)\dpicstop
+\dpicdraw (2.377778,0.45)
+ --(1.877778,0.45)\dpicstop
+\dpicdraw[fill=black](1.877778,0.45) circle (0.007874in)\dpicstop
+\dpicdraw (2.377778,0.375)
+ --(2.002778,0.375)\dpicstop
+\dpicdraw[fill=black](2.002778,0.375) circle (0.007874in)\dpicstop
+\dpicdraw (2.377778,0.3)
+ --(2.127778,0.3)\dpicstop
+\dpicdraw[fill=black](2.127778,0.3) circle (0.007874in)\dpicstop
+\dpicdraw (1.252778,0.225)
+ --(2.377778,0.225)\dpicstop
+\dpicdraw[fill=black](1.752778,0.225) circle (0.007874in)\dpicstop
+\filldraw[line width=0bp](1.727778,-0.1)
+ --(1.752778,-0.2)
+ --(1.777778,-0.1) --cycle\dpicstop
+\dpicdraw (1.752778,0.225)
+ --(1.752778,-0.177094)\dpicstop
+\dpicdraw (2.727778,1.3125)
+ --(3.577778,1.3125)\dpicstop
+\dpicdraw (3.977136,1.2375)
+ --(4.102136,1.2375)\dpicstop
+\dpicdraw[fill=black](4.102136,1.2375) circle (0.007874in)\dpicstop
+\dpicdraw (4.102136,1.2375)
+ --(4.227136,1.2375)\dpicstop
+\draw (4.227136,1.2375) node[right=-2bp]{\sf  Q7};
+\dpicdraw (4.102136,1.2375)
+ --(4.102136,0.9875)
+ --(2.852778,0.7625)\dpicstop
+\dpicdraw (2.852778,0.7625)
+ --(2.852778,0.6375)
+ --(2.977778,0.6375)\dpicstop
+\dpicdraw (3.577778,1.1625)
+ --(2.852778,1.1625)\dpicstop
+\dpicdraw (2.852778,1.1625)
+ --(2.852778,1.0375)
+ --(4.102136,0.6625)\dpicstop
+\dpicdraw (4.102136,0.6625)
+ --(4.102136,0.413589)
+ --(3.977136,0.4125)\dpicstop
+\dpicdraw (3.327778,0.5625)
+ --(3.452778,0.5625)\dpicstop
+\dpicdraw (3.452778,0.5625)
+ --(3.452778,0.4875)
+ --(3.577778,0.4875)\dpicstop
+\dpicdraw (2.727778,0.3375)
+ --(3.577778,0.3375)\dpicstop
+\dpicdraw (2.977778,0.4875)
+ --(2.852778,0.4875)\dpicstop
+\filldraw[line width=0bp](2.827778,-0.1)
+ --(2.852778,-0.2)
+ --(2.877778,-0.1) --cycle\dpicstop
+\dpicdraw (2.852778,0.4875)
+ --(2.852778,-0.177094)\dpicstop
+\dpicdraw[fill=black](2.852778,0) circle (0.007874in)\dpicstop
+\dpicdraw (2.852778,0)
+ --(0.5875,0)\dpicstop
+\end{tikzpicture}


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/test.tex
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/tikztosvg
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/tikztosvg	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/tikztosvg	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,181 @@
+#!/bin/bash
+
+puts() 
+{
+    echo "[$1] $2"
+}
+
+error()
+{
+    puts "ERROR" "$1" r
+
+    if [ -n "$2" ]
+    then
+        exit $2
+    else
+        exit 1
+    fi
+}
+
+message()
+{
+    puts "TIKZTOSVG" "$1" g
+}
+
+showHelp()
+{
+    man tikztosvg
+    exit 0
+}
+
+showVersion()
+{
+    echo 0.1.0
+    exit 0
+}
+
+if [ -z "$(which xelatex)" ]
+then
+    error "xelatex could not be found"
+fi
+
+if [ -z "$(which pdf2svg)" ]
+then
+    error "pdf2svg could not be found"
+fi
+
+# Parsing the arguments
+PACKAGES=()
+while [ $# -gt 1 ]
+do
+    case "$1" in
+        -h|--help)
+            showHelp
+            ;;
+        -v|--version)
+            showVersion
+            ;;
+        -p|--package)
+            if [ -z "$2" ]
+            then
+                error "Unnexpected EOF"
+            else
+                PACKAGES+=("$2")
+                shift
+                shift
+            fi
+            ;;
+        -o|--output)
+            if [ -n "$OUTPUT" ]
+            then
+                error "The output path was specified multiple times"
+            else if [ -z "$2" ]
+            then
+                error "Unexpected EOF"
+                exit 1
+            else
+                OUTPUT="$2"
+                shift
+                shift
+            fi
+            fi
+            ;;
+        -q|--quit)
+            QUIET=1
+            shift
+            ;;
+        *) 
+            error "Unexpected token: \"$1\""
+            ;;
+    esac
+done
+
+case "$1" in
+    -h|--help)
+        showHelp
+        ;;
+    -v|--version)
+        showVersion
+        ;;
+    "")
+        error "No input path provided"
+        ;;
+    *)
+        INPUT="$1"
+esac
+
+if [ -z "$OUTPUT" ]
+then
+    OUTPUT="$(echo $(basename $INPUT) | cut -d "." -f1)"
+fi
+
+TEMP_DIR="$(mktemp -d)"
+TEX_FILE="$TEMP_DIR/tmp.tex"
+
+# Generate the LaTeX document
+echo "\documentclass[crop,tikz,multi=false]{standalone}" > $TEX_FILE
+
+for PACKAGE in "${PACKAGES[@]}"
+do
+    echo "\usepackage{$PACKAGE}" >> $TEX_FILE
+done
+
+echo "\begin{document}" >> $TEX_FILE
+echo "\huge" >> $TEX_FILE
+
+cat $INPUT >> $TEX_FILE
+
+if [ $? -ne 0 ]
+then
+    rm $TEMP_DIR -r
+    error "File not found: $INPUT"
+fi
+
+echo "\end{document}" >> $TEX_FILE
+
+if [ -z "$QUIET" ]
+then
+    message "Rendering the LaTeX document. . ."
+    xelatex -output-directory=$TEMP_DIR $TEX_FILE
+else
+    xelatex -halt-on-error -output-directory=$TEMP_DIR $TEX_FILE 1> /dev/null 2>&1
+fi
+
+S=$?
+if [ $S -ne 0 ]
+then
+    rm $TEMP_DIR -r
+    if [ -z "$QUIET" ]
+    then
+        error "xelatex exited with code $S" $S
+    else
+        exit $S
+    fi
+fi
+
+if [ -z "$QUIET" ]
+then
+    message "Converting the output to SVG. . ."
+fi
+
+pdf2svg "$TEMP_DIR/tmp.pdf" $OUTPUT 1
+
+S=$?
+if [ $S -ne 0 ]
+then
+    rm $TEMP_DIR -r
+    if [ -z "$QUIET" ]
+    then
+        error "pdf2svg exited with code $S" $S
+    else
+        exit $S
+    fi
+fi
+
+if [ -z "$QUIET" ]
+then
+    message "Done!"
+fi
+
+rm "$TEMP_DIR" -r
+

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/tstSVG.htmx
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/tstSVG.htmx	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/dev/tstSVG.htmx	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,62 @@
+<!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>
+<style type="text/css">
+.svg{display:none}
+*>.svg{display:inline}
+</style>
+<link rel="shortcut icon" href="../Circuit_macros.ico" type="image/x-icon" />
+</HEAD>
+
+<BODY>
+<H2>SVG Circuit_macros examples, Version XXX</H2>
+<hr>
+
+<p>
+These diagrams are the result of applying pdf2svg to examples.pdf.
+ <p>
+  Click on the link to view the source of each diagram.
+</p>
+<hr>
+
+define(`for_',`ifelse(eval(`$1'!=(`$2'+(`$3'))),1,`pushdef(`m4x',`$1') $4
+  popdef(`m4x')for_(eval(`$1'+(`$3')),`$2',`$3',`$4')')')
+
+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" width="612" height="792" type="image/svg+xml" class="img">
+  </object> <![endif]-->
+
+<!--[if !IE]><!-->
+<object data="$1.svg" width="612" height="792" type="image/svg+xml" class="img">
+  </object> <!--<![endif]-->
+
+<br>
+<!--
+<a href="$1.txt" TYPE="text/plain" TARGET="_blank" alt="$1">$1.m4</a>
+--
+</p>
+<hr>')
+
+define(`m4tt',`<g style="font-family:monospace">')
+
+<!--
+<embed pluginspage="http://www.adobe.com/svg/viewer/install/" />
+-->
+
+
+cfig(test)
+#for_(1,46,1,
+#cfig(examples_```'''m4x)
+#)
+
+</BODY>
+</HTML>

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/examples.pdf
===================================================================
(Binary files differ)

Index: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/examples.pdf
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/examples.pdf	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/examples.pdf	2020-12-21 22:02:51 UTC (rev 57189)

Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/examples.pdf
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/pdf
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/examplesSVG.htmx
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/examplesSVG.htmx	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/nsvg/examplesSVG.htmx	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,70 @@
+<!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>
+<style type="text/css">
+.svg{display:none}
+*>.svg{display:inline}
+</style>
+<link rel="shortcut icon" href="../Circuit_macros.ico" type="image/x-icon" />
+</HEAD>
+
+<BODY>
+<H2>SVG Circuit_macros examples, Version XXX</H2>
+<hr>
+
+<p>
+  These diagrams are in .svg format.
+  <A HREF="examples.pdf">Pdf</A>
+  and
+  <A HREF="examples.html">png</A>
+  versions are also available.
+  The PDF equivalent can be found in examples.pdf of the distribution.
+</p>
+ <p>
+  Click on the link to view the source of each diagram.
+</p>
+<hr>
+
+define(`for_',`ifelse(eval(`$1'!=(`$2'+(`$3'))),1,`pushdef(`m4x',`$1') $4
+  popdef(`m4x')for_(eval(`$1'+(`$3')),`$2',`$3',`$4')')')
+
+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" width="612" height="792" type="image/svg+xml" class="img">
+  </object> <![endif]-->
+
+<!--[if !IE]><!-->
+<object data="$1.svg" width="612" height="792" type="image/svg+xml" class="img">
+  </object> <!--<![endif]-->
+
+<br>
+<!--
+<a href="$1.txt" TYPE="text/plain" TARGET="_blank" alt="$1">$1.m4</a>
+--
+</p>
+<hr>')
+
+define(`m4tt',`<g style="font-family:monospace">')
+
+<!--
+<embed pluginspage="http://www.adobe.com/svg/viewer/install/" />
+-->
+
+<p>
+These diagrams are the result of applying pdf2svg to examples.pdf.
+
+
+for_(1,46,1,
+cfig(examples_```'''m4x)
+)
+
+</BODY>
+</HTML>

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/oFlow.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/oFlow.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/oFlow.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,108 @@
+.PS
+# Flow.m4
+gen_init
+ifdef(`FlowchartDefs_',,`include(FlowchartDefs.m4)')
+
+# Could use xcolor with option dvipsnames but define color here for portability:
+define(`Thistle',`rgbstring(0.85,0.75,0.85)')dnl
+define(`RubineRed',`rgbstring(0.81,0,0.35)')dnl
+define(`YellowGreen',`rgbstring(0.68,1,0.18)')dnl
+define(`SeaGreen',`rgbstring(0.13,0.70,0.67)')dnl
+define(`Goldenrod',`rgbstring(0.85,0.65,0.13)')dnl
+
+  linethick_(1.0)
+  arrowwid = 0.05
+  arrowht = 0.1
+  fillval = 0.8
+  down
+
+Case: Fcase(,
+  "Test 1",[Fbox("Task 1",, shaded Thistle); W:last [].W; N:last [].N
+            arrow down linewid/3 from last [].S
+            Fbox("Task 1.5",, shaded Thistle) with .N at Here
+            E:last [].E; S:last [].S],
+  "Test 2",Fbox("Task 2" "is bigger", wid fboxwid*1.2 ht fboxht*3/2, \
+                shaded SeaGreen),
+  "Test 3",Fbox("Task 3",, shaded RubineRed)dnl
+  )
+
+   "\sl .N" at Case.N rjust above; "\sl .S" at Case.S rjust below
+   "\sl .E" at Case.E ljust; "\sl .W" at Case.W rjust
+   "\sl Case statement" below at Case.s+(0,-0.2)
+   move to Case.nw+(-12bp__,10bp__)
+
+Whiledo: Fwhiledo("$i < n$",,,Fbox("Task"),"T" above ljust at Test.E) \
+  with .nw at Case.ne+(0.25,0)
+
+  "\sl .N" at Whiledo.N rjust; "\sl .S" at Whiledo.S rjust below
+  "\sl .E" at Whiledo.E ljust; "\sl .W" at Whiledo.W rjust
+  "\sl While-do" below at Whiledo.s+(0,-0.2)
+
+Repeatuntil: Frepeatuntil("$n \geq 5$",,,Fbox("Task"),
+   "T" at Test.E above ljust) with .nw at Whiledo.sw + (0.25,-1)
+
+  "\sl .N" at Repeatuntil.N rjust above; "\sl .S" at Repeatuntil.S rjust below
+  "\sl .E" at Repeatuntil.E ljust; "\sl .W" at Repeatuntil.W rjust
+  "\sl Repeat-until" below at Repeatuntil.s+(0,-0.2)
+
+Ifthenelse: Fifthenelse("$A<B$",,,
+     Fbox("False"),
+     Fbox("True",ht fboxht*1.2 wid fboxwid)dnl
+     ) with .nw at Repeatuntil.sw +(0.5,-0.5)
+
+  "\sl .N" at Ifthenelse.N rjust above; "\sl .S" at Ifthenelse.S below rjust
+  "\sl .E" at Ifthenelse.E ljust; "\sl .W" at Ifthenelse.W rjust
+  "\sl If-then-else" below at Ifthenelse.s+(0,-0.3) \
+  "\sl (the True and False tasks are optional)"
+
+# Compound statement:
+[ right 
+  ellipse shaded YellowGreen "Start"
+  arrow right linewid/2
+
+  Fbox("First task") with .W at Here
+  arrow down linewid/2 from last [].S
+
+  Fifthenelse("Test 1",,,
+    Frepeatuntil("$i \geq 5$",,shaded Goldenrod,Fbox("Task")),
+    Fifthenelse("$A < B$",,shaded Goldenrod,
+      Fbox("Left"),
+      Fbox("Right"),
+    "T" at Test.E above ljust),
+    "T" at Test.E above ljust) with .N at Here
+
+  A: arrow down 0.25 from last [].S ] with .nw at Case.sw + (-12bp__,-0.7)
+
+  "\sl Compound statement" below at last [].A.end
+
+Example: [ fillvalue = 0.8; awid = linewid/2; right_
+  Start: ellipse wid boxwid/2 ht boxwid/3 shaded "green"
+  arrow right_ awid
+  B1: Fbox("Planejamento")
+  B2: Fbox(`"Execu\c{c}\~ao"') with .W at B1.E+(awid*3,0)
+  B3: Fbox(`"Sele\c{c}\~ao"') with .W at B2.E+(awid*3,0)
+  LT: Ftest(`"Avalia\c{c}\~ao do" "Planejamento"',
+    wid fboxwid*1.5 ht fboxht*2.0,
+    shaded YellowGreen,
+    "Correto" at Box.e above ljust;
+    "Incompleto" at Box.w above rjust) with .S at 0.5 between B1.ne and B2.nw
+  arrow from B1.E to (LT.S,B1.E) then to LT.S
+  arrow from LT.W to (B1.N,LT.W) then to B1.N
+  arrow from LT.E to (B2.N,LT.E) then to B2.N
+  RT: Ftest(`"Avalia\c{c}\~ao da" "Execu\c{c}\~ao"',
+    wid fboxwid*1.5 ht fboxht*2.0,
+    shaded YellowGreen,
+    "Correto" at Box.e below ljust;
+    "Incompleto" at Box.w below rjust) with .N at 0.5 between B2.se and B3.sw
+  arrow from B2.E to (RT.N,B2.E) then to RT.N
+  arrow from RT.W to (B2.S,RT.W) then to B2.S
+  arrow from RT.E to (B3.S,RT.E) then to B3.S
+  B4: Fbox(`"Extra\c{c}\~ao"') with .S at B3.N+(0,awid)
+  arrow from B3.N to B4.S
+  arrow right_ awid from B4.E
+  B5: Fbox(`"Conclus\~ao"')
+  ellipse wid boxwid/2 ht boxwid/3 shaded "red" at (B5.S,Start)
+  arrow down_ awid from B5.S to last ellipse.n
+] with .nw at last [].sw+(0,-fboxht)
+
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/oFlow.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/psfrag/Makefile
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/psfrag/Makefile	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/psfrag/Makefile	2020-12-21 22:02:51 UTC (rev 57189)
@@ -31,7 +31,8 @@
   Emarrows.eps Flow.eps Fuses.eps \
   GrayCode.eps Grounds.eps Headers.eps Heathkit.eps Jack.eps \
   I2L.eps Inclpdf.eps \
-  Logic.eps Loglog.eps MC.eps Mixer.eps MotorControl.eps Multiplexer.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 \

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/random.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/random.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/random.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -8,6 +8,7 @@
 ################################################################
 #                                   hscale(right length,nlabels,
 #                                     minlabel,maxlabel,[T][N])
+#                                    arg5=T: top axis, N: nolabels
   define(`hscale',`[ define(`hs_nl',`ifelse(`$2',,5,`$2')')
     A: line `$1' ; Start: A.start; End: A.end
     td = 1/(hs_nl-1)*A.len/5
@@ -26,6 +27,7 @@
     ]')
 #                                   vscale(up length,nlabels,
 #                                     minlabel,maxlabel,[R][N] )
+#                                     arg5=R: right axis, N: nolabels
   define(`vscale',`[ define(`vs_nl',`ifelse(`$2',,5,`$2')')
     A: line `$1' ; Start: A.start; End: A.end
     td = 1/(vs_nl-1)*A.len/5
@@ -48,7 +50,7 @@
 ################################################################
 
 [
-  n = 2000
+  n = 2000                          # number of samples
   stddev = 0.25
   graphsize = 2
 

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/shapes.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/shapes.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/shapes.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -43,6 +43,10 @@
 
                            `cone3D(xdispl,ydispl,zdispl,diameter,
                               [colored "color"])'
+                           `internal positions:
+                              Start (centre of base),
+                              End (point),
+\xA0                             C (axis centre)'
 define(`cone3D',`[ Start: (0,0)
  xdispl = `$1'; ydispl = `$2'; zdispl = `$3'
  define(`M4CL',`xdispl,ydispl,zdispl')dnl

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/AutoencoderSVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/AutoencoderSVG.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/AutoencoderSVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,97 @@
+.PS
+# Masked_Autoencoder.m4
+gen_init
+NeedDpicTools
+svg_font(sans-serif,12bp__,textoffset)
+
+  circlerad = 0.2
+  circlesep = 0.5
+  rowsep = 0.9
+  arrowht = arrowht*0.8
+  arrowwid = arrowwid*1.4
+  linethick = 1
+
+define plan {
+  m = 0
+  for i=1 to 4 do {
+    for j=1 to ncircles[i] do {
+      exec sprintf("C[i,j]: circle thick 1.6 \"%g\" at Here",m+j)
+      if i>1 then {
+        if "$1"=="" then {
+          for k=1 to ncircles[i-1] do { arrow from C[i,j] to C[i-1,k] chop } }
+        }
+      if j!=ncircles[i] then { move right_ circlesep from C[i,j] }
+      }
+    m += ncircles[i]
+    case(i,
+      move to C[1,1]+(-circlesep/2,-rowsep),
+      move to C[2,1]+(0,-rowsep),
+      move to C[3,1]+(circlesep/2,-rowsep), )
+    }
+  }
+  gridsiz = 0.78/4
+define grid { [ SW: 0,0
+  for i=1 to $1 do {
+    move to (0,(0.5-i)*gridsiz)
+    exec sprintf("fv = $%g",2+i)
+    for j=1 to $2 do { fl = 1-(int(fv / 2^(j-1)) % 2)
+      box wid gridsiz ht gridsiz outlined "gray" shaded rgbstring(fl,fl,fl) }
+    } ]}
+
+define cxt {
+  m = 1
+  for i=2 to 4 do {
+    for j=1 to ncircles[i] do {
+      exec sprintf("narrows = $%g",m)
+      for k=1 to narrows do {
+        exec sprintf("cnum = $%g",m+k)
+        exec sprintf("arrow from C[i,j] to C[i-1,cnum] $%g chop", $+)
+        }
+      m += narrows+1 
+      } } }
+
+B: box invis ht 8 wid 8
+[
+  array(ncircles,3,4,4,3)
+  plan()
+  svg_font(Times,12bp__,textoffset)
+  for j=1 to 3 do {
+    sprintf("svg_it(x)`'svg_sub(%g,60%)",j) at C[1,j].n+(0,2bp__) above
+    "svg_circ" at last ""+(-1bp__,1bp__)
+    sprintf("svg_it(x)`'svg_sub(%g,60%)",j) at C[4,j].s+(0,-2bp__) below
+    }
+
+  "V" at 0.5 between C[2,1].w and C[1,1].w
+  "W`'svg_sup(2)" at 0.5 between C[3,1].w and C[2,1].w
+  "W`'svg_sup(1)" at 0.5 between C[3,1].w and C[4,1].w
+
+GV: grid(3,4,0,15,6) with .w at C[2,4]+(circlerad*2,rowsep/2)
+  "=M`'svg_sup(V)" at GV.e ljust
+G2: grid(4,4,13,0,0,13) with .w at (GV.w,C[3,4]+(circlerad*2,rowsep/2))
+  "=M`'svg_sup(V`'svg_sup(2))" at G2.e ljust
+G1: grid(4,3,1,5,1,1) with .w at (GV.w,C[4,3]+(circlerad*2,rowsep/2))
+  "=M`'svg_sup(V`'svg_sup(1))" at G1.e ljust
+  command "</g>"
+
+  move to (GV.x+3*circlesep,C[1,1].y)
+  plan(3,1,2,1,2,2,1,2,1,2,2,3,1,2)
+  for i=2 to 4 do {
+      cxt(2,1,3,0,0,2,1,3, 0,4,1,2,3,4,0,0, 0,4,1,2,3,4,0, \
+        outlined rgbstring(0.5,0.5,0.5) shaded rgbstring(0.5,0.5,0.5) )
+    cxt(0,1,1,1,1,0, 2,2,3,0,2,2,3,2,2,3, 0,0,3,1,3,4,)
+    }
+  svg_font(Times,12bp__,textoffset)
+  for j=1 to 3 do { sprintf("svg_it(x)`'svg_sub(%g,60%)",j) \
+    at C[4,j].s+(0,-2bp__) below }
+  arrow dotted from C[1,2].n up circlesep/2
+  "svg_it(p(x`'svg_sub(2)))" at Here+(0,2bp__) above
+  "svg_it(p(x`'svg_sub(3)|x`'svg_sub(2)))" at (C[1,3]+(circlesep/2,0),last "")
+  arrow dotted from C[1,3] to last "".s chop circlerad chop textoffset
+  "svg_it(p(x`'svg_sub(1)|x`'svg_sub(2),x`'svg_sub(3)))" \
+    at (C[1,1]+(-circlesep/2,0),last "")
+  arrow dotted from C[1,1] to last "".s chop circlerad chop textoffset
+  command "</g>"
+
+ ] at B
+ command "</g>"
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/AutoencoderSVG.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Banking.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Banking.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Banking.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,59 @@
+.PS
+#Banking.m4
+
+gen_init
+
+  scale = 2.54                # use cm
+  svg_font(Arial Black,11 bp__,2 bp__)
+  boxwid = 6.8
+  boxht = 4.5
+  linethick_(1.5)
+
+  define(`heading',
+   `<tspan font-style=\"bold\" font-size=\"120%\" fill=\"white\">`$1'</tspan>')
+  define(`subheading',
+   `<tspan fill=\"white\" font-size=\"75%\" font-style=\"bold\">[`$1']</tspan>')
+  define(`wtext',`<tspan fill=\"white\">`$1'</tspan>')
+
+  C: circle diam 2.6 colored "mediumblue"
+  Person: box rad boxht/4 colored "mediumblue" with .n at C.s+(0,C.rad/8) \
+   "heading(Personal Banking)" \
+   "" \
+   "heading(Customer)" \
+   "subheading(Person)" \
+   "" \
+   "wtext(A customer of the bank`,' with)" \
+   "wtext(personal bank accounts.)"
+
+  A1: arrow thick 1.5 dashed down 3.5 from Person.s
+  svg_font(Arial,11 bp__,2 bp__)
+  { box invis fill 1 ht 0.4 wid 1.0 "Uses" at A1 }
+  command "</g>"
+  Internet: box colored "steelblue" \
+   "heading(Internet Banking System)" \
+   "subheading(Software system)" \
+   "" \
+   "wtext(Allows customers to view)" \
+   "wtext(information about their bank)" \
+   "wtext(accounts`,' and make payments.)"
+
+  svg_font(Arial,11 bp__,2 bp__)
+  A2: arrow thick 1.5 dashed right 5.4 from Internet.e \
+   "Sends e-mail" above "using" below
+  command "</g>"
+  Email: box colored "slategrey" \
+   "heading(E-mail System)" \
+   "subheading(Software system)" \
+   "" \
+   "wtext(Internal Microsoft Exchange)" \
+   "wtext(e-mail system.)"
+
+  A3:arrow thick 1.5 dashed from Email.nw+(0.4,0) to Person.se+(0.3,Person.ht/5)
+  svg_font(Arial,11 bp__,2 bp__)
+  { box invis fill 1 ht 0.4 wid 3.3 "Sends e-mails to" at A3 }
+  command "</g>"
+
+# etc  
+
+  command "</g>" # font
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Banking.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/BtreeSVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/BtreeSVG.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/BtreeSVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -2,7 +2,10 @@
 # Btree.m4
 # One way to draw a binary tree using pic macros
 gen_init(svg_font(sans-serif,11bp__))
-circlerad = 0.30
+sinclude(tst.dim)
+s_init(Btree)
+Btree: [
+circlerad = 0.45
 
 define n { [C: circle fill_(0.9) $1
             if "$2" != "" then {
@@ -29,5 +32,76 @@
 
 # Build the tree from the root
 S: Sirius
+
  command "</g>" # end font
+]
+Ttree: [
+# TtreeSVG.m4
+svg_font(sans-serif,10bp__)
+
+#                           `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-(0,5bp__) to Head$1.se-(0,5bp__)
+for_(1,`$2',1,
+ `Top: move from Body$1.Head`'m4x.nw+(0,2bp__) \
+              to Body$1.Head`'m4x.ne+(0,2bp__)
+  Mov: move from Head$1 to Body$1.Head`'m4x
+  if Bot.len*Top.len*Mov.len > 0 then {
+    line from Intersect_(Mov,Top) to Intersect_(Mov,Bot)}')')
+
+  vsep = 0.75
+define(`txw',`wid `$1'mm__')dnl scaled by 14/12 for 14 pt type
+
+  Node(1,"svg_it(h(h(h(x`'svg_sub(1),x`'svg_sub(2))," \
+       + "h(x`'svg_sub(3),x`'svg_sub(4))),h(h(x`'svg_sub(5),x`'svg_sub(6))," \
+       + "h(x`'svg_sub(7),x`'svg_sub(8)))))" txw(70) ,
+     (0,-vsep),
+     Node(1,"svg_it(h(h(x`'svg_sub(1),x`'svg_sub(2)),h(x`'svg_sub(3)," \
+          + "x`'svg_sub(4))))" txw(32) ,
+        (0,-vsep),
+        Node(1,"svg_it(h(x`'svg_sub(1),x`'svg_sub(2)))" txw(14) ,
+           (0,-vsep),
+           Node(1,"svg_it(x`'svg_sub(1):=((A,pk`'svg_sub(A)),h`'svg_sub(1)))" \
+                  txw(29) ),
+           Node(2,"svg_it(x`'svg_sub(2):=((B,pk`'svg_sub(B)),h`'svg_sub(2)))" \
+                  txw(29) with .n at last "".ne+(0.2,-vsep*2/3))),
+        Node(2,"svg_it(h(x`'svg_sub(3),x`'svg_sub(4)))" txw(14) \
+                  with .nw at Head1.ne+(Body1.wid/2+0.1,0),
+           (0,-vsep),
+           Node(1,"svg_it(x`'svg_sub(3):=" \
+                + "((A,pk`'svg_prime`'svg_sub(A,,,-0.5ex)),h`'svg_sub(3)))" \
+                  txw(29)),
+           Node(2,"svg_it(x`'svg_sub(4):=((D,pk`'svg_sub(D)),h`'svg_sub(4)))" \
+                  txw(29) with .n at last "".ne+(0.2,-vsep*2/3)))),
+     Node(2,"svg_it(h(h(x`'svg_sub(5),x`'svg_sub(6)),h(x`'svg_sub(7)," \
+          + "x`'svg_sub(8))))" txw(29) with .nw at Head1.ne+(Body1.wid/2,0),
+        (0,-vsep),
+        Node(1, "svg_it(h(x`'svg_sub(5),x`'svg_sub(6)))" txw(14) ,
+           (0,-vsep*5/4),
+           Node(1,"svg_it(x`'svg_sub(5):=((E,pk`'svg_sub(E)),h`'svg_sub(5)))" \
+                  txw(29) ),
+           Node(2,"svg_it(x`'svg_sub(6):=((H,pk`'svg_sub(H)),h`'svg_sub(6)))" \
+                  txw(29) with .n at last "".ne+(0.2,-vsep*2/3))),
+        Node(2,"svg_it(h(x`'svg_sub(7),x`'svg_sub(8)))" txw(14) \
+                  with .nw at Head1.ne+(Body1.wid/2+0.1,0),
+           (0,-vsep*5/4),
+           Node(1,"svg_it(x`'svg_sub(7):=" \
+                + "((D,pk`'svg_prime`'svg_sub(D,,,-0.5ex)),h`'svg_sub(7)))" \
+                  txw(29) ),
+           Node(2,"svg_it(x`'svg_sub(8):=((K,pk`'svg_sub(K)),h`'svg_sub(8)))" \
+                  txw(29) with .n at last "".ne+(0.2,-vsep*2/3); move right 0.2)),
+        Node(3,"svg_it(h(x`'svg_sub(9)))" txw(8) \
+                  at 0.5 between Head1 and Head2)))
+
+] with .w at last [].e+(-0.75,0)
+
+ command "</g>" # end font
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/CctTableSVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/CctTableSVG.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/CctTableSVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -5,75 +5,92 @@
 movewid = 2 pt__
 hm = 2.1
 vm = 0.28
+
+hm = 2.05
+vm = 0.28
 {  {resistor ; move ; svgLink(NportSVG.svg,"`resistor'" ljust)}
    move right_ hm
    {resistor(,,Q) ; move ; "`resistor(,,Q) '" ljust}
    move right_ hm
-   {resistor(,,E) ; move ; "`resistor(,,E) = ebox'" ljust}
+   {resistor(,,E) ; move 
+    "`resistor(,,E) = ebox'" ljust}
 }
    move down vm; right_
-{  {resistor(,,ES) ; move ;"`resistor(,,ES) '" ljust}
+{  {resistor(,,ES) ; move ; "`resistor(,,ES) '" ljust}
    move right_ hm
-   {resistor(,4,QR) ; move ;"`resistor(,4,QR) '" ljust}
+   {resistor(,,H) ; move ; "`resistor(,,H) '" ljust}
    move right_ hm
-   {resistor(,,H) ; move ;"`resistor(,,H) '" ljust}
+   {ebox(,,,0.5) ; move ; "`ebox(,,,0.5) '" ljust}
 }
    move down vm; right_
-{  {resistor(,,V) ; move ;"`resistor(,,V)'" ljust}
+{  {resistor(,,V) ; move ; "`resistor(,,V) '" ljust}
    move right_ hm
-   {ebox(,,,0.5) ; move ;"`ebox(,,,0.5)'" ljust}
+   {move down_ 0.05; right_
+    thermocouple ; move; "`thermocouple '" ljust; move up_ 0.05}
    move right_ hm
-   {ebox(,0.5,0.3) ; move ;"`ebox(,0.5,0.3)'" ljust}
+   {ebox(,0.5,0.3) ; move ; "`ebox(,0.5,0.3) '" ljust}
 }
    move down vm; right_
-{  {inductor ; move ;"`inductor'" ljust}
+{  {inductor ; move ; "`inductor '" ljust}
    move right_ hm
-   {inductor(,W); move ;"`inductor(,W)'" ljust}
+   {inductor(,W); move ; "`inductor(,W) '" ljust}
    move right_ hm
-   {inductor(,L); move ;"`inductor(,L)'" ljust}
+   {inductor(,L); move ; "`inductor(,L) '" ljust}
 }
    move down vm; right_
-{ {inductor(,,,M) ; move ;"`inductor(,,,M)'" ljust}
+{ {inductor(,,,M) ; move ; "`inductor(,,,M) '" ljust}
    move right_ hm
-   {inductor(,W,6,P); move ;"`inductor(,W,6,P)'" ljust}
+   {inductor(,W,6,P); move ; "`inductor(,W,6,P) '" ljust}
    move right_ hm
-   {ttmotor(,G) ; move ;"`ttmotor(,G)'" ljust}
+   {move right_ 0.2; ttmotor(,G) ; move ; "`ttmotor(,G) '" ljust}
 }
    move down vm; right_
-{  {capacitor ; move ;"`capacitor'" ljust}
+{  {capacitor ; move ; "`capacitor '" ljust}
    move right_ hm
-   {capacitor(,C); move ;"`capacitor(,C)'" ljust}
+   {capacitor(,C); move ; "`capacitor(,C) '" ljust}
    move right_ hm
-   {capacitor(,C+); move ;"`capacitor(,C+)'" ljust}
+   {capacitor(,C+); move ; "`capacitor(,C+) '" ljust}
 }
    move down vm; right_
-{  {capacitor(,P); move ;"`capacitor(,P)'" ljust}
+{  {capacitor(,P); move ; "`capacitor(,P) '" ljust}
    move right_ hm
-   {capacitor(,E); move ;"`capacitor(,E)'" ljust}
+   {capacitor(,E); move ; "`capacitor(,E) '" ljust}
    move right_ hm
-   {capacitor(,K); move ;"`capacitor(,K)'" ljust}
+   {capacitor(,K); move ; "`capacitor(,K) '" ljust}
 }
    move down 0.25; right_
-{  {capacitor(,M); move ;"`capacitor(,M)'" ljust}
+{  {capacitor(,M); move ; "`capacitor(,M) '" ljust}
    move right_ hm
-   {capacitor(,N); move ;"`capacitor(,N)'" ljust}
+   {capacitor(,N); move ; "`capacitor(,N) '" ljust}
    move right_ hm
-   {xtal ; move ;"`xtal'" ljust}
+   {xtal ; move ; "`xtal '" ljust}
 }
    move down 0.25; right_
-{  {memristor ; move;"`memristor'" ljust}
+{  {memristor ; move; "`memristor '" ljust}
    move right_ hm
-   {heater; move;"`heater'" ljust}
+   {heater; move; "`heater '" ljust}
    move right_ hm
-   {tline ; move;"`tline'" ljust}
+   {tline ; move; "`tline '" ljust}
 }
    move down 0.25; right_
-{  {gap ; move ;"`gap'" ljust}
+{  {move up_ 0.05; right_; gap ; move ; "`gap '" ljust}
    move right_ hm
-   {gap(,,A) ; move ;"`gap(,,A)'" ljust}
+   {gap(,,A) ; move ; "`gap(,,A) '" ljust}
    move right_ hm
-  {arrowline ; move;"`arrowline'" ljust}
+  {arrowline ; move; "`arrowline '" ljust}
 }
+   move down 0.25; right_
+{ {lamp ; move; "`lamp '" ljust}
+   move right_ hm
+   {reed ; move ; "`reed '" ljust}
+   move right_ hm
+   {reed(,,,fill_(0.9),CR) ; move ;  "`reed(,,,fill_(0.9),CR) '" ljust}
+}
+   move down 0.25; right_
+{ {pvcell ; move; "`pvcell '" ljust}
+   move right_ hm
+   {arrester ; move ; "`arrester '" ljust}
+}
 
  command "</g>" # end font
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/ConnectorsSVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/ConnectorsSVG.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/ConnectorsSVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -16,7 +16,7 @@
   "Raspberry Pi 4 GPIO" at last [].GPIO.s below
 
  HD: HDMI_micro with .nw at last [].ne+(0.25,0.5)
-  "Micro" rjust at HD.Base.sw+(0,10bp__) "HDMI" rjust
+  "Micro" rjust at HD.Base.sw "HDMI" rjust
 
  S: USB_C_Socket with .sw at (HD.e.x+0.25,RPI.s.y)
  "USB-C Socket" at S.Base.s below

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/FlowSVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/FlowSVG.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/FlowSVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,142 +1,15 @@
-divert(-1)
-  FlowchartDefs.m4
-                                `Some experimental flow-chart macros.  
-                                In the following, every subchart is in
-                                [] brackets, with .N, .S, .E and .W
-                                internally defined.  Follow this convention
-                                if you create compound constructs.
-
-                                Generally, the first argument is one
-                                or more strings; the second adjusts
-                                the size, and the third can be used
-                                to add color, dashed lines, labels,
-                                or other embellishements.  Default is
-                                grey fill if arg3 is blank.
-
-                                These macros have been renamed from earlier
-                                versions because of slight differences of
-                                arguments.'
-
-define(`FlowchartDefs_')
-
-                                `Default sizes:'
-define(`fboxwid',linewid*2)
-define(`fboxht',linewid*0.75)
-define(`farrowht',linewid*0.5)
-
-                                `Fbox( "text", wid expr ht expr,
-                                attributes ) The basic task box: arg1 may
-                                be 1 or more label strings. Attributes
-                                include box line and fill specs.
-                                To adjust the box size to the size of
-                                the typeset text, see the \boxdims macro
-                                in the manual. Example:
-                                Fbox("svg_it(x svg_symbol(&`#'60;) 1)",,
-                                     shaded rgbstring(0.46,0.53,0.63))'
-define(`Fbox',`[ boxwid = fboxwid; boxht = fboxht
- Box: box `$2' ifelse(`$3',,`fill_(fillval)',`$3') `$1'
-  N: Box.n; S:Box.s; E:Box.e; W: Box.w
- `$4']')
-
-                                `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
- 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 then to last box.s then to last box.w then to last box.n \
-  then to 0.5 between last box.n and last box.e \
-  ifelse(`$3',,`fill_(fillval)',`$3')
-  ifelse(`$1',,,`$1' at Box)
- `$4']')
-
-                                `case statement
-             Fcase(wid expr ht expr,
-                   "Test string 1",task, ...,
-                   "Test string n",task)'
-             `arg1 adjusts the size of the tests
-              A task is a flow subchart with internal names .E and .S defined
-              The test blocks are labeled Test1, Test2, ... and the tasks are
-              labeled Task1, Task2, ...  '
-define(`Fcase',`[ down; S: Here; sx = S.x
-  Fcaseloop_(1,$@)
-  ifelse(`$2',,`E:S; W:S; N:S',
-   `E:(sx+linewid/2,Task1.E.y); W:Test1.W; N:Test1.N')
-  Fcasearrow_(1,$@)
-  arrow from E to (E,S) then to S ]')
-
-  define(`Fcaseloop_',`ifelse(`$3',,,
-   `Test`$1': Ftest(`$3',`$2') with .N at S
-    Task`$1': `$4' with .nw at Test`$1'.E+(linewid/2,min(Test`$1'.ht,fboxht)/2)
-      arrow right linewid/4 from Test`$1'.E \
-        then down Test`$1'.E.y-Task`$1'.W.y then to Task`$1'.W
-    S: (Test`$1'.S.x,min(Test`$1'.S.y,Task`$1'.S.y)-linewid/3)
-      ifelse(`$5',,`line',`arrow') from Test`$1'.S to S
-      sx = max(sx,Task`$1'.E.x)
-      Fcaseloop_(incr($1),`$2',shift(shift(shift(shift($@)))))')')
-  define(`Fcasearrow_',`ifelse(`$3',,,
-   `arrow from Task`$1'.E to (E,Task`$1'.E)
-    Fcasearrow_(incr($1),`$2',shift(shift(shift(shift($@)))))')')
-  
-                                `while statement with explicit test
-                   Fwhiledo("test text", wid x ht y, attributes, task spec )
-                   The task structure is given label Task '
-define(`Fwhiledo',`[ down
-  Test: Ftest(`$1',`$2',`$3')
-    arrow right linewid/2 from Test.E
-  Task: `$4' with .W at Here
-  E: Task.E; W: Test.w; S: Test.S
-    arrow up max(linewid/4,Test.n.y-Task.n.y+arrowht*1.5) \
-      from Task.N then left Task.x-Test.x
-  N: Here
-    arrow to Test.n
- `$5']')
-
-                                `repeat statement with explicit test
-                         Frepeatuntil("test",wid x ht y,attributes, task spec )
-                         The task structure is given label Task '
-define(`Frepeatuntil',`[ N: Here
-  Task: ifelse(`$4',,Here,`$4' with .N at N)
-  W: Task.W
-    arrow down linewid/3
-  Test: Ftest(`$1',`$2',`$3')
-  E: Task.E+(linewid/2+max(0,Test.e.x-Task.e.x),0)
-    arrow from Test.e to (E,Test) then to E then to Task.E
-  S: Test.S
- `$5']')
-
-                                `if-then-else
-                Fifthenelse( "test", wid x ht y, attributes,
-                              left tasks, right tasks)
-                The left task structure is given label Ltask and the right
-                task structure is given label Rtask '
-define(`Fifthenelse',`[ Test: Ftest(`$1',`$2',`$3')
-  N: Test.N
-  Ltask: ifelse(`$4',,`Test.S; W:Test.W; LS:Ltask',
-      `$4 with .ne at ((Test.W.x+Test.x)/2,Test.S.y)
-    W: Ltask.W; LS:Ltask.S
-    arrow from Test.W to (Ltask.N,Test.W) then to Ltask.N')
-  Rtask: ifelse(`$5',,`Test.S; E:Test.E; RS:Rtask',
-      `$5 with .nw at ((Test.E.x+Test.x)/2,Test.S.y)
-    E: Rtask.E; RS: Rtask.S
-    arrow from Test.E to (Rtask.N,Test.E) then to Rtask.N')
-  S: (Test.x,min(LS.y,RS.y)-linewid/3)
-    arrow from LS to (LS,S)
-    arrow from RS to (RS,S)
-    line to (LS,Here)
-  `$6']')
-
-divert(0)dnl
 .PS
-# Here is a test file exercising the above definitions
+# FlowSVG.m4
 gen_init(svg_font(sans-serif,11bp__,2.5bp__))
+ifdef(`FlowchartDefs_',,`include(../FlowchartDefs.m4)')
 
-# Could use xcolor with option dvipsnames but define color here for portability
 define(`Thistle',`rgbstring(0.85,0.75,0.85)')dnl
 define(`RubineRed',`rgbstring(0.81,0,0.35)')dnl
 define(`YellowGreen',`rgbstring(0.68,1,0.18)')dnl
 define(`SeaGreen',`rgbstring(0.13,0.70,0.67)')dnl
 define(`Goldenrod',`rgbstring(0.85,0.65,0.13)')dnl
+define(`Beaublue',`rgbstring(0.74,0.83,0.9)')dnl
+define(`Celadon',`rgbstring(0.67,0.88,0.69)')dnl
 
 # Accented characters
 define(`svg_ccedilla',`svg_symbol(&`#'231;)')dnl
@@ -145,9 +18,31 @@
   linethick_(1.0)
   arrowwid = 0.05
   arrowht = 0.1
-  fillval = 0.8
-  down
+  fillval = 0.9
+  maxpsht = 20
 
+define(`shad',`shaded rgbstring(0.9,0.8,0.7)')
+define(`Below',`with .nw at last [].sw+(0,-0.25)')
+TL: Here
+Simple: [
+  Fbox("svg_tt(`Fbox')",,shad)
+  Ftest("svg_tt(``Ftest'')",,shad) Below
+  Fdata("svg_tt(``Fdata'')",,,shad) Below
+  Fprep("svg_tt(``Fprep'')",) Below
+  Fkeying("svg_tt(``Fkeying'')") Below
+  Fkeyboard("svg_tt(``Fkeyboard'')") Below
+  Fdocument("svg_tt(``Fdocument'')",,shaded rgbstring(0.9,0.8,0.7)) Below
+  Fdelay("svg_tt(``Fdelay'')",,shaded Beaublue) Below
+  Fdisplay("svg_tt(``Fdisplay'')",,shaded Celadon) Below
+  Fstored("svg_tt(``Fstored'')",,shaded Thistle) Below
+  Fconnect(,,shaded Thistle) Below
+  Fconnect("45",wid boxwid ht boxht:45,shaded Thistle) \
+    with .w at last [].e+(boxht/8,0)
+  "svg_tt(`Fconnect')" at last [].nw + (0,boxht/6)
+  ] with .nw at TL+(0.1,0); move from Simple.nw to TL
+
+#showbox_
+Complex: [
 Case: Fcase(,
   "Test 1",[Fbox("Task 1",, shaded Thistle); W:last [].W; N:last [].N
             arrow down linewid/3 from last [].S
@@ -158,15 +53,13 @@
   "Test 3",Fbox("Task 3",, shaded RubineRed)dnl
   )
 
-   "svg_it(.N)" at Case.N rjust above
-   "svg_it(.S)" at Case.S rjust below
-   "svg_it(.E)" at Case.E ljust
-   "svg_it(.W)" at Case.W rjust
-   "svg_it(Case statement)" below at Case.s+(0,-0.2)
-   move to Case.nw+(-12bp__,10bp__)
+  "svg_it(.N)" at Case.N rjust above
+  "svg_it(.S)" at Case.S rjust below
+  "svg_it(.E)" at Case.E ljust
+  "svg_it(.W)" at Case.W rjust
+  "svg_tt(`Fcase')" below at Case.s #+(0,-0.1)
 
-Whiledo: Fwhiledo("svg_it(i svg_lt n)",,,Fbox("Task"),
-   "T" above ljust at Test.E) \
+Whiledo: Fwhiledo("svg_it(i svg_lt n)",,,Fbox("Task"),"T" above ljust at Test.E) \
   with .nw at Case.ne+(0.25,0)
 
   "svg_it(.N)" at Whiledo.N rjust
@@ -173,31 +66,29 @@
   "svg_it(.S)" at Whiledo.S rjust below
   "svg_it(.E)" at Whiledo.E ljust
   "svg_it(.W)" at Whiledo.W rjust
-  "svg_it(While-do)" below at Whiledo.s+(0,-0.2)
+  "svg_tt(`Fwhiledo')" below at Whiledo.s
 
-Repeatuntil: Frepeatuntil("svg_it(n svg_geq 5)",,,Fbox("Task"),
-   "T" at Test.E above ljust) with .nw at Whiledo.sw + (0.25,-1)
+Repeatuntil: Frepeatuntil("svg_it(n svg_gt 5)",,,Fbox("Task"),
+   "T" at Test.E above ljust) with .nw at Whiledo.sw + (0.25,-0.5)
 
   "svg_it(.N)" at Repeatuntil.N rjust above
   "svg_it(.S)" at Repeatuntil.S rjust below
   "svg_it(.E)" at Repeatuntil.E ljust
   "svg_it(.W)" at Repeatuntil.W rjust
-  "svg_it(Repeat-until)" below at Repeatuntil.s+(0,-0.2)
+  "svg_tt(`Frepeatuntil')" below at Repeatuntil.se +(-0.0,0.2)
 
-Ifthenelse: Fifthenelse("svg_it(A`'svg_lt`'B)",,,
+Ifthenelse: Fifthenelse("svg_it(A svg_lt B)",,,
      Fbox("False"),
      Fbox("True",ht fboxht*1.2 wid fboxwid)dnl
-     ) with .nw at Repeatuntil.sw +(0.5,-0.5)
+     ) with .nw at Repeatuntil.sw +(-0.5,-0.3)
 
-  "svg_it(.N)" at Ifthenelse.N rjust above;
+  "svg_it(.N)" at Ifthenelse.N rjust above
   "svg_it(.S)" at Ifthenelse.S below rjust
-  "svg_it(.E)" at Ifthenelse.E ljust
+  "svg_it(.E)" wid 12bp__ at Ifthenelse.E ljust
   "svg_it(.W)" at Ifthenelse.W rjust
-  "svg_it(If-then-else)" at Ifthenelse.s+(0,-0.3) \
-  "svg_it((the True and False tasks are optional))"
+  "svg_tt(`Fifthenelse')" below at Ifthenelse.s+(0,-0.15)
 
-# Compound statement:
-[ right 
+Compound: [ right 
   ellipse shaded YellowGreen "Start"
   arrow right linewid/2
 
@@ -212,18 +103,18 @@
     "T" at Test.E above ljust),
     "T" at Test.E above ljust) with .N at Here
 
-  A: arrow down 0.25 from last [].S ] with .nw at Case.sw + (-12bp__,-0.7)
+  A: arrow down 0.25 from last [].S ] with .nw at Case.sw + (-12bp__,-0.3)
 
-  "svg_it(Compound statement)" below at last [].A.end
+  "svg_it(Compound statements)" at last [].A.end+(0.1,0) ljust above
 
+  ] with .nw at Simple.ne+(0.1,0)
+
 Example: [ fillvalue = 0.8; awid = linewid/2; right_
   Start: ellipse wid boxwid/2 ht boxwid/3 shaded "green"
   arrow right_ awid
   B1: Fbox("Planejamento")
-  B2: Fbox("Execu`'svg_ccedilla`'svg_atilde`'o") \
-   with .W at B1.E+(awid*3,0)
-  B3: Fbox("Sele`'svg_ccedilla`'svg_atilde`'o") \
-   with .W at B2.E+(awid*3,0)
+  B2: Fbox("Execu`'svg_ccedilla`'svg_atilde`'o") with .W at B1.E+(awid*3,0)
+  B3: Fbox("Sele`'svg_ccedilla`'svg_atilde`'o") with .W at B2.E+(awid*3,0)
   LT: Ftest("Avalia`'svg_ccedilla`'svg_atilde`'o do" "Planejamento",
     wid fboxwid*1.5 ht fboxht*2.0,
     shaded YellowGreen,
@@ -241,14 +132,13 @@
   arrow from B2.E to (RT.N,B2.E) then to RT.N
   arrow from RT.W to (B2.S,RT.W) then to B2.S
   arrow from RT.E to (B3.S,RT.E) then to B3.S
-  B4: Fbox("Extra`'svg_ccedilla`'svg_atilde`'o") \
-   with .S at B3.N+(0,awid)
+  B4: Fbox("Extra`'svg_ccedilla`'svg_atilde`'o") with .S at B3.N+(0,awid)
   arrow from B3.N to B4.S
-  arrow right_ awid from B4.E
+  arrow up_ awid from B4.N
   B5: Fbox("Conclus`'svg_atilde`'o")
-  ellipse wid boxwid/2 ht boxwid/3 shaded "red" at (B5.S,Start)
-  arrow down_ awid from B5.S to last ellipse.n
-] with .nw at last [].sw+(0,-fboxht)
+  arrow up_ awid from B5.N
+  ellipse wid boxwid/2 ht boxwid/3 shaded "red"
+] with .nw at last [].Compound.sw+(0,2.5*fboxht)
 
  command "</g>" # end font
 .PE

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/FourbarSVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/FourbarSVG.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/FourbarSVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,59 @@
+.PS
+# FourbarSVG.m4
+# https://tex.stackexchange.com/questions/563831/how-to-draw-four-bar-linkage-with-center-of-mass
+gen_init
+scale = 25.4
+
+ a = 18
+ b = 73
+ c = 47
+ d = 72
+ A0: Here
+ B0: A0+(d,0)
+ circlerad = 1
+
+define(`pivot',`[
+ C: circle
+ line down_ 4 from C+(2,0)
+ arc from last line.start to C+(-2,0) with .c at C
+ line down_ 4
+ B: line thick 1.6 right 7 with .c at (C,Here)
+ thinlines_
+ sep = 0.9
+ nhash = B.len/sep
+#for i=0 to nhash do { line down sep left sep from B.start+(i/nhash*B.len,0) }
+ for i=0 to nhash do { line down sep left sep from B.end-(i/nhash*B.len,0) }
+ thicklines_
+ ]')
+
+ pivot with .C at A0;              "svg_it(A`'svg_sub(0))" at A0-(5,0)
+ circle dashed rad a at A0
+ pivot with .C at B0;              "svg_it(B`'svg_sub(0))" at B0-(5,0)
+                        "svg_it(d = A`'svg_sub(0)B`'svg_sub(0))" at 0.5<A0,B0>
+
+ B1: Cintersect(A0,a+b,B0,c)
+ B2: Cintersect(A0,b-a,B0,c)
+ arc dashed from B1 to B2 with .c at B0
+
+ A0B1: line thick 1.6 from A0 to B1 chop 2 chop
+ line thick 1.6 from B0 to B1 chop 2 chop "svg_it(c)" ljust
+ circle fill_(1) at B1;            "svg_it(B`'svg_sub(1))" wid 3 at B1+(5,0)
+ A1: circle fill_(1) at LCintersect(A0B1,A0,a,R)
+                                   "svg_it(A`'svg_sub(1))" at A1+(5,0)
+
+ A2: b/(b-a) between B2 and A0;    "svg_it(a)" at 0.4<A2,A0> above rjust
+                                   "svg_it(b)" at 0.4<A1,B1> above rjust
+ A2B2: line thick 1.6 from A2 to B2
+ line thick 1.6 from B0 to B2 chop 2 chop 0
+ circle fill_(1) at B2;            "svg_it(B`'svg_sub(2))" at B2+(5,0)
+ circle fill_(1) at A2;            "svg_it(A`'svg_sub(2))" at A2+(5,0)
+
+ thinlines_
+ line from B0+(3,0) right 4
+ ArcAngle(Here,B0,B1,5) ->;     "svg_psi`'svg_sub(0)" at last arc.ne above ljust
+ ArcAngle(B1,B0,B2,8) ->;       "svg_psi" at last arc.n+(-3,0) above
+ ArcAngle(A1,A0,B2,b*0.45) ->;  "svg_theta" at last arc.start+(0,4)
+ line from A0+(3,0) right 8
+ ArcAngle(Here,A0,B1,9) -> ;    "svg_theta`'svg_sub(0)" at last arc.start+(2,2)
+
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/FourbarSVG.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/GeometrySVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/GeometrySVG.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/GeometrySVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,46 @@
+.PS
+# Geometry.m4
+gen_init
+ scale = 5/4
+
+ A: Here;               "A" at A above
+ B: A+(-1,-3.5);        "B" at B below rjust 
+ C: B+(4.6,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)
+
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/GeometrySVG.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/JackSVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/JackSVG.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/JackSVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,6 +1,6 @@
 .PS
 # `Jack.m4'
-cct_init(svg_font(sans-serif,11bp__))
+cct_init(svg_font(sans-serif,10bp__))
 
 P: [
   P1: plug

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/LyapSVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/LyapSVG.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/LyapSVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,159 @@
+.PS
+# Lyap.m4
+threeD_init
+scale = 1/1.2
+
+viewaz = 30
+viewel = 18
+setview(viewaz,viewel)
+
+Origin: project(0,0,0)
+#                             Components of view vector W
+w1 = view3D1
+w2 = view3D2
+w3 = view3D3
+#                             Shape factor of the ellipse on the xy plane
+q = Cos(40)
+
+#                             cost function
+h = 0.5
+c = 1
+#                             The projected ellipse is (x/q)^2 + y^2 = c.
+#                             The cost is v = c+h
+define(`vs',``$2'*q*cos(`$1'),`$2'*sin(`$1')')
+define(`vp',`vs(`$1',`$2'),0')
+define(`vx',`sum3D(vp(`$1',`$2'),0,0,h+(`$2')^2)')
+
+#                             The gradient of v is (2x/q, 2y, -1) and the line
+#                             separating front and back is W^T * grad(v) = 0
+#                             This line intersects the projected ellipse at
+#                             x1,y1 and x2,y2
+  ap = w2^2*q^2/w1^2+1
+  bp = -w2*w3*q^2/w1^2
+  cp = w3^2*q^2/4/w1^2-c
+  m = sqrt(bp^2-4*ap*cp)
+  y1 = (-bp+m)/ap/2 ; x1 = (w3-2*y1*w2)*q/2/w1
+  y2 = (-bp-m)/ap/2 ; x2 = (w3-2*y2*w2)*q/2/w1
+  t1 = atan2(y1,x1)
+  t2 = atan2(y2,x2)
+  theta1 = min(t1,t2)
+  theta2 = max(t1,t2)
+
+#                             tangent curve
+  nT = 11
+  for i = 0 to nT do {
+    y = y1 + (y2-y1)/nT*i
+    theta = atan2(y,(w3-2*y*w2)*q/2/w1)
+    r = y/sin(theta)
+    T[i]: project(vx(theta,r))
+    }
+
+#                             front and back parts of the top curve
+  n = 12
+  for i = 0 to n do {
+    theta = theta1 + (theta2-theta1)/n*i
+    F[i]: project(vx(theta,c))
+    Fp[i]: project(vp(theta,c))
+    }
+  for i = 0 to n do {
+    theta = theta2 + (theta1+twopi_-theta2)/n*i
+    B[i]: project(vx(theta,c))
+    Bp[i]: project(vp(theta,c))
+    }
+
+#                             trajectory
+rotations = 1.55
+nx = 7
+thetas = 75*dtor_
+thetaf = thetas - rotations*twopi_
+rx = c*0.9
+beta = exp(log(.5)/20)
+
+define(`defX',` rx = `$5' ; np = np-1
+  ts = `$1' ; tf = `$2'
+  for i = 0 to `$3' do {
+    tha = ts + (tf-ts)*i/(`$3')
+    for thx = tha to -twopi_ by twopi_ do {}
+    `$4'[i]: project(vx(thx,rx))
+    Xp[np]: project(vp(thx,rx))
+    np = np+1
+    rx = beta*rx
+    }')
+
+np = 1
+defX(thetas,theta1,nx,X1,rx)
+defX(theta1,theta2-twopi_,nx,X2,rx/beta)
+defX(theta2-twopi_,theta1-twopi_,nx,X3,rx/beta)
+defX(theta1-twopi_,thetaf,5,X4,rx/beta)
+
+#                             First draw the inside back
+#                             B is the back curve
+#                             T is the outline
+ifpstricks(`
+\psset{gradbegin=lightgray,gradend=darkgray,gradlines=1000}
+\pscustom[fillstyle=gradient,gradmidpoint=0.7]{
+  fitcurve(B,n)
+  for i = 0 to nT do {TT[i]: T[nT-i] }
+  fitcurve(TT,nT)
+\relax} ',
+` fitcurve(B,n)
+  for i = 0 to nT do {TT[i]: T[nT-i] }
+  fitcurve(TT,nT) ')
+
+#                             Centre axis
+thinlines_
+line from Origin to project(0,0,h)
+#                             F[0] is the leftmost point of the front curve
+line from F[0] to Fp[0]
+#                             F[n] is the rightmost point of the front curve
+line from F[n] to Fp[n]
+thicklines_
+
+#                             Now draw the outside front
+ifpstricks(`
+\newgray{gray1}{0.9}%
+\newgray{gray2}{0.4}%
+\psset{gradbegin=gray1,gradend=gray2,gradlines=1000}
+\pscustom[linewidth=0pt,fillstyle=gradient,gradmidpoint=0.99]{
+  fitcurve(F,n)
+  fitcurve(T,nT)
+\relax} ',
+` shade(1,fitcurve(F,n)
+  fitcurve(T,nT)) ')
+#                             T is the limit curve of visibility
+  fitcurve(T,nT)
+#                             F is the top front
+  fitcurve(F,n)
+#                             Front and back projections of the top on xy
+  fitcurve(Fp,n)
+  fitcurve(Bp,n)
+
+#                             The trajectory in pieces, to allow dashed parts
+  fitcurve(X1,nx)
+  fitcurve(X2,nx,dotted 0.025)
+  fitcurve(X3,nx)
+  fitcurve(X4,3,dotted 0.015)
+  arca(from X4[4] to X4[2],ccw,0.3,<-)
+
+#                             Projected trajectory
+  np = np-2
+  fitcurve(Xp,np-1)
+  arca(from Xp[np] to Xp[np-2],ccw,0.18,<-)
+  "svg_it(X(t))" at Xp[np]-(2bp__,0) ljust
+
+#                             Axes and vertical lines
+thinlines_
+  line from X1[0] to Xp[0]
+arrow from Origin to project(1.5,0,0)
+"svg_it(x)`'svg_sub(1)" rjust below
+arrow from Origin to project(0,1.5,0)
+"svg_it(x)`'svg_sub(2)" wid 10bp__ ljust
+line dashed from project(0,0,h) to F[n/2] chop 0 chop arrowht/4
+arrow from F[n/2] to project(0,0,2)
+"svg_it(v(X))" ljust
+
+"svg_it(0)" at Origin+(0,1 pt__) below
+"svg_Omega" at project(0,0.9*c,0) above
+"svg_it(v(X) = c)" at (project(vp(100*dtor_,c)))+(2bp__,0) above ljust
+
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/LyapSVG.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/MCSVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/MCSVG.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/MCSVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,5 +1,5 @@
 .PS
-#MC.m4
+#MCSVG.m4
 cct_init(svg_font(Times,11bp__))
 textoffset = 3bp__
 
@@ -44,12 +44,13 @@
 ]
 
 Three: [
+  gapht = 4*dimen_
   dv = dimen_*0.6
-  dh = dimen_
+  dh = dimen_*5/6
   define(`swfet',`mosfet(`$1',,dMEDSuBQPy)')
   define(`swpair',`[ up_
     BS: swfet(up_ dimen_); { "`$1'" at BS.D-(0,2bp__) rjust }
-    L: line up_ 3*dimen_ from BS.D
+    L: line up_ gapht-2*dimen_ from BS.D
     TS: swfet(up_ dimen_) with .S at Here; { "`$2'" at TS.S+(0,2bp__) rjust }
     T: TS.D
     B: BS.S
@@ -56,38 +57,39 @@
     C: L.c 
     ]')
 
-  V1: gap(up_ 5*dimen_,1,A)
+  V1: gap(up_ gapht,1,A)
   { "svg_it(V)svg_sub(1)" wid 12bp__ at last arrow.c rjust }
-  line right_  dh/2
+  line right_  dimen_/2
   { C1: capacitor(down_ to (Here,V1.start)); llabel(svg_it(C)svg_sub(1)) }
   for_(1,3,1,`
-    line right_ dh ifelse(m4x,1,,*5/4)
+    line right_ dimen_ ifelse(m4x,1,,*5/4)
    {SP1`'m4x: swpair(svg_it(S`'svg_sub(1`'eval(m4x+3))),
      svg_it(S`'svg_sub(1`'m4x))) with .T at Here
-    dot(at last [].C + (0,(2-m4x)*dh)) 
-    line right_ (3-m4x)*dh*5/4
+    dot(at last [].C + (0,(2-m4x)*dh))
+    line right_ (3-m4x)*dimen_*5/4+dimen_/4
     inductor(right_ dimen_,L)
     {sprintf("svg_it(L`'svg_sub(1&`#'%g;,70%))",64+m4x) at last [].n+(0,8bp__)}
-    line down_ (2-m4x)*dimen_*2/3
+    line down_ (2-m4x)*dh*2/3
     pushdef(`dimen_',dimen_*1.2) inductor(right_ dimen_*3/4) popdef(`dimen_')
-    line down_ (2-m4x)*dimen_/3
+    line down_ (2-m4x)*dh/3
     M: move right_ dimen_/8
-    line up_ (2-m4x)*dimen_/3
+    line up_ (2-m4x)*dh/3
     pushdef(`dimen_',dimen_*1.2) inductor(right_ dimen_*3/4) popdef(`dimen_')
-    line up_ (2-m4x)*dimen_*2/3
+    line up_ (2-m4x)*dh*2/3
     inductor(right_ dimen_,L)
     {sprintf("svg_it(L`'svg_sub(2&`#'%g;,70%))",64+m4x) at last [].n+(0,8bp__)}
-    line right_ dimen_/8+(m4x-1)*dh*5/4
+    line right_ dimen_/8+(m4x-1)*dh*5/4 + dimen_/4
     dot
     SP2`'m4x: swpair(svg_it(S`'svg_sub(2`'eval(m4x+3))),
-     svg_it(S`'svg_sub(2`'m4x))) with .C at Here+(0,(m4x-2)*dh) }
+     svg_it(S`'svg_sub(2`'m4x))) \
+     with .C at Here+(0,(m4x-2)*dh) }
   ')
   "svg_it(T)svg_sub(r)" at M.c+(0,dimen_*2/3)
   line from V1.start to SP13.B
   line from SP21.B to SP23.B+(dh*3/4,0)
   { C2: capacitor(up_ to (Here,V1.end)); llabel(,,svg_it(C`'svg_sub(2))) }
-  line right_ dh/2
-  gap(up_ 5*dimen_,1,A)
+  line right_ dimen_/2
+  gap(up_ gapht,1,A)
   { "svg_it(V`'svg_sub(2))" wid 12bp__ at last arrow.c ljust }
   line to SP21.T chop dotrad_ chop 0
 

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Makefile
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Makefile	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Makefile	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,15 +1,18 @@
 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/build/p2c/ftp/dpic
-#DPIC = ../../../dpic/build/p2c/ftp/dpic
+#DPIC = $$HOME/dpic/pascal/p2c/ftp/dpic
+#DPIC = ../../../dpic/pascal/p2c/ftp/dpic
 #DPIC = ../../../dpic/bison/dpic
-#DPIC = ../../../dpic/bdev/dpic
+#DPIC = ../../../dpic/bi*dev/dpic
 
 # To test the Windows executable.  Change these as needed for the operating
 # system.  NOTE: AntiqueClockSVG.m4 and Connectors.m4 use awk and sed which
@@ -17,7 +20,7 @@
 # M4LIBS = svg.m4 windows.m4
 # DPIC = ../../../dpic/bison/distsrc/Windows/dpic
 
-.SUFFIXES: .pic .svg .m4
+.SUFFIXES: .pic .svg .m4 .xsvg
 .pic.svg:
 	$(DPIC) -v $*.pic > $*.svg
 	grep '<\!-- width' $*.svg | sed -e 's%<\!-- *%%' -e 's% *-->%%' > $*.siz
@@ -25,6 +28,25 @@
 	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 \
@@ -35,9 +57,10 @@
  CountingSVG.svg CrossbarSVG.svg CrowSVG.svg CsourceSVG.svg \
  DecoderSVG.svg DemultiplexerSVG.svg DiniSVG.svg DiodesSVG.svg DriveSVG.svg \
  EmarrowsSVG.svg \
- FlowSVG.svg FontsSVG.svg FusesSVG.svg GrayCodeSVG.svg GroundsSVG.svg \
+ FlowSVG.svg FontsSVG.svg FusesSVG.svg \
+ GeometrySVG.svg GrayCodeSVG.svg GroundsSVG.svg \
  HeadersSVG.svg HeathkitSVG.svg InclepsSVG.svg I2LSVG.svg JackSVG.svg \
- LogicSVG.svg LoglogSVG.svg \
+ LyapSVG.svg LogicSVG.svg LoglogSVG.svg \
  MCSVG.svg MixerSVG.svg MotorControlSVG.svg MultiplexerSVG.svg \
  NLGSVG.svg NPDTSVG.svg NportSVG.svg OpampSVG.svg OptoisoSVG.svg \
  PconnSVG.svg PushPullSVG.svg QuantumSVG.svg \
@@ -44,7 +67,7 @@
  RectifiersSVG.svg RelaySVG.svg RotboxSVG.svg\
  SchottkySVG.svg ShiftRSVG.svg SierpinskiSVG.svg \
  SixpoleSVG.svg SourcesSVG.svg SQUIDSVG.svg SwitchesSVG.svg \
- TTLnandSVG.svg TgateSVG.svg TtreeSVG.svg ThreeSVG.svg TimerSVG.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 \
@@ -53,10 +76,12 @@
  expSVG.svg fetSVG.svg graysurfSVG.svg lcctSVG.svg \
  pwrsupplySVG.svg quickSVG.svg randomSVG.svg recycleSVG.svg relaycoilSVG.svg \
  roseSVG.svg sfgSVG.svg shapesSVG.svg paletteSVG.svg \
- thyristorSVG.svg ujtSVG.svg wormSVG.svg XORSVG.svg Np.svg
+ thyristorSVG.svg ujtSVG.svg UNOSVG.svg wormSVG.svg XORSVG.svg Np.svg \
+ Y14-5SVG.svg
 
 examplesSVG.html: examplesSVG.htmx
-	make $(CCTSVG)
+	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
@@ -112,7 +137,8 @@
 clean:
 	@printf "\n svg clean:\n"
 	rm -f *.svg *.dim *.ps *log *.siz *.pic examplesSVG.html Incleps.png
-	rm -f tstSVG.html copy_tmp__
+	rm -f tstSVG.html copy_tmp__ quick.m4 quick.xsvg
+	rm -f *.otf xx* *png *.pdf *.css *.xml quick.tex
 	@printf "\n"
 
 clobber: clean

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/OpampSVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/OpampSVG.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/OpampSVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -29,7 +29,7 @@
        "`Point_(90); opamp'" at C.s-(0,0.25)
      right_
   D: opamp(,,,,T) with .sw at C.se+(0.65,0)
-       "`opamp(,,,,T)'" wid 0.75 at D.s-(0,0.25)
+       "`opamp(,,,,T)'" wid 0.85 at D.s-(0,0.25)
 
  command "</g>" # end font
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/PconnSVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/PconnSVG.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/PconnSVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -31,7 +31,7 @@
   C7: pconnex(U,J) with .w at last [].e+(0.25,0)
    `"(U,J)"' at last [].s below
   C8: pconnex(U,JF) with .w at last [].e+(0.25,0)
-   `"(U,JF)"' wid 21bp__ at last [].s below
+   `"(U,JF)"' wid 28bp__ at last [].s below
   ]
 
 P2: [ 

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/UNO.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/UNO.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/UNO.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,265 @@
+.PS
+# UNOSVG.m4
+log_init
+include(../ics.m4)
+textoffset = 1.5bp__
+svg_font(sans-serif,9.0bp__,textoffset)
+
+divert(-1)
+
+                          `Header([1|2][A],rows,wid,ht,type)
+                            arg1: number of columns; A= type A
+                            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
+  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_(L_unit*3/2,-(m4x-1/2)*m4Hh/m4Hm),
+     eval(m4Hct-1), P`'m4Hct,w) define(`m4Hct',incr(m4Hct))
+    ifelse(m4Hn,2,`HeaderPin(Block.NE+vec_(-L_unit*3/2,-(m4x-1/2)*m4Hh/m4Hm),
+       1, P`'m4Hct,e) define(`m4Hct',incr(m4Hct))') ')
+  ifelse(`m4Hq',A,`popdef(`L_unit')')
+  `$6' ]')
+                          `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`'svg_it(+), 30;D`'svg_it(-), 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,
+   9;XTAL2,
+   304;nul, 305;nul)
+   lg_pin(Pin305+(0,lg_pinsep),RESET,Pin1,wN,1,pinlen)
+  ]')
+
+divert(0)dnl
+
+ maxpswid = 20
+ maxpsht = 20
+
+ define(`pinlen',`30bp__')
+ define(`lg_pinsep',(1.2*lg_pinsep))
+ del = lg_pinsep
+
+ 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+(0,-1)
+  `"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(from U3.Pin33.end to (XT2,U3.Pin33)); 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(,22pF)
+ C9: capacitor(from XT1 to (Here,XT1)); {"C9" "22pF" at last [].s+(0,-11bp__)}
+  { line to C11.end }
+  dot
+ G1: ground(,,E); { "GND" at last line.c below }
+  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`'svg_micro) 
+ 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); {"svg_it(+)5V" at last line.c above}
+
+ G3: ground(at (C8.x-del,G2.y),T,E);  {"GND" at last line.c below }
+  capacitor(up_ to (Here,C8.start)); { llabel(100n,,C7) }
+  line to (Here,U3.Pin4) then to U3.Pin4.end
+
+  line from U3.Pin30.end to (G1.x-2*del,U3.Pin30.y); continue to (Here,U3.Pin1)
+  { "RD`'svg_it(-)" above rjust }; continue left_ 2*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`'svg_it(-), 3 D`'svg_it(+), 4 UGND)
+  P_1: K.sw; {"P$`1'" at P_1 below rjust}
+  P_2: K.s; {"P$`2'" at P_2 below ljust}
+  ] with .Pin2 at Here; "X2" at USB.ne above rjust
+
+  move to U3.Pin29.end
+  line to (G1.x-3*del,Here.y); continue to (Here,Dm-(0,lg_pinsep))
+  { "RD`'svg_it(+)" 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,,M)
+   rlabel(L1); llabel( BLM21); 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`'svg_it(+)" at last [].n above}
+   dot(at (DP,USB.Pin2)-(2*del,0)); line to (Here,XUSB)
+  DM: dot(,,1); "D`'svg_it(-)" at last [].n above
+   line from USB.Pin4 to (DM,USB.Pin4) then to (DM,BRE) then to BRE
+
+   dot(at (U3.Chip.w.x-3*lg_pinsep,U3.Pin24.y))
+  D3: diode(up_ 7*lg_pinsep); llabel(,,D3)
+   dot(at (D3.start-(2*del,0)))
+  RN1C: resistor(up_ D3.len,,E); llabel(,10K); llabel(RN1C); dot
+   line from D3.end to (Here.x-2*del,Here.y)
+   right_
+  ICSP1: Header(2A,3,4*del,3*lg_pinsep) with .P2.end at Here
+   "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')
+  
+   dot(at ICSP1.P2.end+(del/2,0)); line up_ 2*del
+  G5: ground(,T,E); "svg_it(+)5V" above
+   ground(at (G5,ICSP1.P6),,E); {"GND" at last line.w below rjust}
+   {line to ICSP1.P6.end}
+  R2: dot(at ICSP1.P5.end-(lg_pinsep/2,0)); {line to ICSP1.P5.end}
+   { line to (Here,G5); dot(,,1); "RESET2" at last [].n above }
+   line to (R2,U3.Pin24) then to U3.Pin24.end
+   line from ICSP1.P4.end to (U3.Pin24.end,ICSP1.P4); dot
+   { line to (Here,G5); dot(,,1); "MOSI2" at last [].n above }
+  Turn: (U3.Pin21.end.x+4*lg_pinsep,Here.y)
+   line to (Turn,Here) then down Here.y-U3.Pin16.y then to U3.Pin16.end
+   line from ICSP1.P3.end to (R2.x-lg_pinsep,ICSP1.P3.y) \
+     then down R2.y-U3.Pin24.y
+   continue to (D3.x+2*del,Here.y) then up ICSP1.P4.y-Here.y-2*lg_pinsep
+   continue to (Turn.x-2*lg_pinsep,Here.y) then down Here.y-U3.Pin15.y \
+     then to U3.Pin15
+   move to ICSP1.P1.end; line left Here.x-R2.x+2*lg_pinsep; dot
+   { line to (Here,G5); dot(,,1); "MISO2" at last [].n above rjust }
+   line down Here.y-U3.Pin24.y-2*lg_pinsep 
+   continue to (D3.x+del,Here.y) then up ICSP1.P4.y-Here.y-lg_pinsep
+   continue to (Turn.x-lg_pinsep,Here.y) then down Here.y-U3.Pin17.y \
+     then to U3.Pin17
+
+  command "</g>"
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/UNO.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/UNOSVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/UNOSVG.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/UNOSVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,577 @@
+.PS
+# UNOSVG.m4
+log_init
+include(../icsSVG.m4)
+textoffset = 1.5bp__
+svg_font(sans-serif,8.5bp__,textoffset)
+
+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`'svg_it(+), 30;D`'svg_it(-), 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
+
+ maxpswid = 20
+ maxpsht = 20
+
+ 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`'svg_micro) 
+ 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); {"svg_it(+)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`'svg_it(-)" 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`'svg_it(-), 3 D`'svg_it(+), 4 UGND)
+  P_1: K.sw; {"P$`1'" at P_1 below rjust}
+  P_2: K.s; {"P$`2'" 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`'svg_it(+)" 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("svg_thinsp`'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`'svg_it(+)" at last [].n above}
+   dot(at (DP,USB.Pin2)-(2*del,0)); line to (Here,XUSB)
+  DM: dot(,,1); "D`'svg_it(-)" 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
+# D3: diode(up_ 5*lg_pinsep); rlabel(,,D3); dot
+   line up_ 2*del; ground(,T,E,U); {"+5 V" at last line.w rjust}
+   dot(at U3.Pin24.end-(del,0)); 
+# RN1C: resistor(up_ D3.len,,E); llabel(,10K,RN1C)
+  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: ebox(right_ to C6.start,,,0.2); rlabel(,L2); llabel(,100`'svg_micro`'H) 
+  L2: inductor(right_ to C6.start,W); rlabel(,L2); llabel(,100`'svg_micro`'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.25 between XTAL.start and XTAL.end)
+   capacitor(left_ del from 0.75 between XTAL.start and XTAL.end)
+   popdef(`dimen_')
+   line up XTAL.len/2
+   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
+#  dot(at ZU4.Pin1.end)
+  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
+#  move to ICSP.P4.end; line right_ del then down Here.y - G9.y + del
+#    continue to (ICSP.P1.end.x+del,Here.y) 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)
+#   with .P6.end at 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_ 5.5*lg_pinsep; 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
+#   "USBVCC" at T1.D 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/OFF" at U2.w ljust
+   line right_ textht*0.66*3 from U2.w+(textht*0.66*5,textht)
+  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`'svg_micro" 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 above ljust; "PWR SUPPLY" at X1.nw below 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`'svg_micro" 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/dptextratio) 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`'svg_micro" 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`'svg_micro" 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
+
+
+
+  command "</g>"
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/UNOSVG.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Xtest.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Xtest.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Xtest.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,58 @@
+.PS
+# test.m4
+gen_init
+
+divert(-1)
+
+divert(0)dnl
+
+gs = 0.1
+gw = 3
+gh = 3
+define grid {($1*gs,$2*gs)}
+B: box invis wid gw+2 ht gh+2 with .c at (0,0)
+bix = gw/gs/2
+G:[
+C: 0,0
+for i=-bix to bix do { line wid 0.4 outlined "gray" from grid(-bix,i) right gw }
+for i=-bix to bix by 5 do { sprintf("%g",i) at grid(-bix,i) rjust }
+for j=-bix to bix do { line wid 0.4 outlined "gray" from grid(j,-bix) up gh }
+for j=-bix to bix by 5 do { sprintf("%g",j) at grid(j,-bix) below }
+
+  line from grid(-bix,0) right gw
+  line from grid(0,-bix) up gh
+] with .C at B
+
+textoffset = 0
+xwid = 0.71; svg_font(Times,72bp__)
+#xwid = 0.65; svg_font(sans-serif,72bp__)
+#xwid = 0.64; svg_font(Arial,1)
+#xwid = 0.64; svg_font(Helvetica,1)
+#xwid = 0.54; svg_font(Courier,1)
+#xwid = 0.67; svg_font(Cursive,1)
+#xwid = 0.64; svg_font(Verdana,1)
+#xwid = 0.70; svg_font(Georgia,1)
+#xwid = 0.70; svg_font(Palatino,1)
+#xwid = 0.70; svg_font(Garamond,1)
+#xwid = 0.70; svg_font(Bookman,1)
+##xwid = 0.70; svg_font(Comic Sans MS,1)
+#xwid = 0.55; svg_font(Trebuchet MS,1)
+#xwid = 0.78; svg_font(Arial Black,1)
+#xwid = 0.49; svg_font(Impact,1)
+[
+C: 0,0
+ "X" wid xwid at grid(0,0) above ljust ; showbox_(last "")
+ "X" wid xwid at grid(0,0) below ljust ; showbox_(last "")
+ "X" wid xwid at grid(0,0) above rjust ; showbox_(last "")
+ "X" wid xwid at grid(0,0) below rjust ; showbox_(last "")
+] with .C at G.C
+[
+  Q: box wid gw ht gh "X" ljust "Y" rjust "Z"
+    line from Q.n to Q.s; line from Q.w to Q.e
+] with .w at B.e
+
+ "X" wid xwid at G.n above; showbox_(last "")
+
+
+  command "</g>"
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Xtest.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Y14-5SVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Y14-5SVG.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Y14-5SVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -0,0 +1,173 @@
+.PS
+# ASME_Y14-5.m4
+# https://en.wikipedia.org/wiki/Geometric_dimensioning_and_tolerancing
+# See the ASME Y14.5 standard, Figure 6-30. 
+scale = 100/3
+cct_init
+include(../ASME_Y14-5.m4)
+ifsvg(`svg_font(sans-serif,10bp__)',
+`textht = 10bp__*2/3
+ iflatex(`command "{\sf"')')
+# ASME Y14.5 specs:
+ arrowht = textht*0.8
+ arrowwid = textht*0.6
+ maxpswid = 12
+
+#                           Diameters
+ d1 = (20.13+20.00)/2
+ d2 = 31.7
+ d3 = 36
+ d4 = (40.60+40.45)/2
+ d5 = 57
+ d6 = 86
+ d7 = 100
+ d8 = 8.0
+ adj = 1.5
+
+Section: [
+ Orig: (0,0)
+ T0: (0,-d7/2)
+ T1: (6,-d5/2)
+ T2: (15.5,-d3/2)
+ T3: (22,-d3/2-adj)
+ T4: (32,-d2/2)
+ T5: (41.3,0)
+ T6: (9.5,-d4/2)
+# for_(0,5,1,`"m4x" at T`'m4x')
+#                           Hatching
+ H: hatchbox(invis ht d7 wid 41.3,2,thick 0.4,-45) with .w at Orig
+ box invis fill_(1) wid T5.x-T1.x ht T1.y-H.s.y with .se at H.se
+ box same with .ne at H.ne
+ box invis fill_(1) wid T3.x-T2.x ht T2.y-T1.y with .nw at T2
+ box same with .sw at (T2.x,-T2.y)
+ box invis fill_(1) wid T4.x-T3.x ht T3.y-T1.y with .nw at T3
+ box same with .sw at (T3.x,-T3.y)
+ box invis fill_(1) wid T5.x-T4.x ht T4.y-T1.y with .nw at T4
+ box same with .sw at (T4.x,-T4.y)
+#                           Section outline lower
+ line from (0,-d4/2) to T0 then right T1.x-T0.x then up 1
+ arcto(T1,(T2,T1),1)
+ line to (T2,T1) then up 1
+ arcto(T2,(T3,T2),1)
+ arcto((T3,T2),T3,0.5)
+ arcto(T3,(T4,T3),0.5)
+ arcto((T4,T3),T4,1)
+ arcto(T4,(T5,T4),1)
+ line to (T5,T4) then to (T5.x,-T4.y) then left 1
+#                           Section outline upper
+ line from (0,d4/2) to (0,-T0.y) then right T1.x-T0.x then down 1
+ arcto((T1.x,-T1.y),(T2.x,-T1.y),1)
+ line to (T2.x,-T1.y) then down 1
+ arcto((T2.x,-T2.y),(T3.x,-T2.y),1)
+ arcto((T3.x,-T2.y),(T3.x,-T3.y),0.5)
+ arcto((T3.x,-T3.y),(T4.x,-T3.y),0.5)
+ arcto((T4.x,-T3.y),(T4.x,-T4.y),1)
+ arcto((T4.x,-T4.y),(T5.x,-T4.y),1)
+ line to (T5.x,-T4.y)
+
+ box wid 6 ht d8 fill_(1) with .w at (0,d6/2)
+ box wid 6 ht d8 fill_(1) with .w at (0,-d6/2)
+ box invis wid T6.x ht d4 fill_(1) with .w at Orig
+ box wid T5.x-T6.x ht d1 fill_(1) with .e at T5
+
+ line from (Orig.x,-T6.y) to (Orig.x,T6.y)
+ arcto(T6,(T6,Orig),1)
+ arcto((T6.x,-T6.y),(0,-T6.y),1)
+ line to (0,-T6.y) 
+
+define(`dialabel',
+`[tmpthick = linethick; linethick_(1)
+  [Y14_dia_]; [$1 wid ifelse(`$2',,textht,`$2')] with .w at last [].e+(0.5,0)
+  linethick_(tmpthick)]')
+
+thinlines_
+ dimension_(from (0,T6.y) to (0,-T6.y),40,dialabel("40.60" "40.45",12),textht*3)
+ line up 4 from AE_dimen_.end
+ Y14_frame(Y14_per_,Y14_dia_;"0";"(M)","A") with .sw at Here
+ Y14_frame("B") with .s at last [].n+(0,6)
+thicklines_(1)
+ datumarrow(from last [].s to 2nd last [].n)
+thinlines_
+ dimension_(from T2 to (T2.x,-T2.y),30,
+   dialabel("35.5" "36.0",12),textht*3)
+ dimension_(from T0 to T0+(T1.x,0),-8," 6.1 " " 5.9 ",textht)
+ dimension_(from S_dimen_.end to S_dimen_.end+(T2.x,0),-9,
+   "15.4" "15.6",textht*4)
+   line from E_dimen_.start to (T2,T1) chop 0 chop 1
+ dimension_(from S_dimen_.end to S_dimen_.end+(T3.x,0),-9,
+   "21.9" "22.1",textht*4)
+   line from E_dimen_.start to T3 chop 0 chop 1
+ dimension_(from S_dimen_.end to S_dimen_.end+(T4.x,0),-9,
+   "31.9" "32.1",textht*4)
+   line from E_dimen_.start to (T4,T3) chop 0 chop 1
+ dimension_(from S_dimen_.end to S_dimen_.end+(T5.x,0),-9,
+   "41.2" "41.4",textht*4)
+   line from E_dimen_.start to (T5,T4) chop 0 chop 1
+   line from S_dimen_.start to T0 chop 0 chop 1
+ dimension_(from (0,d7/2) right T6.x,8,"9.6" "9.4",3*textht)
+   line from E_dimen_.start to (T6.x,d4/2) chop 0 chop 1
+ ctrline(from (-3,0) to T5+(3,0),T5.x/2)
+ ctrline(from (-3,d6/2) right T1.x+6)
+ ctrline(from (-3,-d6/2) right T1.x+6)
+ dimension_(from T5-(0,d1/2) to T5+(0,d1/2),-14,
+  dialabel("20.13" "20.00",4*textht),textht*3)
+ dimension_(from T5-(0,d2/2) to T5+(0,d2/2),-35,
+  dialabel("31.8" "31.6",3*textht),textht*3)
+ arrow <- from (T5.x+6,d1/2) by (Rect_(20,75)) then right 6
+ Y14_frame(Y14_cir_,"0.06" wid 3*textht,"A","B") with .w at Here
+ Y14_frame("C") with .n at last [].se+(-6,-8)
+thicklines_(1)
+ datumarrow(from last [].n up 8)
+thinlines_
+ arrow <- from (T5.x+6,-d2/2) by (Rect_(10,-75)) then right 4
+ Y14_frame(Y14_cir_,"0.1" wid textht*2,"C") with .w at Here
+ arrow <- from ((T3.x+T4.x)/2,d3/2+adj) by (Rect_(30,75)) then right 4
+ "M42 X 1.5 - 6g" wid 9*textht ljust
+ Y14_frame(Y14_pos_,Y14_dia_;"0.1" wid textht*2;"(M)","C";"(M)") \
+   with .nw at last "".sw+(0,-2)
+ line from (T2.x,-T1.y) up 25 chop 1 chop 0
+ Y14_frame(Y14_par_,"0.06" wid 3*textht,"A") with .sw at Here
+ Y14_frame(Y14_sur_,"  0.1 " wid 3*textht,"A") with .sw at last [].nw
+ arrow <- from (0,-d6/2+10) left 13
+ Y14_frame(Y14_fla_,"0.02" wid 4*textht) with .e at Here
+ Y14_frame("A") with .n at last [].s+(0,-6)
+ datumarrow(from last [].n up 6)
+ ]
+
+Topview:[
+ C: circle diam d7
+ for i=0 to 7 do { circle diam d8 at C+(Rect_(d6/2,i/8*360)) }
+ C5: circle diam d5 at C
+ C4: circle diam d3+2*adj at C
+ C3: circle dashed diam d3 at C
+ C2: circle diam d2 at C
+ C1: circle diam d1 at C
+
+thinlines_
+ dimension_(from C.w-(0,10) to C.e-(0,10),-C.rad-15,
+   dialabel("100" "99",textht*3),textht*5)
+ dimension_(from C5.w-(0,5) to C5.e-(0,5),-C.rad-5,
+   dialabel("57.2" "56.8",textht*4),textht*5)
+ arrow <-> from C+(Rect_(d6/2,-120)) to C+(Rect_(d6/2,60))
+ line from last arrow.end to C+(Rect_(d7/2+6,60)) then right 4
+   dialabel("86.2" "85.8",textht*4) with .w at Here+(1,0)
+ ctrline(from (C.x-(d6-d7/2),C.y) to (C.x+(d6-d7/2),C.y))
+ ctrline(from (C.x,C.y-d6/2+d8/2) to (C.x,C.y+d6/2-d8/2))
+ for_(0,315,45,`ctrarcr(C,d6/2,(m4x-22.5)*dtor_,(m4x+22.5)*dtor_)
+  ctrline(from C+(Rect_(d6-d7/2,m4x)) to C+(Rect_(d7/2,m4x))) ')
+ arcdimension_(from C+(0,d7/2) to C+(Rect_(d7/2,135)) with .c at C,
+   8,"8X 45`'iflatex(^\circ)" wid textht*3.5,15,1)
+ ifsvg("svg_deg" wid textht*2/3 with .w at last "".e)
+ move to C+(0,d6/2)
+ arrow <- from Here+(Rect_(8/2,75)) to Here+(Rect_(25,75)) then right_ 3
+ "8X" wid 2*textht ljust
+ linethick_(1); [Y14_dia_] with .w at last "".e+(1,0)
+ "7.9 - 8.1" wid 8*textht ljust
+ Y14_frame(Y14_pos_,Y14_dia_;"0.14" wid 3*textht;"(M)","A","C") \
+   with .nw at 2nd last "".sw+(0,-2)
+
+ ] with .C at Section.Orig+(4.5*scale,0)
+
+
+command iflatex(`"}"',ifsvg(`"</g>"'))
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/Y14-5SVG.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/ex01SVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/ex01SVG.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/ex01SVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,7 +1,56 @@
 .PS
-# ex01.m4
+# TimerSVG.m4
 cct_init(svg_font(sans-serif,10.5bp__))
 
+define(`ic555',`[Chip: box ht boxwid wid boxwid "555"
+  P7: "7" ljust at 1/6<Chip.sw,Chip.nw>
+  P6: "6" ljust at 1/2<Chip.sw,Chip.nw>
+  P2: "2" ljust at 5/6<Chip.sw,Chip.nw>
+  P4: "4" below at 1/3<Chip.nw,Chip.ne>
+  P8: "8" below at 2/3<Chip.nw,Chip.ne>
+  P3: "3" rjust at Chip.e
+  P1: "1" above at Chip.s
+  ]')
+
+Timer: [
+  define(`elen_',`linewid')
+Vs: dot
+  down_
+  variable(`resistor(,E); llabel(,svg_norm(1 M`'svg_ohm))');
+  resistor(,E); llabel(,svg_norm(100 k`'svg_ohm))
+  capacitor(,E); llabel(svg_norm(220 svg_micro`'F))
+Zero: dot
+
+  dot(at Vs+(elen_*4/3,0))
+  resistor(,E); llabel(,svg_norm(33 k`'svg_ohm))
+  line to (Here,Zero) chop 0 chop elen_
+C2: capacitor; llabel(svg_norm(0.1 svg_micro`'F))
+  dot
+
+IC1: ic555 with .P7 at C2.start + (elen_,0)
+  line from IC1.P4 to (IC1.P4,Vs); dot
+  line from IC1.P8 to (IC1.P8,Vs); dot
+  line from IC1.P1 to (IC1.P1,Zero); dot
+  line from IC1.P2 to (C2,IC1.P2); dot
+  crossover(from IC1.P7 to (Zero,IC1.P7),R,C2); dot
+  line from IC1.P6 left elen_/2 then down IC1.P6.y-IC1.P7.y; dot
+  line from IC1.P3 right elen_*2/3
+R: dot
+  line right_ elen_/3
+B: buzzer(,,C) with .In3 at Here
+  line from B.In1 to (R,B.In1)
+  reversed(`diode',to (Here,Vs),LE); "red" at last line.c+(elen_/2,0)
+  resistor(down_ elen_ from R,E); llabel(,svg_norm(470 svg_ohm))
+  diode(to (Here,Zero),LE); {"green" wid 0.4 at last line.c+(elen_*2/3,0)}
+  line to Zero chop 0 chop -elen_
+  line up_ (Vs.y-Here.y)/3
+  battery(up_ (Vs.y-Here.y)/3); rlabel(,,svg_norm(9 V))
+  switch(to (Here,Vs),,D)
+  line to (R,Vs)
+]
+Ex01: [
+# ex01.m4
+
 linewid = linewid*1.5     # let's make the circuit elements bigger than usual
 define(`elen_',linewid)   # but not longer
 
@@ -10,11 +59,13 @@
 Vin: source(up_ elen_ + 2*del, V); llabel(,v`'svg_sub(s),)
 
   switch(right_ elen_,,C); rlabel(,t = svg_norm(0),)
-  resistor; llabel(,svg_norm(47 ohm),); b_current(i`'svg_sub(R),above rjust)
+  resistor; llabel(,svg_norm(47 ohm),); b_current()
+  { "svg_it(i`'svg_sub(R))" at last arrow.end+(0,3bp__) above rjust }
 
   line right_ elen_/2 then down_ del
-  parallel_(`inductor(,W); llabel(,"L" wid 0.15,); b_current(i`'svg_sub(L))',
+  P:parallel_(`L:inductor(,W); llabel(,"L" wid 0.15,); b_current()',
             `capacitor(,C); rlabel(+,v`'svg_sub(C),-); llabel(,,C)')
+  { "svg_it(i`'svg_sub(L))" at P.E1.L.start+(2bp__,0) ljust below }
   line to (Here,Vin.start) then to Vin.start
 
   define(`meshcurrent',`[arc -> cw with .c at (0,0) \
@@ -23,6 +74,7 @@
   right_
   meshcurrent(del,i`'svg_sub(2)) at last[].C
   meshcurrent(2*del,i`'svg_sub(1)) at Vin.start + (4*del,3*del)
+  ] with .sw at Timer.se+(0.5,0)
 
  command "</g>" # end font
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/ex05SVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/ex05SVG.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/ex05SVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,21 +1,26 @@
 .PS
-# ex05.m4
+# ex05SVG.m4
 darrow_init
 
-  fillval = 0.8              # environmental variable
+Kalman: [
+  fillval = 0.8
 
-  dx = boxht/5               # diagram parameters wrt scaled env variables
+  boxht = 0.35
+  boxwid = 1.5*boxht
+  dx = boxht/5
   circlerad = boxht*3/8
   extlen=4*dx
   indel = boxht/3
+  define(`dlthick',dlthick*3/4)
 
-COb: box fill_ "CO"
-   { line right textht*0.5 from COb+(0,textht*0.5) }
+define(`overbar',`line right textht*0.8 \
+  with .c at last box.c + ((`$1')*textht,0.7*textht)')
+
+COb: box fill_ "CO"; overbar(0.5)
 CO:box fill_ with .nw at last box.se+(dx,-dx) "CO"
 CbOb: box fill_ with .nw at last box.se+(dx,-dx) "CO"
-  { line right textht*1.0 with .c at CbOb+(-textht*0.1,textht*0.5) }
-CbO: box fill_ with .nw at last box.se+(dx,-dx) "CO"
-  { line left textht*0.5 from CbO+(-textht*0.2,textht*0.5) }
+  overbar(-0.5); overbar(0.5)
+CbO: box fill_ with .nw at last box.se+(dx,-dx) "CO"; overbar(-0.5)
 
   dline(from CbO.s down_ dx,,t,,!-)
   dright
@@ -28,7 +33,7 @@
 SB: shadebox(box wid NE.x-SW.x ht NE.y-SW.y with .sw at SW)
 
 U: COb.w-(3*dx+extlen,0)
-  {"svg_bf(u)" wid 0.1 rjust at U}
+  {"svg_it(U)" wid 0.1 rjust at U}
   dline(from U right_ extlen+dx,,t,,|-)
 TU: dtee(R)
   {darrow(to COb.w,t)}
@@ -60,10 +65,51 @@
 
   darrow(left_ from Sum.w to Dum.e)
   dline(from Dum.w to (SB.w-(0.1,0),Dum)); darrow(to (U,Here))
-    {"svg_bf(y)" rjust}
+    {"svg_it(Y)" rjust}
   move left 0.23
 
   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));         "svg_it(a)" at last [].n above
+  arrow from P[4] to Pa chop linewid/4
+ Pd: dot(at Pa+(linewid,0));           "svg_it(d)" at last [].w rjust
+ Pe: dot(at Pd+(linewid,0));           "svg_it(e)" at last [].n above
+ Pf: dot(at Pe+(linewid,0));           "svg_it(f)" at last [].n above
+ Pb: dot(at Pd+(Rect_(linewid,120)));  "svg_it(b)" at last [].w rjust
+ Pc: dot(at Pd+(Rect_(linewid,-120))); "svg_it(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)
+   "svg_it(d)" at (linewid,linewid*2/3)
+  customarc((2*linewid,-linewid/3), 25,155)
+   "svg_it(e)" at (2*linewid,linewid*2/3)
+  customarc((3*linewid,-linewid/3), 25,155)
+   "svg_it(f)" at (3*linewid,linewid*2/3)
+  customarc(Orig,130,230);                  "svg_it(a)" at (Rect_(linewid,180))
+  customarc(Orig, 10,110);                  "svg_it(b)" at (Rect_(linewid, 60))
+  customarc(Orig,-110,-10);                 "svg_it(c)" at (Rect_(linewid,-60))
+
+  ] with .sw at Kalman.se+(15bp__,0)
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/examplesSVG.htmx
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/examplesSVG.htmx	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/examplesSVG.htmx	2020-12-21 22:02:51 UTC (rev 57189)
@@ -5,29 +5,27 @@
 <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">
-.svg{display:none}
-*>.svg{display:inline}
 </style>
 <link rel="shortcut icon" href="../Circuit_macros.ico" type="image/x-icon" />
 </HEAD>
 
-<BODY>
-<H2>SVG Circuit_macros examples, Version XXX</H2>
-<hr>
+<!-- ---------------------------------------------------------------------
+define(`ifinstr',`ifelse(`$2',,`$1',index(`$1',`$2'),-1,
+ `ifinstr(shift(shift(shift($@))))',`$3')')
 
-<p>
-  These diagrams are in .svg format.
-  <A HREF="examples.pdf">Pdf</A>
-  and
-  <A HREF="examples.html">png</A>
-  versions are also available.
-  The PDF equivalent can be found in examples.pdf of the distribution.
-</p>
- <p>
-  Click on the link to view the source of each diagram.
-</p>
-<hr>
+define(`m4tt',`<g style="font-family:monospace">')
 
 define(`cfig',`
 <p>
@@ -40,40 +38,62 @@
 
 <!--[if !IE]><!-->
 <object data="$1.svg" sinclude($1.siz) type="image/svg+xml" class="img">
-  </object> <!--<![endif]-->
+  </object> <![endif]-->
 
-<br>
-<a href="$1.txt" TYPE="text/plain" TARGET="_blank" alt="$1">$1.m4</a>
+<br><br>
+ifelse(`$2',,,`
+<a href="$1.txt" TYPE="text/plain" TARGET="_blank" alt="$1">$1.m4:</a>
+`$2' changecom(,)&`#'8194;changecom(`#')')
+
 </p>
-<hr>')
+ifinstr(`$3',y,,`<hr>')')
 
-define(`m4tt',`<g style="font-family:monospace">')
+--------------------------------------------------------------------- -->
 
-<!--
-<embed pluginspage="http://www.adobe.com/svg/viewer/install/" />
--->
+<BODY>
+<table cellpadding="0" cellspacing="0" width="700px" border="0" align="center" >
+<tr>
+<td>
+<H2>SVG Circuit_macros examples, Version XXX</H2>
+<hr>
 
 <p>
-These diagrams have been adapted from the Circuit_macros examples in
-order to test the <em>experimental</em> svg output of dpic.
-Generating the line art is relatively straightforward, but
-the labeling is not created by a text processor and therefore must be
-more basic.  Some of these diagrams might benefit from a little more
-tweaking of fonts and labels.
+  This file shows diagrams in .svg format;
+  <A HREF="examples.html">png</A>
+  versions are also available.
+  The PDF equivalent can be found in examples.pdf of the distribution.
 </p>
+
 <p>
-These examples conform to the latest dpic, which has changed the
-treatment of text sizing.  That is, "Text" ht y sets the true height
-of SVG text to y rather than the nominal height as previously.
+The diagrams shown below 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
+  <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</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
+be representative.
 </p>
 <p>
+  Click on the link to view the source of each diagram.
+</p>
+<hr>
+<p>
 There are a number of other issues:
 <ul>
   <li> Embedding .svg files in html documents with the <embed> or
     <object> tag seems to be a perennial issue.
   <li> This file has been tested mainly by using Firefox.
-   Chrome also seems to work well with two issues detected to date:
-   a difference handling color fills and text links in svg.
   <li> The Adobe reader apparently requires a line of the form
   <br> <embed src="figure.svg" width="x" height="y" type="image/svg+xml"
      />
@@ -86,11 +106,11 @@
    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 depend on the browser.  Some of these diagrams set the font at
+   differ depending on the browser.  Some of these diagrams set the font at
    the beginning of the diagram source.
   <li> The <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 yet been done.
+   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
@@ -103,7 +123,7 @@
    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 should be defined to exercise some of the media capabilties of svg.
+   Others could be defined to exercise some of the media capabilties of svg.
    They are subject to change:
   <ul>
     <li>
@@ -161,191 +181,511 @@
     <li>m4tt svgLinkString</g> as above but for strings attached to objects
     <li> Greek and other symbols:
 
-<table cellpadding="0" cellspacing="0" width="100%" >
-<table cellpadding="0" cellspacing="0" width="100%" >
+<!--
+  Reference:
+  https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references
+  -->
+<hr width="100%" align="left">
+<table cellpadding="2" cellspacing="0" width="75%" >
 <tr>
-<td width="8%"> m4tt svg_alpha</g> <td align="left"> changecom(,)&`#'945;changecom(`#')
-<td width="8%"> m4tt svg_beta</g> <td align="left"> changecom(,)&`#'946;changecom(`#')
-<td width="8%"> m4tt svg_Gamma</g> <td align="left"> changecom(,)&`#'915;changecom(`#')
-<td width="8%"> m4tt svg_gamma</g> <td align="left"> changecom(,)&`#'947;changecom(`#')
-<td width="8%"> m4tt svg_Delta</g> <td align="left"> changecom(,)&`#'916;changecom(`#')
-<td width="8%"> m4tt svg_delta</g> <td align="left"> changecom(,)&`#'948;changecom(`#')
+<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="8%"> m4tt svg_zeta</g> <td align="left"> changecom(,)&`#'950;changecom(`#')
+<td width="10%"> m4tt svg_zeta</g> <td align="left"> changecom(,)&`#'950;changecom(`#')
+</tr>
 <tr>
-<td width="8%"> m4tt svg_eta</g> <td align="left"> changecom(,)&`#'951;changecom(`#')
-<td width="8%"> m4tt svg_Theta</g> <td align="left"> changecom(,)&`#'920;changecom(`#')
-<td width="8%"> m4tt svg_theta</g> <td align="left"> changecom(,)&`#'952;changecom(`#')
-<td width="8%"> m4tt svg_iota</g> <td align="left"> changecom(,)&`#'953;changecom(`#')
-<td width="8%"> m4tt svg_kappa</g> <td align="left"> changecom(,)&`#'954;changecom(`#')
-<td width="8%"> m4tt svg_Lambda</g> <td align="left"> changecom(,)&`#'923;changecom(`#')
-<td width="8%"> m4tt svg_lambda</g> <td align="left"> changecom(,)&`#'955;changecom(`#')
-<td width="8%"> m4tt svg_mu</g> <td align="left"> changecom(,)&`#'956;changecom(`#')
+<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="8%"> m4tt svg_nu</g> <td align="left"> changecom(,)&`#'957;changecom(`#')
-<td width="8%"> m4tt svg_Xi</g> <td align="left"> changecom(,)&`#'926;changecom(`#')
-<td width="8%"> m4tt svg_xi</g> <td align="left"> changecom(,)&`#'958;changecom(`#')
-<td width="8%"> m4tt svg_Pi</g> <td align="left"> changecom(,)&`#'928;changecom(`#')
-<td width="8%"> m4tt svg_pi</g> <td align="left"> changecom(,)&`#'960;changecom(`#')
-<td width="8%"> m4tt svg_rho</g> <td align="left"> changecom(,)&`#'961;changecom(`#')
-<td width="8%"> m4tt svg_Sigma</g> <td align="left"> changecom(,)&`#'931;changecom(`#')
-<td width="8%"> m4tt svg_sigma</g> <td align="left"> changecom(,)&`#'963;changecom(`#')
+<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="8%"> m4tt svg_tau</g> <td align="left"> changecom(,)&`#'964;changecom(`#')
+<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="8%"> m4tt svg_Phi</g> <td align="left"> changecom(,)&`#'934;changecom(`#')
-<td width="8%"> m4tt svg_phi</g> <td align="left"> changecom(,)&`#'966;changecom(`#')
-<td width="8%"> m4tt svg_chi</g> <td align="left"> changecom(,)&`#'967;changecom(`#')
-<td width="8%"> m4tt svg_Psi</g> <td align="left"> changecom(,)&`#'936;changecom(`#')
-<td width="8%"> m4tt svg_psi</g> <td align="left"> changecom(,)&`#'968;changecom(`#')
-<td width="8%"> m4tt svg_Omega</g> <td align="left"> changecom(,)&`#'937;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="8%"> m4tt svg_omega</g> <td align="left"> changecom(,)&`#'969;changecom(`#')
-<td width="8%"> m4tt svg_micro</g> <td align="left"> changecom(,)&`#'956;changecom(`#')
-<td width="8%"> m4tt svg_ohm</g> <td align="left"> changecom(,)&`#'937;changecom(`#')
-<td width="8%"> m4tt svg_lt</g> <td align="left"> changecom(,)&`#'60;changecom(`#')
-<td width="8%"> m4tt svg_gt</g> <td align="left"> changecom(,)&`#'62;changecom(`#')
-<td width="8%"> m4tt svg_leq</g> <td align="left"> changecom(,)&`#'8804;changecom(`#')
-<td width="8%"> m4tt svg_geq</g> <td align="left"> changecom(,)&`#'8805;changecom(`#')
-<td width="8%"> m4tt svg_prime</g> <td align="left"> changecom(,)&`#'8242;changecom(`#')
+<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="8%"> m4tt svg_backsl</g> <td align="left"> changecom(,)&`#'92;changecom(`#')
-<td width="8%"> m4tt svg_pound</g> <td align="left"> changecom(,)&`#'35;changecom(`#')
-<td width="8%"> m4tt svg_comma</g> <td align="left"> changecom(,)&`#'44;changecom(`#')
-<td width="8%"> m4tt svg_lparen</g> <td align="left"> changecom(,)&`#'40;changecom(`#')
-<td width="8%"> m4tt svg_rparen</g> <td align="left"> changecom(,)&`#'41;changecom(`#')
-<td width="8%"> m4tt svg_emsp</g> <td align="left"> |changecom(,)&`#'8195;changecom(`#')|
-<td width="8%"> m4tt svg_ensp</g> <td align="left"> |changecom(,)&`#'8194;changecom(`#')|
-<td width="8%"> m4tt svg_thinsp</g> <td align="left"> |changecom(,)&`#'8201;changecom(`#')|
+<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(`#')
+</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>
+<hr width="100%" align="left">
 
   </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
+    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.
+    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
     to go to external
    files in new windows.  Click on "n-port" in NportSVG to replace the diagram
    and then "back" to return.
-  <li> Some of the assumptions used to create this draft may be naive.  Comments
-   are welcome.
+  <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>
 
-cfig(quickSVG)
-cfig(CctTableSVG)
-cfig(DiodesSVG)
-cfig(EmarrowsSVG)
-cfig(SourcesSVG)
-cfig(VariableSVG)
-cfig(AmpTableSVG)
-cfig(FusesSVG)
-cfig(SwitchesSVG)
-cfig(GroundsSVG)
-cfig(AntennasSVG)
-cfig(AudioSVG)
-cfig(OpampSVG)
-cfig(XformSVG)
-cfig(NPDTSVG)
-cfig(ContactSVG)
-cfig(ContactsSVG)
-cfig(relaycoilSVG)
-cfig(RelaySVG)
-cfig(JackSVG)
-cfig(ConnSVG)
-cfig(PconnSVG)
-cfig(HeadersSVG)
-cfig(ConnectorsSVG)
-cfig(fetSVG)
-cfig(ujtSVG)
-cfig(thyristorSVG)
-cfig(BipSVG)
-cfig(TgateSVG)
-cfig(NportSVG)
-cfig(NLGSVG)
-cfig(WindingsSVG)
-cfig(ex01SVG)
-cfig(TimerSVG)
-cfig(OptoisoSVG)
-cfig(MixerSVG)
-cfig(PushPullSVG)
-cfig(QuantumSVG)
-cfig(SQUIDSVG)
-cfig(SixpoleSVG)
-cfig(ex18SVG)
-cfig(MCSVG)
-cfig(ex10SVG)
-cfig(ThreeSVG)
-cfig(ex17SVG)
-cfig(ex02SVG)
-cfig(ex12SVG)
-cfig(pwrsupplySVG)
-cfig(TTLnandSVG)
-cfig(I2LSVG)
-cfig(SchottkySVG)
-cfig(ex11SVG)
-cfig(ex04SVG)
-cfig(CsourceSVG)
-cfig(DriveSVG)
-cfig(ex16SVG)
-cfig(ex03SVG)
-cfig(MotorControlSVG)
-cfig(RectifiersSVG)
-cfig(HeathkitSVG)
-cfig(lcctSVG)
-cfig(TubediagsSVG)
-cfig(sfgSVG)
-cfig(LogicSVG)
-cfig(ex08SVG)
-cfig(DecoderSVG)
-cfig(ex21SVG)
-cfig(MultiplexerSVG)
-cfig(DemultiplexerSVG)
-cfig(ShiftRSVG)
-cfig(AdderSVG)
-cfig(CanLogicSVG)
-cfig(AlogixSVG)
-cfig(ABlogixSVG)
-cfig(XORSVG)
-cfig(paletteSVG)
-cfig(ex00SVG)
-cfig(controlSVG)
-cfig(GrayCodeSVG)
-cfig(CrossbarSVG)
-cfig(ByteSVG)
-cfig(RotboxSVG)
-cfig(ex06SVG)
-cfig(ex09SVG)
-cfig(ex05SVG)
-cfig(LoglogSVG)
-cfig(randomSVG)
-cfig(expSVG)
-cfig(graysurfSVG)
-cfig(shapesSVG)
-cfig(AntiqueClockSVG)
-cfig(cscSVG)
-cfig(roseSVG)
-cfig(diamondSVG)
-cfig(wormSVG)
-cfig(ButtonsSVG)
-cfig(DiniSVG)
-cfig(SierpinskiSVG)
-cfig(recycleSVG)
-cfig(ex15SVG)
-cfig(CountingSVG)
-cfig(CrowSVG)
-cfig(FlowSVG)
+<table>
+<tr>
+<td width="50%">
+<table><tr>cfig(quickSVG,
+  SVG produced by dpic,y)
+<!-- <tr> SVG produced by dpic --> </table>
+<td>
+<table><tr>cfig(quick,
+  SVG produced from quick.pdf by dvisvgm,y)
+<!-- <tr> SVG produced from quick.pdf by dvisvgm --> </table>
+</table>
+
+<hr>
+
+cfig(CctTableSVG,
+  Two-terminal elements, showing some variations)
+
+cfig(DiodesSVG,
+  Diodes: a m4tt`'K</g> in the second argument draws an open
+ arrowhead)
+
+cfig(EmarrowsSVG,
+  Radiation arrows)
+
+cfig(SourcesSVG,
+  Sources and source-like elements)
+
+cfig(VariableSVG,
+  Arrows and marks indicating variability)
+
+cfig(AmpTableSVG,
+  Macros m4tt`'amp`,' delay</g>`,' and m4tt`'integrator</g>)
+
+cfig(FusesSVG,
+  Macros m4tt`'fuse</g> and m4tt`'cbreaker</g>)
+
+cfig(SwitchesSVG,
+  The switch macros; m4tt`'switch(`,'`,'`,'L|B|D)</g> is a wrapper
+      for m4tt`'lswitch</g>`,' m4tt`'bswitch</g>`,' and m4tt`'dswitch</g>)
+
+cfig(GroundsSVG,
+  Ground symbols)
+
+cfig(AntennasSVG,
+  Antenna symbols)
+
+cfig(AudioSVG,
+  Audio elements)
+
+cfig(OpampSVG,
+  The opamp)
+
+cfig(XformSVG,
+  The transformer element`,' drawing direction down)
+
+cfig(NPDTSVG,
+  Double throw with the m4tt`'NPDT</g> macro)
+
+cfig(ContactSVG,
+  A non-exhaustive sampling of m4tt`'contact</g> macro variations)
+
+cfig(ContactsSVG,
+  The m4tt`'contacts</g> macro)
+
+cfig(relaycoilSVG,
+  The m4tt`'relaycoil</g> macro)
+
+cfig(RelaySVG,
+  Some variants of the m4tt`'relay</g> macro)
+
+cfig(JackSVG,
+  The m4tt`'jack</g> and m4tt`'plug</g> macros)
+
+cfig(ConnSVG,
+  The m4tt`'tstrip`,' ccoax`,' tconn</g>`,' and m4tt`'tbox</g> macros)
+
+cfig(PconnSVG,
+  The m4tt`'pconnex</g> macro)
+
+cfig(HeadersSVG,
+  The m4tt`'Header</g> macro)
+
+cfig(ConnectorsSVG,
+  Some connectors with simple geometry and lists of labels)
+
+cfig(fetSVG,
+  FETs`,' showing programmable components and example customizations)
+
+cfig(ujtSVG,
+  UJT examples)
+
+cfig(thyristorSVG,
+  Thyristor examples)
+
+cfig(BipSVG,
+  Bipolar transistors (drawing direction: up))
+
+cfig(TgateSVG,
+  The m4tt`'tgate</g> and m4tt`'ptrans</g> elements)
+
+cfig(NportSVG,
+  The m4tt`'nport</g> and m4tt`'nterm</g> macros)
+
+cfig(NLGSVG,
+  Some customizations of m4tt`'nport</g>)
+
+cfig(WindingsSVG,
+  The macro
+       m4tt`'winding(L|R`,'diam`,'pitch`,'turns`,'core wid`,'core color)</g>)
+
+cfig(ex01SVG,
+  Two simple labeled circuits)
+
+cfig(ex02SVG,
+  Elements at obtuse angles)
+
+cfig(OptoisoSVG,
+  Optical isolator: a circuit with right or left orientation)
+
+cfig(MixerSVG,
+  A balanced mixer`,' using m4tt`'mosfet</g> and a custom transformer)
+
+cfig(PushPullSVG,
+  A push-pull mixer`,' showing FETs with multiple gates)
+
+cfig(QuantumSVG,
+  A quantum circuit)
+
+cfig(SQUIDSVG,
+  Superconducting quantum interface device (drawing direction down))
+
+cfig(SixpoleSVG,
+  A six-pole filter)
+
+cfig(ex18SVG,
+  Precision half-wave rectifier and a tunnel diode circuit
+     (illustrating m4tt`'opamp`,' diode`,' resistor`,' ground`,'</g>
+     and labels))
+
+cfig(MCSVG,
+  A three-phase switched AC-AC converter and a DC-DC converter)
+
+cfig(ex10SVG,
+  Non-planar graph and bistable circuit
+     (illustrating the m4tt`'crossover</g> macro and colored elements))
+
+cfig(ThreeSVG,
+  Three-phase oscillator)
+
+cfig(ex17SVG,
+  A repetitive network created by Pic looping and
+      a skewed circuit used to test the macro m4tt`'parallel_</g>)
+
+cfig(ex12SVG,
+   A CMOS NAND gate`,' a test circuit`,' and an XMOSFET example)
+
+cfig(pwrsupplySVG,
+  An elementary power supply circuit with colored elements`,'
+      and a multiple-winding transformer with 3-phase rectifier)
+
+cfig(TTLnandSVG,
+   TTL NAND gate illustrating a transistor with multiple emitters)
+
+cfig(I2LSVG,
+   Gate circuit and equivalent embedded components
+      illustrating multiple collectors)
+
+cfig(SchottkySVG,
+   A 4-input NAND circuit illustrating the m4tt`'S</g> (Schottky)
+       option of m4tt`'bi_trans</g>)
+
+cfig(ex11SVG,
+  Transistor radio audio chain)
+
+cfig(ex04SVG,
+  Labels on non-manhattan elements)
+
+cfig(CsourceSVG,
+  Realization of a controlled source
+        (illustrating stacked element labels))
+
+cfig(DriveSVG,
+  Synchronous machine driven by variable-speed drive and rectifier)
+
+cfig(ex16SVG,
+  A rate 1/2 binary convolutional coder and its state diagram)
+
+cfig(ex03SVG,
+  Digital filter)
+
+cfig(MotorControlSVG,
+  Motor control connections)
+
+cfig(RectifiersSVG,
+  Rectifier circuits and waveforms)
+
+cfig(HeathkitSVG,
+  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,
+  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(UNOSVG,
+  An Arduino UNO circuit adapted and redrawn)
+  <!--
+  m4tt`'https://content.arduino.cc/assets/UNO-TH_Rev3e_sch.pdf</g>
+  -->
+
+cfig(TubediagsSVG,
+  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(sfgSVG,
+  Signal-flow graphs)
+
+cfig(LogicSVG,
+  Basic logic gates)
+
+cfig(ex08SVG,
+  General-purpose latch: a small logic circuit)
+
+cfig(DecoderSVG,
+  Decoder logic`,' constructed using the m4tt`'for_</g> macro)
+
+cfig(ex21SVG,
+  Some flip-flops)
+
+cfig(MultiplexerSVG,
+  Multiplexer)
+
+cfig(DemultiplexerSVG,
+  Demultiplexer)
+
+cfig(ShiftRSVG,
+  A 5-bit shift register drawn using a custom flip-flop)
+
+cfig(AdderSVG,
+  A full adder and a cascade of n-bit adders)
+
+cfig(CanLogicSVG,
+  A way of automatically drawing two-layer logic diagrams)
+
+cfig(AlogixSVG,
+  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.  THe lower examples illustrate the L`,' R`,' and V options.)
+
+cfig(ABlogixSVG,
+  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(XORSVG,
+  Realizations of the XOR function using m4tt`'Autologix</g>)
+
+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 that do not require m4)
+
+cfig(GrayCodeSVG,
+  Gray code 10-bit encoder disk pattern)
+
+cfig(CrossbarSVG,
+  A crossbar switch)
+
+cfig(ByteSVG,
+  Elementary splines)
+
+cfig(RotboxSVG,
+  The macro
+     m4tt`'rotbox(<i>wid,ht,type,</i>[r|t=<i>val</i>])</g>
+     draws a box in the current direction)
+
+cfig(ex06SVG,
+  Crosshatching by m4tt`'for</g> loops)
+
+cfig(ex09SVG,
+  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(Y14-5SVG,
+  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,
+  A graph drawn using the pic language) 
+
+cfig(GeometrySVG,
+  A plane geometry example) 
+
+cfig(LyapSVG,
+  Illustrating a Lyapunov function)
+
+cfig(randomSVG,
+  Testing random numbers)
+
+cfig(expSVG,
+  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,
+  Plotting surfaces using gray scales.  A sort algorithm
+     determines plotting order)
+
+cfig(shapesSVG,
+  Basic shapes)
+
+cfig(AntiqueClockSVG,
+  An antique clock face)
+
+cfig(cscSVG,
+  Conestoga Sailing Club (illustrating the filling of arbitrary
+      shapes))
+
+cfig(roseSVG,
+  Redrawn from a detail of the set design for the musical
+      <i>Dracula</i>`,' used for testing m4tt`'dpic</g>.  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>`,'
+      or as postscript using m4tt`'dpic -r</g> 
+      since no text formatting is required)
+
+cfig(diamondSVG,
+  Variations on M. Goossens`,' S. Rahtz`,' and F. Mittelbach`,'
+     <i>The LaTeX Graphics Companion</i>`,' Addison-Wesley 1997`,' pp. 57-58)
+
+cfig(wormSVG,
+  An exercise in calculating RGB colours)
+
+cfig(ButtonsSVG,
+  Shading in color)
+
+cfig(DiniSVG,
+  Dini surface and an icosahedron)
+
+cfig(SierpinskiSVG,
+  The Sierpinski triangle and a Cayley graph:
+    tests of pic macro recursion)
+
+cfig(recycleSVG,
+  Modest repetition and partial fill)
+
+cfig(ex15SVG,
+  Simple diagrams that are easily drawn by looping)
+
+cfig(CountingSVG,
+  An example of enumeration)
+
+cfig(CrowSVG,
+  Illustrating m4tt`'shadebox</g> and a custom crowfoot line
+ termination)
+
+cfig(FlowSVG,
+  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> -->
-cfig(BtreeSVG)
-cfig(TtreeSVG)
-cfig(InclepsSVG)
+
+cfig(BtreeSVG,
+  Binary trees)
+
+cfig(InclepsSVG,
+  Overlaying a figure with line graphics)
+
 cfig(FontsSVG)
 
+</td>
+</tr>
+</table>
 </BODY>
 </HTML>

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/paletteSVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/paletteSVG.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/paletteSVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -333,8 +333,8 @@
 
  ] with .nw at (0,0)
 
-"A draft palette of a few elements for Inkscape using a 1 mm grid" \
-  ljust below at last [].sw
+#"A draft palette of a few elements for Inkscape using a 1 mm grid" \
+#  ljust below at last [].sw
 
  command "</g>" # end font
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/pwrsupplySVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/pwrsupplySVG.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/pwrsupplySVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,42 +1,76 @@
 .PS
-# Pwrsupply.m4
+# pwrsupply.m4
 cct_init
 ifdef(`m4pco',`resetrgb')
-  linewid = linewid*1.2
 
-  down_
-T:transformer
-  line left_ elen_/4 from T.P1
-  rgbdraw(0,0,255,fuse(left_ elen_/3,D))
-  reversed(`switch')
-  gap(down_ to (Here,T.P2))
-  { fuse(right_ 2*dimen_/5 at last []) }
-  line to T.P2
-  blen = dimen_/2
-W: T.TS+(dimen_,0)
-N: W+(blen,blen)
-S: W+(blen,-blen)
-E: S+(blen,blen)
-  diode(from W to N)
-  diode(from S to E)
-G:gap(from E+(dimen_*4/3,0) down_ (E.y-S.y)*5/4); llabel("+" wid 0.1*scale,,-)
-C:capacitor(down_ G.start.y-G.end.y from 0.5 between E and G.start,C)
+Singlephase:[
+    linewid = linewid*1.2
+    down_
+  T:transformer
+    line left_ elen_/8 from T.P1
+    rgbdraw(0,0,1,fuse(left_ elen_/3,D))
+    reversed(`switch',left_ elen_*2/3)
+    gap(down_ to (Here,T.P2))
+    { fuse(right_ 2*dimen_/5 at last []) }
+    line to T.P2
+    blen = dimen_/2
+  W: T.TS+(dimen_/2,0)
+  N: W+(blen,blen)
+  S: W+(blen,-blen)
+  E: S+(blen,blen)
+    diode(from W to N)
+    diode(from S to E)
+  G: gap(from E+(dimen_,0) down_ (E.y-S.y)*5/4); llabel(+,,-)
+  C: capacitor(down_ G.start.y-G.end.y from 0.5 between E and G.start,C)
+  
+  setrgb(255,0,0)
+    line from T.S1 to (T.S1,N); line to N
+    dot
+    diode(to E); dot
+    line from E to G.start; dot
+    dot(at C.start)
+  resetrgb
+  
+  setrgb(0,255,0,,D)
+    dot(at C.end)
+    dot(at G.end)
+    ground
+    line to (W,Here); line to W; dot
+    diode(to S); dot
+    line to (T.S2,Here); line to T.S2
+  resetrgb
+  ]
 
-setrgb(255,0,0)
-  line from T.S1 to (T.S1,N); line to N
-  dot
-  diode(to E); dot
-  line from E to G.start; dot
-  dot(at C.start)
-resetrgb
+Threephase: [
+L:[ loadht = 2*elen_
+  Load: ebox(down_ loadht,0.4,0.25); llabel(+,,-)
+    hsep = dimen_*3/4
+    for_(1,3,1,
+     `line left_ hsep; ifelse(m4x,3,,dot)
+      { diode(up_ loadht/3) ; line up_ loadht/3; diode(up_ loadht/3)
+      T`'m4x: ifelse(m4x,3,Here,dot)
+      line right hsep } ')
+  ]
 
-setrgb(0,255,0,,D)
-  dot(at C.end)
-  dot(at G.end)
-  ground
-  line to (W,Here); line to W; dot
-  diode(to S); dot
-  line to (T.S2,Here); line to T.S2
-resetrgb
+T:[
+  X1: transformer(down_ dimen_*2/3,,,,4)
+  X2: transformer(down_ dimen_*2/3,,,,4) with .P1 at X1.P2
+  X3: transformer(down_ dimen_*2/3,,,,4) with .P1 at X2.P2
+      line from X1.M4Core1.end to X3.M4Core1.start
+      line from X1.M4Core2.end to X3.M4Core2.start
+  for_(1,3,1,
+   `move to X`'m4x.P2 ; ifelse(m4x,3,,dot)
+    line left_ dimen_
+    P`'m4x: dot(,,1)')
+    line left_ dimen_/2 from X1.P1 then down X1.P1.y-P3.y; dot
+  B: X1.S2+(dimen_/2,0)
+    line from X1.S1 right B.x-X1.S2.x then down X1.S1.y-X3.S1.y then to X3.S1 
+    line from X2.S1 to (B,X2.S1); dot
+  ] with .X2.S2 at L.w-(dimen_,0)
 
+  line from T.X1.S2 to (L.T3,T.X1.S2); dot 
+  line from T.X2.S2 to (L.T2,T.X2.S2); dot 
+  line from T.X3.S2 to (L.T1,T.X3.S2); dot 
+] with .sw at Singlephase.se+(0.3,0)
+
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/quickSVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/quickSVG.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/quickSVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -5,16 +5,16 @@
 move right 0.4
 Origin: Here                   # Position names are capitalized
    svgLink(SourcesSVG.svg,source(up_ elen))
-   llabel(-,v`'svg_sub(s),+)
-   svgLink(CctTableSVG.svg,resistor(right_ elen));  rlabel(,R,)
+   llabel(-,svg_it(v`'svg_sub(s)),+)
+   svgLink(CctTableSVG.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)
-      rlabel(+,v,-); llabel(,,C)
+      rlabel(+,svg_it(v),-); llabel(,svg_it(C))
       dot
       }                        # Restore position and direction
    line right_ elen*2/3
    {move right 0.2}
-   inductor(down_ Here.y-Origin.y); rlabel(,L,); b_current("i")
+   inductor(down_ Here.y-Origin.y); rlabel(,svg_it(L),); b_current("svg_it(i)")
    line to Origin
 .PE                            # Pic input ends

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/randomSVG.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/randomSVG.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/randomSVG.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -6,6 +6,7 @@
 ################################################################
 #                                   hscale(right length,nlabels,
 #                                     minlabel,maxlabel,[T][N])
+#                                     arg5=T: top axis, N: nolabels
   define(`hscale',`[ define(`hs_nl',`ifelse(`$2',,5,`$2')')
     A: line `$1' ; Start: A.start; End: A.end
     td = 1/(hs_nl-1)*A.len/5
@@ -24,6 +25,7 @@
     ]')
 #                                   vscale(up length,nlabels,
 #                                     minlabel,maxlabel,[R][N] )
+#                                     arg5=R: right axis, N: nolabels
   define(`vscale',`[ define(`vs_nl',`ifelse(`$2',,5,`$2')')
     A: line `$1' ; Start: A.start; End: A.end
     td = 1/(vs_nl-1)*A.len/5
@@ -46,7 +48,7 @@
 ################################################################
 
 [
-  n = 2000
+  n = 2000                          # number of samples
   stddev = 0.25
   graphsize = 2
 

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/tstSVG.htmx
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/tstSVG.htmx	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/svg/tstSVG.htmx	2020-12-21 22:02:51 UTC (rev 57189)
@@ -168,6 +168,9 @@
 <td width="8%"> m4tt svg_emsp</g> <td align="left"> |changecom(,)&`#'8195;changecom(`#')|
 <td width="8%"> m4tt svg_ensp</g> <td align="left"> |changecom(,)&`#'8194;changecom(`#')|
 <td width="8%"> m4tt svg_thinsp</g> <td align="left"> |changecom(,)&`#'8201;changecom(`#')|
+<tr>
+<td width="8%"> m4tt svg_circ</g> <td align="left"> |changecom(,)&`#'710;changecom(`#')|
+<td width="8%"> m4tt svg_deg</g> <td align="left"> |changecom(,)&`#'176;changecom(`#')|
 </table>
 
   </ul>

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/xfig/xfiglib.fig
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/xfig/xfiglib.fig	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/xfig/xfiglib.fig	2020-12-21 22:02:51 UTC (rev 57189)
@@ -6,7 +6,7 @@
 100.00
 Single
 -2
-# dpic version 2020.06.01 option -x for Fig 3.2
+# dpic version 2021.01.01 option -x for Fig 3.2
 1200 2
 6  0 0 3975 5025
 6  0 0 3975 5025

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/gpic.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/gpic.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/gpic.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,7 +1,7 @@
 divert(-1)
   gpic.m4                       Initialization for gpic.
 
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/lib3D.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/lib3D.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/lib3D.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -3,7 +3,7 @@
                                 operations on argument triples representing
                                 3D vectors.
 
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *
@@ -92,8 +92,9 @@
 define(`length3D',`sqrt((`$1')^2+(`$2')^2+(`$3')^2)')
                                 Unit vector
 define(`unit3D',`sprod3D(1/length3D(`$1',`$2',`$3'),`$1',`$2',`$3')')
-                                Assign the direction cosines to variables
-                               `assign3D([u],[v],[w],x,y,z); eg
+
+                               `Assign the direction cosines to variables
+                                assign3D([u],[v],[w],x,y,z); eg
                                 assign3D(u,v,w,cross3D(x1,y1,z1,x2,y2,z2))
                                 assigns the 4th arg to u, the 5th to v,
                                 and the 6th to w as u, v,or w are nonblank'
@@ -101,6 +102,11 @@
 `ifelse(`$1',,,`$1' = `$4')
  ifelse(`$2',,,`$2' = `$5')
  ifelse(`$3',,,`$3' = `$6')')
+                               `vassign3D(name,x,y,z); eg
+                                vassign3D(u,x,y,z)
+                                assigns u[1] to x, u[2] to y, u[3] to z'
+define(`vassign3D',`for i_vassign3D = 1 to 3 do {
+  exec sprintf("`$1'[i_vassign3D] = $%g",i_vassign3D+3) }')
                                 
                                 Write out the 3 arguments for debug
 define(`print3D',`print sprintf("`$1'(%g,%g,%g)",`$2',`$3',`$4')')

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/libcct.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/libcct.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/libcct.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,7 +1,7 @@
 divert(-1)
   libcct.m4
 
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *
@@ -189,11 +189,12 @@
   line to rvec_(rp_len,0) invis ')')
 
                                 `resistor( linespec, cycles, chars, cycle wid)
+                                 cycles: default 3
                                  chars : E=ebox
                                          ES=ebox with slash
                                          Q=offset
-                                         H=squared (default 3 cycles)
-                                         N=IEEE (default 3 cycles)
+                                         H=squared
+                                         N=IEEE (default)
                                          V=varistor variant
                                          R=to right of drawing direction
                                  arg4: cycle width, default dimen_/6'
@@ -845,57 +846,114 @@
   {[box invis ht_ m4ht wid_ m4wd] at rvec_(rp_len/2,0)}
    line to rvec_(rp_len,0) invis ')
 
-                                `arrester( linespec, [G|E|S][D[L]], len, ht )
-                                 G= spark gap (default)
-                                 E= gas discharge
-                                 S= surge
-                                 D= double (creates 3-terminal element)
-                                 DL= double, left orientation'
+                                `arrester( linespec, [G|E|S][D[L|R]],
+                                   len[:arrowhead ht], ht[:arrowhead wid] )
+                                 arg2 chars:
+                                   G= spark gap (default)
+                                   g= general (dots)
+                                   E= gas discharge
+                                   S= box enclosure
+                                   C= carbon block
+                                   A= electrolytic cell
+                                   H= horn gap
+                                   P= protective gap
+                                   s= sphere gap
+                                   F= film element
+                                   M= multigap
+                                 modifiers:
+                                   R= right orientation
+                                   L= left orientation
+                                   D= 3-terminal element for S, E only with
+                                      terminals A, B, G'
 define(`arrester',
- `define(`m4wd',ifelse(`$3',,`dimen_/2',`($3)'))dnl
-  define(`m4ht',ifelse(`$4',,`dimen_/5',`($4)'))dnl
-  define(`m4arm',ifinstr(`$2',L,,-))dnl
-  define(`m4ardna',`patsubst(patsubst(`$2',L),D)')dnl
-  define(`m4awd',arrowwid*4/3)define(`m4aht',arrowht*2/3)dnl
-  define(`m4len',`ifinstr(`$2',D,`ifelse(`$1',,dimen_)',`$1')')dnl
-  ifinstr(`$2',D,[)eleminit_(m4len)ifinstr(`$2',D,,`;{')dnl
-  ifinstr( m4ardna,S,
-   `line to rvec_(max(0,rp_len/2-m4wd/2),0)
-     {lbox(m4wd,m4ht)}
-     {arrow to rvec_(m4wd*0.4,0) wid m4awd ht m4aht}
-     ifinstr(`$2',D,
-      `A: 3rd last line.start; B: last line.end; C: 1/2 between A and B
-       move to rvec_(m4wd/2,m4arm`'(-m4ht/2))
-       Gb: line to rvec_(0,m4arm`'(m4ht*2))
-       G: Here]',
-      `line from rvec_(m4wd,0) to rvec_(max(0,rp_len/2+m4wd/2),0)}
-       {[box invis ht_ m4ht wid_ m4wd] at rvec_(rp_len/2,0)}
-       line to rvec_(rp_len,0) invis ') ',
-  m4ardna,E,
-    `arrow to rvec_(max(0,rp_len/2-m4wd/8),0) wid m4awd ht m4aht
-     {dot(at rvec_(-m4aht/4,-m4wd/4),dotrad_*2/3)}
-     {move to rvec_(m4wd/4,0)
-      arrow <- to rvec_(max(0,rp_len/2-m4wd/8),0) wid m4awd ht m4aht }
-     {circle diam m4wd at rvec_(m4wd/8,0)}
-     ifinstr(`$2',D,
-      `A: 2nd last arrow.start; B: last arrow.end; C: last circle.c
-       move to rvec_(m4wd/8,m4arm`'(-m4ht/2))
-       Gb: line to rvec_(0,m4arm`'ifelse(`$3',,`dimen_/2',`($3)'))
-       G: Here]',
-      `}; {[box invis ht_ m4wd wid_ m4wd] at rvec_(rp_len/2,0)}
-      line to rvec_(rp_len,0) invis ')',
- `define(`m4wd',ifelse(`$3',,`dimen_/8',`($3)'))dnl
-  arrow to rvec_(max(0,rp_len/2-m4wd/2),0) wid m4awd ht m4aht
-  { move to rvec_(m4wd,0)
-    arrow <- to rvec_(max(0,rp_len/2-m4wd/2),0) wid m4awd ht m4aht }
+ `define(`m4rdna',`patsubst(`$2',D\|L\|R)')dnl
+  ifelse(m4rdna,,`define(`m4rdna',G)')dnl
+  define(`m4rL',ifinstr(`$2',L,-))dnl
+  define(`m4rR',ifinstr(`$2',R,-))dnl
+
+  define(`m4aht',`m4Rightstr(`$3',arrowht*2/3)')dnl
+  define(`m4awd',`m4Rightstr(`$3',arrowwid*4/3)')dnl
+
+  define(`m4wd',
+   `ifinstr(m4rdna,C,`m4Leftstr(`$3',dimen_/3)',
+    m4rdna,F,`m4Leftstr(`$3',dimen_/3)',
+    m4rdna,s,`m4Leftstr(`$3',dimen_/4)',
+    m4rdna,E,`m4Leftstr(`$3',dimen_*5/8)',
+    `m4Leftstr(`$3',dimen_/2)')')dnl
+
+  define(`m4ht',
+   `ifinstr(Loopover_(`Z',`ifinstr(m4rdna,Z,T)',C,A,s),T,
+      `m4Leftstr(`$4',dimen_/4)',
+    ifinstr(m4rdna,F,T),T,`m4Leftstr(`$4',dimen_/3)',
+    `m4Leftstr(`$4',dimen_/5)')')dnl
+
   ifinstr(`$2',D,
-   `A: 2nd last arrow.start; B: last arrow.end; C: 1/2 between A and B
-    move to rvec_(m4wd/2,m4arm`'(-m4awd))
-    Gb: line to rvec_(0,m4arm`'ifelse(`$3',,`dimen_/2',`($3)'))
-    G: Here]',
-   `}; {[box invis ht_ m4ht wid_ m4wd+2*m4aht] at rvec_(rp_len/2,0)}
-    line to rvec_(rp_len,0) invis ')')')
+   `[ define(`m4LL',m4rL)dnl
+      ifinstr(m4rdna,S,
+       `R: arrester(ifelse(`$1',,`to rvec_(dimen_,0)'),m4rdna,shift(shift($@)))
+        Gb: line from R.c+vec_(0,m4LL m4ht/2) to R.c+vec_(0,m4LL (-m4ht*3/2)) ',
+      m4rdna,E,
+       `R: arrester(ifelse(`$1',,`to rvec_(dimen_,0)'),m4rdna,shift(shift($@)))
+        Gb: line from R.c+vec_(0,m4LL m4wd/8) to R.c+vec_(0,m4LL (-m4wd*3/4)) ')
+      A: R.start; B: R.end; C: R.c; G: Here ]',
 
+   `eleminit_(`$1',elen_)
+    {line to rvec_(max(0,rp_len/2-m4wd/2),0)
+    {[ Orig: Here
+    ifinstr(m4rdna,G,
+     `{arrow to rvec_(m4aht,0) wid m4awd ht m4aht}
+      move to rvec_(m4wd,0)
+      arrow to rvec_(-m4aht,0) wid m4awd ht m4aht',
+    m4rdna,g,
+     `{dot(at rvec_(dotrad_,0))}; dot(at rvec_(m4wd-dotrad_,0))',
+    m4rdna,M,
+     `{dot(at rvec_(dotrad_,0))}
+      {dot(at rvec_(m4wd/2,0))};  dot(at rvec_(m4wd-dotrad_,0))',
+    m4rdna,C,
+     `lbox(m4wd/3,m4ht); move to rvec_(m4wd/3,0)
+      lbox(m4wd/3,m4ht)',
+    m4rdna,A,
+     `{line to rvec_(m4wd/4,0)}
+      for_(1,3,1,`line from rvec_(0,m4ht/2) to rvec_(m4wd/4,0) \
+        then to rvec_(0,-m4ht/2); move to rvec_(m4wd/4,m4ht/2)
+        ifelse(m4x,3,,move to rvec_(m4wd/8,0))') ',
+    m4rdna,H,
+     `line to rvec_(m4ht,0); round
+      {arc ifelse(m4rR,-,,c)cw from Here to rvec_(-m4ht,m4rR m4ht) \
+        with .c at rvec_(-m4ht,0)}
+      move to rvec_(m4wd-2*m4ht,0); round
+      {arc ifelse(m4rR,-,c)cw from Here to rvec_(m4ht,m4rR m4ht) \
+        with .c at rvec_(m4ht,0)}
+      line to rvec_(m4ht,0)',
+    m4rdna,P,
+     `{open_arrow(to rvec_(m4aht,0),m4awd,m4aht)}
+      move to rvec_(m4wd,0)
+      open_arrow(to rvec_(-m4aht,0),m4awd,m4aht)',
+    m4rdna,s,
+     `{line to rvec_(m4ht/2*(sqrt(2)-1),0)}
+      {arc from rvec_(0,-m4ht/2) to rvec_(0,m4ht/2) \
+        with .c at rvec_(-m4ht/2,0)}
+      move to rvec_(m4wd,0)
+      {arc from rvec_(0,m4ht/2) to rvec_(0,-m4ht/2) \
+        with .c at rvec_(m4ht/2,0)}
+      {line to rvec_(-m4ht/2*(sqrt(2)-1),0)}',
+    m4rdna,F,
+     `{line from rvec_(0,m4ht/2) to rvec_(0,-m4ht/2)}
+      {line from rvec_(m4wd/2,m4ht/2) to rvec_(m4wd/2,-m4ht/2)}
+      line from rvec_(m4wd,m4ht/2) to rvec_(m4wd,-m4ht/2)',
+    m4rdna,S,
+      `{lbox(m4wd,m4ht)}
+       arrow to rvec_(m4wd/2,0) wid m4awd ht m4aht',
+    m4rdna,E,
+     `{circle diam m4wd at rvec_(m4wd/2,0)}
+      {arrow to rvec_(m4wd*3/8,0) wid m4awd ht m4aht}
+      {arrow <- from rvec_(m4wd*5/8,0) to rvec_(m4wd,0) wid m4awd ht m4aht}
+      dot(at rvec_(m4wd*6/8,m4wd/4),dotrad_*2/3) ')
+      ] with .Orig at Here }
+    line from rvec_(m4wd,0) to rvec_(max(0,rp_len/2+m4wd/2),0) }
+    line invis to rvec_(rp_len,0)')
+  ')
+
                                 `memristor( linespec, wid, ht )'
 define(`memristor',`eleminit_(`$1')
   define(`m4ht',ifelse(`$3',,`dimen_/5',`($3)'))define(`m4htx',`m4ht/4')dnl
@@ -1038,7 +1096,7 @@
       chop lin_leng(last line)/2-arrowht/2
    [box invis ht_ arrowwid wid_ arrowht] at last line.c }')
 
-                          `ground( at position, T, N|F|S|L|P[A]|E,
+                          `ground( at position, T|stem length, N|F|S|L|P[A]|E,
                                      D|U|L|R|degrees)
                                  T=truncated stem; N=normal ground,
                                  F=frame, S=signal, L=low-noise, P=protective,
@@ -1047,7 +1105,8 @@
 define(`ground',`box invis ht 0 wid 0 with .c ifelse(`$1',,`at Here',`$1')
   define(`m4v',`dimen_/6')define(`m4h',`dimen_/16')dnl
   {setdir_(ifelse(`$4',,-90,`$4'))
-  ifelse(`$2',,`line from last box.c to rvec_(dimen_/4,0)')
+  ifelse(`$2',,`line from last box.c to rvec_(dimen_/4,0)',
+    `$2',T,,`line from last box.c to rvec_(`$2',0)')
   ifelse(`$3',F,
     `{line from rvec_(dimen_/8,m4v-dimen_/12) \
           to rvec_(0,m4v) \
@@ -1089,7 +1148,8 @@
           to rvec_(2*m4h,-dimen_/14)')
    resetdir_} ')
 
-                        `antenna(at position, T, A|L|T|S|D|P|F, U|D|L|R|degrees)
+                        `antenna(at position, T|stem length, A|L|T|S|D|P|F,
+                                   U|D|L|R|degrees)
                                  arg2=T: truncate stem
                                  arg3= A=aerial; L=loop, T=triangle, S=diamond,
                                        D=dipole, P=phased, F=fork;
@@ -1101,7 +1161,7 @@
   ifelse(
   m4atype,L,
    `T1: rvec_(0,m4h); T2: rvec_(0,-m4h)
-    ifelse(`$2',,`move to rvec_(m4h*2,0)')
+    ifelse(`$2',,`move to rvec_(m4h*2,0)', `$2',T,,`move to rvec_(`$2',0)')
     line from T1 to rvec_(0,m4h) \
        then to rvec_(0,m4v/2) \
        then to rvec_(m4v-m4h,m4v/2) \
@@ -1114,7 +1174,7 @@
        then to rvec_(0,-m4h) \
        then to T2',
   m4atype,T,
-   `ifelse(`$2',,`move to rvec_(m4h*2,0)')
+   `ifelse(`$2',,`move to rvec_(m4h*2,0)', `$2',T,,`move to rvec_(`$2',0)')
     line to rvec_(m4v*3/4,m4v*sqrt(3)/4) \
       then to rvec_(m4v*3/4,-m4v*sqrt(3)/4) \
       then to Here
@@ -1122,7 +1182,7 @@
         to T',
   m4atype,S,
    `T1: rvec_(0,m4h); T2: rvec_(0,-m4h)
-    ifelse(`$2',,`move to rvec_(m4h*2,0)')
+    ifelse(`$2',,`move to rvec_(m4h*2,0)', `$2',T,,`move to rvec_(`$2',0)')
     line from T1 to rvec_(0,m4h) \
        then to rvec_(m4v*3/4-m4h,m4v*3/4) \
        then to rvec_(2*m4v*3/4-m4h,0) \
@@ -1131,13 +1191,13 @@
        then to T2',
   m4atype,D,
    `T1: rvec_(0,m4h); T2: rvec_(0,-m4h)
-    ifelse(`$2',,`move to rvec_(m4v,0)')
+    ifelse(`$2',,`move to rvec_(m4v,0)', `$2',T,,`move to rvec_(`$2',0)')
     { line from T1 to rvec_(0,m4h) \
        then to rvec_(0,m4h*3) }
     { line from T2 to rvec_(0,-m4h) \
        then to rvec_(0,-m4h*3) }',
   m4atype,P,
-   `ifelse(`$2',,`move to rvec_(m4v*2/3,0)')
+   `ifelse(`$2',,`move to rvec_(m4h*2/3,0)', `$2',T,,`move to rvec_(`$2',0)')
     line from T to Here
     { line from rvec_(0,-m4v/3) \
           to rvec_(0,m4v/3) }
@@ -1144,7 +1204,7 @@
     { line from rvec_(m4h,-m4v*2/3) \
           to rvec_(m4h,m4v*2/3) }',
   m4atype,F,
-   `ifelse(`$2',,`move to rvec_(m4h*2,0)')
+   `ifelse(`$2',,`move to rvec_(m4h*2,0)', `$2',T,,`move to rvec_(`$2',0)')
     { line from rvec_(m4v*3/4,m4v*sqrt(3)/4) \
           to rvec_(0,m4v*sqrt(3)/4) \
         then to rvec_(0,-m4v*sqrt(3)/4) \
@@ -1152,12 +1212,12 @@
     line from rvec_(m4v*3/4,0) \
         to T',
   m4atype,A,
-  `ifelse(`$2',,`move to rvec_(m4h*2,0)')
-   { line from rvec_(m4v*3/4, m4v*sqrt(3)/4) to Here \
-       then to rvec_(m4v*3/4,-m4v*sqrt(3)/4) }
-   line from rvec_(m4v*3/4,0) \
+   `ifelse(`$2',,`move to rvec_(m4h*2,0)', `$2',T,,`move to rvec_(`$2',0)')
+    { line from rvec_(m4v*3/4, m4v*sqrt(3)/4) to Here \
+        then to rvec_(m4v*3/4,-m4v*sqrt(3)/4) }
+    line from rvec_(m4v*3/4,0) \
         to T')
-  `$5'; resetdir_ ] with .T ifelse(`$1',,`at Here',`$1')')
+   `$5'; resetdir_ ] with .T ifelse(`$1',,`at Here',`$1')')
 
                                 `switch( linespec,L|R,[O|C][D],L|B|D )
                                  Wrapper for bswitch, lswitch, dswitch
@@ -1449,7 +1509,8 @@
  }
  line to rvec_(rp_len,0) invis ')
 
-                                `Amplifier amp( linespec,size )'
+                                `amp( linespec,size )
+                                 Amplifier'
 define(`amp',`eleminit_(`$1') define(`m4wd',`ifelse(`$2',,`dimen_',`($2)')')dnl
  {line to rvec_(max(0,rp_len/2-m4wd/2),0)
    line from rvec_(m4wd,0) \
@@ -2365,7 +2426,8 @@
                                `Relative adjusted macro-internal coordinates'
 define(`tr_xy',`M4_xyO+vec_(vscal_(m4_xyU,`$1',ifelse(`$2',0,0,m4_xyS`($2)')))')
                                `Initialize tr_xy_init(origin,unit,-)'
-define(`tr_xy_init',`M4_xyO: ifelse(`$1',,Here,`$1')
+define(`tr_xy_init',
+`M4_xyO: ifelse(`$1',,Here,`$1')
 define(`m4_xyU',`$2')dnl
 define(`m4_xyS',`$3')')
 
@@ -2388,8 +2450,10 @@
                                 we temporarily turn off comments for svg' 
 define(`rlabel',`ifsvg(`changecom(,)')dnl
 m4label(`$1',`$2',`$3',.s_,below_,`$4')`'ifsvg(`changecom(`#',)')')
+
 define(`llabel',`ifsvg(`changecom(,)')dnl
 m4label(`$1',`$2',`$3',.n_,above_,`$4')`'ifsvg(`changecom(`#',)')')
+
 define(`clabel',`ifsvg(`changecom(,)')dnl
 m4label(`$1',`$2',`$3',,,`$4')`'ifsvg(`changecom(`#',)')')
                    labels at centre and both ends of an element `dimen_' long
@@ -3218,6 +3282,17 @@
      with .Origin at Origin } ')
  `$5'; resetdir_ ] with .Origin ifelse(`$1',,`at Here',`$1')')
 
+                        `DCsymbol(at position, len, ht, U|D|L|R|degrees)
+                          Arg4: drawing direction (default: current direction)'
+define(`DCsymbol',`[
+ define(`m4wid',`ifelse(`$2',,(dimen_/3),`($2)')')dnl
+ define(`m4ht',`ifelse(`$3',,`m4wid/5',`($3)')')
+ setdir_(ifelse(`$4',,`ifdef(`m4a_',rp_ang*rtod_,0)',`$4'))
+ Origin: rvec_(m4wid/2,-m4ht/2)
+ {line to rvec_(m4wid,0)}
+ dashline(from rvec_(0,-m4ht) to rvec_(m4wid,-m4ht),,m4wid/4) 
+ `$5'; resetdir_ ] with .c ifelse(`$1',,`at Here',`$1')')
+
                     `n-terminal box
                      nterm(box specs; other commands,
                        nw,nn,ne,ns,

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/libgen.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/libgen.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/libgen.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -2,7 +2,7 @@
  
    libgen.m4                    Base macros for dpic and gpic diagrams
 
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *
@@ -41,8 +41,13 @@
                                 the installation folder, e.g.
 dnl define(`HOMELIB_',`D:\Dwight\lib')
 
+                               `NeedDpicTools( path )
+                                If path is empty then HOMELIB_ is used
+                                e.g. NeedDpicTools or NeedDpicTools(/home/lib/)'
 define(`NeedDpicTools',`if "dpictools" != "1" then {
-  copy "HOMELIB_`'dpictools.pic" } define(`dfitpoints__') define(`dfitcurve__') ') 
+  ifelse(`$1',,`copy "HOMELIB_`'dpictools.pic"',`copy "`$1'dpictools.pic"')
+  define(`dfitpoints__') define(`dfitcurve__')}') 
+
                                 Processor shortcuts
 define(`ifdpic',`ifelse(m4picprocessor,dpic,`$1',`$2')')
 define(`ifgpic',`ifelse(m4picprocessor,gpic,`$1',`$2')')
@@ -56,7 +61,6 @@
 define(`ifsvg',`ifelse(m4postprocessor,svg,`$1',`$2')')
 define(`iftpic',`ifelse(m4postprocessor,tpic,`$1',`$2')')
 define(`ifxfig',`ifelse(m4postprocessor,xfig,`$1',`$2')')
-#efine(`ifpsfrag',ifinstr(ifdef(`psfrag',T)`'ifdef(`psfrag_',T),T,`$1',`$2'))
 define(`ifpsfrag',ifelse(ifdef(`psfrag',T,`ifdef(`psfrag_',T)'),T,`$1',`$2'))
 
                                `iflatex(latextrue,latexfalse)
@@ -181,7 +185,7 @@
 define(`latexcommand',`command "ifmpost(verbatimtex) `$1' ifmpost(etex)"')
 
 define(`m4announceprocessor',`dnl Do not change the format of the next line:
-`#' `$1' Version 9.3: ifelse(m4picprocessor,gpic,`Gpic',
+`#' `$1' Version 9.4: ifelse(m4picprocessor,gpic,`Gpic',
   m4postprocessor,pstricks,`PSTricks',
   m4postprocessor,pgf,`TikZ PGF',
   m4postprocessor,mfpic,`Mfpic',
@@ -424,6 +428,14 @@
 stacksplit_(`$1',substr(`$2',incr(index(`$2',m4sep))),m4sep)',
 `pushdef(`$1',`$2')')')
 
+                               `m4Leftstr(str,default) leftmost substring
+                                to the left of : (arg2 if blank)'
+define(`m4Leftstr',`ifelse(patsubst(`$1',:.*),,`$2',patsubst(`$1',:.*))')
+                               `m4Rightstr(str,default) rightmost substring
+                                to the right of : (arg2 if blank)'
+define(`m4Rightstr',`ifinstr(`$1',:,
+ `ifelse(patsubst(`$1',.*:),,`$2',`patsubst(`$1',.*:)')',`$2')')
+
                                `basename_(path,sep)
                                 Extract rightmost name from arg2-separated
                                 path, default dot (.)'
@@ -743,10 +755,11 @@
 `ifelse(substr(`$1',0,1),ifelse(`$2',,_,`$2'),`substr(`$1',1)',`$1')')
 
                                 `setkey_(string,key,default,[N])
-                                 pushdef macro m4key equal to val when
-                                 string contains key=val;
-                                 default if not in string
-                                 arg4= blank defines m4key as (val)'
+                                 string contains semicolon-separated
+                                 terms of the form key=val
+                                 If string contains key=val; then
+                                 pushdef(`m4key',(val)) otherwise use default.
+                                 Nonblank arg4 omits the parentheses.'
 define(`setkey_',
  `pushdef(`m4xt',index(`$1',`$2'=))ifelse(m4xt,-1,
    `pushdef(`m4'$2,`ifelse(`$3',,,ifelse(`$4',,(`$3'),`$3'))')',
@@ -777,10 +790,11 @@
                                  (requires PSTricks, pgf, or svg)'
 define(`r_text',`define(`m4txt',
 `ifelse(index(`$1',"),0,`substr(`$1',1,eval(len(`$1')-2))',`$1')')dnl
-define(`m4rtang',`ifelse(`$2',,90,`$2')')dnl
+ifelse(ifpstricks(T)`'ifpgf(T)`'ifsvg(T),T,
+`define(`m4rtang',`ifelse(`$2',,90,`$2')')dnl
 ifsvg(`svg_rot(m4rtang,"m4txt")')dnl
 ifpstricks(`"\rput[c]{m4rtang}(0,0){m4txt}"')dnl
-ifpgf(`"\pgftext[rotate=m4rtang]{m4txt}"')')
+ifpgf(`"\pgftext[rotate=m4rtang]{m4txt}"')',"m4txt")')
 
                                 `Like s_box but text is rotated text_ang degrees
                                  (requires PSTricks or pgf)'
@@ -824,12 +838,12 @@
    `circle rad ifelse(`$2',,`dotrad_',`$2') fill_(m4ft)')') dnl
   `$4'] with .c ifelse(`$1',,`at Here',`$1')
   move to last [].c')
-                                `cross(at location); assumes that a
+                                `cross(at location,size); assumes that a
                                  cross always has manhattan directions'
-define(`crosswd_',(0.05*scale))
+define(`crosswd_',`ifelse(`$2',,`(0.05*scale)',`($2)')')
 define(`cross',`[{line from Here+(0,neg_(crosswd_)) to Here+(0,crosswd_)}
                   line from Here+(neg_(crosswd_),0) to Here+(crosswd_,0)
-  `$2'] with .c ifelse(`$1',,`at Here',`$1'); move to last [].c')
+  `$3'] with .c ifelse(`$1',,`at Here',`$1'); move to last [].c')
 
                                 `boxcoord(name,xfraction,yfraction)
                                  internal position in a named planar object'
@@ -954,6 +968,7 @@
  `[define(`m4ehw',(ifelse(`$1',,ellipsewid,`($1)')/2))dnl
   define(`m4ehh',(ifelse(`$2',,ellipseht,`($2)')/2))dnl
   N: vec_(0,m4ehh); E: vec_(m4ehw,0); S: vec_(0,-m4ehh); W: vec_(-m4ehw,0)
+  C: (0,0)
   spline ifdpic(
    `ctension_ from S to vec_(m4ehw,-m4ehh) \
       then to vec_(m4ehw,m4ehh) then to vec_(-m4ehw,m4ehh) \
@@ -1006,7 +1021,8 @@
                            D: blank width is the diagonal length of arg3
                            H: blank width is height of arg3 + textoffset*2
                            W: blank width is width of arg3 + textoffset*2
-                        otherwise: arg4 is absolute blank width '
+                        otherwise: arg4 is absolute blank width
+                        If arg 3 begins with [ it is copied verbatim '
 define(`dimension_',`rpoint_(`$1') ; {
   define(`m4g',ifelse(`$4',,0,
    `$4',W,(s_wd + ifdpic(textoffset,`2 bp__')*2),
@@ -1015,18 +1031,23 @@
   define(`m4h',`(rp_len ifelse((`$4'),(),,neg_(m4g)))')dnl
   ifelse((`$2'),(),,`if (`$2') != 0 then {
      m4toff = sign(`$2')*ifelse(`$5',,`3.6bp__',(`$5'))
-     {move to rvec_(0,     m4toff); line to rvec_(0,`$2')}
-     {move to rvec_(rp_len,m4toff); line to rvec_(0,`$2')}
-     move to rvec_(0,`$2') }')
+     {move to rvec_(0,     m4toff)
+    S_dimen_: line to rvec_(0,`$2')}
+     {move to rvec_(rp_len,m4toff)
+    E_dimen_: line to rvec_(0,`$2')}
+     move to rvec_(0,`$2')
+    AS_C: rvec_(rp_len/2,0) }')
   if m4h > 2*arrowht then {
-      { line ifelse(`$6',,<-,index($6,<),0,<-) to rvec_(m4h/2,0)
+      { AS_dimen_: line ifelse(`$6',,<-,index($6,<),0,<-) to rvec_(m4h/2,0)
         ifelse((`$4'),(),,`move to rvec_(m4g,0)')
-        line ifelse(`$6',,->,eval(index($6,>)>0),1,->) to rvec_(m4h/2,0) }
+        AE_dimen_: line ifelse(`$6',,->,eval(index($6,>)>0),1,->) \
+          to rvec_(m4h/2,0) }
     } else {
-      { arrow from rvec_(-arrowht*1.5,0) to Here
-        arrow from rvec_(rp_len+arrowht*1.5,0) to rvec_(rp_len,0) }
+      { AS_dimen_: arrow from rvec_(-arrowht*1.5,0) to Here
+        AE_dimen_: arrow from rvec_(rp_len+arrowht*1.5,0) to rvec_(rp_len,0) }
     }
   ifelse(`$3',,,
+    index(`$3',[),0,``$3' at rvec_(rp_len/2,0)',
     `m4lstring(`$3',"`$3'") at rvec_(rp_len/2,0)')
   }')
                        `Dimensioning for arcs:
@@ -1093,7 +1114,7 @@
 #
 #                              `ShadedPolygon(vertexseq,line attributes,
 #                                 sweep angle (degrees),colorseq)
-#                               arg1 is a colon (:) separated sequence of
+#                               arg1 is a colon (:)-separated sequence of
 #                               positions or position names, the vertices in
 #                               order (cw or ccw) of the polygon.  Colored
 #                               shade lines are drawn perpendicular to the
@@ -1275,12 +1296,13 @@
   define(`m4pdy',`(`$2'.y-`$1'.y)')dnl
   define(`m4pdl',`ifelse(`$3',,`/vlength(m4pdx,m4pdy)',`$3',0,,
    `*(`$3')/vlength(m4pdx,m4pdy)')')dnl
-  ifinstr(`$4',R,,-)m4pdy`'m4pdl,\
-   m4pdx`'m4pdl')
+ ifinstr(`$4',R,
+  `(m4pdy`'m4pdl),(-m4pdx`'m4pdl)',`(-m4pdy`'m4pdl),(m4pdx`'m4pdl)')')
 
-                                `Equidist3(Pos1,Pos2,Pos3,Result)
+                                `Equidist3(Pos1,Pos2,Pos3,Result,distance)
                                  Result is the name of the point equidistant
                                  from named Pos1, Pos2, Pos3
+                                 arg4 nonblank: the common distance
                                  eg Equidist3(A,B,C,D)
                                     arc from A to C with .c at D'
 define(`Equidist3',`
@@ -1289,7 +1311,8 @@
   M4tmp_P2: 0.5 between `$2' and `$3'
   M4tmp_T2: M4tmp_P2+(Vperp(`$2',`$3'))
   `$4': intersect_(M4tmp_P1,M4tmp_T1,M4tmp_P2,M4tmp_T2)
-  ')
+  ifelse(`$5',,,`$5 = distance(`$4',`$1');') ')
+
                                 `Cintersect(Pos1,rad1,Pos2,rad2,[R])
                                  Upper (lower if arg5=R) intersection of
                                  circles at Pos1 and Pos2, radius rad1 and rad2
@@ -1360,6 +1383,38 @@
 define(`M4LET',`LCtangent((M4LP.x/m4LEta,M4LP.y/m4LEtb),`(0,0)',1,`$5')')dnl
 (`$2'+(M4LET.x*m4LEta,M4LET.y*m4LEtb))')
 
+                                `langle(Start,End)
+                                 Angle relative to horizontal of a line
+                                   between two points'
+define(`langle',
+`atan2(M4Pos(`$2').y-M4Pos(`$1').y,M4Pos(`$2').x-M4Pos(`$1').x)')
+
+                                `ArcAngle(Pos1,Pos2,Pos3,radius,attributes)
+                                 arc angle symbol drawn ccw at Pos2
+                                 arg4: radius from Pos2
+                                 arg5: line attributes, e.g. thick linethick/2'
+define(`ArcAngle',`arcr(`$2',ifelse(`$4',,arcrad,`$4'),
+ langle(`$2',`$1'),langle(`$2',`$3'),`$5') ')
+
+                                `RightAngle(Pos1,Pos2,Pos3,linelen,attributes)
+                                 Draw a right angle symbol at Pos2
+                                 arg4: size
+                                 arg5: line attributes, e.g. outlined "gray"'
+define(`RightAngle',
+ `RightA_C: `$1'; RightA_N: `$2'; RightA_B: `$3'
+define(`m4AngleLen',`ifelse(`$4',,linewid/5,`$4')')
+ angleCNB = atan2(RightA_C.y-RightA_N.y,RightA_C.x-RightA_N.x)
+ M4AB0: (RightA_B-RightA_N)/distance(RightA_B,RightA_N)
+ M4CN0: (RightA_N-RightA_C)/distance(RightA_N,RightA_C)
+ move to RightA_N - M4CN0*m4AngleLen
+ line to Here + M4AB0*m4AngleLen then to RightA_N + M4AB0*m4AngleLen `$5'
+')
+                                `PerpTo(Pos,Line,Point)
+                                 The point on Line of the perpendicular to Pos'
+define(`PerpTo',
+`PerpTo_T: move from `$1' to `$1'-(vperp(`$2'))
+ ifelse(`$3',,PerpTo_P,`$3'): Intersect_(PerpTo_T,`$2') ')
+
                                 `Convenience fraction along a linear obj'
 define(`along_',`between `$1'.start and `$1'.end')
 

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/liblog.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/liblog.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/liblog.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,7 +1,7 @@
 divert(-1)
    liblog.m4                    Logic gates
 
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/mfpic.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/mfpic.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/mfpic.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,7 +1,7 @@
 divert(-1)
    mfpic.m4                     Initialization for mfpic.
 
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/mpost.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/mpost.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/mpost.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,7 +1,7 @@
 divert(-1)
    mpost.m4                     Initialization for metapost.
 
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/pgf.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/pgf.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/pgf.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,7 +1,7 @@
 divert(-1)
    pgf.m4                  Initialization for Tikz-pgf.
 
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/postscript.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/postscript.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/postscript.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,7 +1,7 @@
 divert(-1)
    postscript.m4                  Initialization for Postscript output.
 
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/psfrag.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/psfrag.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/psfrag.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -2,7 +2,7 @@
   psfrag.m4                  Initialization for dpic -f processing:
                              Postscript with psfrag strings
 
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/pstricks.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/pstricks.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/pstricks.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,7 +1,7 @@
 divert(-1)
    pstricks.m4                  Initialization for PSTricks.
 
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *
@@ -29,8 +29,8 @@
   arrowht = ifelse(`$1',,`0.1',linethick/8)*scale;')
 
                                `Patch PSTricks to use all coordinate pairs
-                                inside \pscustom'
-                               `Older version for PSTricks prior to Aug 2010:'
+                                inside \pscustom
+                                Older version for PSTricks prior to Aug 2010:'
 define(`M4PatchPSTricks',
 `command "\makeatletter\@ifundefined{ifPst at noCurrentPoint}%
 {\@ifundefined{MPS at Patch}{\gdef\MPS at Patch{}%
@@ -41,7 +41,7 @@
 {\@ifundefined{MPS at PatchMsg}{\gdef\MPS at PatchMsg{}%
  \typeout{ Dpic -p: Setting noCurrentPoint to use all coord pairs }}{}%
  \psset{noCurrentPoint}}\makeatother%"')
-                               `For PSTricks since Aug 2010'
+                               `For PSTricks since Aug 2010:'
 define(`M4PatchPSTricks',`command "\psset{noCurrentPoint}%"')
 
 divert(0)dnl

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/svg.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/svg.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/svg.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,7 +1,7 @@
 divert(-1)
    svg.m4                       Initialization for SVG output.
 
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *
@@ -95,6 +95,7 @@
 
 `see http://www.ascii.cl/htmlcodes.htm
  and http://webdesign.about.com/od/localization/l/blhtmlcodes-gr.htm'
+`These macros are used in strings so the double quote is entered as \". '
 define(`svg_symbol',`changecom(,)`$1'changecom(`#',)')
 define(`svg_it',`<tspan font-style=\"italic\">`$1'</tspan>')
 define(`svg_tt',`<tspan font-family=\"Courier\">`$1'</tspan>')
@@ -171,6 +172,8 @@
 define(`svg_thinsp',`svg_symbol(&`#'8201;)')
 define(`svg_backsl',`svg_symbol(&`#'92;)')
 define(`svg_pound',`svg_symbol(&`#'35;)')
+define(`svg_circ',`svg_symbol(&`#'710;)')
+define(`svg_deg',`svg_symbol(&`#'176;)')
 ')
 
 define(`svgcolor',`sprintf("rgb(%g,%g,%g)",\

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/xfig.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/xfig.m4	2020-12-21 00:55:01 UTC (rev 57188)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/xfig.m4	2020-12-21 22:02:51 UTC (rev 57189)
@@ -1,7 +1,7 @@
 divert(-1)
    xfig.m4                      Initialization for xfig.
 
-* Circuit_macros Version 9.3, copyright (c) 2020 J. D. Aplevich under      *
+* Circuit_macros Version 9.4, copyright (c) 2020 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 *



More information about the tex-live-commits mailing list.