% $Header: tromlig.mf,v 1.1 88/01/15 13:13:09 simpson Rel $ % $Log: tromlig.mf,v $ %Revision 1.1 88/01/15 13:13:09 simpson %initial release % %Revision 0.1 87/12/11 19:01:43 simpson %beta test % % This file describes five roman ligatures that begin with `f' % and puts them in code positions \001-\003, \011-\012 numeric itc#; % modified italic correction on `f' and `ff' itc#=if serifs: max(0,flare#-.25u#) else: 1.25u# fi; ligtable "f": "i"=:oct"001", "f"=:oct"003", "l"=:oct"002", "?" kern itc#, "!" kern itc#, ")" kern itc#, "]" kern itc#; ligtable oct"003": "i"=:oct"011", "l"=:oct"012", "?" kern itc#, "!" kern itc#, ")" kern itc#, "]" kern itc#; cmchar "The ligature ff"; beginchar(oct"003",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); if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3; pos4'(bar,90); x4'=x11; y4'=y4; filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars else: filldraw stroke z3e--z4e; fi % bar penlabels(1,2,3,4,11,12); endchar; cmchar "The ligature fi"; beginchar(oct"001",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_height