% lu_spl lowercase forms special to Lushootseed font cmchar "crossed lambda"; newchar(cross_lambda,10.5u#,asc_height#,0); adjust_fit(0,0); pickup fine.nib; pos1(vair,90); top y1r=h; x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,eps); y5=x_height; x5=.5w; z2=whatever[z5,z3]; % z2 is colinear with z5,z3 % x1 is also now determined from location of z2 z4-(.25u,0)=whatever[z2,z3]; % z4 is slightly dished out from linearity numeric theta; theta=angle(z2-z3)-90; pos2(stem,theta); pos3(stem,theta); pos4(stem,0); filldraw circ_stroke z1e{right}...z2e---z3e ...{2(x4e-x3e),y4e-y3e}z4e; % long diagonal % now the short diagonal x6=1.5u; y6-.5stem=-oo; pos5(slab,theta-90); pos6(stem,angle(z5-z6)-90); filldraw circ_stroke z6e--z5e; % short diagonal % now the crossbar numeric halfbw; halfbw=min(2.5u,3stem); y95=y96=y5; x5=x95+halfbw=x96-halfbw; pos95(slab,90); pos96(slab,90); pos55(slab,90); z55=z5; filldraw circ_stroke z95e--z55e; filldraw circ_stroke z96e--z55e; pairassign(tca,.675[x55,x96],1.1y96); %top center accentpoint pairassign(lca,x55,0); %low center accentpoint pairequate(tra,tca); %top right accentpoint pairequate(tla,tca); %top left accentpoint pairequate(lla,lca); %low left accentpoint pairequate(lra,lca); %low right accentpoint penlabels(1,2,3,4,5,6,95,96); endchar; cmchar "seriffed pharyngeal stop"; newchar(Pharyng,8.5u#,cap_height#,0); italcorr .8asc_height#*slant; adjust_fit(0,0); slantswitch; numeric bot_width; bot_width= if hefty: stem else: .275(stem+cap_stem) fi; %bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: 2hair fi; %if serifs: bot_width:=1.5bot_width; fi pickup fine.nib; pos2(vair,90); pos3(curve,0); pos4(vair,-90); if hefty: pos5(bot_width,0) else: pos5(.92bot_width,0) fi; if hefty: pos6(bot_width,0) else: pos6(bot_width,0) fi; pos7(bot_width,0) ; x7=.5w; bot y7=0; x2=x4=x5=x6=x7; rt x3r=hround(w-u); y6=.375x_height; if monospace: top y2r=.9h else: top y2r=h+oo fi; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2]; {{interim superness:=more_super; filldraw stroke pulled_super_arc.e(2,3)(superpull) & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem filldraw stroke z6e---z7e; if serifs: pos1(hair,180); pos0(flare,180); lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb dish_serif(7,6,q,1/3,jut,p,1/3,jut); else: pos1(Vround 5/7[vair,flare],110); lft x1r=hround u; top y1r=vround .9[y6,top y2r]; filldraw stroke term.e(2,1,left,1,4); fi % terminal mirror(.5w); penlabels(0,1,2,3,4,5,6,7,8); pairassign(tca,.5w,h); %top center accentpoint pairassign(lca,.5w,0); %low center accentpoint pairequate(tra,tca); %top right accentpoint pairequate(tla,tca); %top left accentpoint pairequate(lla,lca); %low left accentpoint pairequate(lra,lca); %low right accentpoint endchar; cmchar "yogh"; newchar(yogh,9u#,x_height#,0); italcorr x_height#*slant-.5serif_fit#-.3u#; adjust_fit(0,.5serif_fit#); numeric arm_thickness[],z_stem,mid_thickness,bot_thickness; if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair; z_stem=.6[vair,stem]; else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u; top y1=h; y2=min(y1,h-2/3arm_thickness1); bot y4=0; 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); z21=.6[z1,z3]; penpos21(alpha*(z_stem-tiny),0); %UW_HACC pair delta; delta=penoffset z3-z2 of currentpen; fill top lft z1l--z2l+delta---z21l+delta..lft z21l---z21r..rt z21r-delta ---z2r-delta..rt z2r---rt z1r..top z1r---cycle; % short diag pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180); top y5r=h; x5=x1; lft x6r=hround 1.75u; y6=good.y(y5l-beak/1.4)-eps; arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak bot_thickness:=max(fine.breadth,vround (slab-vair_corr)); mid_thickness:=max(fine.breadth,vround 2/3vair); bot y28=-desc_depth; x28=.45w; y27=0; rt x27r=rt x1r; pickup fine.nib; pos22(mid_thickness,90); lft x22l=lft x21l; y22=y21; pos27(cap_curve,0); pos28(bot_thickness,-90); if serifs: numeric bulb_diam[]; if monospace: bulb_diam2:=flare+cap_stem-stem else: bulb_diam2:=.5flare+cap_stem-stem fi; pos30(bulb_diam2,-180-angle(x1-x4,y1-y4)); pos29(cap_hair,-180); lft x30r=hround .75u; y30=-.5bulb_diam2; else: pos29(bot_thickness,angle(-2u,-h)); lft x29r=hround .75u; top y29l= -o; y29r:=good.y y29r-eps; x29l:=good.x x29l; z30=z29; pos30(bot_thickness,angle(-2u,-h)); fi % lower terminal filldraw stroke pulled_super_arc.e(22,27)(.5superpull) & pulled_super_arc.e(27,28)(.5superpull) & pulled_super_arc.e(28,30)(.5superpull); penlabels(1,2,3,4,5,6,21,27,28,29); pairassign(tca,.5w,h); %top center accentpoint pairequate(lca,z28); %low center accentpoint pairequate(tra,tca); %top right accentpoint pairequate(tla,tca); %top left accentpoint pairequate(lla,lca); %low left accentpoint pairequate(lra,lca); %low right accentpoint endchar; cmchar "schwa"; newchar(schwa,7.25u#+max(.75u#,.5curve#),x_height#,0); italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0); r_adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi); numeric left_curve,right_curve; left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi; if right_curve75: p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor filldraw stroke pulled_super_arc.e(2,3)(.7superpull) & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal x77=.5w; y77=.5h; flip(77); pairassign(tca,x4,h); %top center accentpoint pairassign(lca,x2,0); %low center accentpoint pairequate(tra,tca); %top right accentpoint pairequate(tla,tca); %top left accentpoint pairequate(lla,lca); %low left accentpoint pairequate(lra,lca); %low right accentpoint endchar; cmchar "The letter eng"; newchar(eng,10u#,x_height#,desc_depth#); italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#; %adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#); adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#-.5jut#); pickup tiny.nib; pos1(stem,0); pos2(stem,0); numeric shaved_stem; shaved_stem=hround(stem-2stem_corr); pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0); lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1; top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2'; filldraw stroke z1'e--z2'e; % left stem h_stroke(2,a,3,4); % arch and right stem if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif numeric inner_jut; pickup tiny.nib; if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut; else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif fi x22=x4; bot y22=-1/3d; pos22(stem',0); filldraw stroke z4e--z22e; if serifs: pickup tiny.nib; pos55(vair,-90); pos66(hair,-180); pos77(flare,-180); x55=.5[x22,x66r]; bot y55r=-d-oo; y66-.5flare=-.88d; if monospace: lft x66r=4u else: z66r=z77r; rt x77l=floor 4.5u fi; (x,y55r)=whatever[z55l,z22l]; x55r:=max(x,.5[x66r,x55]); filldraw stroke z22e{down}...z55e{left}; bulb(55,66,77); % arc and bulb else: pickup fine.nib; pos22'(stem',0); z22'=z22; pos66(.2[vair,stem'],-90); pos77(vair,-90); lft x77r=hround 3.5u; bot y77r=vround 5/6(-d-oo); (x,y77l)=whatever[z77r,z3]; x77l:=x; z55r=z22'r; (x22'l,y55l)=whatever[z77l,z55r]; x55l=x22'l; y55=y55r; x66r=.5[x77r,x55r]; x66l:=.5[x77l,x55l]; bot y66r=-d-oo; filldraw stroke z22'e..{down}z55e & super_arc.e(55,66) & z66e{left}..z77e; fi % arc and terminal pairequate(tca,z.a1); %top center accentpoint if serifs: pairequate(lca,z55); else: pairequate(lca,z66); %low center accentpoint fi pairequate(tra,tca); %top right accentpoint pairequate(tla,tca); %top left accentpoint pairequate(lla,lca); %low left accentpoint pairequate(lra,lca); %low right accentpoint endchar; cmchar "epsilon"; newchar(epsil,8u#,x_height#,0); italcorr x_height#*slant-.5u#; adjust_fit(0,0); pickup fine.nib; numeric light_vstem; light_vstem=Vround 2/3[vair,vstem]; pos2(vstem,90); x2=x8=.5w+.5u; top y2r=h+o; x1+.5vstem=hround(w-u); y1=.2[y2,bar_height]; pos1(vstem,angle(x1-x2,2(y1-y2))+90); pos3(slab,180); pos4(vair,270); pos5(slab,360); pos6(vair,450); pos7(hair,540); pos8(vstem,630); lft x3r=hround u; x4=x6=.5w; rt x5r=hround(w-2.5u); x7=x3; y3=.5[y2,y4]; y5=bar_height=.5[y4,y6]; y7=.5[y6,y8]; bot y8r=-o; top y6r-bot y4r=vstem+eps; if y6l