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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
% This file is part of vntex. License: LPPL, version 1.3 or newer,
% according to http://www.latex-project.org/lppl.txt
% Computer Modern Roman lower case "a" precomposed glyphs:
% Inclusion:
% a' a` a? a~ a.
% a( a(' a(` a(? a(~ a(.
% a^ a^' a^` a^? a^~ a^.
begin_letter(a);
bh# := min(bar_height#, 1.14x_height# - bar_height#);
define_pixels(bh);
set_letter_dimens(a)(
9u#, x_height#, 0,
1/3[bh#, x_height#] * slant + .5stem# - serif_fit# - 2u#,
0, serif_fit# if serifs: if hair# + .5stem# > 1.5u#: -.25u# fi\\fi
);
pickup fine.nib;
top y3r = h+vround 1.5oo;
if serifs: pos1(flare, 180);
pos2(hair, 180);
pos3(vair, 90);
lft x1r = hround max(u, 2.1u - .5flare);
x3 = .5w - .5u;
y1 = min(bh + .5flare + 2vair + 2, .9[bh, h] - .5flare);
bulb(3, 2, 1); % bulb
else: pos1(5/7[vair, flare], 95);
x1l = good.x 1.5u;
x1r := good.x x1r;
pos3(1/8[vair, thin_join], 90);
x3 = .5w - .2u;
top y1r = vround .82[bh, top y3r];
filldraw stroke term.e(3, 1, left, .9, 4);
fi % terminal
pos4(stem, 0);
rt x4r = hround(w - 2.5u + .5stem);
y4 = 1/3[bh, h];
pos5(stem, 0);
x5 = x4;
y5 = max(.55bh, 2vair);
filldraw stroke super_arc.e(3, 4)&z4e .. z5e; % arc and stem
pos6(.3[thin_join, vair], 90);
x6 = x4;
bot y6 = bh;
pos7(hround(curve - 2stem_corr), 180);
lft x7r = hround max(.5u, 1.5u - .5curve);
y7 = 1/3[top y8l, top y6r];
pos8(vair, 270);
x8l = .5w - .75u;
bot y8r=-oo;
pos9(thin_join, 360);
z9l = z5l;
(x, y8r) = whatever[z8l, z9l];
x8r := max(x, x8 - u);
{{interim superness := more_super;
filldraw stroke z9e{down} ... z8e{left} ... {up}z7e&super_arc.e(7, 6)}}; % bowl
if serifs: numeric shaved_stem;
shaved_stem = hround(stem - 3stem_corr);
if hair# + .5stem# > 1.5u#: pickup tiny.nib;
pos5'(shaved_stem, 0);
rt x5'r = fine.rt x5r;
y5' = y5;
pos10(shaved_stem, 0);
x10 = x5';
y10 = .2[.5tiny, bh];
pos11(shaved_stem, 0);
rt x11r = hround(w - .25u);
bot y11 = 0;
pos12(shaved_stem, 0);
x11 = x12;
top y12 = slab + eps;
filldraw z5'l --- z10l ... z11l{right} -- z11r
-- z12r{left} ... z10r + .75(z12 - z11) --- z5'r -- cycle; % foot
else: pickup crisp.nib;
pos5'(shaved_stem, 0);
rt x5'r = fine.rt x5r;
y5' = y5;
pos10(shaved_stem, 0);
x10 = x5';
y10 = 1/3bh;
pos11(.2[vair, stem], 90);
x11r = .5[x10r, x12r];
bot y11l=-vround .5oo;
pos12(hair, 180);
rt x12l = hround(w - .1u);
y12 = max(y10, y11 + vair);
pos13(hair, 180);
x13 = x12;
top y13 = max(vround .6bh, top y12);
(x', y11l) = whatever[z11r, z12r];
x11l := max(x', x10);
filldraw stroke z5'e --- z10e ... z11e{right} ... z12e --- z13e;
fi % hook
else: numeric shaved_stem;
shaved_stem = hround(stem - stem_corr);
pickup tiny.nib;
pos5'(shaved_stem, 0);
rt x5'r = fine.rt x5r;
y5' = y5;
pos10(shaved_stem, 0);
x10 = x5';
bot y10 = 0;
filldraw stroke z5'e -- z10e;
fi % base of stem
set_letter_join(a, x3 if serifs: + .25u fi, .5w#);
penlabels(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13);
end_letter;
input vnacomp;
endinput;
|