% This is UPPERKLM.MF % Version 1.0b % Date 8-APR-1991 % % (c) 1991 by J"org Knappen. See fc.rme for copying conditions % This file is part of the fc-package % See fc.rme for more information % % J"org Knappen % Institut f"ur Kernphysik % Postfach 39 80 % D-W 6500 Mainz % knappen@vkpmzd.kph.uni-mainz.de % Contents: % % The following characters are generated without condition: % % K, L, M % % And the following on demand, i. e. if their code is known: % % hooktop_K, M_acute % % Higher versions of this file might include more characters. cmchar "The letter K"; beginchar("K",13.5u#,cap_height#,0); italcorr cap_height#*slant-.5u#; adjust_fit(cap_serif_fit#,cap_serif_fit#); numeric right_jut,stem[],alpha[]; if serifs: right_jut=.6cap_jut; else: right_jut=.4tiny; fi pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0); lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0; filldraw stroke z1e--z2e; % stem stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr); stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi); top y3=h; rt x3r=hround(r-letter_fit-u-right_jut); bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut); x4=x1; y4=1/3h; alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4); penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90); alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1); penpos6(alpha2*(stem2-tiny),0); forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4); z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor z5=.5[z5l,z5r]; z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4); % we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\] z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6); z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6); fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal if serifs: numeric inner_jut; if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut; else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal serif dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar; iff known hooktop_K: cmchar "Capital letter hooktop K"; beginchar(hooktop_K,13.5u#,cap_height#,0); italcorr cap_height#*slant-.5u#; adjust_fit(cap_serif_fit#,cap_serif_fit#); numeric right_jut,stem[],alpha[]; if serifs: right_jut=.6cap_jut; else: right_jut=.4tiny; fi pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0); lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0; filldraw stroke z1e--z2e; % stem stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr); stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi); top y3=h; rt x3r=hround(r-letter_fit-4u); bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut); x4=x1; y4=1/3h; alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4); penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90); alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1); penpos6(alpha2*(stem2-tiny),0); forsuffixes $=l,r:% y3'$=h; y7''$=.79h; y6'$=0; z4$=z7''$+whatever*(z3-z4); z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor z5=.5[z5l,z5r]; z7=whatever[z3,z4]; y7=h-.21h; penpos7(alpha1*(stem1-tiny),0); z7''r=z7r+penoffset z7-z4 of currentpen+whatever*(z7-z4); z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6); z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6); fill z4r--diag_end(4r,7''r,1,.5,7''l,4l)--z4l--cycle; % part of upper diagonal fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal if serifs: pickup tiny.nib; z7'=z7; penpos7'(alpha*(stem1-tiny),180); pickup fine.nib; pos8(cap_band,90); pos9(cap_hair,0); pos10(flare+(cap_stem-stem),0); top y8=h+o; x8=.5[x3,x9]; y10=5/6h; rt x10r=hround(w-.5u); z9r=z10r; filldraw z7r{z3-z4}...z8l--z8r...{z4-z3}z7l--cycle; % link bulb(8,9,10); % bulb pickup tiny.nib; numeric inner_jut; if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut; else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); % lower diagonal serif else: % pickup fine.nib; pos8(alpha1*(stem1-tiny),0); z8=z7; pos9(flare,angle(6.5u,-h)); pos10(flare,-100); top y9l=h+o; x9l=.5[x8l,x10l]; rt x10l=hround(w-.5u); top y10l=vround.94h+o; filldraw stroke z7e{z3-z4}....term.e(9,10,right,1,10); fi math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10); endchar; cmchar "The letter L"; beginchar("L",11u#-width_adj#,cap_height#,0); adjust_fit(cap_serif_fit#,0); pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0; filldraw stroke z1e--z2e; % stem pickup crisp.nib; pos3(slab,-90); pos4(hair,0); bot y3r=0; x3=x2; y4=y3l+7/6beak+eps; rt x4r=hround(w-.75u); arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,1.25cap_jut); % upper serif nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif math_fit(0,u#); penlabels(1,2,3,4); endchar; cmchar "The letter M"; beginchar("M",16u#+width_adj#,cap_height#,0); italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#); adjust_fit(cap_serif_fit#,cap_serif_fit#); numeric stem[]; % thicknesses of the four strokes stem1=hround(fudged.hair+stem_corr); stem2=hround(fudged.cap_stem-4stem_corr); stem3=hround(fudged.hair-stem_corr); stem4=hround(fudged.cap_stem-3stem_corr); if stem4