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

commits+karl at tug.org commits+karl at tug.org
Tue Apr 1 22:02:46 CEST 2025


Revision: 74818
          https://tug.org/svn/texlive?view=revision&revision=74818
Author:   karl
Date:     2025-04-01 22:02:45 +0200 (Tue, 01 Apr 2025)
Log Message:
-----------
circuit-macros (1apr25)

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/README
    trunk/Master/texmf-dist/doc/latex/circuit-macros/darrow.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ArrestersMan.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Circuit_macros.bib
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Circuit_macros.pdf
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/DiodesMan.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Makefile
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ResistorsMan.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/SourcesMan.m4
    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/Diodes.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/LT3724.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Loglog.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Makefile
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Resistors.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Sources.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Variable.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/cbresistor.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/control.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/DiodesDPV.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/Makefile
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/README_svg
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/ResistorsDPV.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/SourcesDPV.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/controlDPV.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/examplesDPV.htmx
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/examplesDPVs.htmx
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/pwrsupplyDPV.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/examples.pdf
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Flow2.m4
    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/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/libSLD.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/pdf.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/heatsinkMan.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/PS50.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Reg723.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/Reg723DPV.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Ex02.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Ex17.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/SPS.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Traintracks.m4

Removed Paths:
-------------
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ex02.tex
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/ex02.m4
    trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/ex17.m4

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/CHANGES
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/CHANGES	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/CHANGES	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,5 +1,8 @@
 CHANGES
 
+Version 10.8: New macros vec_r, rvec_r, adjust, and heatsink.
+  Small changes and additions to sarrow, arrester, Darlington, resistor,
+  diode, hatchbox, transformer, source, consource.
 Version 10.7: Minor changes and additions to ics.m4 and macros polygon,
   jack, LH_symbol, LT_symbol, opamp, amp, sarrow, dashline. Extra
   examples.

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/Copying
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/Copying	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/Copying	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,4 +1,4 @@
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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/README
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/README	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/README	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,5 +1,5 @@
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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 *
@@ -117,9 +117,9 @@
   from within the tex document source as described in the manual. For
   near-immediate viewing of the results, three windows can be kept open:
   one in which to edit the source, one to process the source and produce
-  postscript or pdf, and a viewer such as gv or GSview 5.0. A window
-  displaying the manual is also useful when you are composing a significant
-  diagram.
+  postscript or pdf, and a viewer such as gv, GSview 5.0, or Okular, for
+  example. A window displaying the manual is also useful when you are
+  composing a significant diagram.
 
 INSTALLATION AND TESTING: See the INSTALL file.
 

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/darrow.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/darrow.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/darrow.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,7 +1,7 @@
 divert(-1)
   darrow.m4                     Macros for double lines and arrows
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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/doc/ArrestersMan.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ArrestersMan.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ArrestersMan.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,8 +1,10 @@
 .PS
 # ArrestersMan.m4
+# https://tex.stackexchange.com/questions/733192/spark-gap-in-circuit-package-and-voltage-arrow-capacitor
 cct_init
 
   sep = 0.2
+  rsep = 0.15
 
 R1: [
   arrester
@@ -42,35 +44,58 @@
   move sep
   arrester(,S)
   {`"\tt \ldots(,S)"' at last line.c+(0,-0.2)}
+  ] with .nw at R1.sw+(0,-rsep)
 
-  ] 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
+    arrow <- from last [].A up 0.1 left 0.1; "\sl A" rjust
+    arrow <- from last [].B up 0.1 right 0.1; "\sl B" ljust
+    arrow <- from last [].G up 0.05 right 0.15; "\sl G" ljust
     thicklines_ }')
-[
+R3: [
   arrester(,E)
   {`"\tt \ldots(,E)"' at last line.c+(0,-0.25)}
   move up_ 0.1 then right_ sep
-  A: arrester(,DE,,,fill_(0.95))
-  {`"\tt \ldots(,DE,{,},"' wid 61bp__ at A.A+(-0.1,-0.40) ljust \
+  DE: arrester(,DE,,,fill_(0.95))
+  {`"\tt \ldots(,DE,{,},"' wid 61bp__ at last [].A+(-0.1,-0.40) ljust \
    `"\tt fill\_(0.95))"' ljust }
   Dlabels
-  move down_ 0.1 then right_ sep*3
-  A: arrester(,DS)
+# move down_ 0.1 then right_ sep*3
+  move right_ sep*3
+  arrester(,DS)
   {`"\tt \ldots(,DS)"' at last [].s+(0,-0.1)}
   Dlabels
   move sep*3
-  A: arrester(,DEL)
+  DEL: 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)
+  DSL: arrester(up_ dimen_,DSL)
+  {`"\tt \ldots(up\_ dimen\_,DSL)"' at last [].s+(0,-0.1)}
+  { thinlines_
+    arrow <- from DSL.A up 0.1 left 0.1; "\sl A" rjust
+    arrow <- from DSL.B down 0.1 right 0.1; "\sl B" ljust
+    arrow <- from DSL.G up 0.05 left 0.15; "\sl G" rjust
+    thicklines_ }
+  ] with .nw at R2.sw+(0,-rsep)
+[ moveht *= 0.6
+  { arrester(,,:dimen_/5,:dimen_/3,shaded "red")
+    `"\tt arrester(,{,}:dimen\_/5,:dimen\_/3,shaded \"red\")"' ljust }
+# move down_; right_
+# { arrester(,,,,shaded "red" outlined "red")
+#   `"\tt arrester(,{,},{,}shaded \"red\" outlined \"red\")"' ljust }
+  move down_; right_
+  { S: arrester(,S,,,shaded "yellow")
+    `"\tt arrester(,S,{,},shaded \"yellow\")"' ljust }
+  move down_; right_
+  { Gg: arrester(,g,,:dimen_/6,shaded "red")
+    `"\tt arrester(,g{,},:dimen\_/6,shaded \"red\")"' ljust }
+# move down_; right_
+# { M: arrester(,M,,:dimen_/8,shaded "orange")
+#   `"\tt arrester(,M{,},:dimen\_/8,shaded \"orange\")"' ljust }
+  move down_; right_
+  { C: arrester(,C,,,shaded "blue")
+    `"\tt arrester(,C,{,},shaded \"blue\")"' ljust }
+  ] with .nw at R3.sw+(0,-rsep)
 
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Circuit_macros.bib
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Circuit_macros.bib	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Circuit_macros.bib	2025-04-01 20:02:45 UTC (rev 74818)
@@ -106,7 +106,7 @@
 @book{Landauer95,
 author={Landauer, Thomas K.},
 title={The Trouble with Computers},
-address={Cambridge},
+address={Cambridge, Massachusetts},
 publisher={MIT Press},
 year={1995}}
 

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

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/DiodesMan.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/DiodesMan.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/DiodesMan.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -24,8 +24,10 @@
    }
 
    move right_ 2.0
-{  {diode(,K) ; move ; "`{\tt diode(,K)}'" ljust}
+{  {diode(,z) ; move ; "`{\tt diode(,z)}'" ljust}
    move down 0.2; right_
+   {diode(,K) ; move ; "`{\tt diode(,K)}'" ljust}
+   move down 0.2; right_
    {diode(,ZK) ; move ; "`{\tt diode(,ZK)}'" ljust}
    move down 0.2; right_
    {diode(,CR) ; move ; "`{\tt diode(,CR)}'" ljust}

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Makefile
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Makefile	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Makefile	2025-04-01 20:02:45 UTC (rev 74818)
@@ -25,7 +25,8 @@
   VariableMan.tex WindingsMan.tex Workflow.tex XformMan.tex \
   arrowex.tex \
   bitr.tex bi_trans.tex bistableMan.tex \
-  currents.tex eboxdims.tex fbfilter.tex fetMan.tex heaterMan.tex \
+  currents.tex eboxdims.tex fbfilter.tex fetMan.tex \
+  heaterMan.tex heatsinkMan.tex \
   lrarrows.tex MoreTableMan.tex mplex.tex opampex.tex quick.tex \
   sampleIC.tex stringdims.tex thyristorMan.tex ujtMan.tex \
   woodchips.tex

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ResistorsMan.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ResistorsMan.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/ResistorsMan.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -26,7 +26,9 @@
    {E:resistor(,,E) ; move ; "`\tt $\ldots$(,{,}E) $\equiv$ ebox'" ljust}
 }
    move down vm*1.1; right_
-{  {ebox(,,,0.9) ; move ;"`{\tt ebox(,{,},0.9)}'" ljust}
+{
+   {T:resistor(,,T) ; move ;"`{\tt $\ldots$(,{,}T)}'" ljust}
+#  {ebox(,,,0.9) ; move ;"`{\tt ebox(,{,},0.9)}'" ljust}
    move right_ hm
    {ebox(,wdth=0.2;box=dashed shaded "green";text="H") ; move
    "`\shortstack[l]{\tt ebox(,wdth=0.2;box=dashed shaded \"green\";\\' \

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/SourcesMan.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/SourcesMan.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/SourcesMan.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -12,10 +12,12 @@
    {source(,I) ; move ; "`\tt source(,I)'" ljust} NL
    {C:source(,i) ; move ; "`\tt source(,i)'" ljust} NL
    {D:source(,ti) ; move ; "`\tt source(,ti)'" ljust} NL
+   {source(,dci) ; move ; "`\tt source(,dci)'" ljust} NL
    {source(,ii) ; move ; "`\tt source(,ii)'" ljust} NL
    {source(,V) ; move ; "`\tt source(,V)'" ljust} NL
    {source(,v) ; move ; "`\tt source(,v)'" ljust} NL
    {source(,tv) ; move ; "`\tt source(,tv)'" ljust} NL
+   {source(,dcv) ; move ; "`\tt source(,dcv)'" ljust} NL
    {source(,SC) ; move ; "`\tt source(,SC)'" ljust} NL
    {source(,AC); move ; "`\tt source(,AC)'" ljust} NL
    {source(,X) ; move ; "`\tt source(,X)'" ljust} NL
@@ -22,8 +24,6 @@
    {source(,G) ; move ; "`\tt source(,G)'" ljust} NL
    {source(,Q) ; move ; "`\tt source(,Q)'" ljust} NL #(0.3)
    {source(,F) ; move ; "`\tt source(,F)'" ljust} NL
-   {geiger(,,,,fill_(0.9)); move;
-     "`\tt \shortstack[l]{geiger(,{,},{,}\\ fill\_(0.9))}'" ljust} NL
 }
    move right_ 2.0
 {
@@ -59,6 +59,8 @@
    {consource(,tv) ; move ;  "`\tt consource(,tv)'" ljust} NL(0.3)
    {proximity ; move ;
      "`\tt \shortstack[l]{proximity\\ = consource(,P)}'" ljust} NL(0.35)
+   {geiger(,,,,fill_(0.9)); move;
+     "`\tt \shortstack[l]{geiger(,{,},{,}\\ fill\_(0.9))}'" ljust} NL
 
 iflatex(`ifpsfrag(,`latexcommand(})')')
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Version.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Version.tex	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/Version.tex	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1 +1 @@
-Version 10.7
+Version 10.8

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/body.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/body.tex	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/body.tex	2025-04-01 20:02:45 UTC (rev 74818)
@@ -402,13 +402,12 @@
 
 The libraries contain hints and explanations that might help in debugging
 or if you wish to modify any of the macros.  Macros are generally named
-using the obvious circuit element names so that programming becomes something
-of an extension of the \pic language.  Some macro names end in an underscore
-to reduce the chance of name clashes.  These can be invoked in the
-diagram source but there is no long-term guarantee that their names and
-functionality
-will remain unchanged. Finally, macros intended only for internal use
-begin with the characters {\tt m4}.
+using the obvious circuit element names so that programming becomes
+something of an extension of the \pic language.  Some macro names end
+in an underscore to reduce the chance of name clashes.  These can be
+invoked in the diagram source but there is no long-term guarantee that
+their names and functionality will remain unchanged. Finally, macros
+intended only for internal use begin with the characters {\tt m4}.
 
 \xection{\Pic essentials\label{Pic:}}
 
@@ -1000,8 +999,8 @@
    \end{figure}
 As a convenience,
 the macro {\tt ACsymbol(at {\sl position, length, height,}
-  [n:][A]U|D|L|R|{\sl degrees})} is included as an interface to
-the {\tt sinusoid} macro.  For example to add the sumbol
+  [n:][A]U|D|L|R|{\sl degrees})} defines an interface to
+the {\tt sinusoid} macro.  For example, to add the symbol
 ``\input{ACsymbol.tex}'' to an ebox:
 \par
 {\tt ebox; $\lbrace$\ ACsymbol(at last [],{,},dimen\_/8) $\rbrace$}
@@ -1012,8 +1011,9 @@
 and for power-system diagrams, macros
 {\tt Deltasymbol(at {\sl position, keys,} U|D|L|R|{\sl degrees})},
 and
-{\tt Ysymbol(at {\sl position, keys,} U|D|L|R|{\sl degrees})},
+{\tt Ysymbol(at {\sl position, keys,} U|D|L|R|{\sl degrees})}.
 
+\enlargethispage{\baselineskip}
 Fuses, breakers, and jumpers are in \FR{Fuses},
 and switches with numerous controls in \FR{Switches}.
 %Switches with numerous controls are in \FR{Switches},
@@ -1051,16 +1051,18 @@
 3-terminal (composite) elements described in \SR{Composite:}.
 \begin{figure}[H]
    \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}
+   \caption{Variations of the macro {\tt arrester({\sl linespec, chars,}
+     {\sl body len}[{\tt :}{\sl arrowhead ht}],
+     {\sl body ht}[{\tt :}{\sl arrowhead wid}],
+     {\sl attributes})}.
+     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.}}
+     with terminals {\sl A, B}, and {\sl G,} in which case the first
+     argument determines length and direction but not position.}
    \label{Arresters}
    \end{figure}
 
-\enlargethispage{\baselineskip}
+\pagebreak
 \FR{Variable} shows some two-terminal elements with
 arrows or lines overlaid to indicate variability using the macro
 \par
@@ -1194,7 +1196,7 @@
    \label{Loop}
    \end{figure}
 Most commonly, only
-the first three arguments are needed, and blank arguments are ignored.
+the first three label arguments are needed, and blank arguments are ignored.
 The fourth argument can be {\tt above,} {\tt below,} {\tt left,} or {\tt
 right} to supplement the default relative position.
 The macro {\tt dlabel} performs these functions for an
@@ -1285,7 +1287,8 @@
    \end{figure}
 and ``{\tt rpoint\_(to Z)}'' sets
 the current direction cosines to point from the current location to location Z.
-Macro {\tt vec\_(x,y)}
+
+To implement rotations, macro {\tt vec\_(x,y)}
 evaluates to the position {\tt (x,y)} rotated as defined by the
 argument of the previous
 {\tt setdir\_, Point\_, point\_} or {\tt rpoint\_} command.
@@ -1805,7 +1808,20 @@
    \label{Windings}
    \end{figure}
 
-\pagebreak
+\enlargethispage{\baselineskip}
+A few compositie macros have no terminals at all. {\tt ACsymbol}
+ and {\tt DCsymbol} have been mentioned; some others are {\tt Ysymbol,}
+ {\tt Deltasymbol,} {\tt adjust,} and the {\tt heatsink} shown in \FR{heatsink}.
+\begin{figure}[H]
+   \input heatsinkMan
+   \caption{The elements {\tt ACsymbol, DCsymbol, Ysymbol, Deltasymbol,
+     adjust,} and
+    {\tt heatsink(at {\sl position, keys,}
+      U|D|L|R|{\sl degrees})} have similar argument sequences.}
+   \label{heatsink}
+   \end{figure}
+
+%\pagebreak
 \subsection{Semiconductors\label{Semiconductors:}}%
 \FR{Bip} shows the variants of bipolar transistor macro
 {\tt bi\_tr(\linespec,L|R,P,E)}
@@ -2003,15 +2019,15 @@
    \caption{Producing mitred angles and corners.}
    \label{Corners}
    \end{figure}
-This is normally
+This detail is normally
 not an issue for circuit diagrams unless the figure is magnified or thick
 lines are drawn.  Rounded corners can be obtained by setting post-processor
 parameters, but the figure shows the effect of
 macros {\tt round} and {\tt corner}.
 The macros
-{\tt mitre\_({\sl Position1,Position2,Position3,length,attributes})}
+{\tt mitre\_({\sl Position1, Position2, Position3, length, attributes})}
 and
-{\tt Mitre\_({\sl Line1,Line2,length,attributes})}
+{\tt Mitre\_({\sl Line1, Line2, length, attributes})}
 may assist as shown.
 Otherwise, a right-angle line can be extended
 by half the line thickness (macro {\tt hlth}) as shown on the upper row
@@ -2027,8 +2043,11 @@
  [by {\sl expression}] do $\lbrace$ {\sl actions} $\rbrace$}
 
 \noindent
-or at the
-\Mfour processing stage.  The {\tt libgen} library defines the macro
+or at the \Mfour processing stage, which is executed and finished
+before \dpic or \gpic begin.  An m4 macro inside a \pic loop is
+expanded only once and the resulting expansion executed with each
+\pic repetition.  As an alternative,
+the {\tt libgen} library defines the m4 macro
 
 {\tt for\_({\sl start}, {\sl end}, {\sl increment}, `{\sl actions}')}
 
@@ -2037,7 +2056,8 @@
 index variable is {\tt m4x.}
 The first three arguments must be
 integers and the {\sl end} value must be reached exactly; for example,
-\verb|for_(1,3,2,`print In`'m4x')| prints locations {\sl In1} and {\sl In3},
+\verb|for_(1,3,2,`print In`'m4x')| prints predefined locations
+{\sl In1} and {\sl In3},
 but \verb|for_(1,4,2,`print In`'m4x')| does not terminate since the
 index takes on values 1, 3, 5, $\ldots$.
 
@@ -2051,6 +2071,8 @@
 which evaluates {\sl actions} and increments counter {\tt m4Lx}
 for each instance of {\sl variable} set to {\sl value1, value2, $\ldots$}
 
+\enlargethispage{\baselineskip}
+\vspace*{-0.5\baselineskip}
 \xection{Logic gates\label{Logicgates:}}
 Library {\tt liblog.m4} contains a selection of basic and advanced logic
 gates and structures.  The default size and style parameters defined
@@ -2079,7 +2101,8 @@
    \label{Logic}
    \end{figure}
 
-Input locations retain their positions relative to the gate body
+%Input locations retain their positions relative to the gate body
+Inputs retain their positions relative to the body
 regardless of gate orientation, as in \FR{FF}.
 \begin{figure}[H]
    \vspace*{-\baselineskip}
@@ -2381,7 +2404,7 @@
 The many-argument macro
  {\tt lg\_pin( {\sl location, label, Picname,} n|e|s|w [L|M|I|O][N][E],
   {\sl pinno, optional length})}
-can be used to draw a variety of pins as illustrated in the \FR{sampleIC}.
+can be used to draw a variety of pins as illustrated in \FR{sampleIC}.
 To draw the left-side pins, for example, one can write
 \begin{verbatim}
   lg_pin( U.nw-(0,lg_pinsep), Vin, Pin1, w )
@@ -2422,7 +2445,7 @@
 \input SLDsMan
  Standard single-line diagrams for power distribution employ many of
  the normal two-terminal elements along with others that are unique to
- the context.  This distribution contains a library of draft single-line
+ the context.  This distribution contains a library of single-line
  diagram (SLD) elements that can be loaded with the
  command {\tt include(libSLD.m4)}.
  The {\tt examples.pdf} and {\tt examplesSVG.html}
@@ -2473,7 +2496,7 @@
 \begin{figure}[H]
    \vspace*{-\baselineskip}
    \SLDTransformers
-   \caption{The SLD draft transformers
+   \caption{The SLD transformers
      drawn by {\tt sl\_transformer({\sl linespec, key-value pairs,
      stem object, stem object, type {\tt S} circle object,
      type {\tt S} circle object})},
@@ -2628,7 +2651,7 @@
 
 \begin{verbatim}
   resistor
-T: [linewid = linewid*1.5; up_; Q: bi_tr] with .Q.B at Here
+T: [linewid *= 1.5; up_; Q: bi_tr] with .Q.B at Here
   ground(at T.Q.E)
   resistor(up_ dimen_ from T.Q.C)
 \end{verbatim}
@@ -3534,7 +3557,7 @@
 element data encoded in the macros, which have been developed with
 reference to standards and refined over decades, and which now total
 thousands of lines.  The learning curve of \pic\ compares well with
-other possibilities, but some of the macros have become less readable
+other possibilities but some of the macros have become less readable
 as more options and flexibility have been added, and if starting
 over today, perhaps I would change some details.  Compromises have
 been made to preserve the compatability of some of the older macros
@@ -3687,10 +3710,7 @@
 
 \noindent produces an error, whereas
 
-{\tt shadebox(box with .n at w`,'h)}
-
-\noindent and
-
+{\tt shadebox(box with .n at w`,'h)} and
 {\tt shadebox(box with .n at (w,h))}
 
 \noindent do not. The parentheses are preferred.
@@ -3708,6 +3728,16 @@
 \noindent
 cured the problem because the protecting parentheses are not stripped away.
 
+As a second example, the expansion of
+{\tt rgbstring(}{\sl red frac,green frac,blue frac}{\tt )}
+for postprocessor PSTricks or pgf contains a comma, so this macro is fragile
+when part of an argument of another macro.  One cure is to
+replace {\tt rgbstring(\ldots)} in the problematic argument
+by a name, {\tt newcolor} say, and define a pic macro:
+{\tt define newcolor \lbr{}rgbstring(\ldots)\rbr}
+so that {\tt newcolor} gets replaced by the color specification
+when needed during dpic execution.
+
 \item 
 \bflistitem{Default directions and lengths}{defaultdir}
 The \linespec argument of element
@@ -3739,7 +3769,12 @@
 {\tt Point\_(45); source(to rvec\_(0.5,0))}
 
 \item 
-\bflistitem{Processing sequence}{sequence}
+%\bflistitem{Processing sequence}{sequence}
+%It is easy to forget that \Mfour finishes before \pic processing
+%begins. Consequently, it may be puzzling that the following mix of
+%a \pic loop and the \Mfour macro {\tt s\_box} does not appear to produce
+%the required result:
+\bflistitem{Mixing m4 and dpic code}{mixing}
 It is easy to forget that \Mfour finishes before \pic processing
 begins. Consequently, it may be puzzling that the following mix of
 a \pic loop and the \Mfour macro {\tt s\_box} does not appear to produce
@@ -3755,6 +3790,19 @@
 
 Note that the loop index variable {\tt m4x} is automatically defined.
 
+Another potential problem is that macros like {\tt vec\_()} and {\tt
+rvec\_()} attempt to produce the simplest output possible, depending on
+their arguments, in order to facilitate debugging.  This is accomplished
+by checking for multiplication by 0, 1, or -1 and simplifying
+accordingly, and also checking for addition or subtraction of 0.
+However, their arguments may change inside a pic loop, for example,
+causing difficulties.  A recent switch in {\tt libgen.m4} (that is,
+{\tt define(\LQ{}robustcode\_\RQ,1)}), will avoid these changes, if
+you must, for robustness at the expense of longer output expressions.
+The robust macros {\tt vec\_r()} and {\tt rvec\_r()} are also provided.
+Better strategies may be to avoid argument-sensitive m4 macros in pic
+loops or to use m4 loops instead.
+
 \item 
 \bflistitem{Quotes}{quotes}
  Single quote characters are stripped in pairs by \Mfour, so the string

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/defines.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/defines.tex	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/defines.tex	2025-04-01 20:02:45 UTC (rev 74818)
@@ -77,6 +77,14 @@
    Tap names are Tap1, Tap2, $\cdots$ by default  or
    Name1, Name2, $\cdots$ if specified 
    \seesect{Composite:}}%
+\macrodef{adjust}{adjust}{([at {\sl position}], {\sl keys})}%
+  {cct}%
+  { Ajdustment screwhead in a [ ] block.
+   {\sl keys:}
+    {\tt size={\sl expression;}}
+    {\tt angle={\sl degrees;}}
+    {\tt slotwid={\sl expression;}}
+    {\tt circle={\sl attributes;}}}%
 \macrodef{along\_}{along_}{({\sl linear object name})}%
   {gen}%
   {short for {\tt between {\sl name}.start and {\sl name}.end}}%
@@ -198,9 +206,9 @@
   {$\;\;$ Find the index in {\sl array[1:n]} of the first occurrence
    of the minimum array element value.  The value is assigned if arg4 is
    nonblank; see {\tt arraymax}.}%
-\macrodef{arrester}{arrester}{(\linespec,{\sl chars},
-                                   {\sl len}[:{\sl arrowhead ht}],
-                                   {\sl ht}[:{\sl arrowhead wid}],
+\macrodef{arrester}{arrester}{(\linespec, {\sl chars}[D[L|R]],
+                                   {\sl body len}[:{\sl arrowhead ht}],
+                                   {\sl body ht}[:{\sl arrowhead wid}],
                                    {\sl attributes} )}%
   {cct}%
 {Arg2 {\sl chars:}\\
@@ -218,8 +226,9 @@
     {\sl Modifiers appended to arg2:}\\
     {\tt R=} right orientation\\
     {\tt L=} left orientation\\
-    {\tt D=} add terminals {\sl A, B, G} for {\tt S, E} only\\
-    Arg5 applies to options C, E, S
+    {\tt D=} for {\tt S, E} only, create a 3-terminal composite element
+      with terminals {\sl A, B, G,} placed as a block since Arg1 now determines
+      length and direction but not position.\\
     \seesect{Twoterminal:}}%
 \macrodef{arrowline}{arrowline}{(\linespec)}%
   {cct}%
@@ -473,10 +482,21 @@
 \macrodef{cmyktorgb}{cmyktorgb}{({\sl c, m, y, k, r, g, b})}%
   {dpictools}%
   {$\;\;$ cmyk values in percent, i.e., 0 to 100, to rgb.}%
-\macrodef{consource}{consource}{(\linespec,V|I|v|i,R,{\sl attributes})}%
+\macrodef{consource}{consource}{(\linespec, V|I|tv|v|ti|i|P, R,
+    {\sl attributes})}%
   {cct}%
-  {voltage or current controlled source with alternate forms;
-   {\tt R}: reversed polarity\seesect{Twoterminal:}}%
+  {controlled source or sensor with alternate forms;
+   {\tt V}: voltage;
+   {\tt I}: current;
+   {\tt v}: voltage type 2;
+   {\tt tv}: voltage type 3;
+   {\tt i}: current type 2;
+   {\tt ti}: current type 3;
+   {\tt P}: proximity sensor;
+   {\tt R}: reversed polarity.
+  Body internal locations N, S, E, W, and C are defined.
+  Arg 4 can be used to modify the body or to add internal symbols, e.g.\\
+    {\tt consource(,{,},fill\_(0.9); "S" at C)}\seesect{Twoterminal:}}%
 \macrodef{ColoredV}{ColoredV}{%
    (box|circle|ellipse,({\sl r,g,b})|(({\sl colorseq}))[:{\sl nlines}],%
      {\sl attributes})}%
@@ -626,7 +646,7 @@
    B1= internal base lead\\
    D= damper diode\\
    R1= Q1 bias resistor; E1= ebox\\
-   R2= Q2 bias resistor; E1= ebox\\
+   R2= Q2 bias resistor; E2= ebox (require R1 or E1)\\
    Z= zener bias diode 
     \seesect{Semiconductors:}}%
 \macrodef{darrow}{darrow}{(\linespec,
@@ -719,7 +739,7 @@
 \macrodef{deleminit\_}{deleminit_}{}%
   {darrow}%
   {sets drawing direction for dlines}%
-\macrodef{Deltasymbol}{Deltasymbol}{(at {\sl position},keys,
+\macrodef{Deltasymbol}{Deltasymbol}{(at {\sl position, keys,}
     U|D|L|R|{\sl degrees}) (default {\tt U} for up)}%
   {cct}%
   {Delta symbol for power-system diagrams.
@@ -784,7 +804,7 @@
   {gen}%
   {macro for dimensioning diagrams; {\sl arrowhead=}{\tt -> | <-}}%
 \macrodef{diode}{diode}{(\linespec,
-B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,
+B|b|CR|D|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|z|chars,
 [R][E])}%
   {cct}%
   {diode:
@@ -804,6 +824,7 @@
    {\tt v}: varicap (curved plate)\\
    {\tt w}: varicap (reversed polarity)\\
    {\tt Z}: zener\\
+   {\tt z}: zener with angled centre bar\\
    appending {\tt K} to arg 2 draws open arrowheads;
    arg 3: {\tt R}: reversed polarity, {\tt E}: enclosure \seesect{Twoterminal:}}%
 %\macrodef{DIP}{DIP}{({\sl pin count, attributes})}%
@@ -1242,21 +1263,22 @@
 \macrodef{hatchbox}{hatchbox}{({\sl boxspec,hashsep,hatchspec,angle})
   {\rm or} hatchbox({\sl keys})}%
   {gen}%
-% {Alternate invocation: {\tt hatchbox({\sl keys})}.
-  {Manhattan box hatched at a specified separation
-    and angle (default 45 degrees).
+  { If Arg1 contains keys then a box is drawn in the current direction
+    or as specified by {\tt boxdir}; otherwise the box is drawn to the right.
+    The hatch lines are at {\tt angle} with respect to the current direction
+    (default 45 degrees).
    Defined keys are:\\
     {\tt wid={\sl expr};}\\
     {\tt ht={\sl expr};}\\
     {\tt box={\sl attributes};} (e.g. {\tt dashed outline "{\sl color}"})\\
-    {\tt fillcolor="{\sl color}"|({\sl r,g,b});}\\
     {\tt hatchsep={\sl expr};}\\
     {\tt hatchspec={\sl attributes};}\\
-    {\tt angle={\sl expr};}
+    {\tt angle={\sl degrees};}\\
+    {\tt boxdir={\sl degrees};}\\
  e.g.,
    {\tt hatchbox(outlined "blue",{},dashed outlined "green" thick 0.4)};\\
    also
-   {\tt DefineRGBColor(mycolor,1,0.2,0.5);\\
+   {\tt define mycolor \lbr{}rgbstring(1,0.2,0.5)\rbr;\\ 
         hatchbox(box=dashed outlined mycolor)}}%
 \macrodef{Header}{Header}{(1|2,{\sl rows,wid,ht,box attributes})}%
   {log}%
@@ -1298,6 +1320,12 @@
     {\tt box={\sl body attributes};}
       (e.g., {\tt dotted, dashed, outlined, shaded}).
     Args 3--5 are unused if any key is given}%
+\macrodef{heatsink}{heatsink}{(at {\sl position, keys,} U|D|L|R|{\sl degrees})}%
+  {cct}%
+  {Heatsink symbol drawn beside an element.
+   {\sl keys:} {\tt lgth={\sl expr;} hght={\sl expr;} fin={\sl attributes;}
+     base={\sl attributes;} fincount={\sl expr;}}
+     Arg3: drawing direction (default {\tt R}) }%
 \macrodef{hexadecimal\_}{hexadecimal_}{($n$, [$m$])}%
   {gen}%
   {hexadecimal representation of $n,$ left padded to $m$ digits if the second
@@ -2053,6 +2081,7 @@
     {\tt H}: squared,\\
     {\tt N}: IEEE,\\
     {\tt B}: not burnable,\\
+    {\tt T}: thermistor,\\
     {\tt V}: varistor variant,\\
     {\tt R}: right-oriented;\\
     Arg4: {\sl cycle width} (default {\tt dimen\_}$/6$)
@@ -2086,7 +2115,11 @@
    are fractions in the range $[0,1]$; For example, {\tt box outlined
    rgbstring(0.1,0.2,0.7) shaded rgbstring(0.75,0.5,0.25)}.  For those
    postprocessors that allow it, there can be one argument which is the
-   name of a defined color}%
+   name of a defined color.
+   This macro can be fragile when used as an m4 macro argument.
+   Then something like the following delays expansion:\\
+   {\tt define rgbpurp \lbr{}rgbstring(0.5,0,1)\rbr;}\\
+   {\tt curve(,{,},rail=outlined rgbpurp)} }%
 \macrodef{rgbtocmyk}{rgbtocmyk}{({\sl r, g, b, c, m, y, k})}%
   {dpictools}%
   {$\;\;$ rgb to cmyk values in the range 0 to 100.}%
@@ -2192,6 +2225,9 @@
 \macrodef{rvec\_}{rvec_}{({\sl x},{\sl y})}%
   {gen}%
   {location relative to current direction}%
+\macrodef{rvec\_r}{rvec_r}{({\sl x},{\sl y})}%
+  {gen}%
+  {Robust location relative to current direction for use in dpic loops}%
 
 \Letter{S}%
 
@@ -2806,6 +2842,7 @@
                {\tt i}: alternate current source;\\
                {\tt ii}: double arrow current source;\\
                {\tt ti}: truncated-bar alternate current source;\\
+               {\tt dci}: DC current source;\\
                {\tt L}: lamp;\\
                {\tt N}: neon;\\
                {\tt NA}: neon 2;\\
@@ -2819,9 +2856,10 @@
                {\tt T}: triangle;\\
                {\tt U}: square-wave;\\
                {\tt V}: voltage source;\\
-               {\tt X}: interior X;\\
                {\tt v}: alternate voltage source;\\
                {\tt tv}: truncated-bar alternate voltage source;\\
+               {\tt dcv}: DC voltage source;\\
+               {\tt X}: interior X;\\
                other: custom interior label or waveform;\\
         arg 4: R: reversed polarity;\\
         arg 5 modifies the circle (body) with e.g., color or fill;\\
@@ -3108,6 +3146,10 @@
 \macrodef{vec\_}{vec_}{({\sl x},{\sl y})}%
   {gen}%
   {position rotated with respect to current direction}%
+\macrodef{vec\_r}{vec_r}{({\sl x},{\sl y})}%
+  {gen}%
+  {Robust position rotated with respect to current direction for use in
+   dpic loops}%
 \macrodef{vec3}{vec3}{({\sl vector})}%
   {dpictools}%
   {$\;\;$ Expands to the threee components of the vector argument separated
@@ -3188,10 +3230,10 @@
 
 \Letter{Y}%
 
-\macrodef{Ysymbol}{Ysymbol}{(at {\sl position},keys,
+\macrodef{Ysymbol}{Ysymbol}{(at {\sl position, keys,}
     U|D|L|R|{\sl degrees}) (default {\tt U} for up)}%
   {cct}%
-  {Y symbol for power-system diagrams
+  {Y symbol for power-system diagrams.
    {\sl keys:} {\tt size={\sl expression}; type=G}}%
 
 \Letter{Z}%

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/heatsinkMan.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/heatsinkMan.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/heatsinkMan.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -0,0 +1,18 @@
+.PS
+# `heatsinkMan.m4'
+cct_init
+movewid = 36bp__
+
+  ACsymbol
+  move
+  DCsymbol
+  move
+  Ysymbol
+  move
+  Deltasymbol
+  move
+  adjust
+  move
+  heatsink
+
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/doc/heatsinkMan.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/dpictools.pic
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/dpictools.pic	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/dpictools.pic	2025-04-01 20:02:45 UTC (rev 74818)
@@ -3,7 +3,7 @@
 # m4 macro NeedDpicTools or the pic statement copy "HOMELIB_/dpictools.pic"
 # when HOMELIB_ is defined or, generically, copy "<path>dpictools.pic"
 
-# Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     #
+# Circuit_macros Version 10.8, copyright (c) 2025 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/examples/Diodes.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Diodes.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Diodes.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -24,8 +24,10 @@
    }
 
    move right_ 2.0
-{  {diode(,K) ; move ; "`{\tt diode(,K)}'" ljust}
+{  {diode(,z) ; move ; "`{\tt diode(,z)}'" ljust}
    move down 0.2; right_
+   {diode(,K) ; move ; "`{\tt diode(,K)}'" ljust}
+   move down 0.2; right_
    {diode(,ZK) ; move ; "`{\tt diode(,ZK)}'" ljust}
    move down 0.2; right_
    {diode(,CR) ; move ; "`{\tt diode(,CR)}'" ljust}

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/LT3724.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/LT3724.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/LT3724.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -78,7 +78,7 @@
   "\SI{12}{\volt}" at VOUT+(0,-blskip*1.2) ljust
   "\SI{50}{\watt}" at VOUT+(0,-blskip*1.2*2) ljust
 
-  "High voltage step-down regulator" ljust at (M1.e.x+10bp__,QR.n.y) \
+  "Step-down regulator" ljust at (M1.e.x+10bp__,QR.n.y) \
   "\SI{48}{\volt} TO \SI{12}{\volt}, \SI{50}{\watt}" ljust
   ]
 #showbox_

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Loglog.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Loglog.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Loglog.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -93,12 +93,12 @@
   ell = F.ht-0.6i
   r = 0.3i
   offset = 8bp__
-  hatch = 0.1i
-  dhs = hatch * sqrt(2)
+  pitch = 0.1i
+  dhs = pitch * sqrt(2)
   qmell = F.ht - ell
   kwid = F.wid-qmell-r
 
-  hatchbox(wid G.e.x-F.w.x ht F.ht,hatch) with .sw at F.sw
+  hatchbox(wid G.e.x-F.w.x ht F.ht,pitch) with .sw at F.sw
   box invis fill_(1) ht ell wid E.e.x-F.w.x with .nw at F.nw
 
   box wid G.e.x-F.w.x ht F.ht with .sw at F.sw thick linethick*3/2
@@ -114,13 +114,13 @@
     "$t$" at (B`'T,B.n) + (-offset/2,offset)
     sprintf("$\overbrace{\phantom{\hbox to %gin{}}}^{\hbox{$k$}}$",kwid/scale) \
       at B.nw + (kwid/2,0) above
-    hatchbox(wid kwid ht ell,hatch,,90) with .nw at B.nw
+    hatchbox(wid kwid ht ell,pitch,,90) with .nw at B.nw
     line from B.ne to B.se thick linethick*3/2
    ',F,E)
 
   line from (G.w,ET) right G.wid
   line from ET + (0,r) left ET.x-E.w.x
-  hatchbox(wid r ht r,hatch,,0) with .se at ET
+  hatchbox(wid r ht r,pitch,,0) with .se at ET
 
   "$q$" at F.sw + (-offset,offset/3)
   "$\ell$" at (F.w,FT) + (-offset,offset/3)

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Makefile
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Makefile	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Makefile	2025-04-01 20:02:45 UTC (rev 74818)
@@ -79,7 +79,8 @@
   lcct.tex Logic.tex Loglog.tex LT3724.tex \
   MC.tex Mixer.tex MoreTable.tex MotorControl.tex Multiplexer.tex \
   NLG.tex NPDT.tex Nport.tex OneLine.tex Opamp.tex Optoiso.tex \
-  Pconn.tex Plate.tex PushPull.tex pwrsupply.tex \
+  Pconn.tex Plate.tex PS50.tex PushPull.tex pwrsupply.tex \
+  Reg723.tex \
   Quantum.tex quick.tex \
   random.tex Rectifiers.tex recycle.tex relaycoil.tex Relay.tex \
   Resistors.tex Rotbox.tex \

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/PS50.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/PS50.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/PS50.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -0,0 +1,97 @@
+.PS
+# PS50.m4
+# See Horowitz and Hill Fig 9.49 p. 630
+cct_init
+command "{\small"
+
+# pconnex(U,PF)
+
+   h = dimen_*2.5
+ T: dot
+ Cs: capacitor(down_ h/2)
+   llabel(,"$C_s$" ljust "$0.1{-}\SI{1}{\micro\farad}$" ljust)
+   dot; { line right_ dimen_*3/4; ground(,,F) }
+ Rs: resistor(down_ Cs.len)
+   llabel(,"$R_s$" ljust "$\SI{10}{\ohm}{-}$" ljust "\SI{100}{\ohm}" ljust)
+ B: dot
+ Br: [ size=dimen_/2; W: dot; 
+  { diode(to Here+(size, size)); N: dot
+    diode(to Here+( size,-size)); E: dot }
+   diode(to Here+( size,-size)); S: dot; diode(to E)
+   box thick 0.4 dashed wid 3*size ht 3*size with .c at 0.5 between N and S
+   "\scriptsize GBU604" at last box.n above rjust ] \
+     with .W at Cs.end+(dimen_*3/2,0)
+   line from Br.N to (Br.N,T) then left Br.N.x-Cs.x+dimen_*3/4
+   { line from (Here,B) to (Br.S,B) then to Br.S }
+ T80: transformer(up_ h,,,W) with .P2 at Here
+   "\SI{115}{\volt}:\SI{80}{V} CT" at T80+(-dimen_/4,-h/2-dimen_/3) \
+   "\SI{4}{\ampere}"
+
+   line from Br.E right dimen_/2 then up T.y-Br.E.y then right_ dimen_*2/3
+   dot; {C1: capacitor(down_ Cs.len+dimen_/3,C+); rlabel(,C_1)
+    dot; C2: capacitor(down_ C1.len,C+); rlabel(,C_2); dot}
+   {"$2$ $\times$ \SI{8200}{\micro\farad}" at C1.start+(0,dimen_/2) \
+    "\SI{80}{\volt}dc" }
+   {line right_ dimen_*3/2
+ P50: dot(,dotrad_*3/2,1)
+     "${+}\SI{50}{\volt}$" wid 29bp__ at last [].e ljust \
+     "\SI{2}{\ampere}" ljust }
+   dot(at 1/2 between Here and P50)
+ R2: resistor(down_ C1.len)
+   llabel(,"$R_2$" ljust "$680$" ljust "\SI{5}{\watt}" ljust)
+   {dot; line to (C1,Here)}
+   {line to (P50,Here); dot(,dotrad_*3/2,1)
+    "\scriptsize COM" at last [].e ljust}
+ R3: resistor(down_ C2.len)
+   llabel(,"$R_3$" ljust "$680$" ljust "\SI{5}{\watt}" ljust); dot
+   {line to (P50,Here); dot(,dotrad_*3/2,1); 
+     "${-}\SI{50}{\volt}$" at last [].e ljust "\SI{2}{\ampere}" ljust }
+   line left_ Here.x-Br.W.x+dimen_/2; continue to (Here,Br.W) then to Br.W
+   line from T80.TP right_ (Rs.x-T80.TP.x)/2 \
+     then down_ T80.TP.y-B.y + (B.y-C2.end.y)/2
+   continue to (Br.E+(dimen_/2,0),Here) 
+   continue to (Here,C2.start) then to C2.start
+   dot(at (T80.S2,T)-(dimen_*4/3,0))
+   { line from (T80.S2,T) to Here-(dimen_/2,0)
+    line dashed to Here-(dimen_/2,0) chop dimen_/10; In1: Here }
+   { line from (T80.S2,B) to (Here-(dimen_/2,0),B)
+    line dashed to Here-(dimen_/2,0) chop dimen_/10; In2: Here}
+ F2: fuse(down_ h/2,D)
+   llabel(,"$F_2$" ljust "\SI{100}{\celsius}" ljust "cutout" ljust)
+ MOV: ebox(down_ to (Here,B))
+   variable(,uNN,,dimen_/2)
+   "\scriptsize MOV" at last [].e ljust \
+   "$130\hbox{V}_{\hbox{\scriptsize ac}}$" ljust "\scriptsize S20K130" ljust
+   { arc dashed from 3rd last [].w-(2bp__,0) to 2nd last [].w-(2bp__,0) \
+      rad dimen_ }
+   dot(at MOV.end)
+
+ SB: In1+(dimen_*4,dimen_/2)
+ ST: SB+(0,h)
+ T880: transformer(right_ dimen_*7/8,,,WD1) at (ST+SB)/2-(2*dimen_,0)
+   line from T880.P2 to (T880.P2,SB) then to SB; dot(,dotrad_*3/2,1)
+   line from T880.S2 to (T880.S2,ST) then to ST; dot(,dotrad_*3/2,1)
+   line dashed from ST.e right_ dimen_/2 chop dimen_/10
+   line dashed from SB.e right_ dimen_/2 chop dimen_/10
+   dot(at (T880.P2,ST)+(dimen_,0))
+ Cy: capacitor(down_ h/2); rlabel(C_y,,\SI{2.2}{\nano\farad}); dot
+   {line right_ dimen_/3; ground(,,F)}
+   capacitor(down_ to (Here,SB)); rlabel(C_y,,\SI{2.2}{\nano\farad}); dot
+ Socket: pconnex(U,PF) at T880.w-(dimen_*3.5,0)
+   line right_ dimen_/2 from Socket.G.e; ground(,,F)
+   line from Socket.H.n to (Socket.H.n,ST); 
+ F1: fuse(right_ dimen_,D); llabel(,"F1"); rlabel(,"\SI{6}{\ampere} SB")
+ TS: lswitch(right_ dimen_*3/4,,D); { line to (T880.S1,Here) then to T880.S1 }
+   dot(at Here+(dimen_/2,0))
+   { R1: resistor(down_ to (Here,SB)); rlabel(,"$R_1$" rjust \
+      "\SI{1}{\mega\ohm}" rjust); dot }
+   dot(at Here+(dimen_/2,0))
+ Cx: capacitor(down_ to (Here,SB)); llabel(C_{\hbox{\scriptsize x}},,
+     \SI{100}{\nano\farad}); dot
+   line from Socket.N.s to (Socket.N.s,SB) then to (TS.start,SB)
+ BS: lswitch(right_ TS.len,,D); { line dashed from TS to BS chop dimen_/3 }
+   line to (T880.P1,Here) then to T880.P1
+   "Qualtek 880-06/006" at Cx.start+(dimen_/2,dimen_/4)
+
+command "}%"
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/PS50.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/Reg723.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Reg723.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Reg723.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -0,0 +1,75 @@
+.PS
+# Reg723.m4
+# see Horowitz and Hill p 600
+cct_init
+  command "{\small\sf"
+
+# "+7.15V"
+ R1: resistor(down_ dimen_*3/4); rlabel(,\shortstack[r]{$R_1$\\1.15k})
+ R2: potentiometer(down_ dimen_) with .Start at Here
+   rlabel(,\shortstack[r]{$R_2$\\2.0k})
+   "$\mathstrut V_{\hbox{adj}}$" at R2.T1 below
+ R3: resistor(down_ dimen_ from R2.End); rlabel(,\shortstack[r]{$R_3$\\4.02k})
+   ground
+
+   line right_ dimen_*4/3 from R2.T1
+ A: opamp(,,,,R) with .In1 at Here
+
+   line right_ dimen_*3/4 from A.Out
+ B1: dot
+ Q2: bi_tr(up_ dimen_) with .B at Here
+   line right_ dimen_ from Q2.E
+ Q1: bi_tr(up_ dimen_*3/2)  with .B at Here; heatsink(at Q1.e+(dimen_/2,0),,D)
+   "heat" ljust at last [].e+(dimen_/5,0) "sink" ljust
+   dot(at Q1.E)
+   resistor(down_ dimen_*3/2); llabel(,\shortstack[l]{0.25$\Omega$\\3W})
+ P5: dot
+
+ Q3: bi_tr(up_ dimen_,R) with .B at (Q2.C.x,Q1.E.y); dot(at Q3.C)
+   { line to Q2.B }
+   resistor(left_ dimen_ from Q1.E); llabel(,"100")
+   line to Q3.B
+   line from Q3.E to (Q3.E,P5) then to P5+(dimen_,0)
+ Out: "\shortstack[l]{+5V\\2A}" ljust
+   dot(at P5+(dimen_/2,0))
+   capacitor(down_ dimen_,C+); ground(,T)
+   rlabel(,\shortstack[r]{10$\mu$F\\15V})
+
+ Vref: box wid boxwid/2 ht boxht/2 with .w at (A.E.x,A.n.y+dimen_/3) \
+   "$V_{\hbox{ref}}$"
+ Bx: box thick 0.4 wid Q2.C.x-A.w.x+dimen_/2 rad 0.1 \
+     ht Vref.n.y-Q3.E.y+dimen_/3 with .sw at (A.In1.x-dimen_/7,Q3.E.y) dashed
+   "723" at Bx.n above
+
+   line from Vref.w to (Bx.w,Vref.w)
+   { "$V_{\hbox{ref}}$" above rjust }
+   continue to ((R1.x+Here.x)/2,Here.y); continue to (Here,R1.start) \
+    then to R1.start
+   "$+$7.15V" above ljust
+
+ P6: dot(at P5-(dimen_*2/3,0))
+   line from Q3.C left_ dimen_/2 then down_ Q3.C.y-Bx.s.y
+ Cp: capacitor(down_ dimen_*3/2); rlabel(,"100pF"); dot
+   line from A.In2 left_ dimen_/2 then down_ A.In2.y-Cp.end.y then to Cp.end
+ R4: resistor(right_ to (P6,Here)); rlabel(,"$R_4$ 1.5k"); line to P6
+    
+   line from A.SE to (A.SE,Bx.s); ground
+   "COMP" at (Cp,Bx.s) below rjust
+   "CS" at (Q3.E,Bx.s) below ljust
+   "CL" at (Bx.e,Q1.E) below ljust
+   "NI" at (Bx.w,A.In1) rjust above
+   "$V_{\hbox{out}}$" at (Bx.e,Q1.B) above ljust
+   "INV" at (Bx.w,A.In2) rjust above
+
+   line from A.NE to (A.NE.x,Bx.n.y+dimen_/2)
+   { "$V_{+}$" at (Here,Bx.n) above rjust }
+   continue to (Out,Here)
+#  {"$+V_{\hbox{in}}$ (unreg)" rjust at Here+(0,15bp__) "$+$9.5V (min)" rjust}
+   {"\shortstack{$+V_{\hbox{in}}$ (unreg)\\$+$9.5V (min)}" below}
+   {dot(at (Q2.C,Here)); line to Q2.C
+    "$V_C$" at (Here,Bx.n) above rjust }
+   dot(at (Q1.C,Here)); line to Q1.C
+   "\shortstack[l]{$Q_1$\\TIP41}" ljust
+
+  command "}%"
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Reg723.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/Resistors.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Resistors.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Resistors.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -26,7 +26,8 @@
    {E:resistor(,,E) ; move ; "`\tt $\ldots$(,{,}E) $\equiv$ ebox'" ljust}
 }
    move down vm*1.1; right_
-{  {ebox(,,,0.9) ; move ;"`{\tt ebox(,{,},0.9)}'" ljust}
+{  
+   {T:resistor(,,T) ; move ; "`\tt $\ldots$(,{,}T)'" ljust}
    move right_ hm
    {ebox(,wdth=0.2;box=dashed shaded "green";text="H") ; move
    "`\shortstack[l]{\tt ebox(,wdth=0.2;box=dashed shaded \"green\";\\' \

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Sources.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Sources.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Sources.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -12,10 +12,12 @@
    {source(,I) ; move ; "`\tt source(,I)'" ljust} NL
    {C:source(,i) ; move ; "`\tt source(,i)'" ljust} NL
    {D:source(,ti) ; move ; "`\tt source(,ti)'" ljust} NL
+   {source(,dci) ; move ; "`\tt source(,dci)'" ljust} NL
    {source(,ii) ; move ; "`\tt source(,ii)'" ljust} NL
    {source(,V) ; move ; "`\tt source(,V)'" ljust} NL
    {source(,v) ; move ; "`\tt source(,v)'" ljust} NL
    {source(,tv) ; move ; "`\tt source(,tv)'" ljust} NL
+   {source(,dcv) ; move ; "`\tt source(,dcv)'" ljust} NL
    {source(,SC) ; move ; "`\tt source(,SC)'" ljust} NL
    {source(,AC); move ; "`\tt source(,AC)'" ljust} NL
    {source(,X) ; move ; "`\tt source(,X)'" ljust} NL
@@ -22,8 +24,6 @@
    {source(,G) ; move ; "`\tt source(,G)'" ljust} NL
    {source(,Q) ; move ; "`\tt source(,Q)'" ljust} NL #(0.3)
    {source(,F) ; move ; "`\tt source(,F)'" ljust} NL
-   {geiger(,,,,fill_(0.9)); move;
-     "`\tt \shortstack[l]{geiger(,{,},{,}\\ fill\_(0.9))}'" ljust} NL
 }
    move right_ 2.0
 {
@@ -59,6 +59,8 @@
    {consource(,tv) ; move ;  "`\tt consource(,tv)'" ljust} NL(0.3)
    {proximity ; move ;
      "`\tt \shortstack[l]{proximity\\ = consource(,P)}'" ljust} NL(0.35)
+   {geiger(,,,,fill_(0.9)); move;
+     "`\tt \shortstack[l]{geiger(,{,},{,}\\ fill\_(0.9))}'" ljust} NL
 
 iflatex(`ifpsfrag(,`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	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/Variable.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -17,7 +17,7 @@
   { move right cskip+elen_+hskip
     line invis right_ elen_ "\tt C"; move right_ hskip
     line invis right_ elen_ "\tt S" }
-  Loopover_(`char',
+  foreach_(`char',
    `move down skp ifelse(char,A,*0.5)
     { line invis right_ cskip "\tt char"
       variable(`capacitor(,C)',char); move right_ hskip

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/cbresistor.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/cbresistor.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/cbresistor.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -8,7 +8,7 @@
                                 `cbresistor(linespec, keys)
                                  keys:
                                    lgth=expr; wdth=expr;
-                                   body=body attributes, e.g. shaded "green"
+                                   body=body attributes; e.g. shaded "green"
                                    type=A|B; pinched body shape
                                    colors=color:color:...;
                                      Up to 6 colors, a color may be nul '

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/control.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/control.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/control.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -177,6 +177,7 @@
 
 # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #
 
+ifelse(0,1,`
 Nonlinear: [boxwid = boxwid*3/2; boxht = boxht*3/2
   thicklines_
   scale = 0.8
@@ -214,6 +215,76 @@
 ] with .nw at last [].sw + (0,-0.25)
   "(d) Nonlinear feedforward (for performance) and small-signal feedback
      (for stability)" below ljust at Nonlinear.sw+(0,-5pt__)
+')
 
-#print PID.n.y - Nonlinear.s.y
+# . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #
+# Gimbal.m4
+# https://tex.stackexchange.com/questions/734796/how-to-create-a-gimbal-model-for-one-axis-using-tikz
+
+#gen_init
+Gimbal: [
+textht = 15bp__
+circlerad = 8bp__
+
+  iflatex(command "{\sf
+    \newcommand{\Sub}[1]{{\hbox{\scriptsize `#1'}}}")
+
+ Ir: arrow right_ linewid*3/2
+  { "Current" ljust at Ir.start+(-5bp__,textht) "reference" ljust
+    "$i_\Sub{reference}$" ljust at Ir.start-(0,textht*2/3) }
+ Ka: box "$K_a$"
+  { "Current" at Ka.s -(0,textht) "amplifier gain" }
+  arrow right_ linewid*3/2
+  { "Motor" at last arrow+(0,textht) "current" }
+ Kt: box "$K_t$"
+  { "Motor torque" at Kt.s -(0,textht) "constant" }
+  arrow
+ S1: circle; {"$-$" at S1.n above ljust; "$+$" at S1.w above rjust }
+  arrow right_ linewid*1.2
+ GI: box "$\frac{1}{J_\Sub{s}}$"; arrow "$\omega_h$" above 
+  { "Gimbal inertia" at GI.s -(0,textht) }
+ S2: circle at Here+(0,3/2*boxht)
+  {"$-$" at S2.e above ljust; "$+$" at S2.s below rjust }
+  { arrow <- right_; "$\omega_b$" above rjust }
+  arrow left_ from S2.w to (GI.e,S2)
+ Bv: box "$B_v$"
+  arrow left_ "$T_\Sub{viscous}\mathstrut$" below from Bv.w to (S1.e,Bv)
+ S3: circle "$+$"
+  { arrow <- from S3.w; "$T_\Sub{ext}$" above ljust }
+  arrow from S3 to S1 chop
+ Fc: box ht boxht*3/2 at Bv+(0,boxht*7/4)
+  arrow from S2.n to (S2,Fc) then to Fc.e
+  arrow from Fc.w to (S3,Fc) then to S3.n
+  "$T_\Sub{friction}$" at (S3,Fc) above
+  [ Orig: Here; thicktmp = linethick; thicklines_(0.4) 
+   V: arrow from Orig up_ Fc.ht*5/12
+   H: arrow right_ Fc.wid*5/6 with .c at Orig; thicklines_(thicktmp)
+    line thick 1.2 up Fc.ht/2 with .c at Orig
+    spline 0.55 thick 1.2 down_ boxht/5 right_ boxht/9 \
+      then right_ boxwid/9 then right_ boxwid/4 up_ boxwid/8 
+    { "$F_c$" above rjust }
+    spline 0.55 thick 1.2 from last line.start up_ boxht/5 left_ boxht/9 \
+      then left_ boxwid/9 then left_ boxwid/4 down_ boxwid/8 
+    { "${-}F_c$" below ljust }
+    ] with .Orig at Fc
+ Gl: box wid boxwid*5/4 with .e at GI.e+(0,-boxht*2) \
+  "$\frac{\omega_g^2}{s^2+2\zeta \omega_g s + \omega_g^2}$ "
+  { "Gyro lowpass" at Gl.s -(0,textht) }
+  arrow from Gl.e to (S2,Gl) then to S2.s
+ Gd: box wid boxwid*5/3 at (Kt,Gl) \
+  "$\frac{(d^2/12)\,s^2 - (d/2)\,s + 1}{(d^2/12)\,s^2 + (d/2)\,s + 1}$"
+  { "Gyro delay" at Gd.s -(0,textht) }
+  arrow left_ from Gl.w to Gd.e
+  arrow left_ from Gd.w chop 0 chop
+ S4: circle "$+$"
+  {"Gyro noise" at (S4,last ""); arrow from last "".n to S4.s }
+ Rm: arrow left_ from S4.w to (Ir.start,S4)
+  { "Rate" ljust at Here+(0,textht) "measurement" ljust }
+    "$w{}_\Sub{measured}$" ljust at Here-(0,textht*2/3)
+  
+  iflatex(command "}%")
+] with .nw at last [].sw + (0,-0.25)
+  "(d) Single-axis gimbal model" below ljust at Gimbal.sw+(0,-5pt__)
+
+#print PID.n.y - Gimbal.s.y
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/DiodesDPV.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/DiodesDPV.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/DiodesDPV.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -23,8 +23,10 @@
    }
 
    move right_ 2.0
-{  {diode(,K) ; move ; "`diode(,K)'" ljust}
+{  {diode(,z) ; move ; "`diode(,z)'" ljust}
    move down 0.2; right_
+   {diode(,K) ; move ; "`diode(,K)'" ljust}
+   move down 0.2; right_
    {diode(,ZK) ; move ; "`diode(,ZK)'" ljust}
    move down 0.2; right_
    {diode(,CR) ; move ; "`diode(,CR)'" ljust}

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/Makefile
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/Makefile	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/Makefile	2025-04-01 20:02:45 UTC (rev 74818)
@@ -27,6 +27,8 @@
 # M4LIBS = svg.m4 windows.m4
 # DPIC = ../dpic/bison/distsrc/Windows/dpic
 
+TR = | tr '!' '\134'
+
 .SUFFIXES: .pic .svg .m4 .xsvg
 .pic.svg:
 	$(DPIC) -v $*.pic > $*.svg
@@ -39,12 +41,11 @@
 	touch F_$*.dim
 	$(M4) pgf.m4 F_$*.dim $*.m4 > $*.pic
 	$(DPIC) -g $*.pic >> $*.tex
-#	echo "\documentclass[crop,tikz,multi=false]{standalone}" > F_$*.tex
-	echo "\documentclass[tikz]{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
+	echo "!documentclass[tikz]{standalone}" $(TR)> F_$*.tex
+	echo "!usepackage{boxdims,siunitx,amssymb}" $(TR)>> F_$*.tex
+	echo "!begin{document}" $(TR)>> F_$*.tex
+	echo "!input $*.tex" $(TR)>> F_$*.tex
+	echo "!end{document}" $(TR)>> F_$*.tex
 	pdf$(QLATEX) F_$*
 	$(M4) pgf.m4 F_$*.dim $*.m4 > $*.pic
 	$(DPIC) -g $*.pic >> $*.tex
@@ -77,7 +78,7 @@
  MultiplexerDPV.svg \
  NLGDPV.svg NPDTDPV.svg NportDPV.svg OpampDPV.svg OptoisoDPV.svg \
  PconnDPV.svg PlateDPV.svg PushPullDPV.svg QuantumDPV.svg \
- RectifiersDPV.svg RelayDPV.svg ResistorsDPV.svg RotboxDPV.svg\
+ RectifiersDPV.svg Reg723DPV.svg RelayDPV.svg ResistorsDPV.svg RotboxDPV.svg\
  SchottkyDPV.svg SevensegmentDPV.svg ShiftRDPV.svg SierpinskiDPV.svg \
  SixpoleDPV.svg SourcesDPV.svg Spec555DPV.svg SwitchesDPV.svg \
  TTLnandDPV.svg TgateDPV.svg ThreeDPV.svg \
@@ -119,6 +120,13 @@
 
 SED = sed -e '/^\%/d'
 TEST = test
+
+tst1:
+	@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
+	make tstDPV.html
+
 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
@@ -175,4 +183,4 @@
 	@printf "\n"
 
 clobber: clean
-	rm -f test.m4
+	rm -f test.m4 paletteDPV.svg

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/README_svg
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/README_svg	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/README_svg	2025-04-01 20:02:45 UTC (rev 74818)
@@ -8,6 +8,9 @@
   sources have LaTeX formatting replaced by svg macros from configuration
   file svg.m4 for font manipulation and special characters.
 
+  Type "make paletteDPV.svg" in this directory to generate a file of elements
+  that can be manipulated by Inkscape.
+
   The source files consist of the .m4 diagram sources and
   examplesDPV.htmx which is processed through m4 by the Makefile to
   produce examplesDPV.html.

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/Reg723DPV.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/Reg723DPV.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/Reg723DPV.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -0,0 +1,76 @@
+.PS
+# Reg723.m4
+# see Horowitz and Hill p 600
+cct_init
+  svg_font(sans-serif,10bp__)
+
+ R1: resistor(down_ dimen_*3/4)
+  rlabel(,"R`'svg_sub(1)" rjust "1.15k" rjust)
+ R2: potentiometer(down_ dimen_) with .Start at Here
+   rlabel(,"R`'svg_sub(2)" rjust "2.0k" rjust)
+   "V`'svg_sub(adj)" at R2.T1 below
+ R3: resistor(down_ dimen_ from R2.End)
+   rlabel(,"R`'svg_sub(3)" rjust "4.02k" wid 4*textht rjust)
+   ground
+
+   line right_ dimen_*4/3 from R2.T1
+ A: opamp(,,,,R) with .In1 at Here
+
+   line right_ dimen_*3/4 from A.Out
+ B1: dot
+ Q2: bi_tr(up_ dimen_) with .B at Here
+   line right_ dimen_ from Q2.E
+ Q1: bi_tr(up_ dimen_*3/2)  with .B at Here; heatsink(at Q1.e+(dimen_/2,0),,D)
+   "heat" ljust at last [].e+(dimen_/5,0) "sink" ljust
+   dot(at Q1.E)
+   resistor(down_ dimen_*3/2)
+   llabel(,"0.25`'svg_Omega" ljust "3W" ljust)
+ P5: dot
+
+ Q3: bi_tr(up_ dimen_,R) with .B at (Q2.C.x,Q1.E.y); dot(at Q3.C)
+   { line to Q2.B }
+   resistor(left_ dimen_ from Q1.E); llabel(,"100")
+   line to Q3.B
+   line from Q3.E to (Q3.E,P5) then to P5+(dimen_,0)
+ Out: "+5V" ljust "2A" ljust
+   dot(at P5+(dimen_/2,0))
+   capacitor(down_ dimen_,C+); ground(,T)
+   rlabel(,"10`'svg_micro`'F" rjust "15V" rjust)
+
+Vref: box wid boxwid/2 ht boxht/2 with .w at (A.E.x,A.n.y+dimen_/3) \
+  "V`'svg_sub(ref)"
+Bx: box thick 0.4 wid Q2.C.x-A.w.x+dimen_/2 rad 0.1 \
+    ht Vref.n.y-Q3.E.y+dimen_/3 with .sw at (A.In1.x-dimen_/7,Q3.E.y) dashed
+  "723" at Bx.n above
+
+  line from Vref.w to (Bx.w,Vref.w)
+  { "V`'svg_sub(ref)" above rjust }
+  continue to ((R1.x+Here.x)/2,Here.y); continue to (Here,R1.start) \
+   then to R1.start
+  "+7.15V" above ljust
+
+P6: dot(at P5-(dimen_*2/3,0))
+  line from Q3.C left_ dimen_/2 then down_ Q3.C.y-Bx.s.y
+Cp: capacitor(down_ dimen_*3/2); rlabel(,"100pF"); dot
+  line from A.In2 left_ dimen_/2 then down_ A.In2.y-Cp.end.y then to Cp.end
+R4: resistor(right_ to (P6,Here)); rlabel(,"R`'svg_sub(4) 1.5k"); line to P6
+   
+  line from A.SE to (A.SE,Bx.s); ground
+  "COMP" at (Cp,Bx.s) below rjust
+  "CS" at (Q3.E,Bx.s) below ljust
+  "CL" at (Bx.e,Q1.E) below ljust
+  "NI" at (Bx.w,A.In1) rjust above
+  "V`'svg_sub(out)" at (Bx.e,Q1.B) above ljust
+  "INV" at (Bx.w,A.In2) rjust above
+
+  line from A.NE to (A.NE.x,Bx.n.y+dimen_/2)
+  { "V`'svg_sub(+)" at (Here,Bx.n) above rjust }
+  continue to (Out,Here)
+  {"+V`'svg_sub(in) (unreg)" wid 8*textht "+9.5V (min)" below}
+  {dot(at (Q2.C,Here)); line to Q2.C
+   "V`'svg_sub(C)" at (Here,Bx.n) above rjust }
+  dot(at (Q1.C,Here)); line to Q1.C
+  "Q`'svg_sub(1)" ljust "TIP41" ljust
+
+  command "</g>"
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/Reg723DPV.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/dpv/ResistorsDPV.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/ResistorsDPV.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/ResistorsDPV.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -28,7 +28,7 @@
    {resistor(,,E) ; move ;"`...(,,E) svg_equiv ebox'" ljust}
 }
    move down vm*1.1; right_
-{  {ebox(,,,0.9) ; move ;"`ebox(,,,0.9)'" ljust}
+{  {resistor(,,T) ; move ;"`...(,,T)'" ljust}
    move right_ hm
    {ebox(,wdth=0.2;box=dashed shaded "green";text="X") ; move
    "`ebox(,wdth=0.2;box=dashed shaded \"green\";'" ljust \

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/SourcesDPV.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/SourcesDPV.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/SourcesDPV.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -10,10 +10,12 @@
    {source(,I) ; move ; "`source(,I)'" ljust} NL
    {C:source(,i) ; move ; "`source(,i)'" ljust} NL
    {D:source(,ti) ; move ; "`source(,ti)'" ljust} NL
+   {source(,dci) ; move ; "`source(,dci)'" ljust} NL
    {source(,ii) ; move ; "`source(,ii)'" ljust} NL
    {source(,V) ; move ; "`source(,V)'" ljust} NL
    {source(,v) ; move ; "`source(,v)'" ljust} NL
    {source(,tv) ; move ; "`source(,tv)'" ljust} NL
+   {source(,dcv) ; move ; "`source(,dcv)'" ljust} NL
    {source(,SC) ; move ; "`source(,SC)'" ljust} NL
    {source(,AC); move ; "`source(,AC)'" ljust} NL
    {source(,X) ; move ; "`source(,X)'" ljust} NL
@@ -20,8 +22,6 @@
    {source(,G) ; move ; "`source(,G)'" ljust} NL
    {source(,Q) ; move ; "`source(,Q)'" ljust} NL #(0.3)
    {source(,F) ; move ; "`source(,F)'" ljust} NL
-   {geiger(,,,,fill_(0.9)); move;
-     "`geiger(,,,,'" ljust "`fill_(0.9))'" ljust} NL
 }
    move right_ 2.0
 
@@ -59,6 +59,8 @@
    {consource(,tv) ; move ;  "`consource(,tv)'" ljust} NL(0.3)
    {proximity ; move ;
      "`proximity'" ljust "` = consource(,P)'" wid 80bp__ ljust} NL(0.35)
+   {geiger(,,,,fill_(0.9)); move;
+     "`geiger(,,,,'" ljust "`fill_(0.9))'" ljust} NL
 
  command "</g>" # end font
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/controlDPV.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/controlDPV.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/controlDPV.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -142,6 +142,7 @@
 
 # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . #
 
+ifelse(0,1,`
 Multiblock: [
 boxht = 0.4
 boxwid = boxht
@@ -218,7 +219,85 @@
 ] with .nw at last [].sw + (0,-0.3)
   "(d) Nonlinear feedforward (for performance) and small-signal feedback
      (for stability)" below ljust at Nonlinear.sw+(0,-5pt__)
+')
+# Gimbal.m4
+# https://tex.stackexchange.com/questions/734796/how-to-create-a-gimbal-model-for-one-axis-using-tikz
 
-#print PID.n.y - Nonlinear.s.y
+#gen_init
+#svg_font(sans-serif,9bp__)
+Gimbal: [
+textht = 9bp__
+circlerad = 8bp__
+linewid = linewid*4/3
+toffset = textht*3/2
+textoffset = textht/2
+
+ Ir: arrow right_ linewid*3/2
+  { "Current" ljust at Ir.start+(0,toffset) "reference" ljust
+    "svg_it(i)svg_sub(reference)" ljust at Ir.start-(0,toffset*2/3) }
+ Ka: box "svg_it(K)svg_sub(a)"
+  { "Current" at Ka.s -(0,toffset) "amplifier gain" }
+  arrow right_ linewid*3/2
+  { "Motor" at last arrow+(0,toffset) "current" }
+ Kt: box "svg_it(K)svg_sub(t)"
+  { "Motor torque" at Kt.s -(0,toffset) "constant" }
+  arrow
+ S1: circle; {"-" at S1.n above ljust; "+" at S1.w above rjust }
+  arrow
+ GI: box #"\frac{1}{J`'svg_sub(s)}";
+  { "svg_it(1)" at GI above
+    "svg_it(J)svg_sub(s)" wid toffset*5/4 at GI below 
+    line right_ last "".e.x - last "".w.x with .c at GI }
+  arrow "svg_omega`'svg_sub(h)" above 
+  { "Gimbal inertia" at GI.s -(0,toffset) }
+ S2: circle at Here+(0,3/2*boxht)
+  {"-" at S2.e above ljust; "+" at S2.s below rjust }
+  { arrow <- right_; "svg_omega`'svg_sub(b)" above rjust }
+  arrow left_ from S2.w to (GI.e,S2)
+ Bv: box "svg_it(B)svg_sub(v)"
+  arrow left_ "svg_it(T)svg_sub(viscous)" below
+ S3: circle "+"
+  { arrow <- from S3.w; "svg_it(T)svg_sub(ext)" above ljust }
+  arrow from S3 to S1 chop
+ Fc: box ht boxht*3/2 at Bv+(0,boxht*7/4)
+  arrow from S2.n to (S2,Fc) then to Fc.e
+  arrow from Fc.w to (S3,Fc) then to S3.n
+  "svg_it(T)svg_sub(friction)" at (S3,Fc) above
+  [ Orig: Here; V: arrow thick 0.4 from Orig up_ Fc.ht*5/12
+   H: arrow thick 0.4 right_ Fc.wid*5/6 with .c at Orig
+    line thick 1.2 up Fc.ht/2 with .c at Orig
+    spline 0.55 thick 1.2 down_ boxht/5 right_ boxht/9 \
+      then right_ boxwid/9 then right_ boxwid/4 up_ boxwid/8 
+    { "svg_it(F)svg_sub(c)" above }
+    spline 0.55 thick 1.2 from last line.start up_ boxht/5 left_ boxht/9 \
+      then left_ boxwid/9 then left_ boxwid/4 down_ boxwid/8 
+    { "svg_it(-F)svg_sub(c)" below }
+    ] with .Orig at Fc
+ Gl: box wid boxwid*7/4 with .e at GI.e+(0,-boxht*2)
+  { "svg_omega`'svg_sub(g)svg_sup(2)" at Gl above
+    "svg_it(s)svg_sup(2) + 2`'svg_zeta`'svg_omega`'svg_sub(g)s +
+     svg_omega`'svg_sub(g)svg_sup(2)" at Gl below
+    line right_ Gl.wid*7/8 with .c at Gl }
+  { "Gyro lowpass" at Gl.s -(0,toffset) }
+  arrow from Gl.e to (S2,Gl) then to S2.s
+ Gd: box wid boxwid*2 at (Kt,Gl)
+  { "svg_small((svg_it(d)svg_sup(2)/12)s`'svg_sup(2) - (svg_it(d)/2)s + 1,85)" \
+     at Gd above
+    "svg_small((svg_it(d)svg_sup(2)/12)s`'svg_sup(2) + (svg_it(d)/2)s + 1,85)" \
+     at Gd below
+    line right_ Gd.wid*7/8 with .c at Gd }
+  { "Gyro delay" at Gd.s -(0,toffset) }
+  arrow left_ from Gl.w to Gd.e
+  arrow left_ from Gd.w chop 0 chop
+ S4: circle "+"
+  {"Gyro noise" at (S4,last ""); arrow from last "".n to S4.s }
+ Rm: arrow left_ from S4.w to (Ir.start,S4)
+  { "Rate" ljust at Here+(0,toffset) "measurement" ljust }
+    "svg_omega`'svg_sub(measured)" ljust at Here-(0,toffset*2/3)
+  
+# command "</g>"
+] with .nw at last [].sw + (0,-0.25)
+  "(c) Single-axis gimbal model" below ljust at Gimbal.sw+(0,-5pt__)
+
 command "</g>"
 .PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/examplesDPV.htmx
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/examplesDPV.htmx	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/examplesDPV.htmx	2025-04-01 20:02:45 UTC (rev 74818)
@@ -474,9 +474,11 @@
    A CMOS NAND gate`,' a test circuit`,' and an XMOSFET example)
 
 cfig(pwrsupplyDPV,
-  An elementary power supply circuit with colored elements`,'
-      and a multiple-winding transformer with 3-phase rectifier)
+  An unregulated power supply)
 
+cfig(Reg723DPV,
+  A 723 regulator circuit)
+
 cfig(TTLnandDPV,
    TTL NAND gate illustrating a transistor with multiple emitters)
 

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/examplesDPVs.htmx
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/examplesDPVs.htmx	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/examplesDPVs.htmx	2025-04-01 20:02:45 UTC (rev 74818)
@@ -10,7 +10,7 @@
 <link rel="shortcut icon" href="../Circuit_macros.ico" type="image/x-icon" />
 </HEAD>
 
-`<!-- Google tag (gtag.js) -->
+<!-- Google tag (gtag.js) -->
 <script async src="https://www.googletagmanager.com/gtag/js?id=G-HRS8TQGRE8"></script>
 <script>
   window.dataLayer = window.dataLayer || [];
@@ -18,7 +18,7 @@
   gtag('js', new Date());
 
   gtag('config', 'G-HRS8TQGRE8');
-</script>'
+</script>
 
 
 <!-- m4 macros: ------------------------------------------------------------

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/pwrsupplyDPV.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/pwrsupplyDPV.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/pwrsupplyDPV.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -3,6 +3,7 @@
 cct_init
 ifdef(`m4pco',`resetrgb')
 
+ifelse(0,1,`
 Singlephase:[
     linewid = linewid*1.2
     down_
@@ -72,5 +73,105 @@
   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
+#.PS
+# PS50.m4
+# Fig 9.49 p. 630
+#cct_init
+
+PS50: [
+svg_font(sans-serif,9bp__)
+
+   h = dimen_*2.5
+ T: dot
+ Cs: capacitor(down_ h/2)
+   llabel(,"C`'svg_sub(s)" ljust "0.1-1`'svg_micro`'F" ljust)
+   dot; { line right_ dimen_*3/4; ground(,,F) }
+ Rs: resistor(down_ Cs.len)
+   llabel(,"R`'svg_sub(s)" ljust "10`'svg_ohm-" ljust "100`'svg_ohm" ljust)
+ B: dot
+ Br: [ size=dimen_/2
+   N: dot; E: dot(at N+(size,-size))
+   W: dot(at N+(-size,-size)); S: dot(at W+(size,-size))
+   diode(from N to E); diode(from W to N)
+   diode(from W to S); diode(from S to E)
+   thinlines_
+   box dashed wid 3*size ht 3*size with .c at 0.5 between N and S
+   "GBU604" at last box.n above rjust ] with .W at Cs.end+(dimen_*3/2,0)
+   line from Br.N to (Br.N,T) then left Br.N.x-Cs.x+dimen_*3/4
+   { line from (Here,B) to (Br.S,B) then to Br.S }
+ T80: transformer(up_ h,,,W) with .P2 at Here
+   "115 V:80 V CT" at T80+(-dimen_/4,-h/2-dimen_/3) "4 A"
+
+   line from Br.E right dimen_/2 then up T.y-Br.E.y then right_ dimen_*2/3
+   dot; {C1: capacitor(down_ Cs.len+dimen_/3,C+); rlabel(,C`'svg_sub(1))
+    dot; C2: capacitor(down_ C1.len,C+); rlabel(,C`'svg_sub(2)); dot}
+   {"2 x 8200`'svg_micro`'F" \
+    at C1.start+(0,dimen_/2) "80 Vdc" }
+   {line right_ dimen_*3/2
+ P50: dot(,dotrad_*3/2,1)
+     "+50 V" at last [].e ljust "2 A" ljust }
+   dot(at 1/2 between Here and P50)
+ R2: resistor(down_ C1.len)
+   llabel(,"R`'svg_sub(2)" ljust "680" ljust "5 W" ljust)
+   {dot; line to (C1,Here)}
+   {line to (P50,Here); dot(,dotrad_*3/2,1)
+    "COM" wid 24bp__ at last [].e ljust}
+ R3: resistor(down_ C2.len)
+   llabel(,"R`'svg_sub(3)" ljust "680" ljust "5 W" ljust); dot
+   {line to (P50,Here); dot(,dotrad_*3/2,1); 
+     "-50 V" at last [].e ljust "2 A" ljust }
+   line left_ Here.x-Br.W.x+dimen_/2; continue to (Here,Br.W) then to Br.W
+   line from T80.TP right_ (Rs.x-T80.TP.x)/2 \
+     then down_ T80.TP.y-B.y + (B.y-C2.end.y)/2
+   continue to (Br.E+(dimen_/2,0),Here) 
+   continue to (Here,C2.start) then to C2.start
+   dot(at (T80.S2,T)-(dimen_*4/3,0))
+   { line from (T80.S2,T) to Here-(dimen_/2,0)
+    line dashed to Here-(dimen_/2,0) chop dimen_/10; In1: Here }
+   { line from (T80.S2,B) to (Here-(dimen_/2,0),B)
+    line dashed to Here-(dimen_/2,0) chop dimen_/10; In2: Here}
+ F2: fuse(down_ h/2,D)
+   llabel(,"F`'svg_sub(2)" ljust "100 svg_deg`'C" ljust "cutout" ljust)
+ MOV: ebox(down_ to (Here,B))
+   "MOV" at last [].e ljust "130 Vac" ljust "S20K130" ljust
+   variable(,uNN,,dimen_/2)
+   { arc dashed from 3rd last [].w-(2bp__,0) to 2nd last [].w-(2bp__,0) \
+      rad dimen_ }
+   dot(at MOV.end)
+
+#SB: In1+(dimen_*4,dimen_/2)
+#ST: SB+(0,h)
+ SB: In2
+ ST: In1
+ T880: transformer(right_ dimen_*7/8,,,WD1) at (ST+SB)/2-(2*dimen_,0)
+   line from T880.P2 to (T880.P2,SB) then to SB; dot(,dotrad_*3/2,1)
+   line from T880.S2 to (T880.S2,ST) then to ST; dot(,dotrad_*3/2,1)
+   line dashed from ST.e right_ dimen_/2 chop dimen_/10
+   line dashed from SB.e right_ dimen_/2 chop dimen_/10
+   dot(at (T880.P2,ST)+(dimen_,0))
+ Cy: capacitor(down_ h/2); rlabel(C`'svg_sub(y),,2.2 nF); dot
+   {line right_ dimen_/3; ground(,,F)}
+   capacitor(down_ to (Here,SB)); rlabel(C`'svg_sub(y),,2.2 nF); dot
+ Socket: pconnex(U,PF) at T880.w-(dimen_*3.5,0)
+   line right_ dimen_/2 from Socket.G.e; ground(,,F)
+   line from Socket.H.n to (Socket.H.n,ST); 
+ F1: fuse(right_ dimen_,D); llabel(,"F1"); rlabel(,"6 A SB")
+ TS: lswitch(right_ dimen_*3/4,,D); { line to (T880.S1,Here) then to T880.S1 }
+   dot(at Here+(dimen_/2,0))
+   { R1: resistor(down_ to (Here,SB)); rlabel(,"R`'svg_sub(1)" rjust \
+      "1 M`'svg_ohm" rjust); dot }
+   dot(at Here+(dimen_/2,0))
+ Cx: capacitor(down_ to (Here,SB)); llabel(C`'svg_sub(x),,100 nF); dot
+   line from Socket.N.s to (Socket.N.s,SB) then to (TS.start,SB)
+ BS: lswitch(right_ TS.len,,D); { line dashed from TS to BS chop dimen_/3 }
+   line to (T880.P1,Here) then to T880.P1
+   "Qualtek 880-06/006" at Cx.start+(dimen_/2,dimen_/4)
+
+command "</g>"
+ ] #with .nw at Singlephase.sw+(0,-0.2)
+
 .PE

Deleted: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ex02.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ex02.tex	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ex02.tex	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,1573 +0,0 @@
-\begin{tikzpicture}[scale=2.54]%
-% dpic version 2024.01.01 option -g for TikZ and PGF 1.01
-\ifx\dpiclw\undefined\newdimen\dpiclw\fi
-\global\def\dpicdraw{\draw[line width=\dpiclw]}
-\global\def\dpicstop{;}
-\dpiclw=0.8bp
-\dpiclw=0.8bp
-\dpicdraw (0,0.491667)
- --(0,0.691667)
- --(0.4,0.491667)
- --(0,0.291667)
- --(0,0.491667)\dpicstop
-\dpicdraw (0.4,0.491667)
- --(0.6,0.491667)\dpicstop
-\draw (0.055348,0.591667) node{{\scriptsize$-$}};
-\draw (0.055348,0.391667) node{{\scriptsize$+$}};
-\dpicdraw (0.175736,0.067403)
- --(0.034315,0.208824)
- --(0.458579,0.350245)
- --(0.317157,-0.074019)
- --(0.175736,0.067403)\dpicstop
-\dpicdraw (0.458579,0.350245)
- --(0.6,0.491667)\dpicstop
-\draw (0.144162,0.17725) node{{\scriptsize$-$}};
-\draw (0.285584,0.035829) node{{\scriptsize$+$}};
-\dpicdraw (0.6,-0.108333)
- --(0.4,-0.108333)
- --(0.6,0.291667)
- --(0.8,-0.108333)
- --(0.6,-0.108333)\dpicstop
-\dpicdraw (0.6,0.291667)
- --(0.6,0.491667)\dpicstop
-\draw (0.5,-0.052985) node{{\scriptsize$-$}};
-\draw (0.7,-0.052985) node{{\scriptsize$+$}};
-\dpicdraw (1.024264,0.067403)
- --(0.882843,-0.074019)
- --(0.741421,0.350245)
- --(1.165685,0.208824)
- --(1.024264,0.067403)\dpicstop
-\dpicdraw (0.741421,0.350245)
- --(0.6,0.491667)\dpicstop
-\draw (0.914416,0.035829) node{{\scriptsize$-$}};
-\draw (1.055838,0.17725) node{{\scriptsize$+$}};
-\dpicdraw (1.2,0.491667)
- --(1.2,0.291667)
- --(0.8,0.491667)
- --(1.2,0.691667)
- --(1.2,0.491667)\dpicstop
-\dpicdraw (0.8,0.491667)
- --(0.6,0.491667)\dpicstop
-\draw (1.144652,0.391667) node{{\scriptsize$-$}};
-\draw (1.144652,0.591667) node{{\scriptsize$+$}};
-\dpicdraw (1.024264,0.915931)
- --(1.165685,0.774509)
- --(0.741421,0.633088)
- --(0.882843,1.057352)
- --(1.024264,0.915931)\dpicstop
-\dpicdraw (0.741421,0.633088)
- --(0.6,0.491667)\dpicstop
-\draw (1.055838,0.806083) node{{\scriptsize$-$}};
-\draw (0.914416,0.947504) node{{\scriptsize$+$}};
-\dpicdraw (0.6,1.091667)
- --(0.8,1.091667)
- --(0.6,0.691667)
- --(0.4,1.091667)
- --(0.6,1.091667)\dpicstop
-\dpicdraw (0.6,0.691667)
- --(0.6,0.491667)\dpicstop
-\draw (0.7,1.036319) node{{\scriptsize$-$}};
-\draw (0.5,1.036319) node{{\scriptsize$+$}};
-\dpicdraw (0.175736,0.915931)
- --(0.317157,1.057352)
- --(0.458579,0.633088)
- --(0.034315,0.774509)
- --(0.175736,0.915931)\dpicstop
-\dpicdraw (0.458579,0.633088)
- --(0.6,0.491667)\dpicstop
-\draw (0.285584,0.947504) node{{\scriptsize$-$}};
-\draw (0.144162,0.806083) node{{\scriptsize$+$}};
-\dpicdraw (0.6,-0.108333)
- --(0.6,-0.208333)
- --(0.633333,-0.225)
- --(0.566667,-0.258333)
- --(0.633333,-0.291667)
- --(0.566667,-0.325)
- --(0.633333,-0.358333)
- --(0.566667,-0.391667)
- --(0.6,-0.408333)
- --(0.6,-0.508333)\dpicstop
-\dpicdraw (0.6,-0.508333)
- --(0.6,-0.612799)\dpicstop
-\filldraw[line width=0bp](0.741071,-0.503813)
- --(0.765763,-0.447693)
- --(0.709644,-0.472386) --cycle\dpicstop
-\dpicdraw (0.635656,-0.577801)
- --(0.754925,-0.458532)\dpicstop
-\filldraw[line width=0bp](0.776426,-0.539168)
- --(0.801119,-0.483049)
- --(0.744999,-0.507741) --cycle\dpicstop
-\dpicdraw (0.671011,-0.613156)
- --(0.79028,-0.493887)\dpicstop
-\fill[fill=black,line width=0bp](0.6,-0.612799)
- --(0.633333,-0.612799)
- --(0.6,-0.664999)
- --(0.566667,-0.612799)
- --(0.6,-0.612799)--cycle
-\dpicstop
-\dpicdraw (0.6,-0.612799)
- --(0.633333,-0.612799)
- --(0.6,-0.664999)
- --(0.566667,-0.612799)
- --(0.6,-0.612799)\dpicstop
-\dpicdraw (0.562615,-0.670534)
- --(0.637385,-0.670534)\dpicstop
-\dpicdraw (0.6,-0.670534)
- --(0.6,-0.775)\dpicstop
-\dpicdraw (0.6,-0.775)
- --(0.6,-0.879466)\dpicstop
-\filldraw[line width=0bp](0.455001,-0.774408)
- --(0.398881,-0.749715)
- --(0.423574,-0.805835) --cycle\dpicstop
-\dpicdraw (0.528989,-0.879823)
- --(0.40972,-0.760554)\dpicstop
-\filldraw[line width=0bp](0.490356,-0.739053)
- --(0.434237,-0.71436)
- --(0.458929,-0.77048) --cycle\dpicstop
-\dpicdraw (0.564344,-0.844468)
- --(0.445075,-0.725198)\dpicstop
-\fill[fill=black,line width=0bp](0.6,-0.879466)
- --(0.633333,-0.879466)
- --(0.6,-0.931666)
- --(0.566667,-0.879466)
- --(0.6,-0.879466)--cycle
-\dpicstop
-\dpicdraw (0.6,-0.879466)
- --(0.633333,-0.879466)
- --(0.6,-0.931666)
- --(0.566667,-0.879466)
- --(0.6,-0.879466)\dpicstop
-\dpicdraw (0.562615,-0.937201)
- --(0.637385,-0.937201)\dpicstop
-\dpicdraw (0.6,-0.937201)
- --(0.6,-1.041667)\dpicstop
-\dpicdraw (0.666667,-1.041667)
- --(0.533333,-1.041667)\dpicstop
-\dpicdraw (0.644444,-1.066667)
- --(0.555556,-1.066667)\dpicstop
-\dpicdraw (0.628571,-1.091667)
- --(0.571429,-1.091667)\dpicstop
-\dpicdraw[fill=black](2.725171,0.033504) circle (0.006299in)\dpicstop
-\dpicdraw (2.425171,-1.086111)
- --(2.625171,-1.086111)\dpicstop
-\dpicdraw (2.625171,-1.086111)
- --(2.625171,-1.091667)\dpicstop
-\dpicdraw (2.625171,-1.086111)
- ..controls (2.625171,-1.077179) and (2.629936,-1.068926)
- ..(2.637671,-1.06446)
- ..controls (2.645406,-1.059995) and (2.654936,-1.059995)
- ..(2.662671,-1.06446)
- ..controls (2.670406,-1.068926) and (2.675171,-1.077179)
- ..(2.675171,-1.086111)\dpicstop
-\dpicdraw (2.675171,-1.086111)
- --(2.675171,-1.091667)\dpicstop
-\dpicdraw (2.675171,-1.086111)
- ..controls (2.675171,-1.077179) and (2.679936,-1.068926)
- ..(2.687671,-1.06446)
- ..controls (2.695406,-1.059995) and (2.704936,-1.059995)
- ..(2.712671,-1.06446)
- ..controls (2.720406,-1.068926) and (2.725171,-1.077179)
- ..(2.725171,-1.086111)\dpicstop
-\dpicdraw (2.725171,-1.086111)
- --(2.725171,-1.091667)\dpicstop
-\dpicdraw (2.725171,-1.086111)
- ..controls (2.725171,-1.077179) and (2.729936,-1.068926)
- ..(2.737671,-1.06446)
- ..controls (2.745406,-1.059995) and (2.754936,-1.059995)
- ..(2.762671,-1.06446)
- ..controls (2.770406,-1.068926) and (2.775171,-1.077179)
- ..(2.775171,-1.086111)\dpicstop
-\dpicdraw (2.775171,-1.086111)
- --(2.775171,-1.091667)\dpicstop
-\dpicdraw (2.775171,-1.086111)
- ..controls (2.775171,-1.077179) and (2.779936,-1.068926)
- ..(2.787671,-1.06446)
- ..controls (2.795406,-1.059995) and (2.804936,-1.059995)
- ..(2.812671,-1.06446)
- ..controls (2.820406,-1.068926) and (2.825171,-1.077179)
- ..(2.825171,-1.086111)\dpicstop
-\dpicdraw (2.825171,-1.086111)
- --(2.825171,-1.091667)\dpicstop
-\dpicdraw (2.825171,-1.086111)
- --(3.025171,-1.086111)\dpicstop
-\dpicdraw (3.025171,-1.086111)
- --(3.198376,-0.986111)\dpicstop
-\dpicdraw (3.198376,-0.986111)
- --(3.201154,-0.990922)\dpicstop
-\dpicdraw (3.198376,-0.986111)
- ..controls (3.19391,-0.978376) and (3.19391,-0.968846)
- ..(3.198376,-0.961111)
- ..controls (3.202842,-0.953376) and (3.211095,-0.948611)
- ..(3.220027,-0.948611)
- ..controls (3.228958,-0.948611) and (3.237211,-0.953376)
- ..(3.241677,-0.961111)\dpicstop
-\dpicdraw (3.241677,-0.961111)
- --(3.244455,-0.965922)\dpicstop
-\dpicdraw (3.241677,-0.961111)
- ..controls (3.237211,-0.953376) and (3.237211,-0.943846)
- ..(3.241677,-0.936111)
- ..controls (3.246143,-0.928376) and (3.254396,-0.923611)
- ..(3.263328,-0.923611)
- ..controls (3.272259,-0.923611) and (3.280513,-0.928376)
- ..(3.284978,-0.936111)\dpicstop
-\dpicdraw (3.284978,-0.936111)
- --(3.287756,-0.940922)\dpicstop
-\dpicdraw (3.284978,-0.936111)
- ..controls (3.280513,-0.928376) and (3.280513,-0.918846)
- ..(3.284978,-0.911111)
- ..controls (3.289444,-0.903376) and (3.297697,-0.898611)
- ..(3.306629,-0.898611)
- ..controls (3.315561,-0.898611) and (3.323814,-0.903376)
- ..(3.32828,-0.911111)\dpicstop
-\dpicdraw (3.32828,-0.911111)
- --(3.331057,-0.915922)\dpicstop
-\dpicdraw (3.32828,-0.911111)
- ..controls (3.323814,-0.903376) and (3.323814,-0.893846)
- ..(3.32828,-0.886111)
- ..controls (3.332746,-0.878376) and (3.340999,-0.873611)
- ..(3.34993,-0.873611)
- ..controls (3.358862,-0.873611) and (3.367115,-0.878376)
- ..(3.371581,-0.886111)\dpicstop
-\dpicdraw (3.371581,-0.886111)
- --(3.374359,-0.890922)\dpicstop
-\dpicdraw (3.371581,-0.886111)
- --(3.544786,-0.786111)\dpicstop
-\dpicdraw (3.544786,-0.786111)
- --(3.644786,-0.612906)\dpicstop
-\dpicdraw (3.644786,-0.612906)
- --(3.649597,-0.615684)\dpicstop
-\dpicdraw (3.644786,-0.612906)
- ..controls (3.637051,-0.60844) and (3.632286,-0.600187)
- ..(3.632286,-0.591255)
- ..controls (3.632286,-0.582324) and (3.637051,-0.574071)
- ..(3.644786,-0.569605)
- ..controls (3.652521,-0.565139) and (3.662051,-0.565139)
- ..(3.669786,-0.569605)\dpicstop
-\dpicdraw (3.669786,-0.569605)
- --(3.674597,-0.572383)\dpicstop
-\dpicdraw (3.669786,-0.569605)
- ..controls (3.662051,-0.565139) and (3.657286,-0.556886)
- ..(3.657286,-0.547954)
- ..controls (3.657286,-0.539022) and (3.662051,-0.530769)
- ..(3.669786,-0.526303)
- ..controls (3.677521,-0.521838) and (3.687051,-0.521838)
- ..(3.694786,-0.526303)\dpicstop
-\dpicdraw (3.694786,-0.526303)
- --(3.699597,-0.529081)\dpicstop
-\dpicdraw (3.694786,-0.526303)
- ..controls (3.687051,-0.521838) and (3.682286,-0.513584)
- ..(3.682286,-0.504653)
- ..controls (3.682286,-0.495721) and (3.687051,-0.487468)
- ..(3.694786,-0.483002)
- ..controls (3.702521,-0.478536) and (3.712051,-0.478536)
- ..(3.719786,-0.483002)\dpicstop
-\dpicdraw (3.719786,-0.483002)
- --(3.724597,-0.48578)\dpicstop
-\dpicdraw (3.719786,-0.483002)
- ..controls (3.712051,-0.478536) and (3.707286,-0.470283)
- ..(3.707286,-0.461352)
- ..controls (3.707286,-0.45242) and (3.712051,-0.444167)
- ..(3.719786,-0.439701)
- ..controls (3.727521,-0.435235) and (3.737051,-0.435235)
- ..(3.744786,-0.439701)\dpicstop
-\dpicdraw (3.744786,-0.439701)
- --(3.749597,-0.442479)\dpicstop
-\dpicdraw (3.744786,-0.439701)
- --(3.844786,-0.266496)\dpicstop
-\dpicdraw (3.844786,-0.266496)
- --(3.844786,-0.066496)\dpicstop
-\dpicdraw (3.844786,-0.066496)
- --(3.850342,-0.066496)\dpicstop
-\dpicdraw (3.844786,-0.066496)
- ..controls (3.835854,-0.066496) and (3.827601,-0.061731)
- ..(3.823135,-0.053996)
- ..controls (3.81867,-0.046261) and (3.81867,-0.036731)
- ..(3.823135,-0.028996)
- ..controls (3.827601,-0.021261) and (3.835854,-0.016496)
- ..(3.844786,-0.016496)\dpicstop
-\dpicdraw (3.844786,-0.016496)
- --(3.850342,-0.016496)\dpicstop
-\dpicdraw (3.844786,-0.016496)
- ..controls (3.835854,-0.016496) and (3.827601,-0.011731)
- ..(3.823135,-0.003996)
- ..controls (3.81867,0.003739) and (3.81867,0.013269)
- ..(3.823135,0.021004)
- ..controls (3.827601,0.028739) and (3.835854,0.033504)
- ..(3.844786,0.033504)\dpicstop
-\dpicdraw (3.844786,0.033504)
- --(3.850342,0.033504)\dpicstop
-\dpicdraw (3.844786,0.033504)
- ..controls (3.835854,0.033504) and (3.827601,0.038269)
- ..(3.823135,0.046004)
- ..controls (3.81867,0.053739) and (3.81867,0.063269)
- ..(3.823135,0.071004)
- ..controls (3.827601,0.078739) and (3.835854,0.083504)
- ..(3.844786,0.083504)\dpicstop
-\dpicdraw (3.844786,0.083504)
- --(3.850342,0.083504)\dpicstop
-\dpicdraw (3.844786,0.083504)
- ..controls (3.835854,0.083504) and (3.827601,0.088269)
- ..(3.823135,0.096004)
- ..controls (3.81867,0.103739) and (3.81867,0.113269)
- ..(3.823135,0.121004)
- ..controls (3.827601,0.128739) and (3.835854,0.133504)
- ..(3.844786,0.133504)\dpicstop
-\dpicdraw (3.844786,0.133504)
- --(3.850342,0.133504)\dpicstop
-\dpicdraw (3.844786,0.133504)
- --(3.844786,0.333504)\dpicstop
-\dpicdraw (3.844786,0.333504)
- --(3.744786,0.506709)\dpicstop
-\dpicdraw (3.744786,0.506709)
- --(3.749597,0.509487)\dpicstop
-\dpicdraw (3.744786,0.506709)
- ..controls (3.732829,0.499806) and (3.717539,0.503903)
- ..(3.710635,0.51586)
- ..controls (3.703732,0.527817) and (3.707829,0.543107)
- ..(3.719786,0.55001)\dpicstop
-\dpicdraw (3.719786,0.55001)
- --(3.724597,0.552788)\dpicstop
-\dpicdraw (3.719786,0.55001)
- ..controls (3.712051,0.545545) and (3.702521,0.545545)
- ..(3.694786,0.55001)
- ..controls (3.687051,0.554476) and (3.682286,0.562729)
- ..(3.682286,0.571661)
- ..controls (3.682286,0.580593) and (3.687051,0.588846)
- ..(3.694786,0.593312)\dpicstop
-\dpicdraw (3.694786,0.593312)
- --(3.699597,0.59609)\dpicstop
-\dpicdraw (3.694786,0.593312)
- ..controls (3.682829,0.586408) and (3.667539,0.590505)
- ..(3.660635,0.602462)
- ..controls (3.653732,0.61442) and (3.657829,0.629709)
- ..(3.669786,0.636613)\dpicstop
-\dpicdraw (3.669786,0.636613)
- --(3.674597,0.639391)\dpicstop
-\dpicdraw (3.669786,0.636613)
- ..controls (3.657829,0.629709) and (3.642539,0.633806)
- ..(3.635635,0.645764)
- ..controls (3.628732,0.657721) and (3.632829,0.673011)
- ..(3.644786,0.679914)\dpicstop
-\dpicdraw (3.644786,0.679914)
- --(3.649597,0.682692)\dpicstop
-\dpicdraw (3.644786,0.679914)
- --(3.544786,0.853119)\dpicstop
-\dpicdraw (3.544786,0.853119)
- --(3.371581,0.953119)\dpicstop
-\dpicdraw (3.371581,0.953119)
- --(3.374359,0.957931)\dpicstop
-\dpicdraw (3.371581,0.953119)
- ..controls (3.367115,0.945384) and (3.358862,0.940619)
- ..(3.34993,0.940619)
- ..controls (3.340999,0.940619) and (3.332746,0.945384)
- ..(3.32828,0.953119)
- ..controls (3.323814,0.960854) and (3.323814,0.970384)
- ..(3.32828,0.978119)\dpicstop
-\dpicdraw (3.32828,0.978119)
- --(3.331057,0.982931)\dpicstop
-\dpicdraw (3.32828,0.978119)
- ..controls (3.323814,0.970384) and (3.315561,0.965619)
- ..(3.306629,0.965619)
- ..controls (3.297697,0.965619) and (3.289444,0.970384)
- ..(3.284978,0.978119)
- ..controls (3.280513,0.985854) and (3.280513,0.995384)
- ..(3.284978,1.003119)\dpicstop
-\dpicdraw (3.284978,1.003119)
- --(3.287756,1.007931)\dpicstop
-\dpicdraw (3.284978,1.003119)
- ..controls (3.280513,0.995384) and (3.272259,0.990619)
- ..(3.263328,0.990619)
- ..controls (3.254396,0.990619) and (3.246143,0.995384)
- ..(3.241677,1.003119)
- ..controls (3.237211,1.010854) and (3.237211,1.020384)
- ..(3.241677,1.028119)\dpicstop
-\dpicdraw (3.241677,1.028119)
- --(3.244455,1.032931)\dpicstop
-\dpicdraw (3.241677,1.028119)
- ..controls (3.237211,1.020384) and (3.228958,1.015619)
- ..(3.220027,1.015619)
- ..controls (3.211095,1.015619) and (3.202842,1.020384)
- ..(3.198376,1.028119)
- ..controls (3.19391,1.035854) and (3.19391,1.045384)
- ..(3.198376,1.053119)\dpicstop
-\dpicdraw (3.198376,1.053119)
- --(3.201154,1.057931)\dpicstop
-\dpicdraw (3.198376,1.053119)
- --(3.025171,1.153119)\dpicstop
-\dpicdraw (3.025171,1.153119)
- --(2.825171,1.153119)\dpicstop
-\dpicdraw (2.825171,1.153119)
- --(2.825171,1.158675)\dpicstop
-\dpicdraw (2.825171,1.153119)
- ..controls (2.825171,1.144188) and (2.820406,1.135935)
- ..(2.812671,1.131469)
- ..controls (2.804936,1.127003) and (2.795406,1.127003)
- ..(2.787671,1.131469)
- ..controls (2.779936,1.135935) and (2.775171,1.144188)
- ..(2.775171,1.153119)\dpicstop
-\dpicdraw (2.775171,1.153119)
- --(2.775171,1.158675)\dpicstop
-\dpicdraw (2.775171,1.153119)
- ..controls (2.775171,1.144188) and (2.770406,1.135935)
- ..(2.762671,1.131469)
- ..controls (2.754936,1.127003) and (2.745406,1.127003)
- ..(2.737671,1.131469)
- ..controls (2.729936,1.135935) and (2.725171,1.144188)
- ..(2.725171,1.153119)\dpicstop
-\dpicdraw (2.725171,1.153119)
- --(2.725171,1.158675)\dpicstop
-\dpicdraw (2.725171,1.153119)
- ..controls (2.725171,1.144188) and (2.720406,1.135935)
- ..(2.712671,1.131469)
- ..controls (2.704936,1.127003) and (2.695406,1.127003)
- ..(2.687671,1.131469)
- ..controls (2.679936,1.135935) and (2.675171,1.144188)
- ..(2.675171,1.153119)\dpicstop
-\dpicdraw (2.675171,1.153119)
- --(2.675171,1.158675)\dpicstop
-\dpicdraw (2.675171,1.153119)
- ..controls (2.675171,1.144188) and (2.670406,1.135935)
- ..(2.662671,1.131469)
- ..controls (2.654936,1.127003) and (2.645406,1.127003)
- ..(2.637671,1.131469)
- ..controls (2.629936,1.135935) and (2.625171,1.144188)
- ..(2.625171,1.153119)\dpicstop
-\dpicdraw (2.625171,1.153119)
- --(2.625171,1.158675)\dpicstop
-\dpicdraw (2.625171,1.153119)
- --(2.425171,1.153119)\dpicstop
-\dpicdraw (2.425171,1.153119)
- --(2.251966,1.053119)\dpicstop
-\dpicdraw (2.251966,1.053119)
- --(2.249188,1.057931)\dpicstop
-\dpicdraw (2.251966,1.053119)
- ..controls (2.256432,1.045384) and (2.256432,1.035854)
- ..(2.251966,1.028119)
- ..controls (2.2475,1.020384) and (2.239247,1.015619)
- ..(2.230315,1.015619)
- ..controls (2.221383,1.015619) and (2.21313,1.020384)
- ..(2.208664,1.028119)\dpicstop
-\dpicdraw (2.208664,1.028119)
- --(2.205887,1.032931)\dpicstop
-\dpicdraw (2.208664,1.028119)
- ..controls (2.21313,1.020384) and (2.21313,1.010854)
- ..(2.208664,1.003119)
- ..controls (2.204199,0.995384) and (2.195945,0.990619)
- ..(2.187014,0.990619)
- ..controls (2.178082,0.990619) and (2.169829,0.995384)
- ..(2.165363,1.003119)\dpicstop
-\dpicdraw (2.165363,1.003119)
- --(2.162585,1.007931)\dpicstop
-\dpicdraw (2.165363,1.003119)
- ..controls (2.169829,0.995384) and (2.169829,0.985854)
- ..(2.165363,0.978119)
- ..controls (2.160897,0.970384) and (2.152644,0.965619)
- ..(2.143713,0.965619)
- ..controls (2.134781,0.965619) and (2.126528,0.970384)
- ..(2.122062,0.978119)\dpicstop
-\dpicdraw (2.122062,0.978119)
- --(2.119284,0.982931)\dpicstop
-\dpicdraw (2.122062,0.978119)
- ..controls (2.126528,0.970384) and (2.126528,0.960854)
- ..(2.122062,0.953119)
- ..controls (2.117596,0.945384) and (2.109343,0.940619)
- ..(2.100411,0.940619)
- ..controls (2.09148,0.940619) and (2.083226,0.945384)
- ..(2.078761,0.953119)\dpicstop
-\dpicdraw (2.078761,0.953119)
- --(2.075983,0.957931)\dpicstop
-\dpicdraw (2.078761,0.953119)
- --(1.905556,0.853119)\dpicstop
-\dpicdraw (1.905556,0.853119)
- --(1.805556,0.679914)\dpicstop
-\dpicdraw (1.805556,0.679914)
- --(1.800744,0.682692)\dpicstop
-\dpicdraw (1.805556,0.679914)
- ..controls (1.813291,0.675448) and (1.818056,0.667195)
- ..(1.818056,0.658264)
- ..controls (1.818056,0.649332) and (1.813291,0.641079)
- ..(1.805556,0.636613)
- ..controls (1.797821,0.632147) and (1.788291,0.632147)
- ..(1.780556,0.636613)\dpicstop
-\dpicdraw (1.780556,0.636613)
- --(1.775744,0.639391)\dpicstop
-\dpicdraw (1.780556,0.636613)
- ..controls (1.788291,0.632147) and (1.793056,0.623894)
- ..(1.793056,0.614962)
- ..controls (1.793056,0.606031) and (1.788291,0.597778)
- ..(1.780556,0.593312)
- ..controls (1.772821,0.588846) and (1.763291,0.588846)
- ..(1.755556,0.593312)\dpicstop
-\dpicdraw (1.755556,0.593312)
- --(1.750744,0.59609)\dpicstop
-\dpicdraw (1.755556,0.593312)
- ..controls (1.763291,0.588846) and (1.768056,0.580593)
- ..(1.768056,0.571661)
- ..controls (1.768056,0.562729) and (1.763291,0.554476)
- ..(1.755556,0.55001)
- ..controls (1.747821,0.545545) and (1.738291,0.545545)
- ..(1.730556,0.55001)\dpicstop
-\dpicdraw (1.730556,0.55001)
- --(1.725744,0.552788)\dpicstop
-\dpicdraw (1.730556,0.55001)
- ..controls (1.738291,0.545545) and (1.743056,0.537291)
- ..(1.743056,0.52836)
- ..controls (1.743056,0.519428) and (1.738291,0.511175)
- ..(1.730556,0.506709)
- ..controls (1.722821,0.502243) and (1.713291,0.502243)
- ..(1.705556,0.506709)\dpicstop
-\dpicdraw (1.705556,0.506709)
- --(1.700744,0.509487)\dpicstop
-\dpicdraw (1.705556,0.506709)
- --(1.605556,0.333504)\dpicstop
-\dpicdraw (1.605556,0.333504)
- --(1.605556,0.133504)\dpicstop
-\dpicdraw (1.605556,0.133504)
- --(1.6,0.133504)\dpicstop
-\dpicdraw (1.605556,0.133504)
- ..controls (1.614487,0.133504) and (1.62274,0.128739)
- ..(1.627206,0.121004)
- ..controls (1.631672,0.113269) and (1.631672,0.103739)
- ..(1.627206,0.096004)
- ..controls (1.62274,0.088269) and (1.614487,0.083504)
- ..(1.605556,0.083504)\dpicstop
-\dpicdraw (1.605556,0.083504)
- --(1.6,0.083504)\dpicstop
-\dpicdraw (1.605556,0.083504)
- ..controls (1.614487,0.083504) and (1.62274,0.078739)
- ..(1.627206,0.071004)
- ..controls (1.631672,0.063269) and (1.631672,0.053739)
- ..(1.627206,0.046004)
- ..controls (1.62274,0.038269) and (1.614487,0.033504)
- ..(1.605556,0.033504)\dpicstop
-\dpicdraw (1.605556,0.033504)
- --(1.6,0.033504)\dpicstop
-\dpicdraw (1.605556,0.033504)
- ..controls (1.614487,0.033504) and (1.62274,0.028739)
- ..(1.627206,0.021004)
- ..controls (1.631672,0.013269) and (1.631672,0.003739)
- ..(1.627206,-0.003996)
- ..controls (1.62274,-0.011731) and (1.614487,-0.016496)
- ..(1.605556,-0.016496)\dpicstop
-\dpicdraw (1.605556,-0.016496)
- --(1.6,-0.016496)\dpicstop
-\dpicdraw (1.605556,-0.016496)
- ..controls (1.614487,-0.016496) and (1.62274,-0.021261)
- ..(1.627206,-0.028996)
- ..controls (1.631672,-0.036731) and (1.631672,-0.046261)
- ..(1.627206,-0.053996)
- ..controls (1.62274,-0.061731) and (1.614487,-0.066496)
- ..(1.605556,-0.066496)\dpicstop
-\dpicdraw (1.605556,-0.066496)
- --(1.6,-0.066496)\dpicstop
-\dpicdraw (1.605556,-0.066496)
- --(1.605556,-0.266496)\dpicstop
-\dpicdraw (1.605556,-0.266496)
- --(1.705556,-0.439701)\dpicstop
-\dpicdraw (1.705556,-0.439701)
- --(1.700744,-0.442479)\dpicstop
-\dpicdraw (1.705556,-0.439701)
- ..controls (1.713291,-0.435235) and (1.722821,-0.435235)
- ..(1.730556,-0.439701)
- ..controls (1.738291,-0.444167) and (1.743056,-0.45242)
- ..(1.743056,-0.461352)
- ..controls (1.743056,-0.470283) and (1.738291,-0.478536)
- ..(1.730556,-0.483002)\dpicstop
-\dpicdraw (1.730556,-0.483002)
- --(1.725744,-0.48578)\dpicstop
-\dpicdraw (1.730556,-0.483002)
- ..controls (1.738291,-0.478536) and (1.747821,-0.478536)
- ..(1.755556,-0.483002)
- ..controls (1.763291,-0.487468) and (1.768056,-0.495721)
- ..(1.768056,-0.504653)
- ..controls (1.768056,-0.513584) and (1.763291,-0.521838)
- ..(1.755556,-0.526303)\dpicstop
-\dpicdraw (1.755556,-0.526303)
- --(1.750744,-0.529081)\dpicstop
-\dpicdraw (1.755556,-0.526303)
- ..controls (1.763291,-0.521838) and (1.772821,-0.521838)
- ..(1.780556,-0.526303)
- ..controls (1.788291,-0.530769) and (1.793056,-0.539022)
- ..(1.793056,-0.547954)
- ..controls (1.793056,-0.556886) and (1.788291,-0.565139)
- ..(1.780556,-0.569605)\dpicstop
-\dpicdraw (1.780556,-0.569605)
- --(1.775744,-0.572383)\dpicstop
-\dpicdraw (1.780556,-0.569605)
- ..controls (1.788291,-0.565139) and (1.797821,-0.565139)
- ..(1.805556,-0.569605)
- ..controls (1.813291,-0.574071) and (1.818056,-0.582324)
- ..(1.818056,-0.591255)
- ..controls (1.818056,-0.600187) and (1.813291,-0.60844)
- ..(1.805556,-0.612906)\dpicstop
-\dpicdraw (1.805556,-0.612906)
- --(1.800744,-0.615684)\dpicstop
-\dpicdraw (1.805556,-0.612906)
- --(1.905556,-0.786111)\dpicstop
-\dpicdraw (1.905556,-0.786111)
- --(2.078761,-0.886111)\dpicstop
-\dpicdraw (2.078761,-0.886111)
- --(2.075983,-0.890922)\dpicstop
-\dpicdraw (2.078761,-0.886111)
- ..controls (2.083226,-0.878376) and (2.09148,-0.873611)
- ..(2.100411,-0.873611)
- ..controls (2.109343,-0.873611) and (2.117596,-0.878376)
- ..(2.122062,-0.886111)
- ..controls (2.126528,-0.893846) and (2.126528,-0.903376)
- ..(2.122062,-0.911111)\dpicstop
-\dpicdraw (2.122062,-0.911111)
- --(2.119284,-0.915922)\dpicstop
-\dpicdraw (2.122062,-0.911111)
- ..controls (2.126528,-0.903376) and (2.134781,-0.898611)
- ..(2.143713,-0.898611)
- ..controls (2.152644,-0.898611) and (2.160897,-0.903376)
- ..(2.165363,-0.911111)
- ..controls (2.169829,-0.918846) and (2.169829,-0.928376)
- ..(2.165363,-0.936111)\dpicstop
-\dpicdraw (2.165363,-0.936111)
- --(2.162585,-0.940922)\dpicstop
-\dpicdraw (2.165363,-0.936111)
- ..controls (2.169829,-0.928376) and (2.178082,-0.923611)
- ..(2.187014,-0.923611)
- ..controls (2.195945,-0.923611) and (2.204199,-0.928376)
- ..(2.208664,-0.936111)
- ..controls (2.21313,-0.943846) and (2.21313,-0.953376)
- ..(2.208664,-0.961111)\dpicstop
-\dpicdraw (2.208664,-0.961111)
- --(2.205887,-0.965922)\dpicstop
-\dpicdraw (2.208664,-0.961111)
- ..controls (2.21313,-0.953376) and (2.221383,-0.948611)
- ..(2.230315,-0.948611)
- ..controls (2.239247,-0.948611) and (2.2475,-0.953376)
- ..(2.251966,-0.961111)
- ..controls (2.256432,-0.968846) and (2.256432,-0.978376)
- ..(2.251966,-0.986111)\dpicstop
-\dpicdraw (2.251966,-0.986111)
- --(2.249188,-0.990922)\dpicstop
-\dpicdraw (2.251966,-0.986111)
- --(2.425171,-1.086111)\dpicstop
-\dpicdraw (2.485171,-0.862188)
- --(2.611784,-0.862188)\dpicstop
-\dpicdraw[line width=0.4bp](2.611784,-0.862188) circle (0.00109in)\dpicstop
-\dpicdraw (2.611784,-0.862188)
- ..controls (2.603019,-0.843391) and (2.610075,-0.821012)
- ..(2.628036,-0.810642)
- ..controls (2.645998,-0.800272) and (2.668906,-0.805351)
- ..(2.680802,-0.82234)
- ..controls (2.692698,-0.83933) and (2.689636,-0.862594)
- ..(2.673748,-0.875925)\dpicstop
-\dpicdraw[line width=0.4bp](2.673748,-0.875925) circle (0.00109in)\dpicstop
-\dpicdraw (2.673748,-0.875925)
- ..controls (2.660866,-0.865116) and (2.65612,-0.847404)
- ..(2.661872,-0.831603)
- ..controls (2.667623,-0.815801) and (2.682643,-0.805283)
- ..(2.699459,-0.805283)
- ..controls (2.716275,-0.805283) and (2.731296,-0.815801)
- ..(2.737047,-0.831603)
- ..controls (2.742798,-0.847404) and (2.738053,-0.865116)
- ..(2.725171,-0.875925)\dpicstop
-\dpicdraw[line width=0.4bp](2.725171,-0.875925) circle (0.00109in)\dpicstop
-\dpicdraw (2.725171,-0.875925)
- ..controls (2.712289,-0.865116) and (2.707543,-0.847404)
- ..(2.713295,-0.831603)
- ..controls (2.719046,-0.815801) and (2.734066,-0.805283)
- ..(2.750882,-0.805283)
- ..controls (2.767698,-0.805283) and (2.782719,-0.815801)
- ..(2.78847,-0.831603)
- ..controls (2.794221,-0.847404) and (2.789476,-0.865116)
- ..(2.776594,-0.875925)\dpicstop
-\dpicdraw[line width=0.4bp](2.776594,-0.875925) circle (0.00109in)\dpicstop
-\dpicdraw (2.776594,-0.875925)
- ..controls (2.760706,-0.862594) and (2.757643,-0.83933)
- ..(2.769539,-0.82234)
- ..controls (2.781435,-0.805351) and (2.804344,-0.800272)
- ..(2.822305,-0.810642)
- ..controls (2.840267,-0.821012) and (2.847323,-0.843391)
- ..(2.838558,-0.862188)\dpicstop
-\dpicdraw[line width=0.4bp](2.838558,-0.862188) circle (0.00109in)\dpicstop
-\dpicdraw (2.838558,-0.862188)
- --(2.965171,-0.862188)\dpicstop
-\dpicdraw (2.965171,-0.862188)
- --(3.074821,-0.798881)\dpicstop
-\dpicdraw[line width=0.4bp](3.074821,-0.798881) circle (0.00109in)\dpicstop
-\dpicdraw (3.074821,-0.798881)
- ..controls (3.057832,-0.786985) and (3.052753,-0.764077)
- ..(3.063123,-0.746115)
- ..controls (3.073493,-0.728154) and (3.095872,-0.721098)
- ..(3.114669,-0.729863)
- ..controls (3.133466,-0.738628) and (3.142445,-0.760307)
- ..(3.135352,-0.779796)\dpicstop
-\dpicdraw[line width=0.4bp](3.135352,-0.779796) circle (0.00109in)\dpicstop
-\dpicdraw (3.135352,-0.779796)
- ..controls (3.118791,-0.776876) and (3.105825,-0.76391)
- ..(3.102905,-0.74735)
- ..controls (3.099985,-0.730789) and (3.107735,-0.714171)
- ..(3.122298,-0.705763)
- ..controls (3.136861,-0.697355) and (3.155127,-0.698953)
- ..(3.168009,-0.709762)
- ..controls (3.180891,-0.720571) and (3.185637,-0.738283)
- ..(3.179885,-0.754085)\dpicstop
-\dpicdraw[line width=0.4bp](3.179885,-0.754085) circle (0.00109in)\dpicstop
-\dpicdraw (3.179885,-0.754085)
- ..controls (3.163325,-0.751165) and (3.150359,-0.738199)
- ..(3.147439,-0.721638)
- ..controls (3.144519,-0.705078) and (3.152268,-0.688459)
- ..(3.166831,-0.680051)
- ..controls (3.181394,-0.671643) and (3.199661,-0.673242)
- ..(3.212543,-0.684051)
- ..controls (3.225425,-0.69486) and (3.23017,-0.712571)
- ..(3.224419,-0.728373)\dpicstop
-\dpicdraw[line width=0.4bp](3.224419,-0.728373) circle (0.00109in)\dpicstop
-\dpicdraw (3.224419,-0.728373)
- ..controls (3.203994,-0.724772) and (3.18971,-0.706156)
- ..(3.191517,-0.685495)
- ..controls (3.193325,-0.664833) and (3.210625,-0.648981)
- ..(3.231365,-0.648981)
- ..controls (3.252105,-0.648981) and (3.269405,-0.664833)
- ..(3.271213,-0.685495)\dpicstop
-\dpicdraw[line width=0.4bp](3.271213,-0.685495) circle (0.00109in)\dpicstop
-\dpicdraw (3.271213,-0.685495)
- --(3.380863,-0.622188)\dpicstop
-\dpicdraw (3.380863,-0.622188)
- --(3.44417,-0.512538)\dpicstop
-\dpicdraw[line width=0.4bp](3.44417,-0.512538) circle (0.00109in)\dpicstop
-\dpicdraw (3.44417,-0.512538)
- ..controls (3.423508,-0.51073) and (3.407656,-0.49343)
- ..(3.407656,-0.47269)
- ..controls (3.407656,-0.45195) and (3.423508,-0.43465)
- ..(3.44417,-0.432842)
- ..controls (3.464831,-0.431035) and (3.483447,-0.445319)
- ..(3.487048,-0.465744)\dpicstop
-\dpicdraw[line width=0.4bp](3.487048,-0.465744) circle (0.00109in)\dpicstop
-\dpicdraw (3.487048,-0.465744)
- ..controls (3.471246,-0.471496) and (3.453535,-0.46675)
- ..(3.442726,-0.453868)
- ..controls (3.431916,-0.440986) and (3.430318,-0.422719)
- ..(3.438726,-0.408156)
- ..controls (3.447134,-0.393593) and (3.463753,-0.385844)
- ..(3.480313,-0.388764)
- ..controls (3.496874,-0.391684) and (3.50984,-0.40465)
- ..(3.51276,-0.42121)\dpicstop
-\dpicdraw[line width=0.4bp](3.51276,-0.42121) circle (0.00109in)\dpicstop
-\dpicdraw (3.51276,-0.42121)
- ..controls (3.496958,-0.426962) and (3.479246,-0.422216)
- ..(3.468437,-0.409334)
- ..controls (3.457628,-0.396453) and (3.45603,-0.378186)
- ..(3.464438,-0.363623)
- ..controls (3.472846,-0.34906) and (3.489464,-0.34131)
- ..(3.506025,-0.34423)
- ..controls (3.522585,-0.347151) and (3.535551,-0.360116)
- ..(3.538471,-0.376677)\dpicstop
-\dpicdraw[line width=0.4bp](3.538471,-0.376677) circle (0.00109in)\dpicstop
-\dpicdraw (3.538471,-0.376677)
- ..controls (3.518982,-0.38377) and (3.497303,-0.374791)
- ..(3.488538,-0.355994)
- ..controls (3.479773,-0.337197) and (3.486829,-0.314818)
- ..(3.50479,-0.304448)
- ..controls (3.522752,-0.294078) and (3.54566,-0.299157)
- ..(3.557556,-0.316146)\dpicstop
-\dpicdraw[line width=0.4bp](3.557556,-0.316146) circle (0.00109in)\dpicstop
-\dpicdraw (3.557556,-0.316146)
- --(3.620863,-0.206496)\dpicstop
-\dpicdraw (3.620863,-0.206496)
- --(3.620863,-0.079883)\dpicstop
-\dpicdraw[line width=0.4bp](3.620863,-0.079883) circle (0.00109in)\dpicstop
-\dpicdraw (3.620863,-0.079883)
- ..controls (3.602066,-0.088648) and (3.579687,-0.081592)
- ..(3.569317,-0.06363)
- ..controls (3.558947,-0.045669) and (3.564026,-0.02276)
- ..(3.581015,-0.010864)
- ..controls (3.598005,0.001032) and (3.621268,-0.002031)
- ..(3.6346,-0.017919)\dpicstop
-\dpicdraw[line width=0.4bp](3.6346,-0.017919) circle (0.00109in)\dpicstop
-\dpicdraw (3.6346,-0.017919)
- ..controls (3.623791,-0.030801) and (3.606079,-0.035546)
- ..(3.590277,-0.029795)
- ..controls (3.574476,-0.024044) and (3.563958,-0.009023)
- ..(3.563958,0.007793)
- ..controls (3.563958,0.024609) and (3.574476,0.039629)
- ..(3.590277,0.04538)
- ..controls (3.606079,0.051132) and (3.623791,0.046386)
- ..(3.6346,0.033504)\dpicstop
-\dpicdraw[line width=0.4bp](3.6346,0.033504) circle (0.00109in)\dpicstop
-\dpicdraw (3.6346,0.033504)
- ..controls (3.623791,0.020622) and (3.606079,0.015877)
- ..(3.590277,0.021628)
- ..controls (3.574476,0.027379) and (3.563958,0.0424)
- ..(3.563958,0.059216)
- ..controls (3.563958,0.076032) and (3.574476,0.091052)
- ..(3.590277,0.096803)
- ..controls (3.606079,0.102555) and (3.623791,0.097809)
- ..(3.6346,0.084927)\dpicstop
-\dpicdraw[line width=0.4bp](3.6346,0.084927) circle (0.00109in)\dpicstop
-\dpicdraw (3.6346,0.084927)
- ..controls (3.621268,0.069039) and (3.598005,0.065976)
- ..(3.581015,0.077873)
- ..controls (3.564026,0.089769) and (3.558947,0.112677)
- ..(3.569317,0.130639)
- ..controls (3.579687,0.1486) and (3.602066,0.155656)
- ..(3.620863,0.146891)\dpicstop
-\dpicdraw[line width=0.4bp](3.620863,0.146891) circle (0.00109in)\dpicstop
-\dpicdraw (3.620863,0.146891)
- --(3.620863,0.273504)\dpicstop
-\dpicdraw (3.620863,0.273504)
- --(3.557556,0.383154)\dpicstop
-\dpicdraw[line width=0.4bp](3.557556,0.383154) circle (0.00109in)\dpicstop
-\dpicdraw (3.557556,0.383154)
- ..controls (3.54566,0.366165) and (3.522752,0.361086)
- ..(3.50479,0.371456)
- ..controls (3.486829,0.381826) and (3.479773,0.404205)
- ..(3.488538,0.423002)
- ..controls (3.497303,0.441799) and (3.518982,0.450779)
- ..(3.538471,0.443685)\dpicstop
-\dpicdraw[line width=0.4bp](3.538471,0.443685) circle (0.00109in)\dpicstop
-\dpicdraw (3.538471,0.443685)
- ..controls (3.535551,0.427125) and (3.522585,0.414159)
- ..(3.506025,0.411239)
- ..controls (3.489464,0.408319) and (3.472846,0.416068)
- ..(3.464438,0.430631)
- ..controls (3.45603,0.445194) and (3.457628,0.463461)
- ..(3.468437,0.476343)
- ..controls (3.479246,0.489224) and (3.496958,0.49397)
- ..(3.51276,0.488219)\dpicstop
-\dpicdraw[line width=0.4bp](3.51276,0.488219) circle (0.00109in)\dpicstop
-\dpicdraw (3.51276,0.488219)
- ..controls (3.50984,0.471658) and (3.496874,0.458692)
- ..(3.480313,0.455772)
- ..controls (3.463753,0.452852) and (3.447134,0.460602)
- ..(3.438726,0.475165)
- ..controls (3.430318,0.489728) and (3.431916,0.507994)
- ..(3.442726,0.520876)
- ..controls (3.453535,0.533758) and (3.471246,0.538504)
- ..(3.487048,0.532752)\dpicstop
-\dpicdraw[line width=0.4bp](3.487048,0.532752) circle (0.00109in)\dpicstop
-\dpicdraw (3.487048,0.532752)
- ..controls (3.483447,0.512327) and (3.464831,0.498043)
- ..(3.44417,0.499851)
- ..controls (3.423508,0.501658) and (3.407656,0.518958)
- ..(3.407656,0.539698)
- ..controls (3.407656,0.560439) and (3.423508,0.577738)
- ..(3.44417,0.579546)\dpicstop
-\dpicdraw[line width=0.4bp](3.44417,0.579546) circle (0.00109in)\dpicstop
-\dpicdraw (3.44417,0.579546)
- --(3.380863,0.689196)\dpicstop
-\dpicdraw (3.380863,0.689196)
- --(3.271213,0.752503)\dpicstop
-\dpicdraw[line width=0.4bp](3.271213,0.752503) circle (0.00109in)\dpicstop
-\dpicdraw (3.271213,0.752503)
- ..controls (3.269405,0.731842) and (3.252105,0.715989)
- ..(3.231365,0.715989)
- ..controls (3.210625,0.715989) and (3.193325,0.731842)
- ..(3.191517,0.752503)
- ..controls (3.18971,0.773164) and (3.203994,0.79178)
- ..(3.224419,0.795381)\dpicstop
-\dpicdraw[line width=0.4bp](3.224419,0.795381) circle (0.00109in)\dpicstop
-\dpicdraw (3.224419,0.795381)
- ..controls (3.23017,0.77958) and (3.225425,0.761868)
- ..(3.212543,0.751059)
- ..controls (3.199661,0.74025) and (3.181394,0.738652)
- ..(3.166831,0.74706)
- ..controls (3.152268,0.755468) and (3.144519,0.772086)
- ..(3.147439,0.788647)
- ..controls (3.150359,0.805207) and (3.163325,0.818173)
- ..(3.179885,0.821093)\dpicstop
-\dpicdraw[line width=0.4bp](3.179885,0.821093) circle (0.00109in)\dpicstop
-\dpicdraw (3.179885,0.821093)
- ..controls (3.185637,0.805291) and (3.180891,0.787579)
- ..(3.168009,0.77677)
- ..controls (3.155127,0.765961) and (3.136861,0.764363)
- ..(3.122298,0.772771)
- ..controls (3.107735,0.781179) and (3.099985,0.797798)
- ..(3.102905,0.814358)
- ..controls (3.105825,0.830919) and (3.118791,0.843884)
- ..(3.135352,0.846804)\dpicstop
-\dpicdraw[line width=0.4bp](3.135352,0.846804) circle (0.00109in)\dpicstop
-\dpicdraw (3.135352,0.846804)
- ..controls (3.142445,0.827315) and (3.133466,0.805637)
- ..(3.114669,0.796871)
- ..controls (3.095872,0.788106) and (3.073493,0.795162)
- ..(3.063123,0.813124)
- ..controls (3.052753,0.831085) and (3.057832,0.853994)
- ..(3.074821,0.86589)\dpicstop
-\dpicdraw[line width=0.4bp](3.074821,0.86589) circle (0.00109in)\dpicstop
-\dpicdraw (3.074821,0.86589)
- --(2.965171,0.929196)\dpicstop
-\dpicdraw (2.965171,0.929196)
- --(2.838558,0.929196)\dpicstop
-\dpicdraw[line width=0.4bp](2.838558,0.929196) circle (0.00109in)\dpicstop
-\dpicdraw (2.838558,0.929196)
- ..controls (2.847323,0.910399) and (2.840267,0.888021)
- ..(2.822305,0.877651)
- ..controls (2.804344,0.86728) and (2.781435,0.872359)
- ..(2.769539,0.889349)
- ..controls (2.757643,0.906338) and (2.760706,0.929602)
- ..(2.776594,0.942933)\dpicstop
-\dpicdraw[line width=0.4bp](2.776594,0.942933) circle (0.00109in)\dpicstop
-\dpicdraw (2.776594,0.942933)
- ..controls (2.789476,0.932124) and (2.794221,0.914413)
- ..(2.78847,0.898611)
- ..controls (2.782719,0.882809) and (2.767698,0.872292)
- ..(2.750882,0.872292)
- ..controls (2.734066,0.872292) and (2.719046,0.882809)
- ..(2.713295,0.898611)
- ..controls (2.707543,0.914413) and (2.712289,0.932124)
- ..(2.725171,0.942933)\dpicstop
-\dpicdraw[line width=0.4bp](2.725171,0.942933) circle (0.00109in)\dpicstop
-\dpicdraw (2.725171,0.942933)
- ..controls (2.738053,0.932124) and (2.742798,0.914413)
- ..(2.737047,0.898611)
- ..controls (2.731296,0.882809) and (2.716275,0.872292)
- ..(2.699459,0.872292)
- ..controls (2.682643,0.872292) and (2.667623,0.882809)
- ..(2.661872,0.898611)
- ..controls (2.65612,0.914413) and (2.660866,0.932124)
- ..(2.673748,0.942933)\dpicstop
-\dpicdraw[line width=0.4bp](2.673748,0.942933) circle (0.00109in)\dpicstop
-\dpicdraw (2.673748,0.942933)
- ..controls (2.689636,0.929602) and (2.692698,0.906338)
- ..(2.680802,0.889349)
- ..controls (2.668906,0.872359) and (2.645998,0.86728)
- ..(2.628036,0.877651)
- ..controls (2.610075,0.888021) and (2.603019,0.910399)
- ..(2.611784,0.929196)\dpicstop
-\dpicdraw[line width=0.4bp](2.611784,0.929196) circle (0.00109in)\dpicstop
-\dpicdraw (2.611784,0.929196)
- --(2.485171,0.929196)\dpicstop
-\dpicdraw (2.485171,0.929196)
- --(2.375521,0.86589)\dpicstop
-\dpicdraw[line width=0.4bp](2.375521,0.86589) circle (0.00109in)\dpicstop
-\dpicdraw (2.375521,0.86589)
- ..controls (2.39251,0.853994) and (2.397589,0.831085)
- ..(2.387219,0.813124)
- ..controls (2.376848,0.795162) and (2.35447,0.788106)
- ..(2.335673,0.796871)
- ..controls (2.316876,0.805637) and (2.307896,0.827315)
- ..(2.31499,0.846804)\dpicstop
-\dpicdraw[line width=0.4bp](2.31499,0.846804) circle (0.00109in)\dpicstop
-\dpicdraw (2.31499,0.846804)
- ..controls (2.33155,0.843884) and (2.344516,0.830919)
- ..(2.347436,0.814358)
- ..controls (2.350356,0.797798) and (2.342607,0.781179)
- ..(2.328044,0.772771)
- ..controls (2.313481,0.764363) and (2.295214,0.765961)
- ..(2.282332,0.77677)
- ..controls (2.269451,0.787579) and (2.264705,0.805291)
- ..(2.270456,0.821093)\dpicstop
-\dpicdraw[line width=0.4bp](2.270456,0.821093) circle (0.00109in)\dpicstop
-\dpicdraw (2.270456,0.821093)
- ..controls (2.287017,0.818173) and (2.299983,0.805207)
- ..(2.302903,0.788647)
- ..controls (2.305823,0.772086) and (2.298073,0.755468)
- ..(2.28351,0.74706)
- ..controls (2.268947,0.738652) and (2.25068,0.74025)
- ..(2.237799,0.751059)
- ..controls (2.224917,0.761868) and (2.220171,0.77958)
- ..(2.225923,0.795381)\dpicstop
-\dpicdraw[line width=0.4bp](2.225923,0.795381) circle (0.00109in)\dpicstop
-\dpicdraw (2.225923,0.795381)
- ..controls (2.246348,0.79178) and (2.260632,0.773164)
- ..(2.258824,0.752503)
- ..controls (2.257017,0.731842) and (2.239717,0.715989)
- ..(2.218977,0.715989)
- ..controls (2.198236,0.715989) and (2.180936,0.731842)
- ..(2.179129,0.752503)\dpicstop
-\dpicdraw[line width=0.4bp](2.179129,0.752503) circle (0.00109in)\dpicstop
-\dpicdraw (2.179129,0.752503)
- --(2.069479,0.689196)\dpicstop
-\dpicdraw (2.069479,0.689196)
- --(2.006172,0.579546)\dpicstop
-\dpicdraw[line width=0.4bp](2.006172,0.579546) circle (0.00109in)\dpicstop
-\dpicdraw (2.006172,0.579546)
- ..controls (2.026833,0.577738) and (2.042686,0.560439)
- ..(2.042686,0.539698)
- ..controls (2.042686,0.518958) and (2.026833,0.501658)
- ..(2.006172,0.499851)
- ..controls (1.985511,0.498043) and (1.966895,0.512327)
- ..(1.963293,0.532752)\dpicstop
-\dpicdraw[line width=0.4bp](1.963293,0.532752) circle (0.00109in)\dpicstop
-\dpicdraw (1.963293,0.532752)
- ..controls (1.979095,0.538504) and (1.996807,0.533758)
- ..(2.007616,0.520876)
- ..controls (2.018425,0.507994) and (2.020023,0.489728)
- ..(2.011615,0.475165)
- ..controls (2.003207,0.460602) and (1.986589,0.452852)
- ..(1.970028,0.455772)
- ..controls (1.953468,0.458692) and (1.940502,0.471658)
- ..(1.937582,0.488219)\dpicstop
-\dpicdraw[line width=0.4bp](1.937582,0.488219) circle (0.00109in)\dpicstop
-\dpicdraw (1.937582,0.488219)
- ..controls (1.953384,0.49397) and (1.971095,0.489224)
- ..(1.981905,0.476343)
- ..controls (1.992714,0.463461) and (1.994312,0.445194)
- ..(1.985904,0.430631)
- ..controls (1.977496,0.416068) and (1.960877,0.408319)
- ..(1.944317,0.411239)
- ..controls (1.927756,0.414159) and (1.914791,0.427125)
- ..(1.91187,0.443685)\dpicstop
-\dpicdraw[line width=0.4bp](1.91187,0.443685) circle (0.00109in)\dpicstop
-\dpicdraw (1.91187,0.443685)
- ..controls (1.93136,0.450779) and (1.953038,0.441799)
- ..(1.961804,0.423002)
- ..controls (1.970569,0.404205) and (1.963513,0.381826)
- ..(1.945551,0.371456)
- ..controls (1.92759,0.361086) and (1.904681,0.366165)
- ..(1.892785,0.383154)\dpicstop
-\dpicdraw[line width=0.4bp](1.892785,0.383154) circle (0.00109in)\dpicstop
-\dpicdraw (1.892785,0.383154)
- --(1.829479,0.273504)\dpicstop
-\dpicdraw (1.829479,0.273504)
- --(1.829479,0.146891)\dpicstop
-\dpicdraw[line width=0.4bp](1.829479,0.146891) circle (0.00109in)\dpicstop
-\dpicdraw (1.829479,0.146891)
- ..controls (1.848276,0.155656) and (1.870654,0.1486)
- ..(1.881024,0.130639)
- ..controls (1.891394,0.112677) and (1.886316,0.089769)
- ..(1.869326,0.077873)
- ..controls (1.852337,0.065976) and (1.829073,0.069039)
- ..(1.815742,0.084927)\dpicstop
-\dpicdraw[line width=0.4bp](1.815742,0.084927) circle (0.00109in)\dpicstop
-\dpicdraw (1.815742,0.084927)
- ..controls (1.826551,0.097809) and (1.844262,0.102555)
- ..(1.860064,0.096803)
- ..controls (1.875866,0.091052) and (1.886383,0.076032)
- ..(1.886383,0.059216)
- ..controls (1.886383,0.0424) and (1.875866,0.027379)
- ..(1.860064,0.021628)
- ..controls (1.844262,0.015877) and (1.826551,0.020622)
- ..(1.815742,0.033504)\dpicstop
-\dpicdraw[line width=0.4bp](1.815742,0.033504) circle (0.00109in)\dpicstop
-\dpicdraw (1.815742,0.033504)
- ..controls (1.826551,0.046386) and (1.844262,0.051132)
- ..(1.860064,0.04538)
- ..controls (1.875866,0.039629) and (1.886383,0.024609)
- ..(1.886383,0.007793)
- ..controls (1.886383,-0.009023) and (1.875866,-0.024044)
- ..(1.860064,-0.029795)
- ..controls (1.844262,-0.035546) and (1.826551,-0.030801)
- ..(1.815742,-0.017919)\dpicstop
-\dpicdraw[line width=0.4bp](1.815742,-0.017919) circle (0.00109in)\dpicstop
-\dpicdraw (1.815742,-0.017919)
- ..controls (1.829073,-0.002031) and (1.852337,0.001032)
- ..(1.869326,-0.010864)
- ..controls (1.886316,-0.02276) and (1.891394,-0.045669)
- ..(1.881024,-0.06363)
- ..controls (1.870654,-0.081592) and (1.848276,-0.088648)
- ..(1.829479,-0.079883)\dpicstop
-\dpicdraw[line width=0.4bp](1.829479,-0.079883) circle (0.00109in)\dpicstop
-\dpicdraw (1.829479,-0.079883)
- --(1.829479,-0.206496)\dpicstop
-\dpicdraw (1.829479,-0.206496)
- --(1.892785,-0.316146)\dpicstop
-\dpicdraw[line width=0.4bp](1.892785,-0.316146) circle (0.00109in)\dpicstop
-\dpicdraw (1.892785,-0.316146)
- ..controls (1.904681,-0.299157) and (1.92759,-0.294078)
- ..(1.945551,-0.304448)
- ..controls (1.963513,-0.314818) and (1.970569,-0.337197)
- ..(1.961804,-0.355994)
- ..controls (1.953038,-0.374791) and (1.93136,-0.38377)
- ..(1.91187,-0.376677)\dpicstop
-\dpicdraw[line width=0.4bp](1.91187,-0.376677) circle (0.00109in)\dpicstop
-\dpicdraw (1.91187,-0.376677)
- ..controls (1.914791,-0.360116) and (1.927756,-0.347151)
- ..(1.944317,-0.34423)
- ..controls (1.960877,-0.34131) and (1.977496,-0.34906)
- ..(1.985904,-0.363623)
- ..controls (1.994312,-0.378186) and (1.992714,-0.396453)
- ..(1.981905,-0.409334)
- ..controls (1.971095,-0.422216) and (1.953384,-0.426962)
- ..(1.937582,-0.42121)\dpicstop
-\dpicdraw[line width=0.4bp](1.937582,-0.42121) circle (0.00109in)\dpicstop
-\dpicdraw (1.937582,-0.42121)
- ..controls (1.940502,-0.40465) and (1.953468,-0.391684)
- ..(1.970028,-0.388764)
- ..controls (1.986589,-0.385844) and (2.003207,-0.393593)
- ..(2.011615,-0.408156)
- ..controls (2.020023,-0.422719) and (2.018425,-0.440986)
- ..(2.007616,-0.453868)
- ..controls (1.996807,-0.46675) and (1.979095,-0.471496)
- ..(1.963293,-0.465744)\dpicstop
-\dpicdraw[line width=0.4bp](1.963293,-0.465744) circle (0.00109in)\dpicstop
-\dpicdraw (1.963293,-0.465744)
- ..controls (1.966895,-0.445319) and (1.985511,-0.431035)
- ..(2.006172,-0.432842)
- ..controls (2.026833,-0.43465) and (2.042686,-0.45195)
- ..(2.042686,-0.47269)
- ..controls (2.042686,-0.49343) and (2.026833,-0.51073)
- ..(2.006172,-0.512538)\dpicstop
-\dpicdraw[line width=0.4bp](2.006172,-0.512538) circle (0.00109in)\dpicstop
-\dpicdraw (2.006172,-0.512538)
- --(2.069479,-0.622188)\dpicstop
-\dpicdraw (2.069479,-0.622188)
- --(2.179129,-0.685495)\dpicstop
-\dpicdraw[line width=0.4bp](2.179129,-0.685495) circle (0.00109in)\dpicstop
-\dpicdraw (2.179129,-0.685495)
- ..controls (2.180936,-0.664833) and (2.198236,-0.648981)
- ..(2.218977,-0.648981)
- ..controls (2.239717,-0.648981) and (2.257017,-0.664833)
- ..(2.258824,-0.685495)
- ..controls (2.260632,-0.706156) and (2.246348,-0.724772)
- ..(2.225923,-0.728373)\dpicstop
-\dpicdraw[line width=0.4bp](2.225923,-0.728373) circle (0.00109in)\dpicstop
-\dpicdraw (2.225923,-0.728373)
- ..controls (2.220171,-0.712571) and (2.224917,-0.69486)
- ..(2.237799,-0.684051)
- ..controls (2.25068,-0.673242) and (2.268947,-0.671643)
- ..(2.28351,-0.680051)
- ..controls (2.298073,-0.688459) and (2.305823,-0.705078)
- ..(2.302903,-0.721638)
- ..controls (2.299983,-0.738199) and (2.287017,-0.751165)
- ..(2.270456,-0.754085)\dpicstop
-\dpicdraw[line width=0.4bp](2.270456,-0.754085) circle (0.00109in)\dpicstop
-\dpicdraw (2.270456,-0.754085)
- ..controls (2.264705,-0.738283) and (2.269451,-0.720571)
- ..(2.282332,-0.709762)
- ..controls (2.295214,-0.698953) and (2.313481,-0.697355)
- ..(2.328044,-0.705763)
- ..controls (2.342607,-0.714171) and (2.350356,-0.730789)
- ..(2.347436,-0.74735)
- ..controls (2.344516,-0.76391) and (2.33155,-0.776876)
- ..(2.31499,-0.779796)\dpicstop
-\dpicdraw[line width=0.4bp](2.31499,-0.779796) circle (0.00109in)\dpicstop
-\dpicdraw (2.31499,-0.779796)
- ..controls (2.307896,-0.760307) and (2.316876,-0.738628)
- ..(2.335673,-0.729863)
- ..controls (2.35447,-0.721098) and (2.376848,-0.728154)
- ..(2.387219,-0.746115)
- ..controls (2.397589,-0.764077) and (2.39251,-0.786985)
- ..(2.375521,-0.798881)\dpicstop
-\dpicdraw[line width=0.4bp](2.375521,-0.798881) circle (0.00109in)\dpicstop
-\dpicdraw (2.375521,-0.798881)
- --(2.485171,-0.862188)\dpicstop
-\dpicdraw (2.545171,-0.638265)
- --(2.625171,-0.638265)
- --(2.641837,-0.604932)
- --(2.675171,-0.671598)
- --(2.708504,-0.604932)
- --(2.741837,-0.671598)
- --(2.775171,-0.604932)
- --(2.808504,-0.671598)
- --(2.825171,-0.638265)
- --(2.905171,-0.638265)\dpicstop
-\dpicdraw (2.905171,-0.638265)
- --(2.974453,-0.598265)
- --(2.97222,-0.561064)
- --(3.034421,-0.602133)
- --(3.029955,-0.527731)
- --(3.092156,-0.568799)
- --(3.08769,-0.494398)
- --(3.149891,-0.535466)
- --(3.147658,-0.498265)
- --(3.21694,-0.458265)\dpicstop
-\dpicdraw (3.21694,-0.458265)
- --(3.25694,-0.388983)
- --(3.236406,-0.357883)
- --(3.310807,-0.362348)
- --(3.269739,-0.300148)
- --(3.344141,-0.304613)
- --(3.303072,-0.242413)
- --(3.377474,-0.246878)
- --(3.35694,-0.215778)
- --(3.39694,-0.146496)\dpicstop
-\dpicdraw (3.39694,-0.146496)
- --(3.39694,-0.066496)
- --(3.363607,-0.049829)
- --(3.430273,-0.016496)
- --(3.363607,0.016837)
- --(3.430273,0.050171)
- --(3.363607,0.083504)
- --(3.430273,0.116837)
- --(3.39694,0.133504)
- --(3.39694,0.213504)\dpicstop
-\dpicdraw (3.39694,0.213504)
- --(3.35694,0.282786)
- --(3.319739,0.280553)
- --(3.360807,0.342754)
- --(3.286406,0.338288)
- --(3.327474,0.400489)
- --(3.253072,0.396023)
- --(3.294141,0.458224)
- --(3.25694,0.455991)
- --(3.21694,0.525273)\dpicstop
-\dpicdraw (3.21694,0.525273)
- --(3.147658,0.565273)
- --(3.116557,0.544739)
- --(3.121023,0.619141)
- --(3.058822,0.578072)
- --(3.063288,0.652474)
- --(3.001087,0.611406)
- --(3.005553,0.685807)
- --(2.974453,0.665273)
- --(2.905171,0.705273)\dpicstop
-\dpicdraw (2.905171,0.705273)
- --(2.825171,0.705273)
- --(2.808504,0.67194)
- --(2.775171,0.738607)
- --(2.741837,0.67194)
- --(2.708504,0.738607)
- --(2.675171,0.67194)
- --(2.641837,0.738607)
- --(2.625171,0.705273)
- --(2.545171,0.705273)\dpicstop
-\dpicdraw (2.545171,0.705273)
- --(2.475889,0.665273)
- --(2.478122,0.628072)
- --(2.415921,0.669141)
- --(2.420387,0.594739)
- --(2.358186,0.635807)
- --(2.362652,0.561406)
- --(2.300451,0.602474)
- --(2.302684,0.565273)
- --(2.233402,0.525273)\dpicstop
-\dpicdraw (2.233402,0.525273)
- --(2.193402,0.455991)
- --(2.213936,0.424891)
- --(2.139534,0.429357)
- --(2.180602,0.367156)
- --(2.106201,0.371622)
- --(2.147269,0.309421)
- --(2.072867,0.313887)
- --(2.093402,0.282786)
- --(2.053402,0.213504)\dpicstop
-\dpicdraw (2.053402,0.213504)
- --(2.053402,0.133504)
- --(2.086735,0.116837)
- --(2.020068,0.083504)
- --(2.086735,0.050171)
- --(2.020068,0.016837)
- --(2.086735,-0.016496)
- --(2.020068,-0.049829)
- --(2.053402,-0.066496)
- --(2.053402,-0.146496)\dpicstop
-\dpicdraw (2.053402,-0.146496)
- --(2.093402,-0.215778)
- --(2.130602,-0.213545)
- --(2.089534,-0.275746)
- --(2.163936,-0.27128)
- --(2.122867,-0.333481)
- --(2.197269,-0.329015)
- --(2.156201,-0.391216)
- --(2.193402,-0.388983)
- --(2.233402,-0.458265)\dpicstop
-\dpicdraw (2.233402,-0.458265)
- --(2.302684,-0.498265)
- --(2.333784,-0.477731)
- --(2.329318,-0.552133)
- --(2.391519,-0.511064)
- --(2.387053,-0.585466)
- --(2.449254,-0.544398)
- --(2.444788,-0.618799)
- --(2.475889,-0.598265)
- --(2.545171,-0.638265)\dpicstop
-\dpicdraw (2.605171,-0.414342)
- --(2.705171,-0.414342)\dpicstop
-\dpicdraw (2.705171,-0.464342)
- --(2.705171,-0.364342)\dpicstop
-\dpicdraw (2.745171,-0.464342)
- ..controls (2.727308,-0.433402) and (2.727308,-0.395282)
- ..(2.745171,-0.364342)\dpicstop
-\dpicdraw (2.731773,-0.414342)
- --(2.845171,-0.414342)\dpicstop
-\dpicdraw (2.845171,-0.414342)
- --(2.931773,-0.364342)\dpicstop
-\dpicdraw (2.956773,-0.407643)
- --(2.906773,-0.321041)\dpicstop
-\dpicdraw (2.991414,-0.387643)
- ..controls (2.960474,-0.36978) and (2.941414,-0.336767)
- ..(2.941414,-0.301041)\dpicstop
-\dpicdraw (2.954812,-0.351041)
- --(3.053017,-0.294342)\dpicstop
-\dpicdraw (3.053017,-0.294342)
- --(3.103017,-0.207739)\dpicstop
-\dpicdraw (3.146318,-0.232739)
- --(3.059716,-0.182739)\dpicstop
-\dpicdraw (3.166318,-0.198098)
- ..controls (3.130592,-0.198098) and (3.097579,-0.179039)
- ..(3.079716,-0.148098)\dpicstop
-\dpicdraw (3.116318,-0.184701)
- --(3.173017,-0.086496)\dpicstop
-\dpicdraw (3.173017,-0.086496)
- --(3.173017,0.013504)\dpicstop
-\dpicdraw (3.223017,0.013504)
- --(3.123017,0.013504)\dpicstop
-\dpicdraw (3.223017,0.053504)
- ..controls (3.192077,0.035641) and (3.153957,0.035641)
- ..(3.123017,0.053504)\dpicstop
-\dpicdraw (3.173017,0.040107)
- --(3.173017,0.153504)\dpicstop
-\dpicdraw (3.173017,0.153504)
- --(3.123017,0.240107)\dpicstop
-\dpicdraw (3.166318,0.265107)
- --(3.079716,0.215107)\dpicstop
-\dpicdraw (3.146318,0.299748)
- ..controls (3.128455,0.268808) and (3.095442,0.249748)
- ..(3.059716,0.249748)\dpicstop
-\dpicdraw (3.109716,0.263145)
- --(3.053017,0.36135)\dpicstop
-\dpicdraw (3.053017,0.36135)
- --(2.966414,0.41135)\dpicstop
-\dpicdraw (2.991414,0.454651)
- --(2.941414,0.368049)\dpicstop
-\dpicdraw (2.956773,0.474651)
- ..controls (2.956773,0.438925) and (2.937713,0.405912)
- ..(2.906773,0.388049)\dpicstop
-\dpicdraw (2.943376,0.424651)
- --(2.845171,0.48135)\dpicstop
-\dpicdraw (2.845171,0.48135)
- --(2.745171,0.48135)\dpicstop
-\dpicdraw (2.745171,0.53135)
- --(2.745171,0.43135)\dpicstop
-\dpicdraw (2.705171,0.53135)
- ..controls (2.723034,0.50041) and (2.723034,0.46229)
- ..(2.705171,0.43135)\dpicstop
-\dpicdraw (2.718568,0.48135)
- --(2.605171,0.48135)\dpicstop
-\dpicdraw (2.605171,0.48135)
- --(2.518568,0.43135)\dpicstop
-\dpicdraw (2.493568,0.474651)
- --(2.543568,0.388049)\dpicstop
-\dpicdraw (2.458927,0.454651)
- ..controls (2.489867,0.436788) and (2.508927,0.403776)
- ..(2.508927,0.368049)\dpicstop
-\dpicdraw (2.49553,0.418049)
- --(2.397325,0.36135)\dpicstop
-\dpicdraw (2.397325,0.36135)
- --(2.347325,0.274748)\dpicstop
-\dpicdraw (2.304023,0.299748)
- --(2.390626,0.249748)\dpicstop
-\dpicdraw (2.284023,0.265107)
- ..controls (2.31975,0.265107) and (2.352763,0.246047)
- ..(2.370626,0.215107)\dpicstop
-\dpicdraw (2.334023,0.251709)
- --(2.277325,0.153504)\dpicstop
-\dpicdraw (2.277325,0.153504)
- --(2.277325,0.053504)\dpicstop
-\dpicdraw (2.227325,0.053504)
- --(2.327325,0.053504)\dpicstop
-\dpicdraw (2.227325,0.013504)
- ..controls (2.258265,0.031367) and (2.296385,0.031367)
- ..(2.327325,0.013504)\dpicstop
-\dpicdraw (2.277325,0.026902)
- --(2.277325,-0.086496)\dpicstop
-\dpicdraw (2.277325,-0.086496)
- --(2.327325,-0.173098)\dpicstop
-\dpicdraw (2.284023,-0.198098)
- --(2.370626,-0.148098)\dpicstop
-\dpicdraw (2.304023,-0.232739)
- ..controls (2.321887,-0.201799) and (2.354899,-0.182739)
- ..(2.390626,-0.182739)\dpicstop
-\dpicdraw (2.340626,-0.196137)
- --(2.397325,-0.294342)\dpicstop
-\dpicdraw (2.397325,-0.294342)
- --(2.483927,-0.344342)\dpicstop
-\dpicdraw (2.458927,-0.387643)
- --(2.508927,-0.301041)\dpicstop
-\dpicdraw (2.493568,-0.407643)
- ..controls (2.493568,-0.371917) and (2.512628,-0.338904)
- ..(2.543568,-0.321041)\dpicstop
-\dpicdraw (2.506966,-0.357643)
- --(2.605171,-0.414342)\dpicstop
-\dpicdraw (2.665171,-0.190419)
- --(2.696303,-0.190419)\dpicstop
-\fill[fill=black,line width=0bp](2.696303,-0.190419)
- --(2.696303,-0.157086)
- --(2.748504,-0.190419)
- --(2.696303,-0.223752)
- --(2.696303,-0.190419)--cycle
-\dpicstop
-\dpicdraw (2.696303,-0.190419)
- --(2.696303,-0.157086)
- --(2.748504,-0.190419)
- --(2.696303,-0.223752)
- --(2.696303,-0.190419)\dpicstop
-\dpicdraw (2.754038,-0.227804)
- --(2.754038,-0.153034)\dpicstop
-\dpicdraw (2.754038,-0.190419)
- --(2.785171,-0.190419)\dpicstop
-\dpicdraw (2.785171,-0.190419)
- --(2.812132,-0.174853)\dpicstop
-\fill[fill=black,line width=0bp](2.812132,-0.174853)
- --(2.795466,-0.145985)
- --(2.857339,-0.148753)
- --(2.828799,-0.20372)
- --(2.812132,-0.174853)--cycle
-\dpicstop
-\dpicdraw (2.812132,-0.174853)
- --(2.795466,-0.145985)
- --(2.857339,-0.148753)
- --(2.828799,-0.20372)
- --(2.812132,-0.174853)\dpicstop
-\dpicdraw (2.880825,-0.178362)
- --(2.84344,-0.113609)\dpicstop
-\dpicdraw (2.862132,-0.145985)
- --(2.889094,-0.130419)\dpicstop
-\dpicdraw (2.889094,-0.130419)
- --(2.90466,-0.103457)\dpicstop
-\fill[fill=black,line width=0bp](2.90466,-0.103457)
- --(2.875793,-0.086791)
- --(2.93076,-0.058251)
- --(2.933528,-0.120124)
- --(2.90466,-0.103457)--cycle
-\dpicstop
-\dpicdraw (2.90466,-0.103457)
- --(2.875793,-0.086791)
- --(2.93076,-0.058251)
- --(2.933528,-0.120124)
- --(2.90466,-0.103457)\dpicstop
-\dpicdraw (2.965904,-0.07215)
- --(2.901151,-0.034765)\dpicstop
-\dpicdraw (2.933528,-0.053457)
- --(2.949094,-0.026496)\dpicstop
-\dpicdraw (2.949094,-0.026496)
- --(2.949094,0.004637)\dpicstop
-\fill[fill=black,line width=0bp](2.949094,0.004637)
- --(2.915761,0.004637)
- --(2.949094,0.056837)
- --(2.982427,0.004637)
- --(2.949094,0.004637)--cycle
-\dpicstop
-\dpicdraw (2.949094,0.004637)
- --(2.915761,0.004637)
- --(2.949094,0.056837)
- --(2.982427,0.004637)
- --(2.949094,0.004637)\dpicstop
-\dpicdraw (2.986479,0.062372)
- --(2.911709,0.062372)\dpicstop
-\dpicdraw (2.949094,0.062372)
- --(2.949094,0.093504)\dpicstop
-\dpicdraw (2.949094,0.093504)
- --(2.933528,0.120466)\dpicstop
-\fill[fill=black,line width=0bp](2.933528,0.120466)
- --(2.90466,0.103799)
- --(2.907427,0.165672)
- --(2.962395,0.137132)
- --(2.933528,0.120466)--cycle
-\dpicstop
-\dpicdraw (2.933528,0.120466)
- --(2.90466,0.103799)
- --(2.907427,0.165672)
- --(2.962395,0.137132)
- --(2.933528,0.120466)\dpicstop
-\dpicdraw (2.937037,0.189158)
- --(2.872284,0.151773)\dpicstop
-\dpicdraw (2.90466,0.170466)
- --(2.889094,0.197427)\dpicstop
-\dpicdraw (2.889094,0.197427)
- --(2.862132,0.212993)\dpicstop
-\fill[fill=black,line width=0bp](2.862132,0.212993)
- --(2.845466,0.184126)
- --(2.816926,0.239094)
- --(2.878799,0.241861)
- --(2.862132,0.212993)--cycle
-\dpicstop
-\dpicdraw (2.862132,0.212993)
- --(2.845466,0.184126)
- --(2.816926,0.239094)
- --(2.878799,0.241861)
- --(2.862132,0.212993)\dpicstop
-\dpicdraw (2.830825,0.274237)
- --(2.79344,0.209485)\dpicstop
-\dpicdraw (2.812132,0.241861)
- --(2.785171,0.257427)\dpicstop
-\dpicdraw (2.785171,0.257427)
- --(2.754038,0.257427)\dpicstop
-\fill[fill=black,line width=0bp](2.754038,0.257427)
- --(2.754038,0.224094)
- --(2.701838,0.257427)
- --(2.754038,0.290761)
- --(2.754038,0.257427)--cycle
-\dpicstop
-\dpicdraw (2.754038,0.257427)
- --(2.754038,0.224094)
- --(2.701838,0.257427)
- --(2.754038,0.290761)
- --(2.754038,0.257427)\dpicstop
-\dpicdraw (2.696303,0.294812)
- --(2.696303,0.220042)\dpicstop
-\dpicdraw (2.696303,0.257427)
- --(2.665171,0.257427)\dpicstop
-\dpicdraw (2.665171,0.257427)
- --(2.638209,0.241861)\dpicstop
-\fill[fill=black,line width=0bp](2.638209,0.241861)
- --(2.654876,0.212993)
- --(2.593003,0.215761)
- --(2.621543,0.270728)
- --(2.638209,0.241861)--cycle
-\dpicstop
-\dpicdraw (2.638209,0.241861)
- --(2.654876,0.212993)
- --(2.593003,0.215761)
- --(2.621543,0.270728)
- --(2.638209,0.241861)\dpicstop
-\dpicdraw (2.569517,0.24537)
- --(2.606902,0.180617)\dpicstop
-\dpicdraw (2.588209,0.212993)
- --(2.561248,0.197427)\dpicstop
-\dpicdraw (2.561248,0.197427)
- --(2.545682,0.170466)\dpicstop
-\fill[fill=black,line width=0bp](2.545682,0.170466)
- --(2.574549,0.153799)
- --(2.519581,0.125259)
- --(2.516814,0.187132)
- --(2.545682,0.170466)--cycle
-\dpicstop
-\dpicdraw (2.545682,0.170466)
- --(2.574549,0.153799)
- --(2.519581,0.125259)
- --(2.516814,0.187132)
- --(2.545682,0.170466)\dpicstop
-\dpicdraw (2.484438,0.139158)
- --(2.54919,0.101773)\dpicstop
-\dpicdraw (2.516814,0.120466)
- --(2.501248,0.093504)\dpicstop
-\dpicdraw (2.501248,0.093504)
- --(2.501248,0.062372)\dpicstop
-\fill[fill=black,line width=0bp](2.501248,0.062372)
- --(2.534581,0.062372)
- --(2.501248,0.010171)
- --(2.467914,0.062372)
- --(2.501248,0.062372)--cycle
-\dpicstop
-\dpicdraw (2.501248,0.062372)
- --(2.534581,0.062372)
- --(2.501248,0.010171)
- --(2.467914,0.062372)
- --(2.501248,0.062372)\dpicstop
-\dpicdraw (2.463863,0.004637)
- --(2.538633,0.004637)\dpicstop
-\dpicdraw (2.501248,0.004637)
- --(2.501248,-0.026496)\dpicstop
-\dpicdraw (2.501248,-0.026496)
- --(2.516814,-0.053457)\dpicstop
-\fill[fill=black,line width=0bp](2.516814,-0.053457)
- --(2.545682,-0.036791)
- --(2.542914,-0.098664)
- --(2.487946,-0.070124)
- --(2.516814,-0.053457)--cycle
-\dpicstop
-\dpicdraw (2.516814,-0.053457)
- --(2.545682,-0.036791)
- --(2.542914,-0.098664)
- --(2.487946,-0.070124)
- --(2.516814,-0.053457)\dpicstop
-\dpicdraw (2.513305,-0.12215)
- --(2.578058,-0.084765)\dpicstop
-\dpicdraw (2.545682,-0.103457)
- --(2.561248,-0.130419)\dpicstop
-\dpicdraw (2.561248,-0.130419)
- --(2.588209,-0.145985)\dpicstop
-\fill[fill=black,line width=0bp](2.588209,-0.145985)
- --(2.604876,-0.117118)
- --(2.633416,-0.172085)
- --(2.571543,-0.174853)
- --(2.588209,-0.145985)--cycle
-\dpicstop
-\dpicdraw (2.588209,-0.145985)
- --(2.604876,-0.117118)
- --(2.633416,-0.172085)
- --(2.571543,-0.174853)
- --(2.588209,-0.145985)\dpicstop
-\dpicdraw (2.619517,-0.207229)
- --(2.656902,-0.142476)\dpicstop
-\dpicdraw (2.638209,-0.174853)
- --(2.665171,-0.190419)\dpicstop
-\end{tikzpicture}%

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

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Ex02.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Ex02.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Ex02.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -0,0 +1,55 @@
+.PS
+# ex02.m4
+cct_init
+linewid = linewid*4/5
+
+[
+  [ 
+  for angl=0 to 315 by 45 do {
+     Point_(angl)
+     opamp(to rvec_(linewid*3/2,0)) with .Out at (0,0) }
+     ]
+ resistor(down_ dimen_ from last [].s)
+ diode(down_ dimen_*2/3,LE) 
+ diode(down_ dimen_*2/3,LER) 
+ ground(,T)
+]
+
+[
+ define(`elen_',`dimen_*3/2')          # restore defaults
+ define(`sourcerad_',`dimen_*0.25')
+ leng = elen_
+ define(`fromcentre',`move to C+(-elen_/2,-elen_*cosd(15)/(2*sind(15)))')
+ C: dot
+ { fromcentre()
+   for i = 0 to 359 by 30 do { Point_(i); inductor }
+   }
+  define(`elen_',leng*0.8)
+  { fromcentre()
+    for i=0 to 359 by 30 do { Point_(i); inductor(,W) }
+    }
+  define(`elen_',leng*0.6)
+  { fromcentre()
+    for i=0 to 359 by 30 do { Point_(i); resistor }
+    }
+  define(`elen_',leng*0.4)
+  { fromcentre()
+    for i=0 to 359 by 30 do { Point_(i); capacitor(,C) }
+    }
+  define(`elen_',leng*0.2)
+  { fromcentre()
+    for i=0 to 359 by 30 do { Point_(i); diode }
+    }
+  define(`elen_',`dimen_*3/2')
+  ] with .sw at last [].se+(linewid,0)
+
+[
+linewid *=1.5
+for ang=0 to 359 by 30 do {
+  ebox(from (0,0) to (Rect_(elen_,ang)))
+  hatchbox(boxdir=ang;angle=70;hatchspec=thick 0.4 outlined "red";
+    wid=dimen_/2; ht=dimen_/5; hatchsep=dimen_/2/5) at last []
+  }
+  ] with .sw at last [].se+(linewid,0)
+
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Ex02.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/extras/Ex17.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Ex17.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Ex17.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -0,0 +1,43 @@
+.PS
+# ex17.m4
+cct_init
+
+[
+nrows = 4
+ncols = 9
+linewid = linewid*0.6          # everything smaller
+define(`elen_',linewid)        # shorter default length
+
+  for j = 1 to nrows do {
+    { for i = 1 to ncols do {
+        Point_(-120) resistor
+        Point_(   0) inductor
+        Point_( 120) capacitor
+        if i < ncols then {Point_(0) diode} }
+        }
+    Point_(-120) move to rvec_(elen_,0)
+    { for i = 1 to ncols do {
+        Point_(-60) capacitor
+        Point_( 60) resistor }
+        }
+    Point_(-60) move to rvec_(elen_,0)
+    }
+  Point_(0) for i = 1 to ncols-1 do { inductor }
+]
+
+[                              # an exercise of the `parallel_' macro:
+  down_                        # for labelling
+  Point_(-80)                  # skew current direction
+
+  parallel_(Sep=1.75*dimen_;
+    parallel_(
+     `capacitor(,C); rlabel(,,C_2)',
+     `resistor; rlabel(,R_2)' ),
+    parallel_(
+     `resistor; rlabel(,R_1); move to rvec_(-dimen_/5,0)
+                 inductor(,W); rlabel(,L_1)',
+     `reversed(`source',to rvec_(elen_,0),V,sourcerad_*2.5); rlabel(,v_s)' )
+    )
+
+] with .sw at last [].se+(elen_,0)
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Ex17.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/extras/Flow2.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Flow2.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Flow2.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -8,7 +8,7 @@
   testw = flowboxwid*7/4
   testh = flowboxht*9/4
   Start: Fbox("Start",,rad boxht/8 shaded "red!30")
-    arrow down_ smallsep "False" ljust
+    arrow down_ smallsep
   Input: Fdata(`"Input: $f(), a, b, \epsilon$"',wid boxwid*5/4,,
     shaded "blue!30")
     arrow down_ smallsep

Added: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/SPS.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/SPS.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/SPS.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -0,0 +1,154 @@
+.PS
+# `SPS.m4 Astrodyne OFM-1501'
+# AoE p. 666
+cct_init
+iflatex(`latexcommand({\sf)')
+
+ del = dimen_
+T1: transformer(down_ elen_,,,WD21)
+ {"70t" at T1.TP rjust; "$T_1$" at T1.n below}
+ { "$L_m=895\mu$H $L_{\ell}=42\mu$H" at T1.P1+(-del/2,0) above ljust }
+ line left_ del*2/3 from T1.P1
+Bd1: tline(down_ T1.ht/3,,del/6); { "bead" at last [].nw rjust }
+D2: diode(down_ T1.ht/3,Z); rlabel(,\shortstack[r]{$D_2$\\P6KE\\$200$})
+D3: reversed(`diode',to (Here,T1.P2)); rlabel(,,D_3); {T1L: line to T1.P2}
+HS201: heatsink(,,D) with .ne at T1.P2-(0,del/2); "$\,$HS" at last [].s below
+ pushdef(`dimen_',dimen_*3/4)
+MF: mosfet(up_ del*2/3,,FdMdSD) with .Channel at (D3,HS201) popdef(`dimen_')
+ line from MF.D to (MF.D,T1L); dot 
+CTRL: box wid 30bp__ ht 16bp__ with .e at (MF.G,MF) "CTRL"
+ line from CTRL.s to (CTRL,MF.S) then to MF.S
+ line from CTRL.n to (CTRL,MF.D) then to MF.D
+TOP201: box wid MF.D.x-CTRL.w.x+del/6 ht MF.D.y-MF.S.y+del/6 \
+  with .w at CTRL.w-(del/12,0)
+ "$U_1$" at TOP201.nw above ljust; "TOP201" at TOP201.sw below ljust
+ "$D$" at (MF.S,TOP201.n) above rjust
+ "$S$" at (MF.S,TOP201.s) below rjust
+ "$FB$" above rjust at TOP201.w
+ dot(at TOP201.w-(del/4,0))
+ { capacitor(down_ dimen_*4/3); llabel(,,`0.1\mu{}F'); Grnd: Here; ground(,T,E)
+   line from MF.S to (MF.S,Grnd); ground(,T,E) }
+ dot(at Here-(del/2,0)); { line to TOP201.w }
+ { resistor(down_ (Here.y-Grnd.y)/2); rlabel(,33); capacitor(to (Here,Grnd),C)
+   rlabel(,\shortstack[r]{$22\mu{}$F\\50V}); ground(,T,E) }
+ U3b: bi_trans(up_ del,,BUdEC) with .E at Here
+ em_arrows(N,225,del/4) at U3b.e; "$U_{3b}$" at last [].n above ljust
+ spline dashed 3bp__ from U3b.E+(0,del/8) left_ del/2 \
+  then left_ del/6 up_ del/4 then up_ del/4 \
+  then up_ del/4 right_ del/6 then right_ del/2
+
+L4: inductor(down_ elen_*3/4 from (T1.P2,Grnd)-(0,del/3),W); rlabel(,"7t")
+Grnd2: ground(,T,E)
+ line from T1.M4Core1.end to (T1.M4Core1,L4)-(0,dimen_/4)
+ line from T1.M4Core2.end to (T1.M4Core2,L4)-(0,dimen_/4)
+ dot(at last [].S+(dotrad_*2,dotrad_*2),dotrad_/2)
+D4: diode(left_ elen_ from L4.start); rlabel(,,D4); dot
+ { capacitor(down_ to (Here,Grnd2),C+); llabel(,\shortstack[l]{$22\mu{}$F\\50V})
+   ground(,T,E) }
+ dot(at Here-(del,0)); resistor(down_ to (Here,Grnd2)); rlabel(,"$1$k")
+ ground(,T,E)
+Wc: U3b.C-(del,0)
+ line from D4.end to (Wc,D4.end) then up_ U3b.C.y-D4.end.y then to U3b.C
+
+L3: inductor(up_ T1.ht with .c at T1+(del*2/3,0),W); rlabel(,"3t")
+ dot(at (L3.end,last [].n)+(-dotrad_*2,dotrad_*2),dotrad_/2)
+ dot(at L3.end); dot(at L3.start)
+ line from T1.S2 right_ (L3.start.x-T1.S2.x)*2
+X2: dot
+ line down_ del/2; dot
+D5: parallel_(`Sep=del/2; reversed(`diode',down_ dimen_*2/3,S)',
+     `reversed(`diode',down_ dimen_*2/3,S)'); {"$D_5$" at D5.n above rjust}
+ heatsink(at D5.w-(del/4,0),,U); "HS" at last [].s below
+ dot(at D5.s); line down_ del/2
+Bm: dot
+Bo: dot(at L4.end+(0,del/7))
+ line to (Bm,Here) then up (Bm.y-Bo.y)/4
+ capacitor(up_ (Bm.y-Bo.y)/4)
+ { "$2.2$nF" ljust at last [].e "$250$V$_{\hbox{\scriptsize ac}}$" ljust \
+   "($2$)" ljust }
+ capacitor(up_ (Bm.y-Bo.y)/4); line to Bm
+ line from L3.start right_ del
+ capacitor(down_ distance(Here,Bm)*0.4); llabel(,,\shortstack[l]{$0.1$\\$\mu$F})
+ line down_ del/4; resistor(to (Here,Bm)); llabel(,10); dot
+ dot(at (Here.x+del/2,L3.end.y))
+ {capacitor(down_ to (Here,Bm),C+); {"\shortstack[r]{$680\mu$F\\ $10$V ($2$)}" \
+   at last [].n+(0,4bp__) above rjust}; dot }
+ dot(at Here+(del/2,0))
+ {capacitor(down_ to (Here,Bm),C+); dot }
+ dot(at (Here.x+del/2,L3.end.y))
+ {R150: resistor(down_ to (Here,Bm),); llabel(,150); dot }
+ { line to T1.S1 }
+ line right_ del/8
+L2: inductor(right_ dimen_*3/4,W,,M); llabel(,"$L_2$ $4.3\mu$H")
+ tline(right_ T1.ht/3,,del/6); {"bead" at last [].s below rjust}; Tm: dot
+ { tline(right_ T1.ht/3 from (last line.start,Bm),,del/6)
+   { "bead" at last [].n above rjust }; dot
+   line from Bm to last line.start }
+ { capacitor(down_ to (Here,Bm),C+); rlabel(,,\shortstack[r]{$680\mu$F\\$10$V})}
+ dot(at Here+(del/2,0))
+ { capacitor(down_ to (Here,Bm),C+); llabel(,,\shortstack[l]{$220\mu$F\\$10$V})
+   dot }
+ dot(at Here+(del,0))
+ { resistor(down_ dimen_*2/3); rlabel(,100)
+   U3a: diode(down_ dimen_*2/3); T3a: dot
+   { em_arrows(N,210,del/4) at U3a.c+(-del/4,0)
+     "$U_{3a}$" at last line.c+(-del/2,del/4)
+     spline dashed 3bp__ from U3a.end+(-del/10,del/8) right_ del/4 \
+      then up_ del/4 right_ del/6 then up_ del/4 left_ del/6 \
+      then left_ del/4 }
+   capacitor(down_ to (Here,Bm),C+); rlabel(,,"$3.3\mu$F"); dot
+   dot(at Here+(del/2,0))
+   U2: diode(up_ dimen_,Z); llabel(U_2); rlabel("TL$431$")
+   line to (Here,T3a); dot }
+ dot(at U2+(del/2,0))
+ capacitor(up_ (T3a.y-Here.y)/2); rlabel(,,"$0.1\mu$F")
+ resistor(up_ to (Here,T3a)); rlabel(,120)
+ { dot; line to (U3a,Here) }
+ resistor(to (Here,L2.end)); rlabel(,680); dot  
+ dot(at Here+(del*1.1,0))
+ { resistor(down_ R150.len/3); llabel(,"$2.49$k")
+   Pt: potentiometer(down_ R150.len/3,,,-del/4) with .Start at Here
+   llabel(,\shortstack[l]{$1$k\\set\\$V_{\hbox{\scriptsize out}}$})
+   adjust(at Pt.Start-(del/4,del/6))
+   line from U2.c to (Pt.T1.end,U2.c) then to Pt.T1.end
+   resistor(from Pt.End to (Pt.End,Bm)); llabel(,"$2.49$k"); dot }
+ dot(at Here+(del,0))
+ { resistor(down_ R150.len/2); llabel(,"$220$")
+  diode(down_ to (Here,Bm)); llabel(,,D_6)
+  { em_arrows(N,45,del/4) at last [].ne +(del/8,del/8)}; dot }
+ dot(at Here+(del*2/3,0)); {reversed(`diode',to (Here,Bm)); rlabel(D_7); dot}
+ dot(at Here+(del/2,0)); {capacitor(down_ to (Here,Bm));llabel("$0.1\mu$F");dot}
+Op: circle diam del/3 "$+$" at Here+(del*2/3,0); line from Op.w to Tm
+ "$5.0$V" rjust at Op.e+(0,-del/2) "$0$--$3$A" rjust
+Om: circle diam del/3 "$-$" at (Op,Bm); line from Om.w to (Tm,Bm)
+  dot(at Bd1.start)
+Pwr: [
+  DB: [ W: dot(at (0,0)); N: dot(at (del/2,del/2));
+        S: dot(at (del/2,-del/2)); E: dot(at (del,0))
+        diode(from W to N); diode(from W to S)
+        diode(from N to E); diode(from S to E) ]
+   "$D_1$" at DB.N ljust above
+   dot(at DB.E+(del/4,0)); {capacitor(down_ del*3/4,C+); G2: Here; ground(,T,E)}
+   { "$47\mu$F" at Here+(0,del/2) ljust "$400$V" ljust }
+   line from DB.W left_ del/4; continue to (Here,G2); ground(,T,E)
+  L1: transformer(right_ dimen_,,,W) at DB.W+(-del,0)
+   {"$L_1$" at last [].n above }
+   line from DB.N up_   del/8; continue to (L1.S2,Here) then to L1.S2
+   line from DB.S down_ del/8; continue to (L1.P2,Here) then to L1.P2
+  Pair: [ N: dot; resistor(down_ (DB.ht+del/4)/2); C: Here
+    resistor(down_ (DB.ht+del/4)/2); S: dot ] with .C at L1+(-del*3/4,0)
+   "$270$k ($2$)" at Pair.s below
+   dot(at Pair.N+(-del/2,0))
+   { capacitor(down_ to (Here,Pair.S))
+     rlabel(,\shortstack[r]{$0.1\mu$F\\ $275$V$_{\hbox{\scriptsize ac}}$}); dot}
+   { line to (L1.S1,Here) then to L1.S1 }
+   fuse(left_ del,D); rlabel(,"$3.5$A")
+  H: box wid del/3 ht del/4; N: box same at (H,Pair.S)
+   "$H$" at H.n above; "$N$" at N.s below
+   line from N.e to (L1.P1,N.e) then to L1.P1
+ ] with .N.w at (Wc.x,Bd1.start.y+del*3/4)
+ line from Pwr.DB.E right_ del/2 then down_ del
+ continue to (Bd1.start,Here) then to Bd1.start
+
+iflatex(`latexcommand(})')
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/SPS.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/extras/Traintracks.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Traintracks.m4	                        (rev 0)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Traintracks.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -0,0 +1,101 @@
+.PS
+# Traintracks.m4
+# https://tex.stackexchange.com/questions/729226/implementing-train-tracks-in-latex
+gen_init
+define(`robustcode_',1)
+
+divert(-1)
+########################################################################
+                       `Default sizes'
+  define(`sectionlen',linewid)
+  define(`railgauge',(linewid/5))
+  define(`railthick',`1.5')
+  define(`buttlen',`(railthick bp__ * 3)')
+  define(`sleeperthick',`0.4')
+  define(`buttthick',`(sleeperthick*2)')
+   
+                       `straight(position,direction,keys)
+                        keys: length=expr; (default sectionlen)
+                              gauge=expr; (default railgauge)
+                              tiecount=expr; (number of sleepers)
+                              tie=attributes;
+                              rail=attributes;'
+define(`straight',`ifelse(`$1',,,move to `$1';) ifelse(`$2',,,`setdir_(`$2')')
+  pushkeys_(`$3',
+   `length:sectionlen:N; gauge:railgauge; rail::N; tiecount:3:; tie::N;')dnl
+  for straighti=1 to m4tiecount do {
+   {line from rvec_((straighti-1/2)*m4length/m4tiecount, m4gauge/2+buttlen/2) \
+         to   rvec_((straighti-1/2)*m4length/m4tiecount,-m4gauge/2-buttlen/2) \
+         thick sleeperthick m4tie }}
+  {strail(m4gauge/2)}; {strail(-m4gauge/2)}; move to rvec_(m4length,0)dnl
+  popdef(`m4tie',`m4tiecount',`m4length',`m4gauge',`m4rail') ')
+define(`strail',
+ `{line from rvec_(0,`$1') to rvec_(sectionlen,`$1') thick railthick m4rail
+   line from rvec_(0,-buttlen/2) to rvec_(0,buttlen/2) thick buttthick}
+  {line from rvec_(0,`$1'-buttlen/2) to rvec_(0,`$1'+buttlen/2) \
+     thick buttthick m4rail} ')
+
+                       `curve(position,direction,L|R,keys)
+                        keys: radius=expr; (default sectionlen*2)
+                              gauge=expr; (default railgauge)
+                              tiecount=expr; (number of sleepers)
+                              tie=attributes;
+                              rail=attributes;
+                        Calls to robust rvec_r instead of rvec_ are for
+                        use in pic loops'
+define(`curve',`ifelse(`$1',,,move to `$1';) ifelse(`$2',,,`setdir_(`$2')')
+  pushkeys_(`$4',
+   `radius:sectionlen*2; gauge:railgauge; rail::N; tiecount:3:; tie::N;')dnl
+  pushdef(`m4pm',`ifelse(`$3',,+,`$3',L,+,-)')dnl
+  M4C: rvec_r(0,m4pm m4radius) # robust rvec
+  m4rs = rp_ang*rtod_-(m4pm 90); m4rf = m4rs m4pm 30
+  for curvei=1 to m4tiecount do {{ line \
+    from M4C+(Rect_(m4radius+m4gauge/2+buttlen/2,\
+      m4rs+(curvei-1/2)*(m4rf-m4rs)/m4tiecount))\
+    to   M4C+(Rect_(m4radius-m4gauge/2-buttlen/2,\
+      m4rs+(curvei-1/2)*(m4rf-m4rs)/m4tiecount)) thick sleeperthick m4tie }}
+  move to M4C+(Rect_(m4radius,m4rs))
+  {crail(M4C,m4radius-(m4pm m4gauge/2), m4gauge/2,m4pm)}
+  {crail(M4C,m4radius+(m4pm m4gauge/2),-m4gauge/2,m4pm)}
+  move to M4C+(Rect_(m4radius,m4rf)); setdir_(rp_ang*rtod_ m4pm 30)
+  popdef(`m4tie',`m4tiecount',`m4rail',`m4gauge',`m4radius',`m4pm') ')
+
+define(`crail',       #`crail(center,rad,offset,+|-)'
+ `move to rvec_r(0,`$3'); crbuttf = buttlen/2/(`$2')
+  {arc ifelse(`$4',-,cw) to rvec_r((`$2')/2,`$4'((1-sqrt(3)/2)*(`$2'))) \
+     with .c at `$1' thick railthick m4rail
+   line from (-crbuttf between Here and `$1') \
+        to   ( crbuttf between Here and `$1') thick buttthick}
+  {line from (-crbuttf between Here and `$1') \
+        to   ( crbuttf between Here and `$1') thick buttthick} ')
+
+########################################################################
+divert(0)dnl
+
+[ straight
+  {curve; curve(,,R); straight; curve(,,R); curve; straight}
+  for i=1 to 5 do { straight } ]
+
+[ straight
+  for i=1 to 6 do { curve(,,R) }
+  straight
+ {T: Here
+  curve(,,R,rail=outlined "red"); curve(,,,rail=outlined "red")
+  straight
+  crad = sectionlen*2-(Here.y-T.y)
+  for i=1 to 6 do { curve(,,R,radius=crad) }
+  straight
+  define rgbpurp { rgbstring(0.5,0,1) }
+  { curve(,,, rail=outlined rgbpurp); curve(,,R, rail=outlined rgbpurp)
+    for i=1 to 5 do { straight(,180) } }
+  for i=1 to 3 do { straight(,0) }
+  for i=1 to 6 do { curve(,,R,radius=crad) }
+  for i=1 to 3 do { straight } }
+  for i=1 to 5 do { straight } ] with .nw at last [].sw+(0,-0.2)
+
+[ for dir=90 to 570 by 240 do {
+    curve(,dir,,tiecount=5;tie=outlined "gray" thick 2.5)
+    curve(,   ,,tiecount=5;tie=outlined "gray" thick 2.5) }
+  ] with .nw at 1st [].ne+(0.2,0)
+
+.PE


Property changes on: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/Traintracks.m4
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+LF
\ No newline at end of property
Deleted: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/ex02.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/ex02.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/ex02.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,55 +0,0 @@
-.PS
-# ex02.m4
-cct_init
-linewid = linewid*4/5
-
-[
-  [ 
-  for angl=0 to 315 by 45 do {
-     Point_(angl)
-     opamp(to rvec_(linewid*3/2,0)) with .Out at (0,0) }
-     ]
- resistor(down_ dimen_ from last [].s)
- diode(down_ dimen_*2/3,LE) 
- diode(down_ dimen_*2/3,LER) 
- ground(,T)
-]
-
-[
- define(`elen_',`dimen_*3/2')          # restore defaults
- define(`sourcerad_',`dimen_*0.25')
- leng = elen_
- define(`fromcentre',`move to C+(-elen_/2,-elen_*cosd(15)/(2*sind(15)))')
- C: dot
-  { fromcentre()
-     for i = 0 to 359 by 30 do {
-        Point_(i); inductor 
-        }
-     }
-  define(`elen_',leng*0.8)
-  { fromcentre()
-     for i=0 to 359 by 30 do {
-        Point_(i); inductor(,W) 
-        }
-     }
-  define(`elen_',leng*0.6)
-  { fromcentre()
-     for i=0 to 359 by 30 do {
-        Point_(i); resistor 
-        }
-     }
-  define(`elen_',leng*0.4)
-  { fromcentre()
-     for i=0 to 359 by 30 do {
-        Point_(i); capacitor(,C)
-        }
-     }
-  define(`elen_',leng*0.2)
-  { fromcentre()
-     for i=0 to 359 by 30 do {
-        Point_(i); diode 
-        }
-     }
-  ] with .sw at last [].se+(linewid,0)
-
-.PE

Deleted: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/ex17.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/ex17.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/extras/ex17.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,43 +0,0 @@
-.PS
-# ex17.m4
-cct_init
-
-[
-nrows = 4
-ncols = 9
-linewid = linewid*0.6          # everything smaller
-define(`elen_',linewid)        # shorter default length
-
-  for j = 1 to nrows do {
-    { for i = 1 to ncols do {
-        Point_(-120) resistor
-        Point_(   0) inductor
-        Point_( 120) capacitor
-        if i < ncols then {Point_(0) diode} }
-        }
-    Point_(-120) move to rvec_(elen_,0)
-    { for i = 1 to ncols do {
-        Point_(-60) capacitor
-        Point_( 60) resistor }
-        }
-    Point_(-60) move to rvec_(elen_,0)
-    }
-  Point_(0) for i = 1 to ncols-1 do { inductor }
-]
-
-[                              # an exercise of the `parallel_' macro:
-  down_                        # for labelling
-  Point_(-80)                  # skew current direction
-
-  parallel_(Sep=1.75*dimen_;
-    parallel_(
-     `capacitor(,C); rlabel(,,C_2)',
-     `resistor; rlabel(,R_2)' ),
-    parallel_(
-     `resistor; rlabel(,R_1); move to rvec_(-dimen_/5,0)
-                 inductor(,W); rlabel(,L_1)',
-     `reversed(`source',to rvec_(elen_,0),V,sourcerad_*2.5); rlabel(,v_s)' )
-    )
-
-] with .sw at last [].se+(elen_,0)
-.PE

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/files.tex
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/files.tex	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/files.tex	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,5 +1,5 @@
-% The format of this file must be strictly retained to avoid problems
-% in the generation of examples.html
+% The format of this file must be strictly retained (including long lines)
+% to avoid problems in the generation of examples.html
 \bfig{
     \centerline{\getpic{quick}}
     \caption{The quick-start example from the manual
@@ -254,6 +254,25 @@
   }
 
 \bfig{
+    \centerline{\getpic{pwrsupply}}
+    \caption{An elementary power supply circuit with colored elements,
+      and a multiple-winding transformer with 3-phase rectifier
+    \src{pwrsupply.m4}.}
+  }
+
+\bfig{
+    \centerline{\getpic{PS50}}
+    \caption{An unregulated 50V power supply
+    \src{PS50.m4}.}
+  }
+
+\bfig{
+    \centerline{\getpic{Reg723}}
+    \caption{A 723 regulator circuit with a heat sink
+    \src{Reg723.m4}.}
+  }
+
+\bfig{
     \centerline{\getpic{Mixer}}
     \caption{A balanced mixer, using {\tt mosfet} and a custom transformer
     \src{Mixer.m4}.}
@@ -311,13 +330,6 @@
   }
 
 \bfig{
-    \centerline{\getpic{pwrsupply}}
-    \caption{An elementary power supply circuit with colored elements,
-      and a multiple-winding transformer with 3-phase rectifier
-    \src{pwrsupply.m4}.}
-  }
-
-\bfig{
     \centerline{\getpic{TTLnand}}
     \caption{ TTL NAND gate illustrating a transistor with multiple emitters
     \src{TTLnand.m4}.}
@@ -423,7 +435,7 @@
     \centerline{\getpic{Tubediags}}
     \caption{Electron-tube diagrams: a few bottom-view base diagrams,
       a generic triode test circuit, and a 25-watt audio amplifier adapted
-      from F.\ Langford-Smith, {\it Radiotron Designer's Handbook,} fourth
+      from F.~Langford-Smith, {\it Radiotron Designer's Handbook,} fourth
       edition, Harrison, NJ: Radio Corporation of America, 1952
     \src{Tubediags.m4}.}
   }
@@ -519,7 +531,7 @@
 
 \ifmpost\else\ifpostscript\else\bfig{
     \centerline{\getpic{EEP}}
-    \caption{A test of experimental single-line diagram macros
+    \caption{A test of single-line diagram macros
     \src{EEP.m4}.}
   }\fi\fi
 
@@ -568,8 +580,7 @@
     \caption{Embellishments: the top row illustrates 
      {\tt shadowed(box|circle|ellipse|line,[at {\sl position}],{\sl keys})}
      and the second row
-     {\tt ColoredV(box|circle|ellipse,({\sl r,g,b})|(({\sl colorseq})),
-       {\sl attributes})}
+     {\tt ColoredV(box|circle|ellipse,({\sl r,g,b})|(({\sl colorseq})),{\sl attributes})}
     \src{Shadowed.m4}.}
   }\fi\fi
 

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ics.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ics.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/ics.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -318,13 +318,16 @@
                             keys: pinsep=expr; (0.25)
                                   pincount=expr; (8 per side)
                                   hght=expr; ((pincount+1)*pinsep)
-                                  wdth=expr; (0.6*hght)'
-                            `8 pins per side; pin labels
+                                  wdth=expr; (0.6*hght)
+                                  box=attributes; (shaded light blue)
+                            8 pins per side; pin labels
                              VIN, SHDN, CSS, BURST_EN, VFB, VC, SYNC, FSET,
                              SGND, SENSEM, SENSEP, PGND, VCC, SW, TG, BOOST' 
 define(`LT3724',`[ pushkeys_(`$1',`pinsep:0.25; pincount:8;
-   hght:(m4`'m4pincount+1)*m4`'pinsep; wdth:0.6*m4`'hght')dnl
-  Chip: box wid wdth ht hght shaded rgbstring(.94,.68,.76) "`LT3724'"
+   hght:(m4`'pincount+1)*m4`'pinsep; wdth:0.6*m4`'hght;
+   box:shaded LTtmpcolr:N')dnl
+   define LTtmpcolr {rgbstring(0.9,0.96,1)}
+  Chip: box wid m4wdth ht m4hght m4box "`LT3724'" ; undefine LTtmpcolr
   foreach_(`m4hx',`ifelse(m4hx,nil,,
    `patsubst(m4hx,^[^:]*:): Chip.nw-(0,m4Lx*hght/(m4pincount+1))
    "patsubst(m4hx,:.*)" ljust at Chip.nw-(0,m4Lx*hght/(m4pincount+1))')',
@@ -337,9 +340,8 @@
    "patsubst(m4hx,:.*)" rjust at Chip.se+(0,m4Lx*hght/(m4pincount+1))')',
   SGND, SENSE$^-$:SENSEM, SENSE$^+$:SENSEP, PGND,
   V$_{\hbox{\tiny CC}}$:VCC, SW, TG, BOOST)
-  `$2' popdef(`m4pinsep',`m4pincount',`m4hght',`m4wdth') ]')
+  `$2' popdef(`m4pinsep',`m4pincount',`m4hght',`m4wdth',`m4box') ]')
 
-
                            `Here is another way to draw an IC and
                             label its pins:'
                            `LT3757( keys ) IC in a [] block

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	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/mf/cct.mf	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,5 +1,5 @@
 % cct.mf, generated by Mfpic, v1.10 2012/12/03,
-% from TeX source "font" on 2024/11/29 at 11:42
+% from TeX source "font" on 2025/03/30 at 12:31
 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/xfig/xfiglib.fig
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/xfig/xfiglib.fig	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/examples/xfig/xfiglib.fig	2025-04-01 20:02:45 UTC (rev 74818)
@@ -206,8 +206,10 @@
 6  1425 825 1875 1425
 2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 2
 	 1650 1425 1650 1305
+6  1470 945 1830 1305
 2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 5
 	 1650 1305 1470 1125 1650 945 1830 1125 1650 1305
+-6
 2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 2
 	 1650 945 1650 825
 -6
@@ -214,11 +216,13 @@
 6  2025 825 2475 1425
 2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 2
 	 2250 1425 2250 1305
+6  2070 945 2430 1305
 2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 5
 	 2250 1305 2070 1125 2250 945 2430 1125 2250 1305
 2 1 0 1 0 -1 0 -1 -1 0 0 0 0 1 0 2
 	1 1 0.888889 60 120
 	 2250 1260 2250 990
+-6
 2 1 0 1 0 -1 0 -1 -1 0 0 0 0 0 0 2
 	 2250 945 2250 825
 -6

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/gpic.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/gpic.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/gpic.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,7 +1,7 @@
 divert(-1)
   gpic.m4                       Initialization for gpic.
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/lib3D.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -3,7 +3,7 @@
                                 operations on argument triples representing
                                 3D vectors or colors.
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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/libSLD.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/libSLD.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/libSLD.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -2,7 +2,7 @@
  
   libSLD.m4                    Draft macros for single-line diagram elements
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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/libcct.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/libcct.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/libcct.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,7 +1,7 @@
 divert(-1)
   libcct.m4
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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 *
@@ -28,12 +28,12 @@
 
    # Visible lines:
    { line to rvec_(rp_len/2-m4h/2,0)
-     (element body lines)
+   # The body drawn within a block:
+     {[ element body lines ] with .internal position at Here }
      line to rvec_(rp_len/2-m4h/2,0) }
 
-   # The invisible body block:
+   # Some elements overlay a block to define the body size.
    {[box invis ht_ m4v wid_ m4h ] at rvec_(rp_len/2,0)}
-   # Some elements omit this block but draw the visible lines within a block.
 
    # The final invisible line:
    line to rvec_(rp_len,0) invis
@@ -43,8 +43,8 @@
 NON-TWO-TERMINAL ELEMENTS are usually constructed within a block:
 
    set dimension parameters
-   [ set size and direction from the initial linespec argument
-     set orientation
+   [ set size and direction from the initial linespec argument if any
+     set orientation (left or right)
      draw internal elements
      define internal locations
      ]
@@ -71,7 +71,7 @@
    expanded just before exit from the [] block to allow custom additions
    to the elements.
 
-   Subcomponents of a circuit element are drawn selectively according
+   Subcomponents of some circuit elements are drawn selectively according
    to a "dna_" string and a sequence of calls to sc_draw(`dna_',arg2,arg3,arg4).
    If the second argument of sc_draw is a substring of the first, it is deleted
    from the first and the third argument is expanded, otherwise the fourth
@@ -215,6 +215,7 @@
                                         H: squared
                                         N: IEEE (default)
                                         B: not burnable
+                                        T: thermistor
                                         V: varistor variant
                                         R: to right of drawing direction'
 define(`resistor',
@@ -222,8 +223,8 @@
  define(`m4type',ifelse(`$3',,N,`$3',R,N,`$3')`')dnl
  define(`m4neg',sc_draw(`m4type',R,-))dnl
  define(`m4cycles',`ifelse(`$2',,3,(`$2'))')dnl
- define(`m4cyclewid',`ifelse(`$4',,(dimen_/6),`($4)')')dnl
- define(`m4lgth',`(m4cycles*m4cyclewid)')dnl
+ define(`m4cwid',`ifelse(`$4',,(dimen_/6),`($4)')')dnl
+ define(`m4lgth',`(m4cycles*m4cwid)')dnl
  ifelse(
   `$2',E,  # This is obsolete but kept for now
    `ebox(`$1',shift(shift($@)))',
@@ -231,7 +232,7 @@
   `define(`m4nN',`eval(2*m4cycles)')dnl  Default resistor:
    define(`m4v',2)dnl
    if m4lgth > rp_len then { eleminit_(to rvec_(m4lgth,0)) }
-   tr_xy_init(last line.c, m4cyclewid/4, m4neg)dnl
+   tr_xy_init(last line.c, m4cwid/4, m4neg)dnl
    { line from last line.start to tr_xy(-m4nN,0)\
      for_(2,m4nN,2,
        `then to tr_xy(eval(2*m4x-3-m4nN), m4v) \
@@ -238,13 +239,13 @@
         then to tr_xy(eval(2*m4x-1-m4nN),-m4v) \')dnl
         then to tr_xy(m4nN, 0) \
         then to last line.end   # This could be replaced for obtuse directions:
-     [box invis ht_ m4cyclewid*m4v/2 wid_ m4cyclewid*m4nN/2] at 2nd last line.c
+     [box invis ht_ m4cwid*m4v/2 wid_ m4cwid*m4nN/2] at 2nd last line.c
      }',
  m4type,Q,
   `define(`m4nQ',`eval(2*m4cycles)') define(`m4v',2)dnl
-   if m4cyclewid*m4nQ/2 > rp_len then {
-     eleminit_(to rvec_(m4cyclewid*m4nQ/2,0)) }
-   tr_xy_init(last line.c, m4cyclewid/4, m4neg)dnl
+   if m4cwid*m4nQ/2 > rp_len then {
+     eleminit_(to rvec_(m4cwid*m4nQ/2,0)) }
+   tr_xy_init(last line.c, m4cwid/4, m4neg)dnl
    { line from last line.start to tr_xy(-m4nQ,0)\
      for_(2,m4nQ,2,
       `then to tr_xy(eval(2*m4x-2-m4nQ), m4v*2) \
@@ -251,7 +252,7 @@
        then to tr_xy(eval(2*m4x-m4nQ),0) \')dnl
        then to tr_xy(m4nQ, 0) \
        then to last line.end
-     [box invis ht_ m4cyclewid*m4v/2 wid_ m4cyclewid*m4nQ/2] \
+     [box invis ht_ m4cwid*m4v/2 wid_ m4cwid*m4nQ/2] \
        at 2nd last line.c + ta_xy(0,m4v)
      }',
  m4type,ES,
@@ -266,7 +267,7 @@
      line from rvec_(m4cwd,0) to rvec_(rp_len/2+m4cwd/2,0)}',
  m4type,H,
   `define(`m4nH',`eval(2*m4cycles-1)')dnl
-   define(`m4hh',`m4cyclewid*6/5/4') define(`m4v',7/3)dnl
+   define(`m4hh',`m4cwid*6/5/4') define(`m4v',7/3)dnl
    if m4hh*m4nH/2 > rp_len then { eleminit_(to rvec_(m4hh*m4nH/2,0)) }
    tr_xy_init(last line.c, m4hh, m4neg)dnl
    { line from last line.start to tr_xy(-m4nH,0)\
@@ -280,6 +281,16 @@
      [move from tr_xy(-m4nH,0) to tr_xy(m4nH,0) \
        then to tr_xy(m4nH,m4v) then to tr_xy(-m4nH,m4v)] \
        at 2nd last line.c+vec_(0,m4neg`'m4hh*m4v/2) }',
+ m4type,T,
+  `resistor(`$1',`$2',sc_draw(`m4type',T),`$4')
+   [ tl=m4lgth/2+m4cwid
+     spline ifdpic(ctension_) from rvec_(ifdpic(0,-tl*3/40),m4cwid*4/3)\
+     to rvec_( tl/3,m4cwid*4/3) then to rvec_( tl,m4cwid*8/9) \
+     then to rvec_( tl,-m4cwid*8/9) then to rvec_( tl/3,-m4cwid*4/3) \
+     then to rvec_(-tl/3,-m4cwid*4/3) then to rvec_(-tl,-m4cwid*8/9) \
+     then to rvec_(-tl,m4cwid*8/9) then to rvec_(-tl/3,m4cwid*4/3) \
+     then to rvec_(ifdpic(0,tl*3/40),m4cwid*4/3) `$4'
+     ] with .c at last line.c ',
  m4type,V,
   `define(`m4ht',`(m4lgth/2)')dnl
    {line to rvec_(max(0,rp_len/2-m4lgth/2),0)
@@ -294,7 +305,7 @@
    [lbox(m4lbwd+lthick*4,m4lbht+lthick*4,thick linethick/2)] with .c at M4LBC',
  m4type,AC,
   `ebox(`$1')
-   { ACsymbol(at last [],m4cyclewid*3.5/4,m4cyclewid/2,R)
+   { ACsymbol(at last [],m4cwid*3.5/4,m4cwid/2,R)
      [] wid 2nd last [].wid ht 2nd last [].ht at 2nd last [] } ')
  ifelse(m4type,E,`ebox(`$1')',
   `line invis from M4S to M4E') ')
@@ -558,7 +569,7 @@
   m4xpand(m4drt`'_)
  `$6' ]')
 define(`m4trdot',`{`$6'dot(at (0.5 between `$1' and `$2') \
-      +vec_(`$3'(`$4'+m4hlw)/2,`$5'dimen_/16), dotrad_/2)}')
+      +vec_(`$3'((`$4')/2+m4hlw),`$5'dimen_/16), dotrad_/2)}')
 
                                 `delay( linespec, width, attributes or keys )
                                  keys:
@@ -623,23 +634,33 @@
    line from rvec_(m4wd,0) to rvec_(rp_len/2+m4wd/2,0) }
  line to rvec_(rp_len,0) invis ')
 
-                  `source( linespec,V|v|tv|I|i|ti|ii|AC|B|F|G|H|Q|L|N|
-                                    P|R|S[C[r]|E[r]]]|T|X|U|other,
-                     diameter, R, attributes, body name)
+                  `source( linespec, chars,
+                       diameter, R, attributes, body name)
+                    chars:
+                     AC = AC source;
+                     B = bulb;
+                     F = fluorescent;
+                     G = generator;
+                     H = step function;
+                     I = current source;
+                     i = alternate current source;
+                     ii = double arrowhead current source;
+                     ti = truncated-bar current source;
+                     dci = DC current source;
+                     L = lamp;
+                     N = neon; NA = neon 2; NB = neon 3;
+                     P = pulse;
+                     Q = charge;
+                     R = ramp;
+                     S[C[r]|E[r]] = sinusoid;
+                       SC = quarter arc; SE = arc; r = right orientation;
+                     T = triangle;
+                     U = square-wave;
                      V = voltage source;
                      v = alternate voltage source;
-                     tv = truncated-bar alternate voltage source;
-                     tv = truncated bar alternate voltage source;
-                     i = alternate current source;
-                     ti = truncated-bar alternate current source;
-                     I = current source;
-                     ii = double arrowhead current source;
-                     AC = AC source; B = bulb; F = fluorescent; G =
-                     generator; H = step function; L = lamp;
-                     N = neon; NA = neon 2; NB = neon 3; 
-                     P = pulse; Q = charge; R = ramp; r = right
-                     orientation; S = sinusoid; SC = quarter arc; SE =
-                     arc; T = triangle; U = square-wave; X = interior X;
+                     tv = truncated bar voltage source;
+                     dcv = DC voltage source;
+                     X = interior X;
                      other = custom interior label or waveform;
                      arg 4: R = reversed polarity; 
                      arg 5 modifies the circle with e.g., color or fill
@@ -653,7 +674,7 @@
  `$2',Q,`m4_sourceGQ(`$6',$@)',
  `{ line to rvec_(rp_len/2-m4h,0)
     move to rvec_(m4h,0)
-  { Src_C: circle rad m4h `$5' at Here }
+  { Src_C: circle rad m4h ifelse(`$2',dci,invis) `$5' at Here }
   ifelse(`$2',,,
   `$2',F,`{ line from rvec_(-m4h,0) \
           to rvec_(-m4h/2,0)}
@@ -665,6 +686,13 @@
           to rvec_(m4h/2,0)}',
   `$2',I,`{arrow from rvec_(-m4h*3/4,0) \
           to rvec_(m4h*3/4,0)}',
+  `$2',dci,`{arrow from rvec_(-m4h*3/4,0) \
+          to rvec_(m4h*3/4,0)}
+          ifdef(`dcigapangle_',,`define(`dcigapangle_',20)')dnl
+          {arc from Src_C+vec_(Rect_(m4h,270+dcigapangle_/2)) \
+            to Src_C+(Rect_(m4h,90-dcigapangle_/2)) with .c at Src_C}
+          {arc from Src_C+vec_(Rect_(m4h,90+dcigapangle_/2)) \
+            to Src_C+(Rect_(m4h,270-dcigapangle_/2)) with .c at Src_C} ',
   `$2',ti,`{line thick 2*linethick from rvec_(0,-m4h) \
           to rvec_(0,m4h) chop m4h/4}',
   `$2',ii,`{line from rvec_(-m4h,0) \
@@ -704,6 +732,8 @@
           to rvec_(m4h/5,0)
           { line to  rvec_(0,m4h) with .c at Here } }
           { dot(at rvec_(-m4h/2,-m4h/2)) } ',
+  `$2',dcv,`{ line to  rvec_(0,m4h) with .c at rvec_(-m4h/5,0) }
+          { line to  rvec_(0,m4h) with .c at rvec_(m4h/5,0) } ',
   `$2',NB,`{ line from rvec_(-m4h,0) \
           to rvec_(-m4h/2,0)
           { line to  rvec_(0,m4h) with .c at Here } }
@@ -723,8 +753,8 @@
                round }')
              {line from rvec_(m4h/2,0) \
           to rvec_(m4h,0)}}',
-  `$2',V,`{"ifsvg(-,`$_-$')" at rvec_(-m4h/2,0) ifsvg(+(0,textht/10))}
-          {"ifsvg(svg_small(+),`$_+$')" \
+  `$2',V,`{"ifsvg(-,`\scriptsize$-$')" at rvec_(-m4h/2,0) ifsvg(+(0,textht/10))}
+          {"ifsvg(svg_small(+),`\scriptsize$+$')" \
               at rvec_( m4h/2,0) ifsvg(+(0,textht/10))}',
   `$2',tv,`{line thick 2*linethick from rvec_(-m4h,0) \
           to rvec_(m4h,0) chop m4h/4}',
@@ -815,43 +845,47 @@
   { [box invis ht_ m4r*2 wid_ (m4r+m4w)*2] at last circle.c }
   line to rvec_(rp_len,0) invis ')
 
-                                `consource( linespec ,V|I|v|i|P, R, attributes )
+                                `consource( linespec ,V|I|tv|v|ti|i|P, R,
+                                   attributes )
                                  Controlled source
                                  Arg3:
                                   V= voltage
                                   I= current
                                   v= voltage type 2
+                                  tv= voltage type 3
                                   i= current type 2
+                                  ti= current type 3
                                   P= proximity sensor
                                  arg 4 can be used to modify the body with e.g.
-                                   color or fill'
+                                   color, fill, or ;internal symbols
+                                   e.g. consource(,,,; "S" at C)'
 define(`consource',`ifelse(`$3',R,
  `reversed(`consource',`$1',`$2',,shift(shift(shift($@))))',
  `eleminit_(`$1')
   {line to rvec_(rp_len/2-csdim_,0)
-   M4CSN: rvec_(csdim_,csdim_)
-   M4CSS: rvec_(csdim_,-csdim_)
-   M4CSE: rvec_(2*csdim_,0)
-   M4CSW: Here 
-   {line to M4CSN then to M4CSE then to M4CSS then to Here `$4'}
-   ifelse(`$2',I,
-    `{arrow from rvec_(csdim_/4,0) \
-          to rvec_(csdim_*7/4,0)}',
-   `$2',ti,
-    `{line thick 2*linethick from M4CSN to M4CSS chop csdim_/4}',
-   `$2',i,
-    `{line from M4CSN to M4CSS}',
-   `$2',V,
-    `{"iflatex(`$-$',-)" at rvec_(csdim_*0.5,0) ifsvg(+(0,textht/10))}
-     {"iflatex(`$+$',+)" at rvec_(csdim_*1.5,0) ifsvg(+(0,textht/10))}',
-   `$2',tv,
-    `{line thick 2*linethick to M4CSE chop csdim_/4} ',
-   `$2',v,
-    `{line to M4CSE} ',
-   `$2',P,
-    `{ Proxim(2*csdim_) at rvec_(csdim_,0) }')
-   line from M4CSE to rvec_(rp_len/2+csdim_,0) }
-  {[box invis ht_ 2*csdim_ wid_ 2*csdim_] at rvec_(rp_len/2,0)}
+    {[ N: rvec_(csdim_,csdim_)
+       S: rvec_(csdim_,-csdim_)
+       E: rvec_(2*csdim_,0)
+       W: Here; C: rvec_(csdim_,0) 
+     {line to N then to E then to S then to W `$4'}
+     ifelse(`$2',I,
+      `{arrow to E chop csdim_/4}',
+     `$2',ti,
+      `{line thick 2*linethick from N to S chop csdim_/4}',
+     `$2',i,
+      `{line from N to S}',
+     `$2',V,
+      `{"iflatex(`\scriptsize$-$',-)" \
+        at rvec_(csdim_*0.5,0) ifsvg(+(0,textht/10))}
+       {"iflatex(`\scriptsize$+$',+)" \
+        at rvec_(csdim_*1.5,0) ifsvg(+(0,textht/10))}',
+     `$2',tv,
+      `{line thick 2*linethick to E chop csdim_/4} ',
+     `$2',v,
+      `{line to E} ',
+     `$2',P,
+      `{ Proxim(2*csdim_) at rvec_(csdim_,0) }') ] with .W at Here}
+    line from last [].E to rvec_(rp_len/2+csdim_,0)}
   line to rvec_(rp_len,0) invis ')')
 
                   `geiger( linespec, r, diameter, R, attributes, body name)
@@ -994,8 +1028,10 @@
    popdef(`m4wd',`m4d',`m4ht',`m4fusetype')dnl
    line to rvec_(rp_len,0) invis ')
 
-                                `arrester( linespec, [G|E|S][D[L|R]],
-                                   len[:arrowhead ht], ht[:arrowhead wid],
+                                `arrester( linespec,
+                                   [chars][D[L|R]],
+                                   body len[:arrowhead ht],
+                                   body ht[:arrowhead wid],
                                    attributes )
                                  arg2 chars:
                                    G= spark gap (default)
@@ -1019,42 +1055,49 @@
   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(`$4',arrowwid*4/3)')dnl
-  define(`m4wd',
-   `ifinstr(m4rdna,C,`m4Leftstr(`$3',dimen_/3)',
+  define(`m4aht',`(m4Rightstr(`$3',arrowht*2/3))')dnl
+  define(`m4awd',`(m4Rightstr(`$4',
+    ifelse(m4rdna,g,dotrad_*2,m4rdna,M,dotrad_*2,arrowwid*4/3)))')dnl
+  define(`m4wd',`(ifinstr(        dnl body length
+    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
+    `m4Leftstr(`$3',dimen_/2)'))')dnl
+  define(`m4ht',`(ifinstr(        dnl body height
+    Loopover_(`Z',`ifinstr(m4rdna,Z,T)',C,A,s),T,`m4Leftstr(`$4',dimen_/4)',
+    m4rdna,F,`m4Leftstr(`$4',dimen_/3)',
+    `m4Leftstr(`$4',dimen_/5)'))')dnl
   ifinstr(`$2',D,
    `[ define(`m4LL',m4rL)dnl
       ifinstr(m4rdna,S,
-       `R: arrester(ifelse(`$1',,`to rvec_(dimen_,0)'),m4rdna,shift(shift($@)))
+       `R: arrester(ifelse(`$1',,`to rvec_(m4wd*2,0)',`$1'),m4rdna,
+          shift(shift($@)))
         Gb: line from R.c+vec_(0,m4LL m4ht/2) to R.c+vec_(0,m4LL (-m4ht*3/2))
         A: R.start; B: R.end; C: R.c; G: Here ',
       m4rdna,E,
-       `R: arrester(ifelse(`$1',,`to rvec_(dimen_,0)'),m4rdna,shift(shift($@)))
+       `R: arrester(ifelse(`$1',,`to rvec_(m4wd*8/5,0)',`$1'),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 ',
-      `M4ErrorMsg(`D argument of Arrester() applies to types S, E only!') ') ]',
-   `eleminit_(`$1',elen_)
+      `M4ErrorMsg(`D argument of Arrester() applies to types S, E only!') ')
+      `$6' ]',
+   `eleminit_(`$1',elen_)           dnl 2-terminal elements:
     {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}
+    ifinstr(m4rdna,G,`
+      {sarrow(to rvec_(m4aht,0),\
+        wdth=m4awd;lgth=m4aht;head=shaded "black" `$5';)}
       move to rvec_(m4wd,0)
-      arrow to rvec_(-m4aht,0) wid m4awd ht m4aht',
+      sarrow(to rvec_(-m4aht,0),\
+        wdth=m4awd;lgth=m4aht;head=shaded "black" `$5';)',
     m4rdna,g,
-     `{dot(at rvec_(dotrad_,0))}; dot(at rvec_(m4wd-dotrad_,0))',
+     `{dot(at rvec_(m4awd/2,0),rad=m4awd/2;circle=fill_(0) `$5')}
+      dot(at rvec_(m4wd-m4awd/2,0),rad=m4awd/2;circle=fill_(0) `$5')',
     m4rdna,M,
-     `{dot(at rvec_(dotrad_,0))}
-      {dot(at rvec_(m4wd/2,0))};  dot(at rvec_(m4wd-dotrad_,0))',
+     `{dot(at rvec_(m4awd/2,0),rad=m4awd/2;circle=fill_(0) `$5')}
+      {dot(at rvec_(m4wd/2,0),rad=m4awd/2;circle=fill_(0) `$5')}
+      dot(at rvec_(m4wd-m4awd/2,0),rad=m4awd/2;circle=fill_(0) `$5')',
     m4rdna,C,
      `lbox(m4wd/3,m4ht,`$5'); move to rvec_(m4wd/3,0)
       lbox(m4wd/3,m4ht,`$5')',
@@ -1071,10 +1114,10 @@
       {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)}
+    m4rdna,P,`
+      {sarrow(to rvec_(m4aht,0),wdth=m4awd;lgth=m4aht; `$5';)}
       move to rvec_(m4wd,0)
-      open_arrow(to rvec_(-m4aht,0),m4awd,m4aht)',
+      sarrow(to rvec_(-m4aht,0),wdth=m4awd;lgth=m4aht; `$5';)',
     m4rdna,s,
      `{line to rvec_(m4ht/2*(sqrt(2)-1),0)}
       {arc from rvec_(0,-m4ht/2) to rvec_(0,m4ht/2) \
@@ -1089,11 +1132,14 @@
       line from rvec_(m4wd,m4ht/2) to rvec_(m4wd,-m4ht/2)',
     m4rdna,S,
       `{lbox(m4wd,m4ht,`$5')}
-       arrow to rvec_(m4wd/2,0) wid m4awd ht m4aht',
+       sarrow(to rvec_(m4wd/2,0),\
+        wdth=m4awd;lgth=m4aht;head=shaded "black";) ',
     m4rdna,E,
      `{circle diam m4wd at rvec_(m4wd/2,0) `$5'}
-      {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}
+      {sarrow(to rvec_(m4wd*3/8,0),\
+        wdth=m4awd;lgth=m4aht;head=fill_(0);)}
+      {sarrow(from rvec_(m4wd,0) to rvec_(m4wd*5/8,0),\
+        wdth=m4awd;lgth=m4aht;head=fill_(0);)}
       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) }
@@ -1453,6 +1499,38 @@
    `$5'; resetdir_ ] with .T ifelse(`$1',,`at Here',`$1')
  move to last [].T')
 
+                           `heatsink(at position, keys, U|D|L|R|degrees)
+                             keys: lgth=expr; hght=expr; fin=attributes;
+                                base=attributes; fincount=expr;
+                          Arg3: drawing direction (default: R)'
+define(`heatsink',`[ setdir_(`$3',R)
+ pushkeys_(`$2',`lgth:dimen_*3/4; hght:m4`'lgth/3; fin::N;
+   base::N; fincount:6;')dnl
+ SW: (0,0); NW: vec_(0,m4hght); SE: vec_(m4lgth,0); NE: vec_(m4lgth,m4hght)
+  B: line from SW to SE m4base
+  T: line from SE+(NE-SE)/4 to SW+(NW-SW)/4 m4base
+  for i=0 to m4fincount-1 do {
+    move to (0.5+i)/m4fincount between T.end and T.start 
+    line to Here+(NW-SW)*3/4 m4base m4fin }
+ `$4'; resetdir_ popdef(`m4lgth',`m4hght',`m4fin',`m4base',`m4fincount')
+ ] ifelse(`$1',,`at Here',`$1')')
+
+                           `adjust(at position,keys)
+                            Adjustment screw in a [] block
+                            keys:
+                             size=expr;
+                             angle=degrees; slot angle
+                             slotwid=expr; slot width
+                             circle=attributes; shade, outline etc'
+define(`adjust',`[ pushkeys_(`$2',
+   `size:dimen_/4; angle:60; circle::N; slotwid:m4`'size/3')
+  C: circle diam m4size at (0,0) m4circle
+  ap = asin(m4slotwid/m4size)*rtod_
+  line from (Rect_(m4size/2,m4angle-ap)) to (Rect_(m4size/2,m4angle-180+ap))
+  line from (Rect_(m4size/2,m4angle+180-ap)) to (Rect_(m4size/2,m4angle+ap))
+  popdef(`m4size',`m4angle',`m4circle',`m4slotwid')
+  ] ifelse(`$1',,`at Here',`$1') ')
+
                                 `switch( linespec,L|R,[O|C][D],L|B|D,attribs )
                                  Wrapper for bswitch, lswitch, dswitch
                                  R=right orientation (default L=left)
@@ -1876,8 +1954,8 @@
   `$7']')
 
                                `diode(linespec,
-                               B|b|CR|D|F|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|chars,
-                                 [R][E])
+                               B|b|CR|D|F|G|L|LE[R]|P[R]|S|Sh|T|U|V|v|w|Z|z|
+                                 chars,[R][E])
                                  Adding K to arg2 draws open arrowheads
                                  Adding M draws a mid-arrowhead crossbar
                                  Arg 3: R=reversed polarity, E=enclosure'
@@ -1891,7 +1969,7 @@
   define(`m4cts',`ifelse(
     dma_,,LACR,
     dma_,B,uLAZQuR,
-    dma_,b,uLAzQuR,
+    dma_,b,uLAzoQuR,
     dma_,CR,LACRrb,
     dma_,D,LuAHdQR,
     dma_,F,LFR,
@@ -1909,6 +1987,7 @@
     dma_,v,LACvdR,
     dma_,w,LAdvXdR,
     dma_,Z,LAZR,
+    dma_,z,LAzR,
     dma_)')
   ifelse(dma_,B,`define(`m4dh',2*m4dh)',
     dma_,D,`define(`m4dv',2*m4dv)',
@@ -1922,6 +2001,7 @@
   define(`m4dm',
    `ifelse(dma_,S,`m4dv/4',
            dma_,Z,`(m4dv/4-linethick pt__/2)',
+           dma_,z,`(m4dv/4-linethick pt__/2)',
            dma_,v,`m4dv/4',
            dma_,w,`m4dv/4',
                   0)')dnl
@@ -1956,7 +2036,8 @@
                                  [u|d]v varicap diode-capacitor curved plate
                                  Y bilateral core
                                  Z zener bar
-                                 z zener bar outlined
+                                 z zener bar angled
+                                 zo zener bar outlined
                                 arg 2: f= fill the arrowhead
                                        M=arrowhead crossbar
                                        R=right orientation
@@ -2087,7 +2168,7 @@
             to rvec_(0,-m4dv/2-m4dy) \
        then to rvec_(0, m4dv/2+m4dy) \
        then to rvec_(m4dv/4,m4dv/2+m4dy)}')
-  sc_draw(`ddna_',z,dnl            Outlined zener bar
+  sc_draw(`ddna_',zo,dnl           Outlined zener bar
    `{line from rvec_(-m4dv/4,-m4dv/2-m4dy-lthick*2) \
             to rvec_( lthick*0.7,-m4dv/2-m4dy) \
        then to rvec_( lthick*0.7, m4dv/2+m4dy+lthick) }
@@ -2094,6 +2175,11 @@
     {line from rvec_( m4dv/4, m4dv/2+m4dy+lthick*2) \
             to rvec_(-lthick*0.7, m4dv/2+m4dy) \
        then to rvec_(-lthick*0.7,-m4dv/2-m4dy-lthick) }')
+  sc_draw(`ddna_',z,dnl            Zener bar
+   `{line from rvec_(-m4dv/4,-m4dv/2-m4dy) \
+            to rvec_(0,      -m4dv/3-m4dy) \
+       then to rvec_(0,       m4dv/3+m4dy) \
+       then to rvec_( m4dv/4, m4dv/2+m4dy)}')
   ifinstr(ddna_,Q,dnl              left arrowhead
    `sc_draw(`ddna_',Qc,`define(`m4Qc')')sc_draw(`ddna_',Q,`undefine(`m4Qc')')dnl
     define(`m4dn',`ifelse(m4a,u,m4dv/2,m4a,d,-m4dv/2,0)')dnl
@@ -2125,6 +2211,7 @@
    `line from 0.5 between M4_s and M4_e to M4_e \
       chop m4dh ifelse(m4a,,/2,m4a,d,/2+m4dv/4) chop 0')
   ')dnl
+
                                 `em_arrows( type|keys,angle,length )
                                  type=N|I|E [D|T]
                                    N=nonionizing, I=ionizing, E=simple;
@@ -2376,9 +2463,9 @@
      pushdef(`dotrad_',(dotrad_/2))dnl
      ifelse(ifinstr(m4Da,B1,T,m4Da,R1,T,m4Da,R2,T),T,`dot(at Q2.E)')
      ifelse(ifinstr(m4Da,R2,T,m4Da,Z,T),T,
-      `dot(at Q2.Bulk.c+vec_(0,m4DR`'m4_U))')
+      `M4D1: dot(at Q2.Bulk.c+vec_(0,m4DR`'m4_U))')
      ifelse(ifinstr(m4Da,B1,T,m4Da,R1,T),T,`ifinstr(m4Da,R2,
-      `dot(at Q2.E+vec_(-m4_U,0))')')
+      `M4D2: dot(at Q2.E+vec_(-m4_U,0))')')
      ifinstr(m4Da,B1,
       `ifinstr(m4Da,R1,`dot(at Q2.E-vec_(3*m4_U,0))')
        B1: Q2.E+vec_(-3*m4_U,m4DR`'5.2*m4_U)
@@ -2400,10 +2487,9 @@
          ifinstr(m4Da,E,,`corner;E: Here; line from Q1.E to E')
          point_(hp_ang)')')')
    ifinstr(m4Da,R2,
-    `move to Q2.Bulk.c+vec_(0,m4DR`'m4_U)
-     line to rvec_(-4*m4_U,0); corner
+    `line from M4D1 to M4D1+vec_(-4*m4_U,0); corner
      pushdef(`dimen_',((dimen_)*0.6))dnl
-     R2: resistor(to Q2.E+vec_(-m4_U/0.6,0),,m4DE2) popdef(`dimen_')
+     R2: resistor(to M4D2,,m4DE2) popdef(`dimen_')
      point_(hp_ang)')
    ifinstr(m4Da,D,
     `DE: Q1.E + vec_(m4_U*3/2,m4DR`'(-m4_U*3/2))

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/libgen.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/libgen.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/libgen.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -2,7 +2,7 @@
  
    libgen.m4                    Base macros for dpic and gpic diagrams
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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 *
@@ -192,7 +192,7 @@
    `$2')')
 
 define(`m4announceprocessor',`dnl Do not change the format of the next line:
-`#' `$1' Version 10.7: ifelse(m4picprocessor,gpic,`Gpic',
+`#' `$1' Version 10.8: ifelse(m4picprocessor,gpic,`Gpic',
   m4postprocessor,pstricks,`PSTricks',
   m4postprocessor,pgf,`TikZ PGF',
   m4postprocessor,mfpic,`Mfpic',
@@ -481,8 +481,7 @@
                                `intersect_(Start1,End1,Start2,End2)
                                 Intersection of lines joining named positions'
 define(`intersect_',`((($3.x-$1.x)*($3.y-$4.y)-($3.y-$1.y)*($3.x-$4.x))/\
-   (($2.x-$1.x)*($3.y-$4.y)-($2.y-$1.y)*($3.x-$4.x))\
-   between `$1' and `$2')')
+   (($2.x-$1.x)*($3.y-$4.y)-($2.y-$1.y)*($3.x-$4.x)) between `$1' and `$2')')
 
                                `Dashed line drawn in detail (dpic only)
                                 dashline(
@@ -697,10 +696,30 @@
 define(`vscal_',`prod_($1,$2),prod_($1,$3)')
                                 Relative position
 define(`rpos_',`Here+`$1'')
-                                Absolute and relative vector determined by
-                                current direction numbers
+                                Absolute vector determined by current
+                                direction numbers
+
+define(`robustcode_',0)         Choose robust or terse code
+ifelse(robustcode_,0,`
+                                This provides the cleanest code for
+                                debug but can cause problems when inside
+                                a dpic loop:
 define(`vec_',
  `(sum_(prod_($1,m4a_),prod_($2,m4c_)),sum_(prod_($1,m4b_),prod_($2,m4d_)))')
+',
+`
+                                This is most robust when mixed with pure
+                                pic code, at the expense of long expressions
+                                that are more complicated for debug:
+define(`vec_',`vec_r($@)')
+')
+                                Force robust code for use in pic loops:
+define(`vec_r',
+ `(((`$1')*cos(rp_ang)-(`$2')*sin(rp_ang)),\
+   ((`$1')*sin(rp_ang)+(`$2')*cos(rp_ang)))')
+define(`rvec_r',`Here+vec_r($1,$2)')
+
+                                Relative vector
 define(`rvec_',`Here+vec_($1,$2)')
 
                                 Sine and cosine of integer degrees with
@@ -962,7 +981,7 @@
 define(`dotrad_',(0.02*scale))
 define(`dot',`[ define(`m4ft',`ifelse(`$3',,0,(`$3'))')dnl
   pushkeys_(`$2',`rad:m4nul:N;circle:fill_(m4ft):N')dnl
-  ifelse(m4rad,m4nul,`popdef(`m4rad')pushdef(`m4rad',
+  ifelse(m4rad,m4nul,`poppushdef(`m4rad',
    `ifinstr(`$2',=,`dotrad_',`ifelse(`$2',,`dotrad_',(`$2'))')')')dnl
   ifdef(`r_',`rgbfill(r_+(1-r_)*m4ft, g_+(1-g_)*m4ft, b_+(1-b_)*m4ft,
     circle rad m4rad )',
@@ -1035,63 +1054,52 @@
   popdef(`m4attrib',`m4rad',`m4shadowthick',`m4shadowcolor',`m4shadowangle') ')
 
                                `hatchbox(boxspec,hatchsep,hatchspec,angle)
+                                Hatched manhattan box in a [] block
                                   or
                                 hatchbox(keys)
-                                Manhattan box with hatching at angle degrees
+                                Box in current direction (or boxdir) with
+                                  hatching at angle degrees relative to boxdir
                                 keys:
                                   wid=expr;
                                   ht=expr;
                                   box=attributes; (e.g. dashed outline "color")
-                                  fillcolor="color"|(r,g,b);
                                   hatchsep=expr;
                                   hatchspec=attributes;
-                                  angle=expr; '
-define(`hatchbox',`[
-   pushkeys_(`$1',`wid:boxwid:N; ht:boxht:N; box::N;fillcolor::N;
-     hatchsep:0.075*scale; hatchspec::N; angle:45')
-  b = ifelse(`$4',,m4angle,`$4')
-  a = pmod((ifelse(b,,45,b)+90),180)-90
-  if a >=0 then { B: box ifinstr(`$1',=,`wid m4wid ht m4ht m4box dnl
-    ifelse(m4fillcolor,,,m4colorfix(shaded,m4fillcolor))',
-    invis `$1') with .nw at (0,0) } \
-  else { B: box ifinstr(`$1',=,`wid m4wid ht m4ht m4box dnl
-    ifelse(m4fillcolor,,,m4colorfix(shaded,m4fillcolor))',
-    invis `$1') with .sw at (0,0) }
-  ds = m4hatchsep
+                                  angle=degrees;
+                                  boxdir=degrees; '
+define(`hatchbox',`[ pushkeys_(`$1',`wid:boxwid:N; ht:boxht:N; box::N;
+     hatchsep:m4`'ht*3/20; hatchspec:`$3':N; boxdir:rp_ang*rtod_; angle:45;')
+  m4_b = ifelse(`$4',,m4angle,`$4')
+  m4_a = pmod((ifelse(m4_b,,45,m4_b)+90),180)-90 # 1st or 4th quadrant
+  B: box wid m4wid ht m4ht ifinstr(`$1',=,,`$1') invis with .c at (0,0)
+  setdir_(ifinstr(`$1',=,m4boxdir))
+  Bx: rotbox(B.wid,B.ht,ifinstr(`$1',=,m4box,`$1')) with .C at B.c
+  m4_hs = ifelse(`$2',,m4hatchsep,`$2')
   ifelse(m4hatchspec,,`thicktemp = linethick; thinlines_')
-  ca = cosd(a); sa = sind(a)
-  if abs(a) < 0.1 then { for y = ds to B.ht by ds do {
-    line from B.nw-(0,y) to B.ne-(0,y) } } \
-  else { if abs(abs(a)-90) < 0.1 then { for x = ds to B.wid by ds do {
-    line from B.nw+(x,0) to B.sw+(x,0) } } \
-  else { d = min(B.wid,B.ht)/5
-    if a>=0 then { T: B.nw
-      for lp=1 to 0 by -1 do { T: T+(ds*sa,-ds*ca); Q: T+(ca*d,sa*d)
-        S: (0,intersect_(T,Q,B.nw,B.sw).y)
-        if (-S.y) > B.ht then { S: (intersect_(T,Q,B.sw,B.se).x,-B.ht) }
-        F: (intersect_(T,S,B.nw,B.ne).x,0)
-        if F.x > B.wid then { F: (B.wid,intersect_(T,S,B.ne,B.se).y) }
-        lp=((-F.y)<=B.ht && F.x<=B.wid)
-        # Use this with dpic-2017.08.24 or later:
-        line from S*lp to F*lp m4hatchspec
-        }
-    } else { T: B.sw
-      for lp=1 to 0 by -1 do { T: T+(-ds*sa,ds*ca); Q: T+(-ca*d,-sa*d)
-        S: intersect_(T,Q,B.nw,B.sw)
-        if S.y > B.ht then { S: (intersect_(T,Q,B.nw,B.ne).x,B.ht) }
-        F: intersect_(T,S,B.sw,B.se)
-        if F.x > B.wid then { F: (B.wid,intersect_(T,S,B.ne,B.se).y) }
-        lp=(F.y<=B.ht && F.x<=B.wid)
-        # Use this with dpic-2017.08.24 or later:
-        line from S*lp to F*lp `$3'
-        line from S*lp to F*lp m4hatchspec
-        }
-      } } }
+  m4_ca = cosd(m4_a); m4_sa = sind(abs(m4_a))
+  if abs(m4_a) < 0.1 then { for y = m4_hs to B.ht by m4_hs do {
+    U: B.nw-(0,y); V: B.ne-(0,y)
+    line from vec_(U.x,U.y) to vec_(V.x,V.y) m4hatchspec } } \
+  else { if abs(abs(m4_a)-90) < 0.1 then { for x = m4_hs to B.wid by m4_hs do {
+    U: B.nw+(x,0); V: B.sw+(x,0)
+    line from vec_(U.x,U.y) to vec_(V.x,V.y) m4hatchspec } } \
+  else { m4_d = max(B.wid,B.ht)/5
+    dnl                     DT is hatchline rotated -90 deg
+    T: B.nw; DT: (m4_hs*m4_sa,-m4_hs*m4_ca); DQ: (m4_ca*m4_d,m4_sa*m4_d)
+    for m4_lp=1 to 0 by -1 do { T: T+DT; Q: T+DQ
+      S: (B.w.x, intersect_(T,Q,B.nw,B.sw).y)
+      if S.y < B.s.y then { S: (intersect_(T,Q,B.sw,B.se).x, B.s.y) }
+      F: (intersect_(T,S,B.nw,B.ne).x, B.n.y)
+      if F.x > B.e.x then { F: (B.e.x, intersect_(T,S,B.ne,B.se).y) }
+      m4_lp = (F.y >= B.s.y && F.x <= B.e.x)
+      if m4_lp then { line from vec_(S.x,sign(m4_a)*S.y) \
+        to vec_(F.x,sign(m4_a)*F.y) m4hatchspec }
+      } }}
   ifelse(m4hatchspec,,`linethick_(thicktemp)')
-  box wid B.wid ht B.ht at B m4box ifinstr(`$1',=,,`$1')
-  popdef(`m4wid',`m4ht',`m4box',`m4fillcolor',
-         `m4hatchsep',`m4hatchspec',`m4angle') dnl
-  `$5' ]' )
+  By: rotbox(B.wid,B.ht,ifinstr(`$1',=,patsubst(m4box,shaded[^;]*),`$1')) \
+    with .C at B.c; `$5'
+  resetdir_; popdef(`m4wid',`m4ht',`m4box',`m4hatchsep',`m4hatchspec',
+   `m4angle',`m4boxdir') undef m4ng ]' )
 
                                 `lbox(wid,ht,attributes)
                                  box oriented in current direction;
@@ -1118,8 +1126,8 @@
                                  If a spline is used, the bounding box is
                                  approximate'
 define(`rotbox',`[
-  pushdef(`m4bw2',ifelse(`$1',,(boxwid/2),`(($1)/2)'))dnl
-  pushdef(`m4bh2',ifelse(`$2',,(boxht/2) ,`(($2)/2)'))dnl
+  m4bw2 = ifelse(`$1',,(boxwid/2),`(($1)/2)')
+  m4bh2 = ifelse(`$2',,(boxht/2) ,`(($2)/2)')
   C: Here
   N: vec_(0, m4bh2)
   S: vec_(0,-m4bh2)
@@ -1152,7 +1160,7 @@
   NW: vec_(-m4bw2, m4bh2)
   SW: vec_(-m4bw2,-m4bh2)
   Line: line from E to NE then to NW then to SW then to SE then to E `$3'')
-  popdef(`m4bw2',`m4bh2') `$5' ]')
+  `$5' ]')
 
                                 `rotellipse(wid,ht,attributes)
                                  ellipse oriented in current direction and
@@ -1469,7 +1477,7 @@
 define(`sarrow',
  `pushkeys_(`$2',`type:O:N; head::N; shaft:m4`'head:N; wdth:arrowwid;
    lgth:arrowht; hook::N; name:Sarrow_:N')dnl
-  arrow `$1' m4head invis
+  arrow `$1' patsubst(m4head,fill [0-9.]*\|shaded "[^"]*") invis
   m4_sadx = last arrow.end.x-last arrow.start.x
   m4_sady = last arrow.end.y-last arrow.start.y
   m4_sath = last arrow.thick bp__
@@ -1941,6 +1949,11 @@
                                   only)
                                  The "1:" after rgb is a divisor for the values
                                  (xcolor manual p 16)'
+                                 `This macro can be fragile when used as
+                                  an m4 macro argument.  Then something like
+                                  the following delays expansion:
+                                  define rgbpurp {rgbstring(0.5,0,1)}
+                                  curve(,,,rail=outlined rgbpurp)'
 ifelse(
 m4postprocessor,pstricks,`define(`rgbstring',`ifelse(`$2',,`"$1"',
  `sprintf("{rgb,1:red,%7.5f;green,%7.5f;blue,%7.5f}",`$1',`$2',`$3')')')',

Modified: trunk/Master/texmf-dist/doc/latex/circuit-macros/liblog.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/liblog.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/liblog.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,7 +1,7 @@
 divert(-1)
    liblog.m4                    Logic gates
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/mfpic.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,7 +1,7 @@
 divert(-1)
    mfpic.m4                     Initialization for mfpic.
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/mpost.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,7 +1,7 @@
 divert(-1)
    mpost.m4                     Initialization for metapost.
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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/pdf.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/pdf.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/pdf.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,7 +1,7 @@
 divert(-1)
    pdf.m4                                    Initialization for pdf output.
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/pgf.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,7 +1,7 @@
 divert(-1)
    pgf.m4                  Initialization for Tikz-pgf.
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/postscript.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,7 +1,7 @@
 divert(-1)
    postscript.m4                  Initialization for Postscript output.
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/psfrag.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -2,7 +2,7 @@
   psfrag.m4                  Initialization for dpic -f processing:
                              Postscript with psfrag strings
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/pstricks.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,7 +1,7 @@
 divert(-1)
    pstricks.m4                  Initialization for PSTricks.
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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/svg.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/svg.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/svg.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,7 +1,7 @@
 divert(-1)
    svg.m4                       Initialization for svg output.
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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/xfig.m4
===================================================================
--- trunk/Master/texmf-dist/doc/latex/circuit-macros/xfig.m4	2025-04-01 20:01:51 UTC (rev 74817)
+++ trunk/Master/texmf-dist/doc/latex/circuit-macros/xfig.m4	2025-04-01 20:02:45 UTC (rev 74818)
@@ -1,7 +1,7 @@
 divert(-1)
    xfig.m4                      Initialization for xfig.
 
-* Circuit_macros Version 10.7, copyright (c) 2024 J. D. Aplevich under     *
+* Circuit_macros Version 10.8, copyright (c) 2025 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.