%
% source file of the Feta (not the Font-En-Tja) music font
%
-% (c) 2000--2004 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 2000--2009 Jan Nieuwenhuizen <janneke@gnu.org>
%
% Voor Cup
pickup pencircle scaled penh;
- penpos 1 (bulb, 180);
- penpos 2 (bulb, 0);
- penpos 3 (thin, 0);
+ penpos1 (bulb, 180);
+ penpos2 (bulb, 0);
+ penpos3 (thin, 0);
z1 = z0 + (0, radius);
z2 = z1;
pat := pat
.. cycle;
-
- % Uh, oh, there is a bug in metapost 0.641 which makes mf2pt1.mp's
- % redefinion of `fill' fail for this particular path, using a
- % wrong path orientation.
- %
- % Note that using `unfill' here makes the direct mpost output
- % wrong, but the `mf2pt1' script fixes it for the Type 1 output.
-
- if known bp_per_pixel:
- unfill pat;
- else:
- fill pat;
- fi;
+ fill pat;
pickup pencircle scaled (7/8 inner_r);
%% ugh. rounded corners!
-fet_beginchar ("Pedal dash", "-");
+fet_beginchar ("Pedal dash", "M");
save dash_thickness;
dash_thickness# := penw#;
penpos4 (1.2 penh, -pedalpha);
penpos5 (penh, -pedalpha);
penpos6 (penh, 180 - pedalpha);
- penpos7 (2 penh, 180 - pedalpha);
+ penpos7 (penh, 180 - pedalpha);
penpos8 (penh, 90);
penpos9 (4/3 penw, 50);
penpos10 (1.4 penw, 50);
x5 = 1/4 w;
y5r = 0;
z6 = z5;
- z7 = z6r + 1/3 (z8r - z6r);
+ z7l = z6r + 1/3 (z8r - z6r);
z8r = z5r + 3/5 (z3r - z5r);
x9l = x10l - penh;
y9l = 1/4 penh;
x11l = w;
y11 = 1/5 h;
+ % don't stick out at the top
z1' = round (0.9 [z2, z1]) + (xpart feta_offset, 0);
penpos1' (penh, 0);
- if show_labels = 1:
- penlabels (range 1 thru 11);
- penlabels (1');
- fi;
-
- soft_penstroke z1'e
- ..tension 2.5.. z2e
- ..tension 1.5.. z3e
- ..tension 2.5.. z4e
- ..tension 1.5.. z5e
- .. z6e
- ..tension 1.5.. z7e
- ..tension 1.5.. z8e{right}
- ..tension 1.5.. z9e{dir - pedalpha}
- .. z10e
- ..tension 2.5.. z11e;
+ % shift start point of pen stroke to avoid overlapping contours
+ z8'l = z8l;
+ y8'r = y8r;
+ z8'r = z8l + whatever * (z3r - z8l);
penpos12 (hround penh, 0);
penpos13 (penw, -90 - pedbeta);
x16 = 1/4 [x1, w];
y16r = y2r;
- if show_labels = 1:
- penlabels (range 12 thru 16);
- fi;
+ % We now do a correction to `center' the stem horizontally. While
+ % this is not the most elegant solution, it is definitely the
+ % easiest...
+
+ save horz_corr;
+ horz_corr = 1/5 [x12, x16] - x2l;
+ x2 := x2 + horz_corr;
+ x2l := x2l + horz_corr;
+ x2r := x2r + horz_corr;
+
+ penstroke z1'e
+ ..tension 2.5.. z2e
+ ..tension 1.5.. z3e
+ ..tension 2.5.. {dir (225)}z4e;
+
+ 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}
+ .. z6r
+ ..tension 1.5.. z7r
+ ..tension 1.5.. z8r{right}
+ -- cycle;
soft_penstroke z12e{down}
..tension 1.1.. z13e{dir (180 - pedbeta)}
..tension 1.1.. z14e{right}
..tension 1.1.. z15e{dir (180 + pedbeta)}
..tension 1.1.. z16e{dir (90 + pedbeta)};
+
+ if show_labels = 1:
+ penlabels (range 1 thru 16);
+ penlabels (1', 8');
+ fi;
endgroup;
enddef;
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;