diff options
Diffstat (limited to 'Master/texmf-dist/fonts/source/lh/base/lgt2upu.mf')
-rw-r--r-- | Master/texmf-dist/fonts/source/lh/base/lgt2upu.mf | 83 |
1 files changed, 66 insertions, 17 deletions
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2upu.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2upu.mf index bc7c6cefb98..b5520e23f55 100644 --- a/Master/texmf-dist/fonts/source/lh/base/lgt2upu.mf +++ b/Master/texmf-dist/fonts/source/lh/base/lgt2upu.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=0 +% Version 3.5 // Patchlevel=2 % (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: % @@ -45,7 +45,7 @@ % SCHWA "9a "9a "9a "9a Schwa % -LHver_check(3,4); % like |version_check| in ec +LHver_check(3,5); % like |version_check| in ec lhchar "Uppercase Cyrillic letter G_hcrs - GHE hcrossed"; cyrchar(G_hcrs,if monospace: 9u# else: 11u# fi-width_adj#, %G_width @@ -192,6 +192,7 @@ if serifs: dish_serif(4,3,e,1/3,inner_jut,f,1/3,cap_jut); fi % lower left serif penlabels(1,2,3,4); endchar; +iff not concrete:% iff not specific:% lhchar "Uppercase Cyrillic letter ZH_dsc - ZHE descender (`roman')"; cyrchar(ZH_dsc,13.5u#,cap_height#, % N_width @@ -376,6 +377,7 @@ penlabels(1,2,3,4,5,6,7,8,9,10,12,13); endchar; % Ukrainian i moved up for LH font +iff not concrete:% iff not specific:% lhchar "Uppercase Cyrillic letter K_dsc - KA descender (`roman')"; cyrchar(K_dsc,13.5u#,cap_height#, % N_width @@ -440,6 +442,7 @@ else: fi penlabels(1,2,3,4,5,6, 7,8,9); endchar; +iff not concrete:% iff not specific:% lhchar "Uppercase Cyrillic letter K_beak - KA beak (`roman')"; cyrchar(K_beak,13.5u#,cap_height#,0); % N_width @@ -566,6 +569,7 @@ if serifs: dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); fi % lower stem serif penlabels(1,2,3,4,5,6, 7,8,9,10,11,12,13,14); endchar; +iff not concrete:% lhchar "Uppercase Cyrillic letter L_tl - EL tail"; cyrchar(L_tl,13.5u#,cap_height#,desc_depth#); % DL_width:N_width if is_small_cap: getcharcode(l_tl); fi @@ -632,7 +636,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]-2.5u if monospace: / expansion_factor fi; filldraw stroke z[_five]e--pulled_arc.e([_one],[_two]); @@ -694,6 +698,50 @@ else: fi penlabels(1,2,3,4,5,6); endchar; +lhchar "Uppercase Cyrillic letter N_stl - saam EN with tail"; +cyrchar(N_stl,13.5u#,cap_height#, + if is_ogonek: desc_depth# else: cap_sbeak# fi); %udesc/og_depth +if is_small_cap: getcharcode(n_stl); fi +italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#); +adjust_fit(cap_serif_fit#, + cap_serif_fit# if not serifs:+.5(cap_stem#-u#) fi); %DL_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 right serif + if is_ogonek: + dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif +fi +%%%%% +% uppercase descender/saam tail +numeric right_jut; +right_jut=if serifs: max(limit_dist,1.1cap_jut) else: hround (r-rt x4r-.65u) fi; +if not serifs: + numeric arm_thickness; arm_thickness=vround(slab-vair_corr); + save slab; slab:=arm_thickness; fi %bottom.desc.slab +if unic: + %saam tail + serif(4,3,v,1/3,-cap_jut); + siam_serif(4,3,w,1/3,right_jut); +else: + r_serif(4,3,x,1/3,cap_jut,y,1/3,beak_darkness,right_jut,beak_jut); % lower right descender +fi +penlabels(1,2,3,4,5,6); endchar; + lhchar "Uppercase Cyrillic letter N_tl - EN tail"; cyrchar(N_tl,13.5u#,cap_height#,desc_depth#); if is_small_cap: getcharcode(n_tl); fi @@ -734,7 +782,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]-2.5u if monospace: / expansion_factor fi; filldraw stroke z[_five]e--pulled_arc.e([_one],[_two]); @@ -905,7 +953,7 @@ cyrchar(H_dsc,13u#,cap_height#, if is_ogonek: desc_depth# else: cap_sbeak# fi); %udesc/og_depth if is_small_cap: getcharcode(h_dsc); fi italcorr cap_height#*slant-.25u#; -adjust_fit(cap_serif_fit#,cap_serif_fit#); +adjust_fit(cap_serif_fit#,cap_serif_fit#); %ZhDL_adj % upper_h; numeric stem[],outer_jut,xjut,alpha[]; stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1); @@ -982,7 +1030,7 @@ alpha1=diag_ratio(1,stem1,h,x4r-x1l); alpha2=diag_ratio(1,stem2,h,x2r-x3l); penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0); penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0); -numeric t; t=slab+bracket; +numeric t; t=slab+bracket+eps; forsuffixes e=l,r: z54e=(((0,t)--(w,t)) intersectionpoint (z4e--z1e)); endfor; if hefty: z0=whatever[z1,z4]=whatever[z2,z3]; @@ -1019,16 +1067,16 @@ _one:=7; _two:=8; _three:=9; _four:=10; % X_ pickup fine.nib; stem3=hround (max(fine.breadth,.5[stem1,x[_zero]r-x[_zero]l])); -x[_one]'r=x[_zero]r; +x[_one]'r=hround x[_zero]r+eps; penpos[_one]'(stem3,0); pos[_one](stem3,0); z[_one]=z[_one]'; -bot y[_one]=max(-1/3d-eps,-d+if serifs: vair'else: slab fi); -(x[_one]'l,y54')=whatever[z4l,z4l+dir angle(z4l-if serifs:z1l else:z34'fi)]; -z54'=(x[_one]'l,y54'); -fill z54l{z4r-z1r} - ..controls (z54').. +bot y[_one]=vround max(-1/3d,min(y[_zero]r-.5,-d+if serifs: vair'else: slab fi))-eps; +(x[_one]'l,y54')=whatever[z4l,z4l+dir angle(z4l-if serifs:z1l else: z34'fi)]; +z54'=(x[_one]'l+eps,y54'+eps); +fill z54l{z[_zero]r-z1r} + ..controls (x54'+eps,y54'+eps).. {down}z[_one]'l--z[_one]'r{up} - ..controls (z4r).. - {z1r-z4r}z54r--cycle; %link + ...%controls (x[_one]'r+eps,y[_zero]+eps).. + {z1r-z[_zero]r}z54r--cycle; %link % _X if serifs: numeric bulb_diam; @@ -1036,7 +1084,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[_one]-2.5u if monospace: / expansion_factor fi;%!!! filldraw stroke pulled_arc.e([_one],[_two]);%!!! @@ -1048,6 +1096,7 @@ else: filldraw stroke super_arc.e([_one],[_two])%!!! & term.e([_two],[_three],left,.8,4); fi %%% +%r:=r-.5cap_jut; %X_tl adjustment penlabels(0,1,2,3,4,12,13,24,34,54,54', 5,6,7',8); endchar; lhchar "Uppercase Cyrillic letter CH_ldsc - CHE left descender"; |