diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/lh/base/lgcyrsp.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/lh/base/lgcyrsp.mf | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgcyrsp.mf b/Master/texmf-dist/fonts/source/lh/base/lgcyrsp.mf new file mode 100644 index 00000000000..734cf04319a --- /dev/null +++ b/Master/texmf-dist/fonts/source/lh/base/lgcyrsp.mf @@ -0,0 +1,165 @@ +% +% lgt2lou.mf +% +%% Cyrillic font container with T2 encoding beta-support +% +% This file is future part of lxfonts package +% Version 3.4 // Patchlevel=0 +% (c) O.Lapko +% +% This package belongs to the public domain 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 to save it under the same name. +% +% Content: +% +% Uppercase Cyrillic letters 0--127 for T2 encoding +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +% List of letternames and their codes in T2 +% +% SP_LJE - Special title Lje +% SP_NJE - Specisl title Nje +% + +LHver_check(3,4); % like |version_check| in ec + +lhchar "Title Cyrillic letter LJE (Soft L)"; +cyrchar(LJE_title,13.5u#,cap_height#,0); % DL_width:N_width +if is_small_cap: getcharcode(lje); fi; +italcorr .52*.7cap_height#*slant-.5u#; % D*.52h +adjust_fit(cap_serif_fit# if not serifs:+.5(cap_stem#-u#) fi, %DL_adj + 4u# if serifs:-.5width_adj# fi);%lsftsn_adj;lsftsnwd-.5width_adj +% upper_l; +pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); +rt x1r=rt x2r=w-hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0; +filldraw stroke z1e--z2e; %stem +numeric bulb_diam; bulb_diam=flare+(cap_stem-stem); +numeric light_hair,bot_vair,left_jut; +light_hair=max(tiny.breadth,fudged.hair if hefty:-4stem_corr fi); +left_jut= + if serifs: max(limit_dist,1.1cap_jut) + else: hround (w+cap_serif_fit-rt x2r-.65u) fi; +bot_vair=Vround(.5[vair,light_hair]); +x3=1/3[w-rt x1r-(1/6left_jut),rt x1r] if not serifs:-.5(cap_stem-u) fi+eps; +if serifs: + pos3(light_hair,0); pos4(light_hair,-90); + pos6(bulb_diam,-180); pos5(cap_hair,-180); + top y3=h; y6=1/6h-max(0,flare-stem-2vair_corr-.5); z6r=z5r; + lft x6r=l+letter_fit+hround(.5u-.5); + x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]); bot y4r=-o; + filldraw stroke z4e{right}.. + controls (min(15/16[x4,x3],max(x4,lft x6r+2flare-eps))+(x3e-x3),y4e) + and (x3e,min(y6-.5,1/3h-eps)+1/3(y4e-y4))..z3e; % left tail + {{less_tense; bulb(4,5,6)}}; +else: + pos3'(slab,90); pos1'(slab,90); + lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h; + filldraw stroke z3'e--z1'e; + pickup fine.nib; pos3(max(fine.breadth,light_hair),0); pos4(bot_vair,-90); pos5(bot_vair,-90); + bot y5r=0; x4=2/3[x3l,x5r]; lft x5=l+letter_fit+hround(.35u-.5); + bot y4r=bot y5r; y3=y3'; x4l:=.25[x4,x5]; + path p; + p=stroke z3{down} + ..controls (x3,y5+.35h-eps) and (min(7/8[x4,x3],x5+2.5light_hair+.5u),y4) + ..{left}z4--z5; + z6=point .35 of p; + pos6(max(fine.breadth,7/8[bot_vair,light_hair]),angle(direction .35 of p)+90); + filldraw stroke z3e{down}...z6e{direction .35 of p}...{left}z4e--z5e; fi % arc +%%% +if serifs: + x0=x3; y0=0; + numeric inner_jut; inner_jut=.5(lft x1l-rt x3r)+.5crisp+eps; + nodish_serif(2,1,a,1/3,cap_jut,b,1/3,.5cap_jut); %!!! % lower right serif + nodish_serif(1,2,c,1/3,inner_jut,d,1/3,cap_jut); %upper right serif + nodish_serif(3,0,e,1/3,cap_jut,f,1/3,inner_jut); fi %upper left serif +%%%%% +% now the b part +w:=w+3.75u if serifs:-.5width_adj fi;%lsftsnwd-.25u-.5width_adj +% lsftsn_bowl(2);special +_zero:=2; +_one:=7; _two:=8; _three:=9; _four:=10; _five:=11; +% +numeric bar[],right_curve; +if known lower.cap_height#: % for Small Caps fonts + bar1=cap_band; right_curve=cap_curve if hefty:-3stem_corr fi; + y2.bh-y1.bh=cap_bar; .5[y2.bh,y1.bh]=.52lower.cap_height#*hppp; +else: + bar1=vair'; right_curve=curve if hefty:-3stem_corr fi; + set_bar_axis; +fi +penpos[_three](right_curve,0);%!!! +penpos[_four](bar1,-90); penpos[_five](bar1,-90);%!!! +z[_five]r=(x[_zero],tiny.bot y[_zero]); y[_four]=y[_five];%!!! +y[_three]=.5[y[_two]l,y[_four]l]; +y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh; +x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u; +x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u); +x[_two]l:=x[_four]l:=x[_two]r-.25curve; +fill stroke + {{if not serifs: interim superness:=more_super; fi + z[_five]e..super_arc.e([_four],[_three])}} & + super_arc.e([_three],[_two])..z[_one]e; % lobe +%%% +%%%%% +penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar; + +lhchar "Title Cyrillic letter NJE (Soft N - looks like Hb)"; +cyrchar(NJE_title,13.5u#,cap_height#,0); +if is_small_cap: getcharcode(nje); fi; +italcorr .52*.7cap_height#*slant-.5u#; % D*.52h +adjust_fit(cap_serif_fit#, + 4u# if serifs:-.5width_adj# fi);%lsftsn_adj;lsftsnwd-.5width_adj +% upper_n; +pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); +pos3(cap_stem,0); pos4(cap_stem,0); +lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1; +top y1=top y3=h; bot y2=bot y4=0; +filldraw stroke z1e--z2e; % left stem +filldraw stroke z3e--z4e; % right stem +penpos5(cap_bar,90); penpos6(cap_bar,90); +x5=x1; x6=x3; y5=y6=.52h; +fill stroke z5e--z6e; % bar +%%% +if serifs: + numeric inner_jut; + if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut; + else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi + dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif + dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif + dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper rt serif + nodish_serif(4,3,g,1/3,inner_jut,h,1/3,.5cap_jut); fi %!!!% lower rt serif +%%%%% +% now the b part +w:=w+3.75u if serifs:-.5width_adj fi;%lsftsnwd-.25u-.5width_adj +% lsftsn_bowl(4);special +_zero:=4; +_one:=7; _two:=8; _three:=9; _four:=10; _five:=11; +% +numeric bar[],right_curve; +if known lower.cap_height#: % for Small Caps fonts + bar1=cap_band; right_curve=cap_curve if hefty:-3stem_corr fi; + y2.bh-y1.bh=cap_bar; .5[y2.bh,y1.bh]=.52lower.cap_height#*hppp; +else: + bar1=vair'; right_curve=curve if hefty:-3stem_corr fi; + set_bar_axis; +fi +penpos[_three](right_curve,0);%!!! +penpos[_four](bar1,-90); penpos[_five](bar1,-90);%!!! +z[_five]r=(x[_zero],tiny.bot y[_zero]); y[_four]=y[_five];%!!! +y[_three]=.5[y[_two]l,y[_four]l]; +y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh; +x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u; +x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u); +x[_two]l:=x[_four]l:=x[_two]r-.25curve; +fill stroke + {{if not serifs: interim superness:=more_super; fi + z[_five]e..super_arc.e([_four],[_three])}} & + super_arc.e([_three],[_two])..z[_one]e; % lobe +%%% +penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar; + +endinput; +%end of file |