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
|
% 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 "i" precomposed glyphs:
% Inclusion:
% i' i` i? i~ i.
begin_letter(i);
set_letter_dimens(i)(
5u#, x_height#, 0,
x_height#*slant - serif_fit# + .5stem# - 2u#,
serif_fit# + stem_shift# if monospace: +.25u#fi, serif_fit# - stem_shift#
);
pickup tiny.nib;
pos1(stem', 0);
pos2(stem', 0);
lft x1l = hround(.5w - .5stem');
x1 = x2;
top y1 = x_height if serifs: + min(oo, serif_drop) fi;
bot y2 = 0;
filldraw stroke z1e -- z2e;
% stem
if serifs:
sloped_serif.l(1, 2, a, 1/3, .95jut, serif_drop); % upper serif
dish_serif(2, 1, b, 1/3, jut, c, 1/3, .9jut); % lower serif
fi
penlabels(1, 2);
set_letter_join(i, x1, .5w#);
end_letter;
begin_letter(idot);
idot_h# := min(asc_height#, 10/7x_height# + .5vn_dot_diam#);
set_letter_dimens(idot)(
5u#, idot_h#, 0,
idot_h#*slant - serif_fit# + .5vn_dot_diam# -2u#,
serif_fit# + stem_shift# if monospace: +.25u# fi,
serif_fit# - stem_shift#
);
pickup tiny.nib;
pos1(stem', 0);
pos2(stem', 0);
if odd(w - stem'):
change_width;
fi
lft x1l = hround(.5w - .5stem');
x1 = x2;
top y1 = x_height if serifs: +min(oo, serif_drop) fi;
bot y2 = 0;
filldraw stroke z1e -- z2e; % stem
pos3(vn_dot_diam, 0);
pos4(vn_dot_diam, 90);
if serifs:
x3r = max(x1r, hround(x1 + .5vn_dot_diam - .2jut) - .5tiny)
else:
x3 = x1 - .5
fi;
top y4r = h + 1;
if bot y4l - top y1 < slab: y4l := min(y4r - eps, y1 + tiny + slab);
fi
x3 = x4;
y3 = .5[y4l, y4r];
dot(3, 4); % dot
if serifs:
sloped_serif.l(1, 2, a, 1/3, .95jut, serif_drop); % upper serif
dish_serif(2, 1, b, 1/3, jut, c, 1/3, .9jut);
fi % lower serif
penlabels(1, 2, 3, 4);
set_letter_join(idot, x1, .5w#);
end_letter;
input vnicomp;
endinput;
|