% % Washington Roman Indic lowercase base file % % based on ITALL.MF (Computer Modern Roman Italic lowercase base file) % % Modified by: Thomas Ridgeway , June 19 1993 % Updated: Anshuman Pandey , Feb 18 1998 % % Changes: modified accent positions of some characters % if unknown dotson: boolean dotson; dotson=true; fi % cmchar "Italic letter a"; newchar(a,9u#,x_height#,0); italcorr 1/3x_height#*slant+.5hair#+.5u#; adjust_fit(0,0); pickup fine.nib; pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(stem,0); x4=x0; y4+.5stem=vround .98h; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve); rt x4r=hround(w-2.5u+.5stem); top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3]; filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2) & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl x5=x4; x7=w; hook_out(5,6,7); % closing hook filldraw circ_stroke z4e--z5e; % stem pairequate(tca,z1); %top center accentpoint pairequate(lca,z3); %low center accentpoint pairequate(tra,z4); %top right accentpoint pairequate(tla,tca); %top left accentpoint pairequate(lla,lca); %low left accentpoint pairequate(lra,z6); %low right accentpoint math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(0,1,2,3,4,5,6,7); endchar; % cmchar "Italic letter b"; newchar(b,8u#,asc_height#,0); italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; adjust_fit(0,0); pickup tiny.nib; pos1(stem,0); pos2(stem,0); x1=x2; lft x1l=hround(1.5u-.5stem); top y1=h; y2=.5x_height; filldraw stroke z1e--z2e; % stem sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif pickup fine.nib; pos2'(stem,-180); pos3(vair,-90); pos4(curve,0); pos5(vair,90); pos0(hair,180); z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve); bot y3r=-oo; top y5r=x_height+oo; y4=y2; filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4) & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl pairassign(tca,x5,asc_height); %top center accentpoint pairequate(lca,z3); %low center accentpoint pairequate(tra,tca); %top right accentpoint pairequate(tla,z1); %top left accentpoint pairequate(lla,lca); %low left accentpoint pairequate(lra,lca); %low right accentpoint math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(0,1,2,3,4,5); endchar; % cmchar "Italic letter c"; newchar(c,8u#,x_height#,0); italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi; adjust_fit(0,0); pickup fine.nib; pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(curve,180); pos4(vair,270); pos5(hair,320); x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps; lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5; y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height; path p; p=z4{right}..z5..z6; filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc pairequate(tca,z2); %top center accentpoint pairequate(lca,z4); %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 math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(0,1,2,3,4,5,6); endchar; % cmchar "Italic letter d"; newchar(d,9u#,asc_height#,0); italcorr max(1/3x_height#*slant+.5hair#+.5u#, h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi; adjust_fit(0,0); pickup fine.nib; pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270); x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve); x4+.5stem=hround(w-2.5u+.5stem); top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3]; filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2) & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl x5=x0; x7=w; hook_out(5,6,7); % closing hook pickup tiny.nib; pos5'(stem,0); pos4(stem,0); z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif pairassign(tca,x1,asc_height); %top center accentpoint pairequate(lca,z3); %low center accentpoint pairequate(tra,z4); %top right accentpoint pairequate(tla,tca); %top left accentpoint pairequate(lla,lca); %low left accentpoint pairequate(lra,z6); %low right accentpoint math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(0,1,2,3,4,5,6,7); endchar; % cmchar "Italic letter e"; newchar(e,8u#,x_height#,0); italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#); adjust_fit(0,0); pickup fine.nib; numeric heavy_hair; heavy_hair=hround .2[hair,stem]; pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90); pos3(curve,180); pos4(vair,270); pos5(hair,320); x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u); lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5; y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo; top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6; filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc pairequate(tca,z2); %top center accentpoint pairequate(lca,z4); %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 math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(0,1,2,3,4,5,6); endchar; % cmchar "Italic letter f"; newchar(f,max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#); italcorr asc_height#*slant+.75u#; adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib; numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89); pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(.5[hair,stem],180); pos4(stem,theta+90); pos5(stem,theta-90); pos6(.5[hair,stem],0); pos7(vair,-90); pos8(hair,-180); pos9(flare,-180); rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5]; y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo; y4=.25[x_height,h]; y5=.5[-d,y4]; z4=whatever[z88,z89]; z5=whatever[z88,z89]; x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7]; bulb(2,1,0); bulb(7,8,9); % bulbs filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc filldraw z4r--z5l--z5r--z4l--cycle; % stem filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc pickup crisp.nib; pos20(bar,90); pos21(bar,90); top y20r=top y21r=x_height; lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u; filldraw stroke z20e--z21e; % crossbar pairequate(tca,z2); %top center accentpoint pairequate(lca,z7); %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 math_fit(desc_depth#*slant+u#,x_height#*slant); penlabels(0,1,2,3,4,5,6,7,8,9,20,21,88,89); endchar; % cmchar "Italic letter g"; newchar(g,8u#,x_height#,desc_depth#); italcorr x_height#*slant+.5stem#-u#; adjust_fit(0,0); pickup fine.nib; pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270); x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve); x4+.5stem=hround(w-1.5u+.5stem); top y1r=h+oo; bot y3r=0; y0=y2=.5[y1,y3]; filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2) & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl pos4(stem,0); y4+.5stem=vround .98h; pos5(stem,0); x5=x4; y5=-1/3d; pos6(vair,-90); pos7(hair,-180); pos8(flare,-180); bot y6r=-d-oo; y8-.5flare=vround -.9d; lft x8r=hround(2u-.5flare); x6=x1; bulb(6,7,8); % bulb filldraw circ_stroke z4e---z5e...{left}z6e; % stem and arc pairequate(tca,z1); %top center accentpoint pairequate(lca,z6); %low center accentpoint pairequate(tra,z4); %top right accentpoint pairequate(tla,tca); %top left accentpoint pairequate(lla,lca); %low left accentpoint pairequate(lra,lca); %low right accentpoint math_fit(-min(.3x_height#*slant+.5curve#-u#,1.5u#-desc_depth#*slant), ic#-1/3x_height#*slant); penlabels(0,1,2,3,4,5,6,7,8); endchar; % cmchar "Italic letter h"; newchar(h,9u#,asc_height#,0); italcorr 1/3x_height#*slant+.5hair#+.5u#; adjust_fit(0,0); pickup tiny.nib; pos1(stem,0); pos2(stem,0); x1=x2; lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch x7=w; hook_out(5,6,7)(skewed); % closing hook filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem pairassign(tca,x3,asc_height); %top center accentpoint pairassign(lca,x3,0); %low center accentpoint pairequate(tra,tca); %top right accentpoint pairequate(tla,z1); %top left accentpoint pairequate(lla,z2); %low left accentpoint pairequate(lra,z6); %low right accentpoint math_fit(0,ic#); penlabels(1,2,3,4,5,6,7); endchar; % cmchar "Italic letter i"; newchar(i,5u#,min(asc_height#,10/7x_height#+.5flare#),0); italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#); adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib; x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u; hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks filldraw stroke z2e--z3e; % stem pos8(flare,0); pos9(flare,90); x8=.5w if not monospace:-.4(h-x_height)*slant fi; top y9r=h+1; if bot y9l-top y1