%
% lgilig.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:
%
% roman dotless i,j
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Special letters
%
% ff-ligs
%

LHver_check(3,4); % like |version_check| in ec

numeric itc; % modified italic correction on `f' and `ff'
itc=(asc_height#-x_height#)*slant+.75u#;

lhchar "Italic ligature ff";
beginchar(oct"033",
%if monospace: 12u# else:
(5u#+max(1.5u#,stem#)+max(3.5u#,2flare#))+2letter_fit#, %  fi,
 asc_height#,desc_depth#);
italcorr asc_height#*slant+.75u#;
normal_adjust_fit(0,0); pickup fine.nib;
z98-z88=z99-z89=z14-z4=z15-z5=(if monospace: 4.3u else: 4.8u fi +2letter_fit,0);
.5[x88,x99]=.5w-.1u; x89-x88=u; y98=h; y99=-d;
numeric theta; theta=angle(z88-z89);
pos0(flare,0); pos1(hair,0); pos2(vair,90);
pos3(.5[hair,stem],180); pos4(stem,theta+90);
pos5(stem,theta-90); pos6(.5[hair,stem],0);
pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
if monospace: rt x1r=hround(.5w+.75u);
else:
 rt x1r=hround(.5w+1.25u);
fi
%if monospace: lft x8r=hround-.35u;
%else:
lft x8r=hround-.35u;
%fi
x2=.5[x1,x4]; x7=.6[x8,x5];
y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
y4=.25[x_height,h]; y5=.5[-d,y4];
z4=whatever[z88,z89]; z5=whatever[z88,z89];
x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
bulb(2,1,0); bulb(7,8,9);  % left bulbs
filldraw stroke z2e{left}...z3e...{z89-z88}z4e;  % upper middle arc
filldraw z4r--z5l--z5r--z4l--cycle;  % left stem
filldraw stroke z5e{z89-z88}...z6e...{left}z7e;  % lower left arc
pos10(flare,0); pos11(hair,0); pos12(vair,90);
pos13(.5[hair,stem],180); pos14(stem,theta+90);
pos15(stem,theta-90); pos16(.5[hair,stem],0);
pos17(vair,-90); pos18(hair,-180); pos19(flare,-180);
rt x11r=hround(w+.25u);
if monospace: lft x18r=hround(.5w-.75u);
else:         lft x18r=hround(.5w-1.25u); fi
x12=.6[x11,x14]; x17=.5[x18,x15];
x13=.8[x12+x14-x98,x98]; x16=.8[x17+x15-x99,x99];
y0=y10; y2=y12; y3=y13; y6=y16; y7=y17; y9=y19;
bulb(12,11,10); bulb(17,18,19);  % right bulbs
filldraw stroke z12e{left}...z13e...{z99-z98}z14e;  % upper right arc
filldraw z14r--z15l--z15r--z14l--cycle;  % right stem
filldraw stroke z15e{z99-z98}...z16e...{left}z17e;  % lower middle arc
pickup crisp.nib; pos20(bar,90); pos21(bar,90);
top y20r=top y21r=x_height;
lft x20=lft x4r-.5stem-u; rt x21=rt x14l+.5stem+1.5u;
filldraw stroke z20e--z21e;  %  crossbar
penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
 20,21,88,89,98,99); endchar;

lhchar "Italic ligature fi";
beginchar(oct"034",if monospace: 4.5u# else: 6.5u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
 +2letter_fit#,asc_height#,desc_depth#);
italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
normal_adjust_fit(0,0); pickup fine.nib;
.5[x88,x89]=.5(w-if monospace: 2u else: 4u fi -2letter_fit); x89-x88=u; y88=h; y89=-d;
numeric theta; theta=angle(z88-z89);
pos0(flare,0); pos1(hair,0); pos2(vair,90);
pos3(.5[hair,stem],180); pos4(stem,theta+90);
pos5(stem,theta-90); pos6(.5[hair,stem],0);
pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
pos11(stem,0); rt x11r=hround(w-2.5u+.5stem);
x12=x11; x14=w; hook_out(12,13,14);  % closing hook
x1r=x11r; lft x8r=hround-.35u; x2=.5[x1,x4]; x7=.6[x8,x5];
y9-.5flare=vround-.85d; bot y7r=-d-oo;
y0+.5flare=vround(.85[x_height,h]); top y2r=h+oo;
y4=.25[x_height,h]; y5=.5[-d,y4];
z4=whatever[z88,z89]; z5=whatever[z88,z89];
x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
bulb(2,1,0); bulb(7,8,9);  % bulbs
filldraw stroke z2e{left}...z3e...{z89-z88}z4e;  % upper arc
filldraw z4r--z5l--z5r--z4l--cycle;  % left stem
filldraw stroke z5e{z89-z88}...z6e...{left}z7e;  % lower arc
top y11=x_height; filldraw stroke z11e--z12e;  % right stem
pickup crisp.nib; pos20(bar,90); pos21(bar,90);
top y20r=top y21r=x_height;
lft x20=lft x4r-.5stem-u; x21=x11;
filldraw stroke z20e--z21e;  %  crossbar
penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,20,21,88,89); endchar;

lhchar "Italic ligature fl";
beginchar(oct"035",if monospace: 5u# else: 7u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
 +2letter_fit#,asc_height#,desc_depth#);
italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
normal_adjust_fit(0,0); pickup fine.nib;
.5[x88,x89]=.5(w-if monospace: 3.5u else: 4.5u fi -2letter_fit);
x89-x88=u; y88=h; y89=-d;
numeric theta; theta=angle(z88-z89);
pos0(flare,0); pos1(hair,0); pos2(vair,90);
pos3(.5[hair,stem],180); pos4(stem,theta+90);
pos5(stem,theta-90); pos6(.5[hair,stem],0);
pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
pos11(stem,0); rt x11r=hround(w-2.5u+.5stem); rt x1r=lft x11l;
x12=x11; x14=w; hook_out(12,13,14);  % closing hook
if monospace: lft x8r=hround-.55u;
else: lft x8r=hround-.35u; fi
x2=.5[x1,x4]; x7=.6[x8,x5];
y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
y4=.25[x_height,h]; y5=.5[-d,y4];
z4=whatever[z88,z89]; z5=whatever[z88,z89];
x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
bulb(2,1,0); bulb(7,8,9);  % bulbs
filldraw stroke z2e{left}...z3e...{z89-z88}z4e;  % upper arc
filldraw z4r--z5l--z5r--z4l--cycle;  % left stem
filldraw stroke z5e{z89-z88}...z6e...{left}z7e;  % lower arc
top y11=h; filldraw stroke z11e--z12e;  % right stem
pickup crisp.nib; pos20(bar,90); pos21(bar,90);
top y20r=top y21r=x_height;
lft x20=lft x4r-.5stem-u; x21=x11;
filldraw stroke z20e--z21e;  %  crossbar
penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,20,21,88,89); endchar;

lhchar "Italic ligature ffi";
beginchar(oct"036",
if monospace: 7.75u# else: 11.75u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
 +4letter_fit#,asc_height#,desc_depth#);
italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
normal_adjust_fit(0,0); pickup fine.nib;
z98-z88=z99-z89=z14-z4=z15-z5=(if monospace: 3u else: 5u fi +2letter_fit,0);
numeric theta,mid_f;
mid_f=.5[x88,x99]=.5(w-if monospace: 2.25u else: 4.25u fi -2letter_fit);
x89-x88=u;
y98=h; y99=-d; theta=angle(z88-z89);
pos21(stem,0); rt x21r=hround(w-2.5u+.5stem);
x22=x21; x24=w; hook_out(22,23,24);  % closing hook
pos0(flare,0); pos1(hair,0); pos2(vair,90);
pos3(.5[hair,stem],180); pos4(stem,theta+90);
pos5(stem,theta-90); pos6(.5[hair,stem],0);
pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
if monospace: rt x1r=hround(mid_f+u);
else:         rt x1r=hround(mid_f+1.75u); fi
if monospace: lft x8r=hround -.65u;
else:         lft x8r=hround-.35u; fi
x2=.5[x1,x4]; x7=.6[x8,x5];
y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
y4=.25[x_height,h]; y5=.5[-d,y4];
z4=whatever[z88,z89]; z5=whatever[z88,z89];
x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
bulb(2,1,0); bulb(7,8,9);  % left bulbs
filldraw stroke z2e{left}...z3e...{z89-z88}z4e;  % upper middle arc
filldraw z4r--z5l--z5r--z4l--cycle;  % left stem
filldraw stroke z5e{z89-z88}...z6e...{left}z7e;  % lower left arc
pos10(flare,0); pos11(hair,0); pos12(vair,90);
pos13(.5[hair,stem],180); pos14(stem,theta+90);
pos15(stem,theta-90); pos16(.5[hair,stem],0);
pos17(vair,-90); pos18(hair,-180); pos19(flare,-180);
x11r=x21r; lft x18r=hround(mid_f-1.25u); x12=.5[x11,x14]; x17=.5[x18,x15];
x13=.8[x12+x14-x98,x98]; x16=.8[x17+x15-x99,x99];
y10+.5flare=vround .85[x_height,h];
y2=y12; y3=y13; y6=y16; y7=y17; y9=y19;
bulb(12,11,10); bulb(17,18,19);  % right bulbs
filldraw stroke z12e{left}...z13e...{z99-z98}z14e;  % upper right arc
filldraw z14r--z15l--z15r--z14l--cycle;  % middle stem
filldraw stroke z15e{z99-z98}...z16e...{left}z17e;  % lower middle arc
top y21=x_height; filldraw stroke z21e--z22e;  % right stem
pickup crisp.nib; pos30(bar,90); pos31(bar,90);
top y30r=top y31r=x_height;
lft x30=lft x4r-.5stem-u; x31=x21;
filldraw stroke z30e--z31e;  %  crossbar
penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
 20,21,22,23,24,30,31,88,89,98,99); endchar;

lhchar "Italic ligature ffl";
beginchar(oct"037",
  if monospace: 8u# else: 12u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
     +4letter_fit#,asc_height#,desc_depth#);
italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
normal_adjust_fit(0,0); pickup fine.nib;
z98-z88=z99-z89=z14-z4=z15-z5=(if monospace: 3u else: 5u fi+2letter_fit,0);
numeric theta,mid_f;
mid_f=.5[x88,x99]=.5(w-if monospace: 2u else: 4.5u fi-2letter_fit); x89-x88=u;
y98=h; y99=-d; theta=angle(z88-z89);
pos21(stem,0); rt x21r=hround(w-2.5u+.5stem);
x22=x21; x24=w; hook_out(22,23,24);  % closing hook
pos0(flare,0); pos1(hair,0); pos2(vair,90);
pos3(.5[hair,stem],180); pos4(stem,theta+90);
pos5(stem,theta-90); pos6(.5[hair,stem],0);
pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
if monospace: rt x1r=hround(mid_f+u);
else:         rt x1r=hround(mid_f+1.25u); fi
lft x8r=hround-.35u;
x2=.5[x1,x4]; x7=.6[x8,x5];
y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
y4=.25[x_height,h]; y5=.5[-d,y4];
z4=whatever[z88,z89]; z5=whatever[z88,z89];
x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
bulb(2,1,0); bulb(7,8,9);  % left bulbs
filldraw stroke z2e{left}...z3e...{z89-z88}z4e;  % upper middle arc
filldraw z4r--z5l--z5r--z4l--cycle;  % left stem
filldraw stroke z5e{z89-z88}...z6e...{left}z7e;  % lower left arc
pos10(flare,0); pos11(hair,0); pos12(vair,90);
pos13(.5[hair,stem],180); pos14(stem,theta+90);
pos15(stem,theta-90); pos16(.5[hair,stem],0);
pos17(vair,-90); pos18(hair,-180); pos19(flare,-180); rt x11r=lft x21l;
lft x18r=hround(mid_f-1.25u); x12=.5[x11,x14]; x17=.5[x18,x15];
x13=.8[x12+x14-x98,x98]; x16=.8[x17+x15-x99,x99];
y0=y10; y2=y12; y3=y13; y6=y16; y7=y17; y9=y19;
bulb(12,11,10); bulb(17,18,19);  % right bulbs
filldraw stroke z12e{left}...z13e...{z99-z98}z14e;  % upper right arc
filldraw z14r--z15l--z15r--z14l--cycle;  % middle stem
filldraw stroke z15e{z99-z98}...z16e...{left}z17e;  % lower middle arc
top y21=h; filldraw stroke z21e--z22e;  % right stem
pickup crisp.nib; pos30(bar,90); pos31(bar,90);
top y30r=top y31r=x_height;
lft x30=lft x4r-.5stem-u; x31=x21;
filldraw stroke z30e--z31e;  %  crossbar
penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
 20,21,22,23,24,30,31,88,89,98,99); endchar;

endinput;
