summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/lh/base/lgt2upu.mf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/fonts/source/lh/base/lgt2upu.mf')
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2upu.mf83
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";