% This is ITALKLM.MF % Version 1.0a % Date 8-SEP-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, kra, m_acute % % Higher versions of this file might include more characters. cmchar "Italic letter k"; beginchar("k",8u#,asc_height#,0); italcorr x_height#*slant; 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; pos3(vair,90); x3=x1; y3=bar_height; pos4(vair,90); x4=w-2u; top y4r=x_height+oo; filldraw stroke z3e{right}..{right}z4e; % upper diagonal pos5(hair,0); pos6(flare,0); rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6); % bulb pos7(stem,0); pos8(vair,90); pos9(hair,180); x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height; lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo; filldraw stroke z3e{right}...z7e{down} ...z8e{right}...{up}z9e; % lower diagonal math_fit(0,1/3x_height#*slant+.5hair#+.5u#); penlabels(1,2,3,4,5,6,7,8,9); endchar; iff known kra: cmchar"Italic letter kra"; % Greenlandic. from cmcyr %cmchar "Cyrillic italic letter ka"; beginchar(kra,9.5u#,x_height#,0); italcorr x_height#*slant; adjust_fit(0,0); pickup fine.nib; x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo; hook_in(0,a,1); % opening hook filldraw circ_stroke z2e--z1e; % left stem pos3(vair,90); x3=x1; y3=bar_height; pos4(vair,90); x4=w-2u; top y4r=x_height+oo; filldraw stroke z3e{right}..{right}z4e; % upper diagonal pos5(hair,0); pos6(flare,0); rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6); % bulb pos7(stem,0); pos8(vair,90); pos9(hair,180); x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height; lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo; filldraw stroke z3e{right}...z7e{down} ...z8e{right}...{up}z9e; % lower diagonal math_fit(0,1/3x_height#*slant+.5hair#+.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar; iff known hooktop_k: cmchar "Italic letter hooktop k"; % jk, based on cm beginchar(hooktop_k,8u#,asc_height#,0); italcorr x_height#*slant; adjust_fit(0,0); pickup tiny.nib; pos1(stem,0); pos2(stem,0); x1=x2; lft x1l=hround(1.5u-.5stem); y2-.5stem=-oo; rt x23=hround(w-2.5u); top_hook(1,20,21,22,23); % hooktop y1=y1'; filldraw circ_stroke z2e--z1e; % left stem pickup fine.nib; pos3(vair,90); x3=x1; y3=bar_height; pos4(vair,90); x4=w-2u; top y4r=x_height+oo; filldraw stroke z3e{right}..{right}z4e; % upper diagonal pos5(hair,0); pos6(flare,0); rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6); % bulb pos7(stem,0); pos8(vair,90); pos9(hair,180); x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height; lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo; filldraw stroke z3e{right}...z7e{down} ...z8e{right}...{up}z9e; % lower diagonal math_fit(0,1/3x_height#*slant+.5hair#+.5u#); penlabels(1,2,3,4,5,6,7,8,9,20,21,22,23); endchar; cmchar "Italic letter l"; beginchar("l",4u#,asc_height#,0); l_width#:=4u#; italcorr max(1/3x_height#*slant+.5hair#+.5u#, asc_height#*slant+.5stem#-2u#) if math_fitting:+.5u# fi; adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib; x2-.5stem=hround(1.5u-.5stem); x4=w; hook_out(2,3,4); % closing hook pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2; top y1=h; x1=x2; filldraw stroke z1e--z2'e; % stem sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif math_fit(-.5u#,1/3x_height#*slant+.5hair#+u#); penlabels(1,2,3,4); endchar; cmchar "Italic letter m"; beginchar("m",15u#,x_height#,0); italcorr 1/3x_height#*slant+.5hair#+.5u#; adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib; numeric shaved_stem; shaved_stem=mfudged.stem; save stem; stem=shaved_stem; pos2(stem,0); x1=x2; if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h; else: x0=0; lft x2l=hround(2.5u-.5stem); hook_in(0,a,1); fi % opening hook y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch pos5(stem,0); y5=y2; x5=x4; filldraw circ_stroke z5e--z4e; % middle stem x7+.5stem=hround(w-2.5u+.5stem); x8=x7-.25u; ital_arch(5,6,7); % right arch if monospace: pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h; pos8(stem,0); filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal else: x9=w; hook_out(8,b,9)(skewed); fi % closing hook filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem picture savedpicture; savedpicture:=currentpicture; math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#); penlabels(0,a,1,2,3,4,5,6,7,8,9); endchar; iff known m_acute: cmchar "The letter m with acute"; beginchar(m_acute,15u#,.75[x_height#,min(asc_height#,2x_height#)],0); italcorr 1/3x_height#*slant+.5hair#+.5u#; adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib; currentpicture:=savedpicture; if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem); x2=hround(.5w-5/6u); y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair); numeric theta; theta=angle(z2-z1)+90; pos1(stem,theta); pos2(hair,theta); filldraw circ_stroke z1e--z2e; % diagonal else: pickup fine.nib; pos1(stem,0); pos2(vair,0); rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair); top y1=h; bot y2=vround 2/3[h,x_height]; filldraw stroke z1e--z2e; fi % diagonal penlabels(1,2); endchar; savedpicture:=nullpicture; endinput;