diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/lh/base/lgt2lol.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/lh/base/lgt2lol.mf | 136 |
1 files changed, 63 insertions, 73 deletions
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2lol.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2lol.mf index 640e6f715f8..4365d7d50f7 100644 --- a/Master/texmf-dist/fonts/source/lh/base/lgt2lol.mf +++ b/Master/texmf-dist/fonts/source/lh/base/lgt2lol.mf @@ -4,13 +4,13 @@ %% Cyrillic font container with T2 encoding beta-support % % This file is future part of lxfonts package -% Version 3.4 // Patchlevel=1 +% Version 3.5 // Patchlevel=1 % (c) O.Lapko % -% This package belongs to the public domain under conditions similar to +% 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 to save it under the same name. +% (and all this package as well) and to save it under the same name. % % Content: % @@ -52,7 +52,7 @@ % r_tl - - - "bb Er with tail % -LHver_check(3,4); % like |version_check| in ec +LHver_check(3,5); % like |version_check| in ec lhchar "Lowercase Cyrillic letter ae - ligature ae"; cyrchar(ae,13u#,x_height#,0); @@ -231,6 +231,7 @@ easy_ogonek(the_pen,9,10,11); % ogonek %%% penlabels(0,1,2,3,4,5,6,7,8, 9,10,11); endchar; +iff not concrete:% iff not specific:% lhchar "Lowercase Cyrillic letter k_vcrs - ka vcrossed (`roman')"; cyrchar(k_vcrs,11.5u# if not serifs:+.5width_adj# fi, @@ -293,11 +294,12 @@ numeric middle_weight; middle_weight=max(currentbreadth+eps,.6[thin_join,vair]); pos9(middle_weight,0); pos11(middle_weight,0); lft x9l=lft x11l= - hround max(tiny.rt x1r+1,max(x5l-middle_weight,.5[tiny.rt x1r,x5l])); + hround max(tiny.rt x1r+1,max(x5l-middle_weight,.5[tiny.rt x1r,x5l])); top y11-bot y9=.5x_height; .52[y9,y11]=.5[y7l,y7r]; filldraw stroke z9e--z11e; % cross bar penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar; +iff not concrete:% iff not specific:% lhchar "Lowercase Cyrillic letter k_hcrs - ka hcrossed (`roman')"; cyrchar(k_hcrs,10u#,asc_height#,0); % n_width @@ -362,6 +364,7 @@ lft x7=hround 1/3u-serif_fit; filldraw stroke z7e--z8e; % cross bar penlabels(1,2,3,4,5,6, 7,8); endchar; +iff not concrete:% lhchar "Lowercase Cyrillic letter l_dsc - el descender"; cyrchar(l_dsc,10u# % if not serifs:+.5width_adj# fi % dl_width;n_width ,x_height#,if is_ogonek: desc_depth# else: sbeak# fi); %ldesc/og_depth @@ -413,23 +416,18 @@ if serifs: nodish_serif(3,0,e,1/3,1.05jut,f,1/3,inner_jut); % upper left serif filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar %%%%% -% lowercase descender/ogonek -if is_ogonek: - endgroup; - def the_pen= - if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi - enddef; - % |stem| was drawn by |tiny| pen, hence |tiny| in the following equation: - ogonek_pos=(x2 if not serifs: l fi,.5the_pen) - if serifs and not is_egyptian: +(.5xvair,0) fi; - easy_ogonek(the_pen,7,8,9); % ogonek +% lowercase descender/saam tail +slab:=vair; % lower.slab +numeric right_jut; +right_jut=if serifs: max(limit_dist,1.1jut) else: hround (r-rt x2r-.5u) fi; +if unic: + %saam tail + serif(2,1,v,1/3,-jut); + siam_serif(2,1,w,1/3,right_jut); else: - slab:=vair; % lower.slab - numeric right_jut; - right_jut=if serifs: max(limit_dist,1.1jut) else: hround (r-rt x2r-.5u) fi; r_serif(2,1,o,1/3,jut,p,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender - endgroup; fi +endgroup; penlabels(1,2,3,4,5,6, 7,8,9);endchar; lhchar "Lowercase Cyrillic letter m_dsc - m descender"; @@ -479,8 +477,8 @@ if serifs: if rt x2r+jut+.5u+1+eps+.5stem3<=lft x4l-.5stem3-jut: inner_jut=jut; else: rt x2r+inner_jut+.5u+1+eps+.5stem3=lft x4l-.5stem3-inner_jut; fi slab:=Vround(vair-vair_corr); % lower.slab - serif(1,2,a,1/3,-jut); % upper left serif - serif(3,4,d,1/3,jut); % upper right serif + serif(1,2,a,1/3,-jut); % upper left serif + serif(3,4,d,1/3,jut); % upper right serif slab:=vair; % lower.slab dish_serif(2,1,b,1/2,jut,c,1/2,jut)(dark); % lower left serif if is_ogonek: @@ -488,23 +486,18 @@ if serifs: fi fi %%%%% -% lowercase descender/ogonek -if is_ogonek: - endgroup; - def the_pen= - if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi - enddef; - % |stem| was drawn by |tiny| pen, hence |tiny| in the following equation: - ogonek_pos=(x4 if not serifs: l fi,.5the_pen) - if serifs and not is_egyptian: +(.5xvair,0) fi; - easy_ogonek(the_pen,9,10,11); % ogonek +% lowercase descender/saam tail +slab:=vair; % lower.slab +numeric right_jut; +right_jut=if serifs: max(limit_dist,1.1jut) else: hround (r-rt x4r-.5u) fi; +if unic: + %saam tail + serif(4,3,v,1/3,-jut); + siam_serif(4,3,w,1/3,right_jut); else: - slab:=vair; % lower.slab - numeric right_jut; - right_jut=if serifs: max(limit_dist,1.1jut) else: hround (r-rt x4r-.5u) fi; r_serif(4,3,o,1/3,jut,p,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender - endgroup; fi +endgroup; penlabels(0,1,1',2,3,3',4,5,6,7,8, 9,10,11); endchar; lhchar "Lowercase Cyrillic letter abh_ha - Abkhazian ha"; @@ -520,10 +513,12 @@ interim superness:=hein_super; x2r=hround max(.5u,1.25u-.5curve); %o x4r=w-x2r; x1=x3=x6=.5w; y1r=h+vround 1.5oo; y3r=-oo; y2=y4=.5h-vair_corr; y2l:=.52h; -y7=-1/3d; rt x7=hround(w-.5u); penpos7(.7[thin_join,vair],270); -y6=.5y5r; penpos6(mid_curve,180); +y7=vround -1/3d-eps; rt x7=hround(w-.5u)+eps; penpos7(.7[thin_join,vair],270); +penpos6(mid_curve,180); x5=if serifs:.5[x6,x4]else:.5[x6,x4]fi; -y5r=.5[y4,y1]; penpos5(.7[thin_join,vair],90); +y5r=vround max(.5[y4,y1],y4+.7[thin_join,vair])+eps; +penpos5(.7[thin_join,vair],90); +y6=vround min(.5y5r,y5l-.5)-eps; fill stroke pulled_super_arc.e(1,2)(.5superpull) & pulled_super_arc.e(2,3)(.5superpull) & pulled_super_arc.e(3,4)(.5superpull) % 3/4 bowl @@ -560,12 +555,12 @@ if serifs: if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut1=jut; % stay for tail serif else: rt x1r+inner_jut1+.5u+1=lft x3l-inner_jut1; fi save slab; slab:=vair; % lower.slab - dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut1); % lower left serif - %dish_serif(4,3,g,1/3,inner_jut1,h,1/3,jut); %!!! % lower right serif + dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut1); % lower left serif + %dish_serif(4,3,g,1/3,inner_jut1,h,1/3,jut); %!!! % lower right serif inner_jut2=min(.5(lft x3l-rt x1r)-eps,.5jut); slab:=Vround(vair-vair_corr); % lower.slab - nodish_serif(1,2,a,1/3,jut,b,1/3,inner_jut2); % upper left serif - nodish_serif(3,4,e,1/3,inner_jut2,f,1/3,jut); % upper right serif + nodish_serif(1,2,a,1/3,jut,b,1/3,inner_jut2); % upper left serif + nodish_serif(3,4,e,1/3,inner_jut2,f,1/3,jut); % upper right serif filldraw z.b0--z.b1--z.e1--z.e0--cycle; % upper inter_serif bar else: lft x1'= lft x1l; top y1'r=h; pos1'(vair,90); @@ -818,10 +813,10 @@ if serifs: else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi %%% save slab; slab:=Vround(vair-vair_corr); % lower.slab - dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif - dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif + dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif + dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif slab:=vair; % lower.slab - dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower right serif + dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower right serif else: fill stroke pulled_arc.e(2',5) & z5e{right}...{right}z6e; fi % arc %%%%% @@ -926,7 +921,7 @@ if serifs: pos[_two](vair',-90); pos[_three](hair,-180); pos[_four](bulb_diam,-180); x[_two]=.5[x[_one],x[_three]r]; - bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=-.85d; + bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=vround max(-.85d,y[_two]r+eps)+eps; z[_three]r=z[_four]r; %rt x[_four]l=floor x[_zero]-1.5u if monospace: / expansion_factor fi); %2.5u lft x[_four]r=-1/6u if monospace: / expansion_factor fi; %2.5u @@ -934,7 +929,7 @@ if serifs: x[_two]r:=max(x,.5[x[_three]r,x[_two]]); forsuffixes e=l,r: z[_one]'e=((0,y[_four])--(w,y[_four])) intersectionpoint - (pulled_arc.e([_one],[_two])); endfor + (z[_five]e--pulled_arc.e([_one],[_two])); endfor if lft x[_one]'l>rt x[_four]l+max(1,1/3vair+.5): filldraw stroke z[_five]e--pulled_arc.e([_one],[_two]); else: @@ -1043,11 +1038,11 @@ if serifs: numeric inner_jut; if rt x2r+jut+.5u+1+eps+.5stem3<=lft x4l-.5stem3-jut: inner_jut=jut; else: rt x2r+inner_jut+.5u+1+eps+.5stem3=lft x4l-.5stem3-inner_jut; fi save slab; slab:=Vround(vair-vair_corr); % lower.slab - serif(1,2,a,1/3,-jut); % upper left serif - serif(3,4,d,1/3,jut); % upper right serif + serif(1,2,a,1/3,-jut); % upper left serif + serif(3,4,d,1/3,jut); % upper right serif slab:=vair; % lower.slab - dish_serif(2,1,b,1/2,jut,c,1/2,jut)(dark); fi % lower left serif - %dish_serif(4,3,e,1/3,jut,f,1/3,jut); fi %!!! % lower right serif + dish_serif(2,1,b,1/2,jut,c,1/2,jut)(dark); fi % lower left serif + %dish_serif(4,3,e,1/3,jut,f,1/3,jut); fi %!!! % lower right serif %%%%% % l_tail(4); _zero:=4; @@ -1064,7 +1059,7 @@ if serifs: pos[_two](vair',-90); pos[_three](hair,-180); pos[_four](bulb_diam,-180); x[_two]=.5[x[_one],x[_three]r]; - bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=-.85d; + bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=vround max(-.85d,y[_two]r+eps)+eps; z[_three]r=z[_four]r; rt x[_four]l=max(x[_zero]l-bulb_diam, floor x[_zero]-2.5u if monospace: / expansion_factor fi); @@ -1182,7 +1177,7 @@ arm(3,4,e,beak_darkness,.4beak_jut); % upper arm and beak save slab; % lower.slab if serifs: slab:=Vround(vair-vair_corr); % lower.slab - nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif + nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif if is_ogonek: slab:=vair; % lower.slab dish_serif(2,1,c,1/3,jut,d,1/3,1.25jut); fi %!!! % lower serif @@ -1246,10 +1241,10 @@ if serifs: if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut; else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi save slab; slab:=Vround(vair-vair_corr); % lower.slab - dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif + dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif dish_serif(2',3,e,2/3,inner_jut1+xjut,f,1/2,outer_jut+xjut)(dark); % upper right serif slab:=vair; % lower.slab - dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif + dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif dish_serif(3',2,g,1/2,outer_jut+xjut,h,2/3,inner_jut2+xjut)(dark); fi % lower left serif %%%%% % hstroke @@ -1267,7 +1262,7 @@ if serifs: save slab; slab:=Vround(vair-vair_corr); % lower.slab sloped_serif.l(1,2,a,1/3,outer_jut,serif_drop); % upper serif slab:=vair; % lower.slab - nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif + nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif %%% % lsftsn_bowl(2); _zero:=2; @@ -1314,7 +1309,7 @@ if hefty: numeric upper_notch,lower_notch; upper_notch=y6-cap_notch_cut-eps; lower_notch=y5+cap_notch_cut+eps; if monospace: x5r =rt x1r; x6l =lft x3l; y5=vround(vair'+eps); y6=vround(h-vair-eps); - alpha1=diag_ratio(1,stem1,y6-y5,x5r-x6l); + alpha1=diag_ratio(1,stem1,y5-y6,x5r-x6l); penpos5(min(2fudged.stem,alpha1*stem1),0); penpos6(min(2fudged.stem,alpha1*stem1),0); x5'=lft x1l; z5'=whatever[z5l,z6l]; x6'=rt x4r; z6'=whatever[z5r,z6r]; @@ -1341,30 +1336,25 @@ if serifs: if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut; else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi save slab; slab:=Vround(vair-vair_corr); % lower.slab - dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif - dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif + dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif + dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif slab:=vair; % lower.slab - dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif + dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif if is_ogonek: dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif fi % lowercase descender -if is_ogonek: - endgroup; - def the_pen= - if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi - enddef; - % |stem| was drawn by |tiny| pen, hence |tiny| in the following equation: - ogonek_pos=(x4 if not serifs: l fi,.5the_pen) - if serifs and not is_egyptian: +(.5xvair,0) fi; - easy_ogonek(the_pen,14,15,16); % ogonek +if not serifs: inner_jut:=0; fi +slab:=vair; % lower.slab +right_jut:=if serifs: max(limit_dist,1.1jut) else: hround (r-rt x4r-.5u) fi; +if unic: + %saam tail + serif(4,3,v,1/3,-jut); + siam_serif(4,3,w,1/3,right_jut); else: - if not serifs: inner_jut:=0; fi - slab:=vair; % lower.slab - right_jut:=if serifs: max(limit_dist,1.1jut) else: hround (r-rt x4r-.5u) fi; r_serif(4,3,g,1/3,inner_jut,h,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender - endgroup; fi +endgroup; %%%%% % the accent h:=full_h; cbreve(.5w,0, 7,8,9,10,11,12,13); |