% % lgcmodl.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: % % Lowercase Cyrillic modified letters and variants % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % List of letternames % % Modified % % Vg_hcrs % lat_i_dsc % Vdzhe % LHver_check(3,5); % like |version_check| in ec lhchar "Lowercase Cyrillic letter Vg_hcrs - Variant ghe hcrossed"; cyrchar(Vg_hcrs,8u#-.5width_adj#,x_height#,0); italcorr x_height#*slant-beak_jut#+.25u#; %Gamma->x_height+.5u# adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ -.25u#); % lower_g; pickup tiny.nib; pos1(stem,0); pos2(stem,0); lft x1l=lft x2l=hround (2.5u-.5stem); top y1=h; bot y2=0; filldraw stroke z1e--z2e; % stem pickup crisp.nib; pos3(Vround(vair-vair_corr),90); pos4(hair,0); top y3r=h; x3=x1; rt x4r=hround(w-.45u); y4=good.y(y3l-beak/1.4)-eps; arm(3,4,e,beak_darkness,.4beak_jut); % upper arm and beak if serifs: save slab; slab:=Vround(vair-vair_corr); % lower.slab nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif slab:=vair; % lower.slab dish_serif(2,1,c,1/3,jut,d,1/3,1.25jut); fi % lower serif %%%%% bar_stroke(x1,x1r+1.7u); penlabels(1,2,3,4); endchar; lhchar "Lowercase Cyrillic letter lat_i_dsc - Ukrainian i descender"; %numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#); cyrchar(lat_i_dsc,5u#,min(asc_height#,10/7x_height#+.5idot_diam#), %!!!from ec if is_ogonek: desc_depth# else: sbeak# fi); %ldesc/og_depth %define_whole_blacker_pixels(idot_diam); italcorr h#*slant-serif_fit#+.5idot_diam#-2u#;%!!!from ec adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi, if serifs: serif_fit# else: 0 fi % lr_serif_adj -stem_shift#); begingroup pickup tiny.nib; pos1(stem',0); pos2(stem',0); if odd(w-stem'): change_width; fi lft x1l=hround(.5w-.5stem'); x1=x2; top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0; filldraw stroke z1e--z2e; % stem pos3(idot_diam,0); pos4(idot_diam,90); %!!!from ec if serifs: x3r=max(x1r,x1+.5(idot_diam-tiny)-.2jut) else: x3=x1-.5 fi; %!!!from ec top y4r=h+1; if bot y4l-top y1x_height+.65u# adjust_fit(0,1.7u#); if odd(stem-w): change_width; fi % symmetric & all three equal % lower_t; pickup tiny.nib; pos1(stem,0); pos2(stem,0); lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0; filldraw stroke z1e--z2e; % stem pickup crisp.nib; pos3(vair,90); pos4(hair,0); top y3r=h; x3=x1; rt x4r=hround(w-.45u); y4=good.y(y3l-beak/1.4)-eps; arm(3,4,e,beak_darkness,.4beak_jut); % right arm and beak pos5(hair,180); x5=w-x4; y5=y4; arm(3,5,f,beak_darkness,-.4beak_jut); % left arm and beak %%% if serifs: save slab; slab:=vair; % lower.slab %dish_serif(2,1,c,1/3,1.414jut,d,1/3,1.414jut); % lower serif slab:=Vround(vair-vair_corr); % lower.slab nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); fi % upper bracketing %%%%% w:=w+1.7u; % tail_part(2); _zero:=2; _one:=6; _two:=7; _three:=8; _five:=10; _six:=11; _seven:=12; _eight:=13; _nine:=14; % pickup tiny.nib; numeric bulb_diam; bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,hround 7/8[hair,flare])); set_bar_axis; y[_one]r=y[_two]r=y2.bh; y[_one]l=y[_two]l=y1.bh; penpos[_three](max(currentbreadth+eps,curve if hefty:-3stem_corr fi),0); y[_three]=.5[y[_one]r,-d]; x[_two]l=x[_two]r=max(x[_zero]+.25curve,w-4.75u)+eps; x[_one]l=x[_one]r=x[_zero]-eps; x[_three]r=hround(w-u); x[_two]l:=x[_two]r-.25curve+eps; if x[_three]l