% 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;