macros.
* mf/feta-pendaal.mf (draw_pedal_P): Use soft_end_penstroke.
(draw_pedal_d): Use soft_start_penstroke.
* mf/feta-accordion.mf ("accOldEE"): Draw glyph differently (without
changing the shape) to avoid fontforge warnings.
* mf/feta-klef.mf (draw_tab_T, draw_tab_A, draw_tab_B): Use
soft_end_penstroke and fix glyph shape.
2005-01-28 Werner Lemberg <wl@gnu.org>
+ * mf/feta-macros.mf (soft_start_penstroke, soft_end_penstroke): New
+ macros.
+
* mf/feta-pendaal.mf ("Pedal asterisk"): Remove workaround for
metapost bug.
+ (draw_pedal_P): Use soft_end_penstroke.
+ (draw_pedal_d): Use soft_start_penstroke.
* mf/feta-schrift.mf ("Trill (`tr')"): Remove redundant point in
path.
("Varied Coda"): Move some points to avoid fontforge warnings. This
doesn't change the glyph shape.
+ * mf/feta-accordion.mf ("accOldEE"): Draw glyph differently (without
+ changing the shape) to avoid fontforge warnings.
+
+ * mf/feta-klef.mf (draw_tab_T, draw_tab_A, draw_tab_B): Use
+ soft_end_penstroke and fix glyph shape.
+
2005-01-27 Han-Wen Nienhuys <hanwen@xs4all.nl>
* lily/*.cc: Scheme deprecation of SCM_VECTOR_*
z1 = (0, 0);
z2 = (0, ir);
+ z3 = (0, -ir);
penpos1 (blot_diameter, 0);
penpos2 (stroke_width + blot_diameter, 0);
+ penpos3 (stroke_width + blot_diameter, 0);
pickup pencircle scaled (lr + blot_diameter);
- for pp := 0 step 45 until 360:
- drawdot (0, 0) shifted (ir * (dir pp));
+ for pp := 0 step 45 until 180:
+ drawdot z2 rotated pp;
+ drawdot z3 rotated pp;
- penstroke (z1e
- -- z2e) rotated pp;
+ penstroke (z2e
+ -- z1e
+ -- z3e) rotated pp;
endfor;
pickup pencircle scaled lr;
h := lh + lt;
b := w := (lh + hround accreg_linethickness) / 2;
- penpos3 (hround accreg_linethickness, 0);
- penpos4 (lt, 90);
- penpos5 (hround accreg_linethickness, 180);
- penpos6 (lt, 270);
+ penpos10 (hround accreg_linethickness, 0);
+ penpos11 (lt, 90);
+ penpos12 (hround accreg_linethickness, 180);
+ penpos13 (lt, 270);
- z3r = (w, h / 2);
- z4r = (0, h);
- z5r = (-b, h / 2);
- z6r = (0, 0);
+ z10r = (w, h / 2);
+ z11r = (0, h);
+ z12r = (-b, h / 2);
+ z13r = (0, 0);
- % penlabels (1, 2, 3, 4, 5, 6);
+ % penlabels (1, 2, 10, 11, 12, 13);
% mf doesn't handle pixel dropouts in outline objects, so we use
% `draw' if not called by mpost
if known miterlimit:
- penstroke z3e
- .. z4e
- .. z5e
- .. z6e
+ penstroke z10e
+ .. z11e
+ .. z12e
+ .. z13e
.. cycle;
else:
pickup pencircle xscaled accreg_linethickness yscaled lt;
- draw z3
- .. z4
- .. z5
- .. z6
+ draw z10
+ .. z11
+ .. z12
+ .. z13
.. cycle;
fi;
-
fet_endchar;
y5l = ypart (pos + siz);
penpos10 (penw, 170);
- z10 = pos + .55 vx + .85 vy;
+ z10 = pos + .55 vx + .9 vy;
penpos11 (.75 [penh, penw], 170);
z11 = z10 - .5 vy + .025 vx;
penpos12 (penh, 100);
..z5e)
slanted slant shifted (slant * -ypart pos, 0);
- soft_penstroke (z10e
- ..tension 1.5.. z11e
- .. z12e
- ..tension 1.1.. z13e{(z13r - z13l) rotated 90})
+ soft_end_penstroke (z10e
+ ..tension 1.5.. z11e
+ .. z12e
+ ..tension 1.1.. z13e{(z13r - z13l) rotated 90})
slanted slant shifted (slant * -ypart pos, 0);
endgroup;
enddef;
.. z4e)
slanted slant shifted (slant * -ypart pos, 0);
- soft_penstroke (z5e
- .. z6e
- .. z7e
- .. z8e{(z8r - z8l) rotated 90})
+ soft_end_penstroke (z5e
+ .. z6e
+ .. z7e
+ .. z8e{(z8r - z8l) rotated 90})
slanted slant shifted (slant * -ypart pos, 0);
- soft_penstroke (z10e
- .. z11e
- .. z12e)
+ soft_end_penstroke (z10e
+ .. z11e
+ .. z12e)
slanted slant shifted (slant * -ypart pos, 0);
endgroup;
enddef;
z8 = .5 [z12l, z11l] + .15 vx - .05 vy;
penpos10 (.75 [penh, penw], 170);
- z10 = pos + .375 vx + .95 vy;
+ z10 = pos + .375 vx + vy;
penpos 11 (.8 [penh, penw], 150);
z11 = z10 - .5 vy + .04 vx;
penpos12 (penh, 100);
..z5e {left})
slanted slant shifted (slant * -ypart pos, 0);
- soft_penstroke (z6e{right}
- .. z7e
- .. z8e{(z8r - z8l) rotated 90})
+ soft_end_penstroke (z6e{right}
+ .. z7e
+ .. z8e{(z8r - z8l) rotated 90})
slanted slant shifted (slant * -ypart pos, 0);
- soft_penstroke (z10e
- ..tension 1.5.. z11e
- .. z12e
- ..tension 1.1.. z13e{(z13r - z13l) rotated 90})
+ soft_end_penstroke (z10e
+ ..tension 1.5.. z11e
+ .. z12e
+ ..tension 1.1.. z13e{(z13r - z13l) rotated 90})
slanted slant shifted (slant * -ypart pos, 0);
endgroup;
enddef;
enddef;
+def soft_start_penstroke text t =
+ forsuffixes e = l, r:
+ path_.e := t;
+ endfor;
+
+ if cycle path_.l:
+ cyclestroke_;
+ else:
+ fill path_.l
+ -- reverse path_.r
+ ..tension1.5.. cycle;
+ fi;
+enddef;
+
+
+def soft_end_penstroke text t =
+ forsuffixes e = l, r:
+ path_.e := t;
+ endfor;
+
+ if cycle path_.l:
+ cyclestroke_;
+ else:
+ fill path_.l
+ ..tension1.5.. reverse path_.r
+ -- cycle;
+ fi;
+enddef;
+
+
%
% Make a round path segment going from P to Q. 2*A is the angle that the
% path should take.
..tension 1.5.. z3e
..tension 2.5.. {dir (225)}z4e;
- soft_penstroke z8'e{right}
- ..tension 1.5.. z9e{dir (-pedalpha)}
- .. z10e
- ..tension 2.5.. z11e;
+ soft_end_penstroke z8'e{right}
+ ..tension 1.5.. z9e{dir (-pedalpha)}
+ .. z10e
+ ..tension 2.5.. z11e;
fill z4r{dir (225)}
..tension 1.5.. z5r{left}
penlabels (1, 2, 3, 4, 5);
fi;
- soft_penstroke z1e{dir (-10)}
- ..tension 1.1.. z2e{dir (-90 + 10)}
- ..tension 1.1.. z3e{left}
- ..tension 1.1.. z4e{up}
- ..tension 1.1.. z5e{dir (-70 + 90)};
+ soft_start_penstroke z1e{dir (-10)}
+ ..tension 1.1.. z2e{dir (-90 + 10)}
+ ..tension 1.1.. z3e{left}
+ ..tension 1.1.. z4e{up}
+ ..tension 1.1.. z5e{dir (-70 + 90)};
endgroup;
enddef;