summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/InclepsDPV.m4
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/InclepsDPV.m4')
-rw-r--r--Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/InclepsDPV.m494
1 files changed, 94 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/InclepsDPV.m4 b/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/InclepsDPV.m4
new file mode 100644
index 00000000000..78235caa350
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/circuit-macros/examples/dpv/InclepsDPV.m4
@@ -0,0 +1,94 @@
+.PS
+# InclepsDPV.m4 : Illustrating one way to import and overwrite jpg in svg
+# A bit messy, but it works. This file has to be processed
+# by m4 in the usual way and then twice by dpic, eg
+# m4 svg.m4 DPVconfig.m4 InclepsDPV.m4 > InclepsDPV.pic
+# dpic -v InclepsDPV.pic > InclepsDPV.svg
+# dpic -v InclepsDPV.pic > InclepsDPV.svg
+# The second requirement is that the result has to be inserted
+# into the html document using the object class, e.g.,
+# <object data="file.svg" type="image/svg+xml" class="img"> </object>
+# This is handled by the cfig macro in examples.htmx
+
+# The double processing is needed because svg coordinates are to the right
+# and down. We have to store the coordinates of the nw corner and use them
+# on the second pass.
+
+divert(-1)
+######################################################################
+# Macros to simplify inclusion and positioning of raster image files such
+# as png or jpg or files with mime type of "image/svg+xml"
+
+ `svg_init_include([Unique_name])
+ Put this (once) before all drawing commands
+ in the diagram. It opens a [] block for the
+ total diagram and creates the file
+ Unique_name.dim (default DPVinsertTemp.dim).'
+define(`svg_init_include',
+`define(`M4IP_uniq',`ifelse(`$1',,DPVinsertTemp,`$1')')dnl
+ M4IP_NW: (0,0); m4IP_nw = 0; m4IP_lth = lthick
+ sh "touch M4IP_uniq.dim"
+ copy "M4IP_uniq.dim"
+ [ M4IP_NW: M4IP_NW; { move to M4IP_NW } ')
+
+ `svg_include(filename, wid, ht, [position],[attrib])
+ Insert bitmap at specified position; also create
+ an invis box of the same size and location.
+ arg1= path to image file
+ arg2= picture width in drawing units
+ arg3= picture height in drawing units
+ arg4= position attribute e.g.
+ Pic: svg_include(Incl.jpg,2,3, with .sw at (1,4))
+ arg5= additional svg image attributes in the sprintf
+ string, e.g.
+ clip-path=\"polygon(5%% 0%%, 100%% 0%%, 100%% 100%%, 5%% 100%%)\" (distances
+ in percent to top-left, top-right, bottom-right, bottom-left clip corners,
+ or in pixels) '
+define(`svg_include',`box invis wid `$2' ht `$3' `$4'
+define(`m4xpx',`(last box.w.x-M4IP_NW.x+m4IP_lth/2)/(1px__)')dnl
+define(`m4ypx',`(M4IP_NW.y-last box.n.y+m4IP_lth/2)/(1px__)')dnl
+define(`m4wdpx',`(`$2')/(1px__)')dnl
+define(`m4htpx',`(`$3')/(1px__)')dnl
+if m4IP_nw then { command sprintf(\
+ "<image x=\"%g\" y=\"%g\" width=\"%g\" height=\"%g\"dnl
+ xlink:href=\"`$1'\" `$5' />", m4xpx,m4ypx,m4wdpx,m4htpx) } ')
+
+ `svg_end_include
+ Put this before .PE after all drawing commands.
+ It closes the [] block and writes to Unique_name.dim'
+define(`svg_end_include',`] with .M4IP_NW at M4IP_NW
+ print sprintf("m4IP_nw=1; m4IP_lth=%g; M4IP_NW:(%g,%g)",lthick,\
+ last [].w.x+3*m4IP_lth/2, last [].n.y+3*m4IP_lth/2) > "M4IP_uniq.dim"
+ undefine(`M4IP_uniq') ')
+
+######################################################################
+divert(0)dnl
+
+darrow_init
+svg_init_include
+
+
+# This jpg is 242 px x 321 px
+ Picture: svg_include(Incl.jpg, 242px__, 321px__, with .w at (1,0))
+
+ define(`backarrow',`darrow(`$1',,,2pt__,6pt__,6pt__,<-|)')
+ thinlines_
+ backarrow( from boxcoord(Picture,0.4,0.95) up 0.4 right 0.7 )
+ "Basket" wid 0.45 with .w at Here+(2bp__,0)
+ backarrow( from boxcoord(Picture,0.9,0.41) up 0.2 right 0.5 )
+ "Ball" wid 0.3 with .w at Here+(2bp__,0)
+ backarrow( from boxcoord(Picture,0.85,0.32) up 0.2 right 0.5 )
+ "Star" wid 0.3 with .w at Here+(2bp__,0)
+ "Player" wid 0.43 with .w at last "".w+(0,-0.15)
+
+#for i=3 to 1 by -1 do {
+# Picture: svg_include(Incl.jpg, i/4*242px__, i/4*321px__,
+# with .nw at last box.nw+(0.125,-0.25)) }
+
+# P2: svg_include(Incl.jpg, 242px__, 321px__,
+# with .w at Picture.e+(1.25,0),
+# clip-path=\"polygon(30 0, 100%% 0%%, 100%% 100%%, 30 321)\" )
+
+svg_end_include
+
+.PE