From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- fonts/wsuipa/mf/igreekl.mf | 443 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 443 insertions(+) create mode 100644 fonts/wsuipa/mf/igreekl.mf (limited to 'fonts/wsuipa/mf/igreekl.mf') diff --git a/fonts/wsuipa/mf/igreekl.mf b/fonts/wsuipa/mf/igreekl.mf new file mode 100644 index 0000000000..46989fcfdd --- /dev/null +++ b/fonts/wsuipa/mf/igreekl.mf @@ -0,0 +1,443 @@ +% 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