summaryrefslogtreecommitdiff
path: root/info/examples/lgc2/circuit/darrow.m4
diff options
context:
space:
mode:
Diffstat (limited to 'info/examples/lgc2/circuit/darrow.m4')
-rw-r--r--info/examples/lgc2/circuit/darrow.m4127
1 files changed, 127 insertions, 0 deletions
diff --git a/info/examples/lgc2/circuit/darrow.m4 b/info/examples/lgc2/circuit/darrow.m4
new file mode 100644
index 0000000000..acb4185327
--- /dev/null
+++ b/info/examples/lgc2/circuit/darrow.m4
@@ -0,0 +1,127 @@
+divert(-1)
+ darrow.m4 Macros for double lines and arrows
+
+* Circuit_macros Version 5.86, copyright (c) 2006 J. D. Aplevich, under *
+* the LaTeX Project Public License. The files of this distribution may be *
+* redistributed or modified, provided that this copyright notice is *
+* included, and provided that modifications are clearly marked to *
+* distinguish them from this distribution. There is no warranty *
+* whatsoever for these files. *
+
+ Installation directory. You can set HOMELIB_
+ to the null string if you use an environment
+ variable to tell m4 where to search:
+ifdef(`HOMELIB_',,
+ `define(`HOMELIB_',`./circuit/')')
+#`define(`HOMELIB_',`C:\Dwight\lib\')')
+
+ Default pic processor: gpic. To make dpic -p
+ the default, change gpic to pstricks here:
+ifdef(`m4picprocessor',,`include(HOMELIB_`'gpic.m4)divert(-1)')
+
+ifdef(`elen_',,`define(`elen_',linewid*3/2)')
+
+ `dline(linespec,start truncation,end truncation,width,
+ |-| or -| or |- )'
+define(`dline',`m4dl_init(`$1',`$2',`$3',`$4')
+ define(`m4lj',`ifelse(`$5',,0,`$5',`-|',0,`linethick bp__/2')')dnl
+ define(`m4rj',`ifelse(`$5',,0,`$5',`|-',0,`linethick bp__/2')')dnl
+ ifelse(m4postprocessor,pstricks,
+ `command "\pscustom[linestyle=none,fillcolor=white,fillstyle=solid]{"
+ {line from rvec_(m4lj, m4dlw/2) to rvec_(m4dll-m4rj, m4dlw/2)}
+ {line from rvec_(m4dll-m4rj,-m4dlw/2) to rvec_(m4lj,-m4dlw/2)}
+ command "}%"',
+ m4postprocessor,postscript,
+ `{line thick m4dlw/(1bp__) color "1 1 1" \
+ from rvec_(m4lj,0) to rvec_(m4dll-m4rj,0)}',
+ m4postprocessor,gpic,, # No white fill for gpic
+ `m4_tmpthick = linethick; linethick=0
+ shade(1,{line from rvec_(m4lj, m4dlw/2) to rvec_(m4dll-m4rj, m4dlw/2)}
+ {line from rvec_(m4dll-m4rj,-m4dlw/2) to rvec_(m4lj,-m4dlw/2)})
+ linethick = m4_tmpthick')
+ ifelse(m4lj,0,,`{line from rvec_(0,-m4dlw/2) to rvec_(0,m4dlw/2)}')
+ {line from rvec_( 0, m4dlw/2) to rvec_(m4dll, m4dlw/2)}
+ ifelse(m4rj,0,,`{line from rvec_(m4dll,m4dlw/2) to rvec_(m4dll,-m4dlw/2)}')
+ {line from rvec_(m4dll,-m4dlw/2) to rvec_( 0,-m4dlw/2)}
+ line invis to rvec_(m4dll,0)')
+
+ Turn left, leaving current location at exit
+ of corner
+define(`dleft',`dnl
+ {line from rvec_(0,-dlinewid/2) to rvec_(dlinewid,-dlinewid/2) \
+ then to rvec_(dlinewid,dlinewid/2)}
+ line invis to rvec_(dlinewid/2,dlinewid/2)
+ define(`dir_',up__) manhattan dir_')
+
+ Turn right, leaving current location at exit
+ of corner
+define(`dright',`dnl
+ {line from rvec_(0, dlinewid/2) to rvec_(dlinewid, dlinewid/2) \
+ then to rvec_(dlinewid,-dlinewid/2)}
+ line invis to rvec_(dlinewid/2,-dlinewid/2)
+ define(`dir_',dn_) manhattan dir_')
+
+ `darrow(linespec,start truncation,end truncation,width,
+ arrow wid, arrow ht,<- or <-| or |)'
+define(`darrow',`m4dl_init(`$1',`$2',`$3',`$4');{
+ ifelse(substr(`$7',0,2),<-,
+ `move to rvec_(m4dll,0); rp_ang = rp_ang+twopi_/2 dnl
+ define(`m4m',`substr(`$7',2)')',`define(`m4m',`$7')')
+ ifelse(m4m,|,,
+ `{ line from rvec_(0,m4dlw/2) to rvec_(linethick bp__/2,m4dlw/2) }
+ { line from rvec_(0,-m4dlw/2) to rvec_(linethick bp__/2,-m4dlw/2) }')
+ define(`m4h',`ifelse(`$5',,m4dlw,(`$5')/2)')dnl
+ define(`m4v',`ifelse(`$6',,m4dlw*3/2,(`$6'))')dnl
+ ifelse(m4postprocessor,pstricks,
+ `command "\pscustom[linestyle=solid,fillcolor=white,fillstyle=solid]{"',
+ m4postprocessor,gpic,,
+ `shade(1,')
+ {line from rvec_(linethick bp__/2,m4dlw/2) to rvec_(m4dll-m4v,m4dlw/2) \
+ then to rvec_(m4dll-m4v,m4h) then to rvec_(m4dll,0) \
+ then to rvec_(m4dll-m4v,-m4h) then to rvec_(m4dll-m4v,-m4dlw/2)\
+ then to rvec_(linethick bp__/2,-m4dlw/2) ifelse(m4m,|,
+ `then to rvec_(0,-m4dlw/2) then to rvec_(0,m4dlw/2) \
+ then to rvec_(linethick bp__/2,m4dlw/2)')}
+ ifelse(m4postprocessor,pstricks,`command "}%"',m4postprocessor,gpic,,`)')
+ ifelse(substr(`$7',0,2),<-,`move to rvec_(m4dll,0); rp_ang=rp_ang+twopi_/2')
+ }; line invis to rvec_(m4dll,0)')
+
+ `dtee([L|R]) Construct tee with tail right, left,
+ or back along current direction, leaving current
+ location at tee centre; eg
+ dline(right_,,t); dtee(R);
+ { darrow(down_,t) }; darrow(right_,t)'
+define(`dtee',`rpoint_(to rvec_(dlinewid,0)); move to last line.c
+ ifelse(`$1',L,`rp_ang = rp_ang-pi_/2',`$1',R,`rp_ang = rp_ang+pi_/2',`$1')
+ {line from rvec_(dlinewid/2,-dlinewid/2) to rvec_(dlinewid/2,dlinewid/2)}
+ {line from rvec_(-dlinewid/2,-dlinewid/2) to rvec_(-dlinewid/2,-dlinewid/2)}
+ {line from rvec_(-dlinewid/2, dlinewid/2) to rvec_(-dlinewid/2, dlinewid/2)}')
+
+ Close off line end: `dend([at position])'
+define(`dend',`ifelse(`$1',,,`move to substr(`$1',eval(index(`$1',at)+2))')
+ {line from rvec_(0,-dlinewid/2) to rvec_(0,dlinewid/2) chop -linethick/2pt__}')
+
+ `above, below, ljust, rjust but displaced
+ by dlinewid/2 eg "string" dabove(at position)'
+define(`dabove',`above ifelse(`$1',,`at Here',`$1')+(0,dlinewid/2)')
+define(`dbelow',`below ifelse(`$1',,`at Here',`$1')-(0,dlinewid/2)')
+define(`dljust',`ljust ifelse(`$1',,`at Here',`$1')+(dlinewid/2,0)')
+define(`drjust',`rjust ifelse(`$1',,`at Here',`$1')-(dlinewid/2,0)')
+
+ `dline initialization'
+define(`deleminit_',`rpoint_(ifelse(`$1',,`to rvec_(linewid,0)',`$1')) ')
+
+ `m4dl_init_( linespec,T,T,dlinewid )'
+define(`m4dl_init',`deleminit_(`$1')
+ m4dlw=ifelse(`$4',,dlinewid,`$4')
+ m4dll=rp_len ifelse(`$3',,,`-m4dlw/2') ifelse(`$2',,,
+ `-m4dlw/2; move to rvec_(m4dlw/2,0)') ')
+
+ `Standard width of lines'
+define(`dlinewid',`0.08*scale')
+
+ Sets global variables.
+define(`darrow_init',`dnl
+ ifdef(`if_rpoint__',,`gen_init')
+ ')
+divert(0)dnl