def txp(expr s, pat, es, ef, hi, tr, se, lc, th, hig) = picture pt ,pic; string sp, ps; path pi; truecorners:=1; long[0]:=tr; pi := pat scaled ef shifted(-xpart center pat*(ef-1),-ypart center pat*(ef-1)); for i = length s step -1 until 1: ps:=substring(0,i) of s; pic:=thelabel(ps,(0,0)) scaled es; long[i]:=((2+se)*(xpart urcorner pic) + tr); endfor; for i=0 upto (length s) - 1: sp:= substring(i,i+1) of s; if sp <> " ": x:= (long[i]+long[i+1])/2; pt:= thelabel(sp ,(0,0)) scaled es shifted (x,0); for j = 16 upto 243: if sp = char(j): k:=j; fi; endfor; h:=es*(alt[k] + hi); draw pt shifted (-xpart pt,h) rotated angle direction arctime x of pi of pi shifted point arctime xpart pt of pi of pi withcolor lc; fi; endfor; if th <> 0: pickup pencircle scaled th; draw pi withcolor red; fi; enddef;