% --------------------------------------------------------------------------- % This is PL_MLK.MF (mał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.09a, 30th March 2020 (see README.ENG) % --------------------------------------------------------------------------- % AUTHORS OF ADAPTATION: Bogusław Jackowski and Marek Ryćko % --------------------------------------------------------------------------- % 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. % --------------------------------------------------------------------------- %%% beginchar beginchar_twice %%% endfor repeat_once % --------------------------------------------------------------------------- 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_twice(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; repeat_once 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_twice(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); repeat_once endchar; % italic crossed l cmchar "Italic letter accented n"; beginchar_twice(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; repeat_once endchar; % italic accented n cmchar "Italic letter accented o"; beginchar_twice(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; repeat_once endchar; % italic accented o cmchar "Italic letter accented s"; beginchar_twice(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; repeat_once endchar; % italic accented s cmchar "Italic letter accented z"; beginchar_twice(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; repeat_once endchar; % italic accented z cmchar "Italic letter dotted z"; beginchar_twice(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#); repeat_once endchar; % italic dotted z endinput; %%\end