+2005-01-26 Werner Lemberg <wl@gnu.org>
+
+ * mf/feta-slag.mf (draw_trillelement): Fix shape to get clean
+ overlapping.
+
+ * mf/feta-toevallig.mf (draw_meta_sharp): Fix shape to avoid curves
+ with inflections for the 1/2 sharp glyph.
+
2005-01-24 Werner Lemberg <wl@gnu.org>
* mf/feta-autometric.mf (fet_beginfont): Set font_coding_scheme
clearxy;
begingroup;
- save nw, p;
- pair nw;
- path p;
+ save nw, pat, nw_dist, ne_dist;
+ pair nw, nw_dist, ne_dist;
+ path pat;
pickup pencircle scaled trill_thin;
z4 = z1 - trill_ne * trill_overlap;
x4 := hround x4;
- x5 = x2;
- y5 = 0;
bot z3' = (top z3) scaled -1;
- nw := unitvector (z2 - z3');
-
- path p;
- p := z5
- -- (z4 - 0.5 trill_thin * nw)
- .. bot z4
- .. lft z4
- .. (z4 + 0.5 trill_thin * nw)
- -- (z3 + 0.5 trill_thin * nw)
- .. top z3
- .. (z3 + 0.5 trill_thin * trill_ne);
- p := p
- -- p scaled -1 shifted (-feta_eps, -feta_eps)
- -- cycle;
- p := p shifted (offset, 0);
- fill p;
+ nw = unitvector (z2 - z3');
+ ne_dist = (nw rotated -90) * 0.5 trill_thin;
+ nw_dist = (trill_ne rotated 90) * 0.5 trill_thin;
+
+ z5 = whatever * trill_ne + (z4 - nw_dist);
+ z5 = whatever * nw + (z3' - ne_dist);
+
+ pat := z5
+ -- (z4 - nw_dist){-trill_ne}
+ .. bot z4{left}
+ .. lft z4{up}
+ .. (z4 + nw_dist){trill_ne}
+ -- (z3 + nw_dist){trill_ne}
+ .. top z3{right}
+ .. (z3 + ne_dist){-nw};
+ pat := pat
+ -- pat scaled -1 shifted (-feta_eps, -feta_eps)
+ -- cycle;
+ pat := pat shifted (offset, 0);
+ fill pat;
endgroup;
enddef;
def draw_meta_sharp (expr width, offset) =
save beamheight, beamwidth, beamslope;
+ save ne, nw_dist;
+ pair ne, nw_dist;
beamwidth := width;
x4 = x1;
top y1 - bot y4 = beamheight;
+ ne = unitvector (z2 - z1);
+ nw_dist = (ne rotated 90) * blot_diameter;
+
fill lft z1{up}
- .. top z1{z2 - z1}
- -- top z2{z2 - z1}
- .. rt z2{down}
+ ... (z1 + nw_dist){ne}
+ -- (z2 + nw_dist){ne}
+ ... rt z2{down}
-- rt z3{down}
- .. bot z3{z4 - z3}
- -- bot z4{z4 - z3}
- .. lft z4{up}
+ ... (z3 - nw_dist){-ne}
+ -- (z4 - nw_dist){-ne}
+ ... lft z4{up}
-- cycle;
labels (1, 2, 3, 4);
z1 - z1' = z2 - z2';
draw z1
- .. z2;
+ -- z2;
draw z1'
- .. z2';
+ -- z2';
beamtop = top y2;