summaryrefslogtreecommitdiff
path: root/fonts/malvern/source/mascript.mf
blob: 5d91b36929beefe5a5b66d65033de1f956949c18 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
%{{{ 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;
%}}}