% ---------------------------------------------------------------------------
% This is PL_MLK.MF ({\bif{}ma\l{}e polskie litery --- kursywa}, i.e.,
% lowercase italic Polish letters: a and e with ogonek, crossed l,
% accented c, n, o, s, z, and dotted z) in text format.
% The program is based on excerpts from the ITALL.MF file.
% ---------------------------------------------------------------------------
% PL VERSION 1.03,   18 Dec 1992
% ---------------------------------------------------------------------------
% AUTHORS OF ADAPTATION: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko}
% ---------------------------------------------------------------------------
% This file belongs to the public domain under conditions similar to
% those of D. E. Knuth specified for the Computer Modern family of fonts.
% 
% For details see either the file MEXINFO.POL or MEXINFO.ENG.
% ---------------------------------------------------------------------------
% HISTORY
%  7 Feb 1992: version 1.00
% 11 Feb 1992: version 1.01
%    (no changes; the new version number due to changes in \MeX{} format)
% 25 May 1992: version 1.02
%    The stroke in crossed l (olde code for the letter l):
%|  filldraw stroke z1e--z2e;  %| stem
%    changed to:
%|  filldraw stroke z1e--z2'e;  %| stem
% 18 Dec 1992: version 1.03
%    (no changes; the new version number due to changes in FIK_MIK.MF
%    and some cosmetic changes in CMBX11.MF, CMR11.MF, CMTI11.MF, CMSL11.MF,
%    CMSSBI10.MF, and POLAN.MF)
% ---------------------------------------------------------------------------

% ---------------------------------------------------------------------------
limit_dist:=5/4u; % it is used in |put_accent| and |put_cross|
% (the value of |u| is changed by |mono_adjust|, hence the global setting)
% ---------------------------------------------------------------------------

cmchar "Italic letter a with ogonek";
beginchar(ogonked_a,9u#,x_height#,the_ogonek_depth);
 italcorr 1/3x_height#*slant+.5hair#+.5u#;
 adjust_fit(0,0); pickup fine.nib;
 pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
 pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
 x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
 rt x4r=hround(w-2.5u+.5stem);
 top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
 filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
  & pulled_arc.e(2,3) & super_arc.e(3,0);  % bowl
 x5=x4; x7=w; hook_out(5,6,7);  % closing hook
 filldraw circ_stroke z4e--z5e;  % stem
 penlabels(0,1,2,3,4,5,6,7);
 path p.l;
 p.l=if skewed: z5l{-u,-x_height}...z6l{right}...{up}z7l
  else: z5l{down}...z6l{right}...{x7-(x5+2.5u),x_height}z7l fi;
 ogonek_breadth=xvair; ogonek_pos=point .9 of p.l;
 put_ogonek(if known ogonek_pen: ogonek_pen else: fine fi);
endchar; % italic a with ogonek

cmchar "Italic letter accented c";
beginchar(accented_c,8u#,x_height#,0);
 italcorr x_height#*slant-u#;
 adjust_fit(0,0); pickup fine.nib;
 pos0(flare,0); pos1(hair,0); pos2(vair,90);
 pos3(curve,180); pos4(vair,270); pos5(hair,320);
 x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
 lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
 y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0);  % bulb
 bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
 path p; p=z4{right}..z5..z6;
 filldraw stroke pulled_arc.e(2,3)
  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
 penlabels(0,1,2,3,4,5,6);
 hpos_corr=-.25u; put_accent;
endchar; % italic accented c

cmchar "Italic letter e with ogonek";
beginchar(ogonked_e,8u#,x_height#,the_ogonek_depth);
 italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
 adjust_fit(0,0); pickup fine.nib;
 numeric heavy_hair; heavy_hair=hround .2[hair,stem];
 pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
 pos3(curve,180); pos4(vair,270); pos5(hair,320);
 x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
 lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
 y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
 top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
 filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
  & pulled_arc.e(3,4)...{direction 1 of p}z5e;  % arc
 penlabels(0,1,2,3,4,5,6);
 path p.r; p.r=pulled_arc.r(3,4)...{direction 1 of p}z5r;
 def the_pen=
  if known ogonek_pen: ogonek_pen else: fine fi
 enddef;
 numeric tt; % the time...
 tt=if hefty: 2.8 else: 2.6 fi;
 join_angle=angle((direction tt of p.r) rotated 180);
 ogonek_breadth=xvair;
 ogonek_pos=point tt of p.r+.5(the_pen-fine)*
  unitvector((direction tt of p.r) rotated 90);
 put_ogonek(the_pen);
endchar; % italic e with ogonek

cmchar "Italic letter crossed l";
beginchar(crossed_l,4u#,asc_height#,0); l_width#:=4u#;
 italcorr max(1/3x_height#*slant+.5hair#+.5u#,asc_height#*slant+.5stem#-2u#);
 charwd_:=charwd; 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
 penlabels(1,2,3,4);
 if not monospace:
  charwd:=charwd_; adjust_fit(.25u#,if is_bold: .75 fi\\ u#);
 fi
% some funny fonts have an extremally small |jut|:
 numeric l_jut; l_jut=.5stem+max(limit_dist,if hefty: .8 fi\\ jut);
 put_cross(l_jut,1.15l_jut);
endchar; % italic crossed l

cmchar "Italic letter accented n";
 beginchar(accented_n,10u#,x_height#,0);
 italcorr 1/3x_height#*slant+.5hair#+.5u#;
 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
 x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4);  % arch
 x7=w; hook_out(5,6,7)(skewed);  % closing hook
 filldraw stroke z4e{down}..{-u,-x_height}z5e;  % right stem
 penlabels(0,a,1,2,3,4,5,6,7);
 hpos_corr=-.5u; put_accent;
endchar; % italic accented n

cmchar "Italic letter accented o";
beginchar(accented_o,9u#,x_height#,0);
 italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
 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
 penlabels(1,2,3,4);
 put_accent;
endchar; % italic accented o

cmchar "Italic letter accented s";
beginchar(accented_s,5.25u#+max(1.75u#,flare#),x_height#,0);
 italcorr x_height#*slant-.5u#;
 adjust_fit(0,0); pickup fine.nib;
 numeric theta; theta=90-angle(40u,h); slope:=-h/40u;  % angle at middle
 pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
 x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
 y0-.5ess=y7l+.55(y2r-y7l-ess);
 lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
 x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
 ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
 ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
 interim superness:=more_super;
 filldraw stroke super_arc.e(2,3) & z3e{down}
  ..z4e---z5e..z6e{down} & super_arc.e(6,7);  % main stroke
 pos1(hair,0); pos10(hround .75[hair,flare],0);
 pos2'(vair,90); z2'=z2;
 pos8(hair,-180); pos9(flare,-180);
 rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
 bulb(2',1,10); bulb(7,8,9);  % bulbs
 penlabels(0,1,2,3,4,5,6,7,8,9,10);
 hpos_corr=-.5u; put_accent;
endchar; % italic accented s

cmchar "Italic letter accented z";
beginchar(accented_z,5.5u#+max(1.5u#,stem#),x_height#,0);
 italcorr x_height#*slant+.5hair#;
 adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
 pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
 lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
 top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
 pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
 x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
 bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
 pair p; p=(z4-z5) yscaled 2;
 filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e;  % upper bar
 filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e;  % lower bar
 filldraw stroke z5e{p}..{p}z4e;  % diagonal
 penlabels(1,2,3,4,5,6,7,8);
 hpos_corr=-.5u; put_accent;
endchar; % italic accented z

cmchar "Italic letter dotted z";
beginchar(dotted_z,5.5u#+max(1.5u#,stem#),x_height#,0);
 italcorr x_height#*slant+.5hair#;
 adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
 pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
 lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
 top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
 pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
 x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
 bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
 pair p; p=(z4-z5) yscaled 2;
 filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e;  % upper bar
 filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e;  % lower bar
 filldraw stroke z5e{p}..{p}z4e;  % diagonal
 penlabels(1,2,3,4,5,6,7,8);
 put_dot(fine,flare#);
endchar; % italic dotted z

endinput;
%%\end

