% Please see the file LICENCE-wsuipa.txt for licensing information. % This is IGREEKL.MF in text format, as of Apr. 22, 1989. % This lowercase Greek alphabet was prepared by D. E. Knuth in December, 1979, % inspired by the Monotype faces used in {\sl The Art of Computer Programming}. % (It has been designed for math formulas, not Greek texts.) % The programs were revised for the new \MF\ conventions in 1985. % Character codes \0013--\0047 are generated. cmchar "Lowercase Greek epsilon"; beginchar(oct"030",8.25u#,x_height#,0); italcorr x_height#*slant-.5u#; adjust_fit(0,0); numeric top_thickness,mid_thickness,bot_thickness; top_thickness=max(fine.breadth,vround(slab-2vair_corr)); mid_thickness=max(fine.breadth,vround 2/3vair); bot_thickness=max(fine.breadth,vround(slab-vair_corr)); pickup fine.nib; pos2(top_thickness,90); top y2l=h+o; pos3(max(.6fine.breadth,.35[curve,cap_curve]-stem_corr),180); lft x3l=hround(1.25u); pos9(bot_thickness,angle(-2u,-h)); rt x9l=hround w-.75u; top y9l=vround .25h-o; y9r:=good.y y9r-eps; x9r:=good.x x9r; pos4(vair,-90); pos5(vair,-90); pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x9]; pos7(max(.6fine.breadth,.35[curve,cap_curve]-stem_corr),180); lft x7l=hround(.75u); lft x5=min(hround 4u,lft x6)-eps; pos8(bot_thickness,-90); bot y8r=-o; y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l]; top y5l=vround(.54h+.5vair); y5r=y6l; x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h); filldraw stroke pulled_super_arc.e(2,3)(.5superpull) & z3e{down}...z4e---z5e; % upper bowl filldraw z5r--z6l--z6r--z5l---cycle; % middle tip filldraw stroke pulled_super_arc.e(6,7)(.5superpull) & pulled_super_arc.e(7,8)(.5superpull); % lower bowl numeric bulb_diam[]; bulb_diam1=flare-.75(cap_stem-stem); bulb_diam2=flare+cap_stem-stem; pos0(bulb_diam1,0); pos1(hair,0); lft x0r=hround w-1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1); bulb(2,1,0); % upper bulb filldraw stroke term.e(8,9,right,1,4); % lower terminal penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar; cmchar "Lowercase Greek reversed epsilon"; beginchar(oct"31",8.5u#,x_height#,0); italcorr x_height#*slant-.5u#; adjust_fit(0,0); numeric top_thickness,mid_thickness,bot_thickness; top_thickness=max(fine.breadth,vround(slab-2vair_corr)); mid_thickness=max(fine.breadth,vround 2/3vair); bot_thickness=max(fine.breadth,vround(slab-vair_corr)); pickup fine.nib; pos2(top_thickness,90); top y2l=h+o; pos3(max(.6fine.breadth,.35[curve,cap_curve]-stem_corr),0); rt x3r=hround(w-1.25u); pos4(vair,-90); pos5(vair,-90); pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7]; pos7(max(.6fine.breadth,.35[curve,cap_curve]-stem_corr),0); rt x7r=hround(w-.75u); lft x5=min(hround 4u,lft x6)-eps; pos8(bot_thickness,-90); bot y8r=-o; y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l]; top y5l=vround(.54h+.5vair); y5r=y6l; x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h); filldraw stroke pulled_super_arc.e(2,3)(.5superpull) & z3e{down}...z4e---z5e; % upper bowl filldraw z5r--z6l--z6r--z5l---cycle; % middle tip filldraw stroke pulled_super_arc.e(6,7)(.5superpull) & pulled_super_arc.e(7,8)(.5superpull); % lower bowl numeric bulb_diam[]; bulb_diam1=flare-.75(cap_stem-stem); bulb_diam2=flare+cap_stem-stem; pos0(bulb_diam1,180); pos1(hair,180); lft x0r=hround 1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1); bulb(2,1,0); % upper bulb pos9(bot_thickness,angle(-2u,-h)); lft x9r=hround .75u; top y9l=vround .25h-o; y9r:=good.y y9r-eps; x9l:=good.x x9l; filldraw stroke term.e(8,9,left,1,4); % lower terminal penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar; cmchar "Right-hook lowercase Greek reversed epsilon"; beginchar(oct"32",11.5u#,x_height#,0); italcorr x_height#*slant-.5u#; adjust_fit(0,0); numeric top_thickness,mid_thickness,bot_thickness; top_thickness=max(fine.breadth,vround(slab-2vair_corr)); mid_thickness=max(fine.breadth,vround 2/3vair); bot_thickness=max(fine.breadth,vround(slab-vair_corr)); pickup fine.nib; pos2(top_thickness,90); top y2r=h+o; pos3(.3[curve,cap_curve]-stem_corr,0); rt x3r=hround(.78w-1.25u); pos4(vair,-90); pos5(vair,-90); pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7]; pos7(.3[curve,cap_curve]-stem_corr,0); rt x7r=hround(.78w-.75u); lft x5=min(hround 4u,lft x6)-eps; pos8(bot_thickness,-90); bot y8r=-o; y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l]; top y5l=vround(.54h+.5vair); y5r=y6l; x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h); filldraw stroke pulled_super_arc.e(2,3)(.5superpull) & z3e{down}...z4e---z5e; % upper bowl filldraw z5r--z6l--z6r--z5l---cycle; % middle tip filldraw stroke pulled_super_arc.e(6,7)(.5superpull) & pulled_super_arc.e(7,8)(.5superpull); % lower bowl numeric bulb_diam[]; bulb_diam1=flare-.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem; pos0(bulb_diam1,180); pos1(hair,180); lft x0r=hround 1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1); bulb(2,1,0); % upper bulb pos9(bot_thickness,angle(-2u,-h)); lft x9r=hround .75u; top y9l=vround .25h-o; y9r:=good.y y9r-eps; x9l:=good.x x9l; filldraw stroke term.e(8,9,left,1,4); % lower terminal % right hook pos10(hair,0); pos11(hair,0); pos12(hair,0); pos13(hair,90); pos14(hair,180); z10=z3; top y11=h; rt x11r=hround(x3r+2u)=rt x12r; y12=.65[y11,y13]=y14; x13=.5[x11,x14]; bot y13l=.5h; x14l=w; filldraw stroke z10e--z11e; filldraw stroke z11e--z12e...z13e...z14e; penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar; cmchar "Lowercase Greek closed reversed epsilon"; beginchar(oct"33",8.5u#,x_height#,0); italcorr x_height#*slant-.5u#; adjust_fit(0,0); numeric top_thickness,mid_thickness,bot_thickness; top_thickness=max(fine.breadth,vround(slab-2vair_corr)); mid_thickness=max(fine.breadth,vround 2/3vair); bot_thickness=max(fine.breadth,vround(slab-vair_corr)); pickup fine.nib; pos2(top_thickness,90); top y2r=h+o; pos3(max(.6fine.breadth,.35[curve,cap_curve]-stem_corr),0); rt x3r=hround(w-1.25u); pos4(vair,-90); pos5(vair,-90); pos5'(slab,180); y5'=y5; x5'=0; pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7]; pos7(max(.6fine.breadth,.35[curve,cap_curve]-stem_corr),0); rt x7r=hround(w-.75u); lft x5=min(hround 4u,lft x6)-eps; pos8(bot_thickness,-90); bot y8r=-o; y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l]; top y5l=vround(.54h+.5vair); y5r=y6l; x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h); filldraw stroke z8e{left}...{up}z5'e...z2e &pulled_super_arc.e(2,3)(.5superpull) & z3e{down}...z4e---z5e; % upper bowl filldraw z5r--z6l--z6r--z5l---cycle; % middle tip filldraw stroke pulled_super_arc.e(6,7)(.5superpull) & pulled_super_arc.e(7,8)(.5superpull); % lower bowl penlabels(2,3,4,5,6,7,8,,5'); endchar; cmchar "Lowercase Greek theta"; beginchar(oct"123",8.25u#,asc_height#,0); italcorr .7asc_height#*slant+.5curve#-u#; adjust_fit(0,0); pickup fine.nib; pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360); x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2; top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo; filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3) & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl pos2'(bar,90); pos4'(bar,90); z2'=z2l; z4'=z4l; filldraw stroke z2'e--z4'e; % bar math_fit(-.3asc_height#*slant-u#+.5curve#,ic#-.5u#); penlabels(1,2,3,4); endchar; cmchar "Lowercase Greek iota"; beginchar(oct"051",5u#,x_height#,0); italcorr 1/3x_height#*slant+.5hair#+.5u#; adjust_fit(if monospace: u#,u# else: 0,0 fi); pickup fine.nib; pos1(stem,0); lft x1l=hround(1.5u-.5stem); y1+.5stem=h+oo; x2=x1-.25u; x4=w; hook_out(2,3,4)(skewed); % closing hook filldraw circ_stroke z1e{down}...{-u,-x_height}z2e; % stem math_fit(0,ic#); penlabels(1,2,3,4); endchar; cmchar "Lowercase Greek lambda"; beginchar(oct"62",10.5u#,asc_height#,0); adjust_fit(0,0); pickup fine.nib; pos1(vair,90); lft x1=hround .1u; top y1r=h; x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps); z4-(.25u,0)=whatever[z2,z3]; 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 y5=.5[bar_height,x_height]; z5=whatever[z2,z3]; x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90); filldraw circ_stroke z6e--z5e; % short diagonal penlabels(1,2,3,4,5,6); endchar; cmchar "Lowercase crossed Greek lambda"; beginchar(oct"063",10.5u#,asc_height#,0); adjust_fit(0,0); pickup fine.nib; pos1(vair,90); lft x1=hround .1u; top y1r=h; x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps); z4-(.25u,0)=whatever[z2,z3]; 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 y5=.5[bar_height,x_height]; z5=whatever[z2,z3]; x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90); filldraw circ_stroke z6e--z5e; % short diagonal pickup fine.nib; pos7(bar,125); pos8(bar,125); x7=x1; y7 = .57h; top y8=.9h; x8=.5[x5,x4]; filldraw stroke z7e--z8e; % crossbar penlabels(1,2,3,4,5,6,7,8); endchar; cmchar "Script v (Lowercase Greek upsilon)"; beginchar(oct"131",9u#,x_height#,0); italcorr x_height#*slant; adjust_fit(0,0); pickup fine.nib; interim superness:=more_super; x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem); hook_in(0,1,2)(skewed); % opening hook pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0); x4=.5w+u; rt x5r=hround(w-.5u); y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4) ..tension atleast 1.05..{up}z5e; % left stem and arc v_bulb(5,6); % closing bulb math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#); penlabels(0,1,2,3,4,5,6); endchar; cmchar "Lowercase Greek chi"; beginchar(oct"133",9.5u#,x_height#,desc_depth#); italcorr x_height#*slant+.5hair#-1.5u#; adjust_fit(0,0); pickup fine.nib; pos1(hair,180); pos2(vair,80); pos5(vair,80); pos6(hair,180); x1-.5hair=hround-.5hair; x6=w-x1; x2=w-x5=u; y1=y2l-h/8; top y2r=h+oo; bot y5l=-d-oo; y6=y5r+h/8; z0=.5[z2,z5]; z2'=z2l+(.5u,0); z5'=z5r-(.5u,0); numeric theta; theta=angle(z5'-z2')+90; pos3(stem,theta); pos4(stem,theta); y3r=y2r-h/8; y4l=y5l+h/8; z3l=whatever[z2',z0]; z4r=whatever[z0,z5']; filldraw stroke z1e{up}...z2e{right}...z3e{z4r-z3l} ..z4e{z4r-z3l}...{right}z5e...{up}z6e; % major diagonal and hooks x8=w-x7=2u; y7+.5hair=h; y8-.5hair=-d; numeric theta; theta=angle(z7-z8)-90; pos7(hair,theta); pos8(hair,theta); filldraw z7l---z8l..z8r---z7r..cycle; % minor diagonal math_fit((desc_depth#-x_height#)*slant+ic#,ic#); penlabels(0,1,2,2',3,4,5',5,6,7,8); endchar; cmchar "Lowercase Greek omega"; beginchar(oct"076",11u#,x_height#,0); italcorr x_height#*slant; adjust_fit(0,0); pickup fine.nib; pos2(hair,-180); lft x2r=hround.5u; y2=y4=y6=y8=bar_height; y1+.5hair=h; x1=x2+.75u; pos1(hair,angle(2(x1-x2),y1-y2)+90); pos3(vstem,-90); pos4(hair,0); pos5(vair,90); pos6(hair,180); pos7(vstem,270); pos8(hair,360); bot y3r=bot y7r=-oo; top y5r=vround(.2[y4,h]+.5vair); x3=.4[x2,x4]; x7+.25u=.6[x6,x8]; rt x8r=hround(w-.5u); x5+.5stem=hround(.5w+.5stem)+eps; x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps; if x4l