File: extra.mf

package info (click to toggle)
tipa 19960624-3
  • links: PTS
  • area: main
  • in suites: slink
  • size: 880 kB
  • ctags: 26
  • sloc: perl: 1,636; sh: 233; makefile: 80
file content (89 lines) | stat: -rw-r--r-- 3,800 bytes parent folder | download | duplicates (2)
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;