You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

204 lines
8.4 KiB

% ---------------------------------------------------------------------------
% 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.09, April 13th, 2001 -- released for BachoTeX 2001
% ---------------------------------------------------------------------------
% 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.
% ---------------------------------------------------------------------------
% ---------------------------------------------------------------------------
%%% 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