summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/lh/base/lgt2lou.mf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/fonts/source/lh/base/lgt2lou.mf')
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2lou.mf84
1 files changed, 39 insertions, 45 deletions
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2lou.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2lou.mf
index 2b4dfdf2490..91dd1af7a91 100644
--- a/Master/texmf-dist/fonts/source/lh/base/lgt2lou.mf
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2lou.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:
%
@@ -31,12 +31,14 @@
% M_dsc "4c L - - "88 Em with descender
% ABH_HA "4e N - - "97 Abkhasian kha
% P_tl "4f O - - "80 Pe with tail
+%
% R_dsc "50 P - - "85 Er with descender
% LAT_Q "51 Q - - - Latin letter Q
% T_dsc "52 R - - "82 Te with descender
% TETSE "54 T - - "81 Ligature Te-Tse
% CH_vcrs "56 V "97 - - Che vertically crossed
% LAT_W "57 W - - - Latin letter W
+%
% N_ltl "1c - - "99 En with left tail
% DELTA "1e - "86 - Delta
% M_tl - - - "8e Em with tail
@@ -44,12 +46,13 @@
% S_acrs - - - "91 Es acute crossed
% G_crsdsc - - "80 - Ghe crossed with descender
% H_hcrs - - "94 - Kha horisontally crossed
+%
% SEMISN - - - "93 Semi Soft Sign
% I_shdsc - - - "94 I Short with descender
% R_tl - - - "9b Er with tail
%
-LHver_check(3,4); % like |version_check| in ec
+LHver_check(3,5); % like |version_check| in ec
lhchar "Uppercase Cyrillic letter AE - ligature AE";
cyrchar(AE,16u#,cap_height#,0);
@@ -222,6 +225,7 @@ else:
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 "Uppercase Cyrillic letter K_vcrs - KA vcrossed (`roman')";
cyrchar(K_vcrs,15u# if not serifs:+.5width_adj# fi, % N_width+1.5u
@@ -277,6 +281,7 @@ top y11-bot y9=.5cap_height; .52[y9,y11]=y7;
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 "Uppercase Cyrillic letter K_hcrs - KA hcrossed (`roman')";
cyrchar(K_hcrs,13.5u#,cap_height#,0); % N_width
@@ -326,18 +331,19 @@ if serifs:
pickup crisp.nib; numeric outer_jut;
outer_jut=if serifs: max(limit_dist,1.1cap_jut) else: 1.8u fi;
pos7(bar,90); pos8(bar,90);
-top y7r=top y8r=vround (min(.5[x_height,h]+.5bar,h-max(bracket,1.2slab))-eps);
+top y7r=top y8r=vround (min(1/3[x_height,h]+.5bar,h-max(bracket,1.2slab))-eps);
x7=x1r+1.15outer_jut; x8=hround 1/3u-cap_serif_fit;
filldraw stroke z7e--z8e; % cross bar
penlabels(1,2,3,4,5,6, 7,8); endchar;
+iff not concrete:%
lhchar "Uppercase Cyrillic letter L_dsc - EL descender";
cyrchar(L_dsc,13.5u#,cap_height#, % DL_width:N_width
if is_ogonek: desc_depth# else: cap_sbeak# fi); %udesc/og_depth
if is_small_cap: getcharcode(l_dsc); fi
italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
adjust_fit(cap_serif_fit# if not serifs:
- +\\.5(cap_stem#-u#),.5(cap_stem#-u#)+ else:,fi\\ cap_serif_fit#); %D_adj
+ +\\.5(cap_stem#-u#),.5(cap_stem#-u#)+ else:,fi\\ cap_serif_fit#); %D_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;
@@ -385,19 +391,15 @@ if serifs:
nodish_serif(3,0,e,1/3,1.05cap_jut,f,1/3,inner_jut); % upper left serif
filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
%%%%%
-% uppercase descender/ogonek
-if is_ogonek:
- def the_pen=if known ogonek_pen: ogonek_pen
- elseif serifs: tiny elseif is_bold: fisp else: fine fi
- enddef;
- % |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
- ogonek_pos=(x2 if not serifs: l if is_bold: +.75tiny fi\\ fi,.5the_pen)
- if serifs and not is_egyptian: +(.5xvair,0) fi;
- easy_ogonek(the_pen,7,8,9); % ogonek
+% uppercase descender/saam tail
+numeric right_jut;
+right_jut=
+ if serifs: max(limit_dist,cap_jut) else: hround (r-rt x2r-.65u) fi;
+if unic:
+ %saam tail
+ serif(2,1,v,1/3,-cap_jut);
+ siam_serif(2,1,w,1/3,right_jut);
else:
- numeric right_jut;
- right_jut=
- if serifs: max(limit_dist,1.1cap_jut) else: hround (r-rt x2r-.65u) fi;
r_serif(2,1,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, 7,8,9); endchar;
@@ -452,18 +454,14 @@ if serifs:
dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi %!!! % lower right serif
fi
%%%%%
-% uppercase descender/ogonek
-if is_ogonek:
- def the_pen=if known ogonek_pen: ogonek_pen
- elseif serifs: tiny elseif is_bold: fisp else: fine fi
- enddef;
- % |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
- ogonek_pos=(x4 if not serifs: l if is_bold: +.4tiny fi\\ fi,.5the_pen)
- if serifs and not is_egyptian: +(.5xvair,0) fi;
- easy_ogonek(the_pen,9,10,11); % ogonek
+% 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 unic:
+ %saam tail
+ serif(4,3,v,1/3,-cap_jut);
+ siam_serif(4,3,w,1/3,right_jut);
else:
- numeric right_jut;
- right_jut=if serifs: max(limit_dist,1.1cap_jut) else: hround (r-rt x4r-.65u) fi;
r_serif(4,3,x,1/3,cap_jut,y,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
fi
penlabels(0,1,1',2,3,3',4,5,6,7,8, 9,10,11); endchar;
@@ -865,14 +863,14 @@ 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]-2u if monospace: / expansion_factor fi;%2.5u
lft x[_four]r=-1/3u if monospace: / expansion_factor fi;%2.5u
%filldraw stroke z[_five]e--pulled_arc.e([_one],[_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,.5vair+.5):
filldraw stroke z[_five]e--pulled_arc.e([_one],[_two]);
else:
@@ -1004,7 +1002,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]);
@@ -1267,7 +1265,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(slab+eps); y6=vround(h-slab-eps);
- alpha1=diag_ratio(1,stem1,y6-y5,x5r-x6l);
+ alpha1=diag_ratio(1,stem1,y5-y6,x5r-x6l);
penpos5(min(2fudged.cap_stem,alpha1*stem1),0);
penpos6(min(2fudged.cap_stem,alpha1*stem1),0);
x5'=lft x1l; z5'=whatever[z5l,z6l]; x6'=rt x4r; z6'=whatever[z5r,z6r];
@@ -1299,19 +1297,15 @@ if serifs:
dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
fi
%%%
-% uppercase descender/ogonek
-if is_ogonek:
- def the_pen=if known ogonek_pen: ogonek_pen
- elseif serifs: tiny elseif is_bold: fisp else: fine fi
- enddef;
- % |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
- ogonek_pos=(x4 if not serifs: l if is_bold: +.75tiny fi\\ fi,.5the_pen)
- if serifs and not is_egyptian: +(.5xvair,0) fi;
- easy_ogonek(the_pen,14,15,16); % ogonek
+% uppercase descender/saam tail
+if not serifs: inner_jut:=0; fi
+numeric right_jut;
+right_jut=if serifs: max(limit_dist,1.1cap_jut) else: hround (r-rt x4r-.65u) fi;
+if unic:
+ %saam tail
+ serif(4,3,v,1/3,-inner_jut);
+ siam_serif(4,3,w,1/3,right_jut);
else:
- if not serifs: inner_jut:=0; fi
- numeric right_jut;
- right_jut=if serifs: max(limit_dist,1.1cap_jut) else: hround (r-rt x4r-.65u) fi;
r_serif(4,3,g,1/3,inner_jut,h,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
fi
%%%%%