summaryrefslogtreecommitdiff
path: root/language/vietnamese/vntex/fonts/source/vntex/vnr/vnler.mf
blob: acfa7d71648de210bde009098659f1df052a7888 (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
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
% 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 "e" precomposed glyphs:
% Inclusion:
%               e'      e`      e?      e~      e.
%       e^      e^'     e^`     e^?     e^~     e^.

begin_letter(e);
    set_letter_dimens(e)(
        7.25u# + max(.75u#, .5curve#), x_height#, 0,
        .5[bar_height#, x_height#]*slant + .5min(curve# - 1.5u#, 0),
        if monospace: .25u#, .5u# else: 0, 0 fi
    );
    numeric left_curve, right_curve;
    left_curve = right_curve + 6stem_corr = curve if not serifs: -3stem_corr fi;
    if right_curve < tiny.breadth: right_curve := tiny.breadth;
    fi
    if left_curve < tiny.breadth: left_curve := tiny.breadth;
    fi
    pickup tiny.nib;
    pos1(right_curve, 0);
    pos2(vair, 90);
    pos3(left_curve, 180);
    y1 = good.y bar_height;
    top y2r = h+vround 1.5oo;
    y0l = bot y1;
    rt x1r = hround min(w - .5u, w - u+.5right_curve);
    lft x3r = hround max(.5u, 1.25u - .5left_curve);
    x2 = .5w + .25u;
    {{interim superness := more_super;
    filldraw stroke super_arc.e(1, 2)}};  % right bowl
    y3 = .5[y2, y4];
    bot y4r=-oo;
    x4 = x2 + .25u;
    if serifs: pos4(vair', 270);
        pos5(hair, 360);
        y5 = max(good.y(.5bar_height - .9), y4l + vair);
        x5r = x1r;
        (x, y4l) = whatever[z4r, z5];
        x4l := min(x, x4l + .5u);
        filldraw stroke pulled_arc.e(2, 3) & pulled_arc.e(3, 4)
        ... {x5 - x4, 5(y5 - y4)}z5e; % left bowl, arc, and terminal
    else: pos4(vair, 270);
        filldraw stroke super_arc.e(2, 3) & super_arc.e(3, 4);  % left bowl and arc
        pickup fine.nib;
        pos4'(vair, 270);
        z4 = z4';
        pos5(.5[vair, flare], 275);
        rt x5r = hround(w - .6u);
        y5r = good.y(y5r + 1/3bar_height - y5);
        y5l := good.y y5l;
        x5l := good.x x5l;
        filldraw stroke term.e(4', 5, right, 1, 4);
    fi  % terminal
    path testpath;
    testpath = super_arc.r(2, 3) & super_arc.r(3, 4);
    y1'r = y0r = y0l + .6[thin_join, vair];
    y1'l = y0l;
    x1'l = x1'r = x1;
    forsuffixes $ = l, r:
        x0$ = xpart(((0, y0$) -- (x1, y0$)) intersectionpoint testpath);
    endfor
    fill stroke z0e -- z1'e;  % crossbar
    penlabels(0, 1, 2, 3, 4, 5);
    set_letter_join(e, x2, .5w#);
%     set_letter_join(e.dot_, .5w + .5u, .5w# + .5u#);
end_letter;

input vnecomp;

endinput;