divert(-1) darrow.m4 Macros for double lines and arrows m4 path/darrow.m4 diag.m4 | gpic [-t] > diag.tex , or m4 path/darrow.m4 diag.m4 | dpic [-p] [-t] [-m] > diag.tex define(`HOMELIB_',`/u/aplevich/lib') Default processor: gpic ifdef(`gpic_',, `ifdef(`pstricks_',,`ifdef(`mfpic_',,`include(HOMELIB_/gpic.m4)')')')dnl divert(-1) ifdef(`right_',,`include(HOMELIB_/libgen.m4)')dnl divert(-1) ifdef(`elen_',,`define(`elen_',linewid*3/2)') Close off line end `dend([at position])' define(`dend',`ifelse(`$1',,,`move to substr(`$1',3)') {line from rvec_(0,-dlinewid/2) to rvec_(0,dlinewid/2)}') `dline initialization' define(`deleminit_',`rpoint_(ifelse(`$1',,`to rvec_(linewid,0)',`$1')) ') `dlineinit_ ( linespec,T,T,dlinewid )' define(`m4dl_init',`deleminit_(`$1') m4dlw=ifelse(`$4',,dlinewid,`$4') m4dll=rp_len ifelse(`$3',,,`-m4dlw/2') dnl ifelse(`$2',,,`-m4dlw/2; move to rvec_(m4dlw/2,0)') ') `line(line spec,start truncation,end truncation,width)' define(`dline',`m4dl_init(`$1',`$2',`$3',`$4') ifdef(`pstricks_',` \pscustom[linestyle=none,fillcolor=white,fillstyle=solid]{ {line from rvec_(0.4pt_, m4dlw/2-0.4pt_)to rvec_(m4dll-0.4pt_,m4dlw/2-0.4pt_)} {line from rvec_(m4dll-0.4pt_,-m4dlw/2+0.4pt_)to rvec_(0.4pt_,-m4dlw/2+0.4pt_)} \relax} ') {line from rvec_(0, 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(line spec,start truncation,end truncation,width)' define(`darrow',`m4dl_init(`$1',`$2',`$3',`$4');{ { line from rvec_(0,m4dlw/2) to rvec_(linethick pt_/2,m4dlw/2) } { line from rvec_(0,-m4dlw/2) to rvec_(linethick pt_/2,-m4dlw/2) } ifdef(`pstricks_',` \pscustom[linestyle=solid,fillcolor=white,fillstyle=solid]{') {line from rvec_(linethick pt_/2,m4dlw/2) to rvec_(m4dll-m4dlw*3/2,m4dlw/2) \ then to rvec_(m4dll-m4dlw*3/2,m4dlw) then to rvec_(m4dll,0) \ then to rvec_(m4dll-m4dlw*3/2,-m4dlw) then to rvec_(m4dll-m4dlw*3/2,-m4dlw/2)\ then to rvec_(linethick pt_/2,-m4dlw/2)} ifdef(`pstricks_',` \relax} ') }; line invis to rvec_(m4dll,0)') Construct tee, leaving current location at tee centre define(`dtee',`move to rvec_(dlinewid/2,0); $1; move to rvec_(-dlinewid/2,0) {line from rvec_(dlinewid,-dlinewid/2) to rvec_(dlinewid,dlinewid/2)} {line from rvec_(0,-dlinewid/2) to rvec_(0,-dlinewid/2)} {line from rvec_(0, dlinewid/2) to rvec_(0, dlinewid/2)} move to rvec_(dlinewid/2,0)') Standard width of lines define(`dlinewid',`0.08') Sets global variables. define(`darrow_init',`dnl gen_init ') divert(0)dnl