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