.PS cct_init # Usual defs... qrt=dimen_/4; hlf=dimen_/2; dim=dimen_; Org:Here # Nested Blocking for repeated buildup of Pascal Triangle :-) # My first m4 macro: I have dreaded this... define(`foursrc',`[ L1:line dim dot(at L1.start+(qrt,0)); dot(at L1.end+(-qrt,0)); move to L1.start+(hlf,-5mm__) L2:line dim dot(at L2.start+(qrt,0)); dot(at L2.end+(-qrt,0)); ]') # Its all exponential: 2^n ie we double then double the doubling, then # double the doubled doubling. I could go on...... Note re-use of labels. B1:foursrc with .L1.start at Here move to B1.L2.start+(0,-5mm__) # double up in red setrgb(1,0,0) B2:foursrc with .L1.start at Here resetrgb # double the double in blue move to B2.L1.start+(0,-10mm__) setrgb(0,0,1) B1:foursrc with .L1.start at Here move to B1.L2.start+(0,-5mm__) foursrc with .L1.start at Here resetrgb # double the doubled doubling in green........ setrgb(0,1,0) move to B1.L1.start+(0,-20mm__) B1:foursrc with .L1.start at Here move to B1.L2.start+(0,-5mm__) B2:foursrc with .L1.start at Here move to B2.L1.start+(0,-10mm__) B1:foursrc with .L1.start at Here move to B1.L2.start+(0,-5mm__) foursrc with .L1.start at Here resetrgb " 1 1 " at Org+(60mm__,0) " 1 2 1 " at Org+(60mm__,-5mm__) setrgb(1,0,0) " 1 3 3 1 " at Org+(60mm__,-15mm__) resetrgb setrgb(0,0,1) " 1 4 6 4 1 " at Org+(60mm__,-35mm__) resetrgb setrgb(0,1,0) " 1 5 10 10 5 1 " at Org+(60mm__,-75mm__) resetrgb "\tiny BinomialDots" at (0,-75mm__) .PE