.PS # . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . # gen_init linewid = linewid*0.8 circlerad = 0.35/2 bw = boxwid/2 bh = boxht/2 Multiblock: [ boxht = 0.4 boxwid = boxht circlerad = boxht*0.4 define summer { [ C: circle line from C.nw to C.se line from C.sw to C.ne "$$1$" at C.n+(0,1bp__) below "$$2$" at C.s-(0,1bp__) above "$$3$" at C.e+(1bp__,0) rjust "$$4$" at C.w-(1bp__,0) ljust ] } define doublebox {[box "$$1$"; arrow; box "$$2$"]} arrow "$E_1$" above S1: summer(,-,,+) linewid = boxwid/2 arrow "$\epsilon$" above doublebox(H_1,H_2) arrow S2: summer(-,,,+) arrow T: doublebox(H_3,H_4) line Y: Here arrow "$S_1$" above R1: box "$R_1$" at (T.x,T.y+boxht*5/4) arrow from Y to (Y,R1) then to R1.e arrow from R1.w to (S2,R1) then to S2.n "$n_1$" ljust at S2.n+(0,boxht/2) left Rf: doublebox(R_2,R_3) at ((S1.x+T.x)/2,T.y-boxht*5/4) arrow from T to (T,Rf) then to Rf.e arrow from Rf.w to (S1,Rf) then to S1.s "$n_2$" at S1.s+(0,-boxht/2) ljust ] #with .nw at Observer.sw + (0,-0.3) # "A multiblock example" below ljust at last [].sw+(0,-3pt__) .PE