%{{{ script caps for Malvern %{{{ curly bits curl_ht# := 5v#; curl_wd# := 2.5u#; define_whole_pixels(curl_wd); define_whole_vertical_pixels(curl_ht); vardef curl_pts@#(expr left, bottom) = x2@# - x1@# = x2@# - x3@# = (curl_wd - 1/2pn.wd) if left: * -1 fi; y3@# - y1@# = (curl_ht - pn.ht) if bottom: * -1 fi; y2@# = 1/2[y1@#, y3@#]; if left: lft x2@# = l; else: rt x2@# = r; fi if bottom: bot y3@# = -d; else top y3@# = h; fi labels(1@#, 2@#, 3@#); enddef; vardef curl_path@# = z1@#{(x2@# - x1@#, 0)} .. z2@# .. {(x3@# - x2@#, 0)}z3@# enddef; vardef curl_pts_path@#(expr left, bot) = curl_pts@#(left, bot); curl_path@# enddef; %}}} "script capital A"; ma_char("A", 4/5width#, height#, 0v#)(1/2,1); curl_pts(true, true); rt x7 = rt x8 = r; x6 = lft x7; top y6 = top y7 = h; bot y8 = -d; z4 - z3 = z6 - z5 = whatever*(z6 - z3) xscaled 1.2; x4 = x5; if y5 < y4: y5 - eps := y4 + eps := 1/2[y4, y5]; fi x9 = 1/2[x5, x8]; y9 = 0.3[-d, h]; y11 = y10 = good.y 0.45[-d, h]; lft x11 = r; lft x10 = 1/4[x1,x4]; draw curl_path .. z4 --- z5 .. z6 -- z7 -- z8{up} .. z9 .. z10; labels(4,5,6,7,8,9,10); endchar; %}}}