% Old Latin ligatures part 2 oromligs.mf (part 1 is oromlig.mf) % This file describes five roman ligatures % that begin with ``langes Es'' or end with ``t'' % and puts them in code positions \0213--. % This file should be read just after ``oromlig.mf'', % because the next two lines are in oromlig.mf: % > numeric itc#; % modified italic correction on `f' and `ff' % > itc#=if serifs: max(0,flare#-.25u#) else: 1.25u# fi; ligtable "s": "i"=:oct"214", "f"=:oct"213", "l"=:oct"215", "s"=:oct"253", ":"=:oct"363", "t"=:oct"334", "'" kern itc#, "?" kern itc#, "!" kern itc#, ")" kern itc#, "]" kern itc#; ligtable oct"213": "i"=:oct"216", "l"=:oct"217", % "t"=:oct"336", % ligature of sft, which should not be used in old text "'" kern itc#, "?" kern itc#, "!" kern itc#, ")" kern itc#, "]" kern itc#; ligtable oct"253": "i"=:oct"256", "l"=:oct"257", "t"=:oct"376", "'" kern itc#, "?" kern itc#, "!" kern itc#, ")" kern itc#, "]" kern itc#; % Combinations "langes Es" and "f" cmchar "The ligature langes sf"; beginchar(oct"213",10.5u#+2letter_fit#,asc_height#,0); italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi; adjust_fit(0,0); pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem'); pos11(stem',0); rt x11r=hround(w-3u+.5stem'); pickup fine.nib; numeric bulb_diam, inner_jut; if serifs: bulb_diam=hround .8[stem,flare]; pos2(bulb_diam,0); pos12(bulb_diam,0); rt x2r=hround(rt x11r-stem_corr); lft x12l=hround(w-.75u+.5); y2+.5bulb_diam=.85[x_height,h+oo]; y12+.5bulb_diam=.9[x_height,h+oo]; if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut; else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 6.25u; pos12(5/7[vair,flare],90); y12=y2; rt x12=hround(w+.75u); fi f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif f_stroke(11,12,d,e,f,inner_jut,1.25jut); % right stem, arc, terminal, serif pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1; pos3(bar,90); pos4(bar,90); rt x4=hround(w-1/3u); pos3'(bar,90); x3'=x1; y3'=y3; pos4'(bar,90); x4'-x11=x3-x1; y4'=y4; filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars penlabels(1,2,3,4,11,12); endchar; cmchar "The ligature langes si"; beginchar(oct"214",10u#+2letter_fit#,asc_height#,0); italcorr asc_height#*slant-serif_fit#+.5if serifs:stem# else:dot_size# fi-2u#; adjust_fit(0,serif_fit#); pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem'); pos11(stem',0); rt x11r=hround(w-2.5u+.5stem'); pos12(stem',0); x11=x12; bot y12=0; pickup fine.nib; numeric bulb_diam, inner_jut; if serifs: bulb_diam=hround 1/4[.8[stem,flare],dot_size]; pos2(bulb_diam,0); x2r=x12r; y2+.5bulb_diam=.8[x_height,h+oo]; top y11=x_height+min(oo,serif_drop); if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut; else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi else: bulb_diam=max(stem,dot_size); pos2(6/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u; pickup tiny.nib; pos13(bulb_diam,0); pos14(bulb_diam,90); x13=x11-.5; top y14r=min(2x_height,h+1); top y11=x_height; if bot y14l-x_height75: 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 pickup fine.nib; pos22(shaved_stem,180);pos23(shaved_stem,180); lft x22r=lft x23r=hround(9u+2.5u-.5shaved_stem); y22=y28; y23=max(.5bar_height,2vair); pickup crisp.nib; pos28(bar,90); rt x28=hround(w-1.3u); top y28r=x_height; lft x27=hround 9u+1/3u; y27l=y28l; if hefty: pos27(bar,90); filldraw stroke z27e--z28e; % crossbar pickup tiny.nib; pos21(hround(shaved_stem-stem_corr),0); rt x21r=fine.rt x22l; top y21=9/7x_height; penpos22'(x21r-x21l,0); x22'=x21; y22'=y22; filldraw stroke z21e--z22'e; % upper terminal else: pos27(vair,90); pos21(hair,0); rt x21r=fine.rt x22l; top y21=10/7x_height; filldraw z21l{down}...{left}z27r--z27l--z28l --z28r--(x21r,y28r)--z21r--cycle; fi % upper terminal and crossbar pickup fine.nib; interim superness:=more_super; pos24(vair',-90); bot y24r=-oo; rt x25r=hround(w-u); if serifs: pos25(hair,0); y25=y23; x24l=.5[x23l,x25l]; filldraw stroke z22e..super_arc.e(23,24)...{up}z25e; % stem and hool pickup crisp.nib; pos26(hair,0); pos25'(hair,0); x26=x25=x25'; top y26=max(vround .75bar_height,top y25); y25=y25'; filldraw stroke z25'e--z26e; % terminal else: pos25(vair,-75); top y25l=vround .2[top y24l,bar_height]; x25l:=good.x x25l; x24l=1/3[x23l,x25l]; x24r:=1/3[x23r,x25r]; y23l:=y23l+.2vair; filldraw stroke z22e..super_arc.e(23,24); % stem and hook path p; p=stroke z24e{right}..tension .9 and atleast 1..z25e; % terminal if (xpart(z25l-precontrol 1 of p)<0) or (xpart(z25r-postcontrol 2 of p)<0): filldraw stroke z24e{right}...{up}z25e; else: filldraw p; fi fi; pickup tiny.nib; if hefty: pos31(4/7[vair',flare],80); x31=x1; y31=y1; pos32(hair,-90); x32=8.5u; y32=h; pos33(hround(shaved_stem-stem_corr),-180); x33=x21; y33=y21; else: pos31(2hair,0); x31l=x0l+.5fine; y31=y0; pos32(hair,-90); x32=8.5u; y32=h; pos33(hair,-180); x33=x21; y33=y21; fi; filldraw stroke z31e..z32e..{down}z33e; penlabels(0,1,2,3,4,5,21,22,23,24,25,26,27,28,31,32,33); endchar;