% % lgt2slvi.mf % %% Cyrillic font container with T2 encoding beta-support % % This file is future part of lxfonts package % Version 3.5 // Patchlevel=0 % (c) O.Lapko % % This package is freeware product under conditions similar to % those of D. E. Knuth specified for the Computer Modern family of fonts. % In particular, only the authors are entitled to modify this file % (and all this package as well) and to save it under the same name. % % Content: % % Italic Old Slav letters % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % List of letternames % % az % i_az % l_yus % il_yus % gerv % nash % zemla % ksi % vizhe used ukr_i % izhe used lat_i % izh in lgcomu % omga % omga_rnd % ot % omga_tlo % Vzelo used lat_s % fita in lgcomu % koppa % uk % yat in lgcomu % cherv % shta % psi % b_yus in lgcomu % ib_yus % est used ukr_e % i_est % narrow_e used eps % LHver_check(3,5); % like |version_check| in ec lhchar "Italic Cyrillic letter ligature az - old a"; cyrcharmoving(az); lhchar "Italic Cyrillic letter ligature i_az - iot az"; cyrcharmoving(i_az); lhchar "Italic Cyrillic letter l_yus - little yus"; %cyrcharmoving(l_yus);%restored for Unicode cyrchar(l_yus,11u#,x_height#,0); italcorr 1/3x_height#*slant+.5hair#+.5u#; adjust_fit(if monospace:-.5u# else:.5u# fi, %wbulb_adj 0); % ital_amod; pickup fine.nib; pos1(vair,-90); pos2(hair,0); pos3(hair,0); pos4(vair,-90); pos5(hair,-180); pos6(flare,-180); pos1'(stem,180); pos10(stem,0); top y1l=h+oo; x1=.5[x3,x1']; x2=x3=3u; y3=.35h; y2=.75h; bot y4r=-oo; x4=lft x6r+flare; y6-.5flare=.1h; lft x6r=-.25u; z5r=z6r; y1'=.8h; x1'=x7; z10=z1'; rt x7r=hround(w-2.5u+.5stem); bulb(4,5,6); % bulb x9=w; hook_out(7,8,9); % closing hook filldraw stroke z10e--z7e; % tie filldraw stroke pulled_arc.e(4,3) & super_arc.e(3,1) & super_arc.e(1,1'); % right stem % stem&bar pos11(vair,90); pos12(vair,90); z11=((l,bar_height)..(w,bar_height)) intersectionpoint (pulled_arc.r(4,3) & super_arc.r(3,1)); z12=((0,bar_height)..(w,bar_height)) intersectionpoint (z10l..z7l); filldraw stroke z11e--z12e; % bar numeric stem[]; stem1=max(fine.breadth+eps,.7[thin_join,stem]); pos13(stem1,0); pos14(stem1,0); x13=x14=.5[x11,x12]; y13=y12; y14-.5stem1=0; filldraw circ_stroke z14e--z13e; % stem %%% penlabels(1,1',2,3,4,5,6,7,8,9,11,11',14,15); endchar; lhchar "Italic Cyrillic letter il_yus - iotfied little yus"; %cyrcharmoving(il_yus);%restored for Unicode cyrchar(il_yus,11u#,x_height#,0); italcorr 1/3x_height#*slant+.5hair#+.5u#; adjust_fit(if monospace: 3.5u#+else: 4.5u#+fi.5u#, if monospace:-1.5u# else:0 fi); %rstem_adj % ital_amod;iot pickup fine.nib; pos1(vair,-90); pos2(hair,0); pos3(hair,0); pos4(vair,-90); pos5(hair,-180); pos6(flare,-180); pos1'(stem,180); pos10(stem,0); top y1l=h+oo; x1=.5[x3,x1']; x2=x3=3u-eps; y3=.35h; y2=.75h; bot y4r=-oo; lft x6r=-.25u; x4=min(lft x6r+flare,lft x3l-eps); y6-.5flare=.1h; z5r=z6r; y1'=min(.8h,bot y1l)-eps; z10=z1'; rt x7r=hround (w-2.5u+.5stem)+eps; x1'=x7; bulb(4,5,6); % bulb % right_stem; _one:=7; _two:=8; _three:=9; if monospace: pos[_three](vair,90); pos[_one](stem,0); x[_three]=good.x .5[x[_one],w]; bot y[_three]l=0; y[_one]=1/3h; filldraw stroke z[_one]e{down}...{right}z[_three]e; % terminal else: x[_three]=w; hook_out([_one],[_two],[_three]); fi % opening hook filldraw stroke z10e--z7e; % tie if lft x1'r1.2upper_side: upper_side:=lower_side; fi pos1(top_thickness,-90); pos6(bot_thickness,-90); x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta); lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround 1.75u; x2r-x2l=stem-fine; x5r-x5l=lower_side-fine;%%%%%%%%%%% ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r); ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r); numeric tau; tau=max(.8,.20710678/(superness-.5)); y2r:=vround(y2l+max(1,serif_drop)+eps); filldraw stroke z2e{down} ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke pos7(lower_side,180); pos8(upper_side,180); y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0; filldraw stroke z8e{down} ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke filldraw stroke z6e{left}..tension atleast tau..z7e{up} ..tension atleast tau and atleast 1..{18u,.5h}z9e;% lower left stroke % italic bulb z8'=z8; pos8'(upper_side,0); y1'+.5curve=h+oo; x1'=x8-max(u,.5u+.5curve); %+.5curve%y8+(x_height-bar_height); %%%%%%%%%%% numeric theta; theta=angle(4(x8'-x1'),y8'-y1'); pos1'(curve,theta+90); filldraw z1'l{dir theta}..tension atleast 1 and 1..{down}z8'l --z8'r{up}...{-dir theta}z1'r..cycle; % bulb % from sloped serif if serif_drop>0: pos12(slab,90); lft x12=x2l-.5jut-eps; y12r=y2r-serif_drop; z14=z2l; filldraw z2r--z12r--z12l{right} ...1/3[(x14,y12l),.5[z12l,z14] ]{z14-z12l} ...{down}z14--(x2r,y14)--cycle; % sloped serif fi %%%%% penlabels(0,1,2,3,4,5,6,7,8,9); endchar; lhchar "Italic Cyrillic letter cherv - old che"; cyrcharmoving(cherv); lhchar "Italic Cyrillic letter psi"; cyrchar(psi,11u#,asc_height#,desc_depth#); italcorr x_height#*slant; adjust_fit(0,0); pickup fine.nib; interim superness:=more_super; x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem); hook_in(0,1,2)(skewed); % opening hook pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0); x4=.5w+u; rt x5r=hround(w-.5u); y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4) ..tension atleast 1.05..{up}z5e; % left stem and arc v_bulb(5,6); % closing bulb %%ef stem pickup tiny.nib; pos9(stem',0); pos10(stem,0); pos0'(stem',0); pos1'(stem,0); z1'l=z0'l; x0'=x9; x1'=x10; lft x9l=hround(.5[x3,x5]-.5stem'); top y9=h; % if serifs: +min(oo,serif_drop) fi; numeric edge; edge=rt x10r; y1'=ypart(((edge,body_height+2dot_size)--(edge,-o)) intersectionpoint(z3r{down}...{right}z4r...{up}z5r)); pickup tiny.nib; bot y10=-d; filldraw stroke z9e--z0'e--z1'e--z10e; % stem pickup crisp.nib; pos12(hair,0); pos11'(stem,0); z11'=z10; x12l=x11'l; bot y12=0; filldraw stroke z11'e--z12e; % point if serifs: numeric ef_jut; ef_jut=if monospace:1.4 fi jut; sloped_serif.l(9,0',a,1/3,ef_jut,serif_drop); % upper serif save slab; slab:=vair; % lower.slab dish_serif(10,0',b,1/3,ef_jut,c,1/3,ef_jut); fi % lower serif penlabels(0,1,2,3,4,5,6,7,8); endchar; lhchar "Italic Cyrillic letter shta - old sh"; cyrcharmoving(shta); lhchar "Italic Cyrillic letter ib_yus - iot big yus"; %cyrcharmoving(ib_yus);%restored for Unicode cyrchar(ib_yus,9u#,x_height#,0); italcorr 1/3x_height#*slant+.5hair#+.5u#; %h adjust_fit(if monospace: 4u#+else: 5u#+fi w#-5u#, if monospace:-1.5u# else:0 fi); %rstem_adj % ital_yus;iot % itop_yus; pickup fine.nib; penpos1(fudged.stem,0); penpos2(fudged.hair,0); penpos3(fudged.stem,0); penpos4(fudged.hair,0); w-x2r=.24w; x2-x3=x3-x1; y1=h; y2=y1; y3=y4=bar_height; x3l=hround(2.5u-.5stem); x3r=x4r; z0=whatever[z4l,z2l]=whatever[z1r,z3r]; if hefty: y0:=bar_height+.5fine; fill z3l--diag_end(3l,1l,1,1,1r,3r){z3r-z1r} ...{down}(x0-.5,y0)..(x0+.5,y0){up}... {z2l-z4l}diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; % diagonals else: fill z3l--diag_end(3l,1l,1,1,1r,3r)--z0-- diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; fi % diagonals penpos5(fudged.stem,0); x5=x3; y5-.5stem=-oo; fill circ_stroke z5e--z3e; %middle stem z6'r=z1; z7'r=z2; z7'l=whatever[z4l,z2l]; z6'l=whatever[z1r,z3r]; y6'l=y7'l=vround(y1-vair)-eps; if x7'l