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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
% symbols now obsolete and not adopted in tipa.
cmchar "Reversed Esh with Top Loop";
beginchar(oct"264",5u#,asc_height#,desc_depth#);
italcorr asc_height#*slant+1.5u#;
adjust_fit(.5u#,.5u#); pickup tiny.nib;
pos1(stem',0); pos2(stem',0);
lft x1l=hround(.5w-.5stem'); x2=x1; y2=0; h-y1=d;
filldraw stroke z1e--z2e; % stem
if serifs: right_tail(2,3,4,5,stem',hround(w+1u),.88,.5,1/3);
else: right_tail(2,3,4,5,stem',hround(w+1u),.833,.5,1/3); fi
if serifs: pickup tiny.nib;
pos1.a(stem',0); z1=z1.a;
x6=x1.a; top y6=1/3[y1.a,h]; pos6(stem',0);
pos7(vair,90); pos8(hair,180); pos9(vair,270); pos10(hair,360);
x7=x9=.5[x6,x8r]; top y7r=h+oo; y9r=.4[x_height,h];
y8=y10=.5[y9r,y7r]; lft x8r=hround-.5u; x10l=x1l;
filldraw stroke z1.a e--z6e{up}...z7e{left}...z8e{down}...
{right}z9e...{up}z10e; % arc and loop
else: pickup fine.nib;
pos1.a(stem',0); z1=z1.a;
x6=x1.a; top y6=1/3[y1.a,h]; pos6(stem',0);
pos7(vair,90); pos8(.5[vair,flare],180); pos9(vair,270);
pos10(.5[vair,flare],315);
x7=x9=.5[x6r,x8r]; top y7r=h+o; y9r=.4[x_height,h]-vair;
lft x8r=hround(-.5u-.5vair); y8=y10=.5[y9r,y7r]; x10l=x1l;
filldraw stroke z1.a e--z6e & super_arc.e(6,7)
& z7e{left}...z8e{down}...{right}z9e...{up}z10e; fi
penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
cmchar "Bent-tail Yogh";
beginchar(oct"273",8u#,x_height#,desc_depth#);
italcorr x_height#*slant-.5serif_fit#-.3u#;
adjust_fit(0,.5serif_fit#);
numeric arm_thickness[],z_stem,stem[];
stem1=fudged.stem-4stem_corr;
if hefty: arm_thickness1=stem1; arm_thickness2=stem1;
z_stem=fudged.hair;
else: arm_thickness1=stem1; arm_thickness2=stem1; z_stem=fudged.hair; fi
if arm_thickness1<tiny.breadth: arm_thickness1:=tiny.breadth; fi
pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u);
lft x3l=lft x4l=hround .3[.5u, w-.8u];
top y1=h; y2=min(y1,h-2/3arm_thickness1);
bot y4=.4[0,h]; y3=max(y4,2/3arm_thickness2);
numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
pair delta; delta=penoffset z3-z2 of currentpen;
fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
---cycle; % diagonal
pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
top y5r=h; x5=x1; lft x6r=hround .75u;
y6=good.y(y5l-beak/1.8)-eps;
arm(5,6,a',beak_darkness,-.4beak_jut); % upper arm and beak
pickup fine.nib;
pos12(stem,angle(z2-z3)); z12l=z3l;
pos7(curve,-20); pos8(curve,-20); pos9(vair,90); pos10(hair,135);
rt x7r=hround(w-.75u); y7=.2[bot y12l,top y8l];
x8=hround .3[.75u, w-.8u]; y8=-1/2d;
x9=.5[x8l,x7r]; bot y9l=-d-oo;
x10=x7r; y10=.7[y9,y8];
filldraw stroke z12e{right}...z7e{down}.. tension 1.2 ..{down}z8e...
{right}z9e...z10e; % bowl and tail
penlabels(1,2,3,4,5,6,7,8,9,10,12); endchar;
% This accent is now realized as macro.
cmchar "Macron Acute accent";
numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
beginchar(oct"040",9u#,asc_height#,0);
italcorr h#*slant-.75u#;
adjust_fit(0,0);
numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
pickup if serifs: crisp.nib else: fine.nib fi;
pos1(macron_breadth,90); pos2(macron_breadth,90);
top y1r=top y2r=vround(.3[x_height,asc_height]+macron_breadth)+o;
lft x1=w-rt x2=hround 1.25u;
filldraw stroke z1e--z2e; % bar
if serifs: pickup crisp.nib; x3+.5stem=hround(w-2u); x4=2/3[x3,w-x3];
y3=h+o+eps; pos4(hair,0); y4r=y1l;
numeric theta; theta=angle(z4-z3)+90;
pos3(stem,theta);
filldraw circ_stroke z3e--z4e; % diagonal
else: pickup fine.nib; pos3(stem,0); pos4(vair,0);
rt x3r=hround(w-2u); lft x4l=hround(.5w-.75u-.5vair);
top y3=h+o; y4r=y1l;
filldraw stroke z3e--z4e; fi % diagonal
penlabels(1,2,3,4); endchar;
|