.PS # ex05.m4 darrow_init ifelse(ifpstricks(T)'ifpgf(T)'ifsvg(T)'ifmpost(T),T, Kalman: [ fillval = 0.8 # environmental variable linethick = 1 # slightly thicker for better screen pdf dx = boxht/5 # diagram parameters wrt scaled env variables circlerad = boxht*3/8 extlen=4*dx indel = boxht/3 # Replacement for \bar, see # https://tex.stackexchange.com/questions/22100/the-bar-and-overline-commands latexcommand(\newcommand{\ols}[1]{% \mskip.5\thinmuskip\overline{\mskip-.5\thinmuskip {#1} \mskip-.5\thinmuskip}% \mskip.5\thinmuskip}) COb: box fill_ "C$\ols{\mbox{O}}$" CO:box fill_ with .nw at last box.se+(dx,-dx) "CO" CbOb: box fill_ with .nw at last box.se+(dx,-dx) \ "$\ols{\mbox{C}}$$\ols{\mbox{O}}$" CbO: box fill_ with .nw at last box.se+(dx,-dx) "$\ols{\mbox{C}}$O" dline(from CbO.s down_ dx,,t,,!-) dright {Sum: circle invis at (CO,Here)} darrow(to Sum.e) SW: (COb.w,Sum.s)+(-3*dx-extlen/2,-dx) NE: (CbO.e,COb.n)+(dx,dx) right_; shadebox(box wid NE.x-SW.x ht NE.y-SW.y with .sw at SW) U: "\bf u$\,$" rjust at COb.w-(3*dx+extlen,0) dline(right_ extlen+dx,,t,,|-) TU: dtee(R) {darrow(to COb.w,t)} dline(to (Here,CO),t,t) {Dum: circle invis at (Here,Sum)} dtee(L) {darrow(to CO.w,t)} {D: box "D" wid boxwid/2 ht boxwid/2 at 0.5} darrow(to D.n,t) darrow(from D.s to Dum.n,,,,,,!-) dline(up_ from CO.n to (CO,COb)-(0,indel),,t,,!-) dleft; darrow(to (COb.e,Here)) dline(up_ from CbOb.n to (CbOb,COb),,t,,!-) dleft; darrow(to COb.e) dline(from CbO.n-(indel,0) up_ CbOb.y-CbO.n.y,,t,,!-) dleft; darrow(to CbOb.e) dline(up_ from CbO.n to (CbO,CO),,t,,!-) dleft darrow(to CO.e) dline(up_ from CbO.n+(indel,0) to (CbO,COb)+(indel,indel),,t,,!-) dleft; darrow(to (COb.e,Here)) darrow(from CO.s to Sum.n,,,,,,!-) darrow(left_ from Sum.w to Dum.e) darrow(from Dum.w to (U,Dum)) {"{\bf y$\,$}" rjust} move left 0.23 circle at Sum circle at Dum ] Coxeter: [ # Coxeter.m4 customlinethick = 1.5 linethick = customlinethick define(dotrad_',(3/2*linethick pt__)') Orig: (0,0) for i=0 to 4 do { P[i]: dot(at (i*linewid,0)) } line from Orig to P[4] P[-1]: dot(at (Rect_(linewid, 120))); line to Orig P[-2]: dot(at (Rect_(linewid,-120))); line to Orig Pa: dot(at P[4]+(linewid,0)); "$a$" at last [].n above arrow from P[4] to Pa chop linewid/4 Pd: dot(at P[0]+(0,-2*linewid)); "$d$" at last [].w rjust Pe: dot(at Pd+(linewid,0)); "$e$" at last [].n above Pf: dot(at Pe+(linewid,0)); "$f$" at last [].n above Pb: dot(at Pd+(Rect_(linewid,120))); "$b$" at last [].w rjust Pc: dot(at Pd+(Rect_(linewid,-120))); "$c$" at last [].w rjust line from Pb to Pd then to Pc line from Pd to Pf define(customarc', pushdef(dfillcolor',0.7,0.7,0.7') linethick_(0.4); dnl # Darc($1',linewid, ($2')*dtor_, ($3')*dtor_, # thick=linewid/6; wid=linewid*0.3; ht=linewid/6; ends=<->)dnl Darc(,centre=$1';rad=linewid;startdeg= ($2');enddeg=($3'); thick=linewid/6; wid=linewid*0.3; ht=linewid/6; ends=<->) linethick_(customlinethick); popdef(dfillcolor')') customarc((linewid,-linewid/3), 25,155) "$d$" at (linewid,linewid*2/3) customarc((2*linewid,-linewid/3), 25,155) "$e$" at (2*linewid,linewid*2/3) customarc((3*linewid,-linewid/3), 25,155) "$f$" at (3*linewid,linewid*2/3) customarc(Orig,130,230); "$a$" at (Rect_(linewid,180)) customarc(Orig, 10,110); "$b$" at (Rect_(linewid, 60)) customarc(Orig,-110,-10); "$c$" at (Rect_(linewid,-60)) ] with .sw at Kalman.se+(15bp__,0) [ linethick = 5 Darrow(right_ Coxeter.wid, thick=0.3;wid=0.55;ht=0.55;ends=<->; innershade=(0,1,1);outline=(0,0,1)) ] with .sw at Coxeter.nw+(0,0.3) ', "This diagram requires LaTex" ') .PE