summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/lh/base/lgt2slvi.mf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/fonts/source/lh/base/lgt2slvi.mf')
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2slvi.mf388
1 files changed, 374 insertions, 14 deletions
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2slvi.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2slvi.mf
index 47078c5937d..b01b35ab11e 100644
--- a/Master/texmf-dist/fonts/source/lh/base/lgt2slvi.mf
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2slvi.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=0
% (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:
%
@@ -50,7 +50,7 @@
% narrow_e used eps
%
-LHver_check(3,4); % like |version_check| in ec
+LHver_check(3,5); % like |version_check| in ec
lhchar "Italic Cyrillic letter ligature az - old a";
cyrcharmoving(az);
@@ -59,10 +59,93 @@ lhchar "Italic Cyrillic letter ligature i_az - iot az";
cyrcharmoving(i_az);
lhchar "Italic Cyrillic letter l_yus - little yus";
-cyrcharmoving(l_yus);
+%cyrcharmoving(l_yus);%restored for Unicode
+cyrchar(l_yus,11u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-.5u# else:.5u# fi, %wbulb_adj
+ 0);
+% ital_amod;
+pickup fine.nib; pos1(vair,-90); pos2(hair,0); pos3(hair,0); pos4(vair,-90);
+pos5(hair,-180); pos6(flare,-180);
+pos1'(stem,180); pos10(stem,0);
+top y1l=h+oo; x1=.5[x3,x1']; x2=x3=3u; y3=.35h; y2=.75h;
+bot y4r=-oo; x4=lft x6r+flare; y6-.5flare=.1h; lft x6r=-.25u; z5r=z6r;
+y1'=.8h; x1'=x7; z10=z1';
+rt x7r=hround(w-2.5u+.5stem);
+bulb(4,5,6); % bulb
+x9=w; hook_out(7,8,9); % closing hook
+filldraw stroke z10e--z7e; % tie
+filldraw stroke pulled_arc.e(4,3) & super_arc.e(3,1)
+ & super_arc.e(1,1'); % right stem
+% stem&bar
+pos11(vair,90); pos12(vair,90);
+z11=((l,bar_height)..(w,bar_height)) intersectionpoint
+ (pulled_arc.r(4,3) & super_arc.r(3,1));
+z12=((0,bar_height)..(w,bar_height)) intersectionpoint (z10l..z7l);
+filldraw stroke z11e--z12e; % bar
+numeric stem[]; stem1=max(fine.breadth+eps,.7[thin_join,stem]);
+pos13(stem1,0); pos14(stem1,0);
+x13=x14=.5[x11,x12]; y13=y12; y14-.5stem1=0;
+filldraw circ_stroke z14e--z13e; % stem
+%%%
+penlabels(1,1',2,3,4,5,6,7,8,9,11,11',14,15);
+endchar;
lhchar "Italic Cyrillic letter il_yus - iotfied little yus";
-cyrcharmoving(il_yus);
+%cyrcharmoving(il_yus);%restored for Unicode
+cyrchar(il_yus,11u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace: 3.5u#+else: 4.5u#+fi.5u#,
+ if monospace:-1.5u# else:0 fi); %rstem_adj
+% ital_amod;iot
+pickup fine.nib; pos1(vair,-90); pos2(hair,0); pos3(hair,0); pos4(vair,-90);
+pos5(hair,-180); pos6(flare,-180);
+pos1'(stem,180); pos10(stem,0);
+top y1l=h+oo; x1=.5[x3,x1']; x2=x3=3u-eps; y3=.35h; y2=.75h;
+bot y4r=-oo; lft x6r=-.25u;
+x4=min(lft x6r+flare,lft x3l-eps); y6-.5flare=.1h; z5r=z6r;
+y1'=min(.8h,bot y1l)-eps; z10=z1';
+rt x7r=hround (w-2.5u+.5stem)+eps;
+x1'=x7;
+bulb(4,5,6); % bulb
+% right_stem;
+_one:=7; _two:=8; _three:=9;
+if monospace: pos[_three](vair,90); pos[_one](stem,0);
+ x[_three]=good.x .5[x[_one],w]; bot y[_three]l=0; y[_one]=1/3h;
+ filldraw stroke z[_one]e{down}...{right}z[_three]e; % terminal
+else: x[_three]=w; hook_out([_one],[_two],[_three]); fi % opening hook
+filldraw stroke z10e--z7e; % tie
+if lft x1'r<x1: lft x1'r:=x1+eps; fi
+filldraw stroke pulled_arc.e(4,3) &
+ super_arc.e(3,1) & super_arc.e(1,1'); % right stem
+% stem&bar
+pos11(vair,90); pos12(vair,90);
+z11=((l,bar_height)..(w,bar_height)) intersectionpoint
+ (pulled_arc.r(4,3) & super_arc.r(3,1));
+z12=((0,bar_height)..(w,bar_height)) intersectionpoint (z10l..z7l);
+filldraw stroke z11e--z12e; % bar
+numeric stem[]; stem1=max(fine.breadth+eps,.7[thin_join,stem]);
+pos13(stem1,0); pos14(stem1,0);
+x13=x14=.5[x11,x12]; y13=y12; y14-.5stem1=0;
+filldraw circ_stroke z14e--z13e; % stem
+%%%
+% i half
+_one:=15; _two:=16; _three:=17; _four:=18; _five:=19; _six:=20;
+%
+pos[_four](stem,0);
+lft x[_four]l=l+letter_fit if not monospace: +hround(2.5u-.5stem) fi;
+y[_four]-.5stem=-oo; x[_three]=x[_four];
+if monospace:
+ pos[_three](stem,0); top y[_three]=h;
+else:
+ x[_one]=l+letter_fit; hook_in([_one],[_two],[_three]); fi % opening hook
+filldraw circ_stroke z[_four]e--z[_three]e; % stem
+pos[_five](vair,90); pos[_six](vair,90); %!!!
+x[_five]=x[_four]; x[_six]=x11; y[_five]=y[_six]=bar_height; %!!!
+filldraw stroke z[_five]e--z[_six]e; % bar %!!!
+%%%
+penlabels(1,1',2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20);
+endchar;
lhchar "Italic Cyrillic letter gerv - Glagolic letter";
cyrcharmoving(gerv);
@@ -113,16 +196,168 @@ lhchar "Italic Cyrillic letter izhe";
cyrcharmoving(izhe);
lhchar "Italic Cyrillic letter omga - omega";
-cyrcharmoving(omga);
+%cyrcharmoving(omga);%restored for Unicode
+cyrchar(omga,11u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.15u# fi; %o+.35u
+adjust_fit(if monospace:-.35u#,-.35u# else:0,0 fi); %bowl_adj
+% ital_omega;
+pickup fine.nib; pos2(stem,-180); lft x2r=hround.5u; y2=y4=y6=y8=bar_height;
+pos3(vair,-90); pos4(hair,0); pos5(vair,90);
+pos6(hair,180); pos7(vair,270); pos8(stem,360);
+bot y3r=bot y7r=-oo; top y5r=vround(.2[y4,h]+.5vair);
+x3=.5[x2,x4]; x7+.25u=.5[x6,x8]; rt x8r=hround(w-.5u);
+x5+.5stem=hround(.5[x2l,x8l]+.5stem)+eps;
+x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps;
+y1+.5hair=h+oo; x1=min(x2l+1.25u,lft x6r); x9=w-x1; y9=y1;
+pos1(hair,angle(2(x1-x2),y1-y2)+90); pos9(hair,-angle(2(x1-x2),y1-y2)+90);
+if x4l<x6l: x4l:=x6l:=x5; fi
+filldraw stroke z1e...z2e{down}...z3e{right}
+ ...{up}z4e...{left}z5e; % left arc
+filldraw stroke z5e{left}...z6e{down}...
+ z7e{right}...{up}z8e...z9e; % right arc
+%%%
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
lhchar "Italic Cyrillic letter omga_rnd - omega round";
-cyrcharmoving(omga_rnd);
+%cyrcharmoving(omga_rnd);%restored for Unicode
+cyrchar(omga_rnd,11u#,x_height#,0); %f width
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(if monospace:0,0 else:-.35u#,-.35u#fi); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+interim superness:=1.075 superness; %
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+pickup crisp.nib;
+% dots
+numeric bulb_diam; bulb_diam=hround 7/8[hair,flare];
+z5=z1r; z6=z3r; x5'=x6'=x1; pos5(bulb_diam,0); pos6(bulb_diam,0);
+bot y5'=max(.5h+1,bot y1l-.7bulb_diam);
+top y6'=min(.5h-1,top y3l+.7bulb_diam);
+pos6'(min(bulb_diam,.7[hair,fudged.stem]),0);
+pos5'(min(bulb_diam,.7[hair,fudged.stem]),0);
+filldraw circ_stroke z5e--z5'e; filldraw circ_stroke z6e--z6'e; %dots
+penlabels(1,2,3,4); endchar;
lhchar "Italic Cyrillic letter ot - omega with te accent";
-cyrcharmoving(ot);
+%cyrcharmoving(ot);%restored for Unicode
+cyrchar(ot,11u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.15u# fi; %o+.35u
+adjust_fit(if monospace:-.35u#,-.35u# else:0,0 fi); %bowl_adj
+full_h:=h; h:=x_height;
+% ital_omega;
+pickup fine.nib; pos2(stem,-180); lft x2r=hround.5u; y2=y4=y6=y8=bar_height;
+pos3(vair,-90); pos4(hair,0); pos5(vair,90);
+pos6(hair,180); pos7(vair,270); pos8(stem,360);
+bot y3r=bot y7r=-oo; top y5r=vround(.2[y4,h]+.5vair);
+x3=.5[x2,x4]; x7+.25u=.5[x6,x8]; rt x8r=hround(w-.5u);
+x5+.5stem=hround(.5[x2l,x8l]+.5stem)+eps;
+x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps;
+y1+.5hair=h+oo; x1=min(x2l+1.25u,lft x6r); x9=w-x1; y9=y1;
+pos1(hair,angle(2(x1-x2),y1-y2)+90); pos9(hair,-angle(2(x1-x2),y1-y2)+90);
+if x4l<x6l: x4l:=x6l:=x5; fi
+filldraw stroke z1e...z2e{down}...z3e{right}
+ ...{up}z4e...{left}z5e; % left arc
+filldraw stroke z5e{left}...z6e{down}...
+ z7e{right}...{up}z8e...z9e; % right arc
+%%%
+% the accent
+%%%%%
+% the accent
+% low_te(16);
+_zero:=5;
+_one:=10; _two:=11; _three:=12; _four:=13;
+_five:=14; _six:=15; _seven:=16; _eight:=17; _nine:=18;
+%
+if serifs: pickup crisp.nib;
+ else: pickup pencircle scaled min(.5fine,.15vair); fi
+numeric stem[]; stem1=if hefty: fudged.hair-2stem_corr else: .7[vair,stem] fi;
+stem2=if serifs: vair else: max(currentbreadth+eps,.6[thin_join,vair]) fi;
+stem3=if serifs: hair else: max(currentbreadth+eps,.6[thin_join,vair]) fi;
+pos[_one](stem1,0); pos[_two](stem1,0);
+lft x[_one]l=lft x[_two]l=hround(x[_zero]-.5stem1);
+numeric mid_thickness;
+mid_thickness=vround if serifs:1/4 else: 1/3 fi[vair,stem];
+bot y[_two]=bot y[_four]=bot y[_five]=
+ vround max(h+o+max(tiny,.5mid_thickness),1/3[h,h+acc_height]+o-.5mid_thickness);
+top y[_one]=top y[_three]r=max(h+acc_height,bot y[_two]+1.5vair);
+filldraw stroke z[_one]e--z[_two]e; % stem
+pos[_three](stem2,90); pos[_four](stem3,0); pos[_five](stem3,180);
+x[_three]=x[_one];
+rt x[_four]r=hround(x[_zero]+2.5u if monospace:/expansion_factor fi+.5vair);
+x[_four]-x[_three]=x[_three]-x[_five];
+z[_four]'=beak_darkness[(x[_four]l,y[_three]l),
+ .5[(x[_one]r,y[_three]l),z[_four]l] ];
+z[_five]'=beak_darkness[(x[_five]l,y[_three]l),
+ .5[(x[_one]l,y[_three]l),z[_five]l] ];
+filldraw z[_four]r--z[_four]l{up}...z[_four]'
+ ...{left}(x[_one]r,y[_three]l)--(x[_one]r,y[_three]l){left}...z[_five]'
+ ...{down}z[_five]l--z[_five]r---
+ (x[_five]r,y[_three]r)---(x[_four]r,y[_three]r)---cycle;
+%%%
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
-lhchar "Italic Cyrillic letter omga_tlo";
-cyrcharmoving(omga_tlo);
+lhchar "Italic Cyrillic letter omga_tlo - omega titlo";
+%cyrcharmoving(omga_tlo);%restored for Unicode
+cyrchar(omga_tlo,11u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.15u# fi; %o+.35u
+adjust_fit(if monospace:-.35u#,-.35u# else:0,0 fi); %bowl_adj
+full_h:=h; h:=x_height;
+% ital_omega;
+pickup fine.nib; pos2(stem,-180); lft x2r=hround.5u; y2=y4=y6=y8=bar_height;
+pos3(vair,-90); pos4(hair,0); pos5(vair,90);
+pos6(hair,180); pos7(vair,270); pos8(stem,360);
+bot y3r=bot y7r=-oo; top y5r=vround(.2[y4,h]+.5vair);
+x3=.5[x2,x4]; x7+.25u=.5[x6,x8]; rt x8r=hround(w-.5u);
+x5+.5stem=hround(.5[x2l,x8l]+.5stem)+eps;
+x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps;
+y1+.5hair=h+oo; x1=min(x2l+1.25u,lft x6r); x9=w-x1; y9=y1;
+pos1(hair,angle(2(x1-x2),y1-y2)+90); pos9(hair,-angle(2(x1-x2),y1-y2)+90);
+if x4l<x6l: x4l:=x6l:=x5; fi
+filldraw stroke z1e...z2e{down}...z3e{right}
+ ...{up}z4e...{left}z5e; % left arc
+filldraw stroke z5e{left}...z6e{down}...
+ z7e{right}...{up}z8e...z9e; % right arc
+%%%
+% the accent
+h:=full_h;
+% low_palatal(expr .5w+u,0,-o);
+x_center:=.5w+u; x_move:=0; y_move:=-o;
+_one:=10; _two:=11; _three:=12; _four:=13;
+_five:=14; _six:=15; _seven:=16; _eight:=17; _nine:=18;
+%
+% frown part
+pickup fine.nib; numeric frown_width,flare_width;
+frown_width=max(fine.breadth,.6[thin_join,vair]);
+flare_width=max(fine.breadth,.5[thin_join,flare]);
+penpos[_one](frown_width,180); penpos[_three](frown_width,0);
+penpos[_two](frown_width,90);
+top y[_two]r=y_move+x_height+max(if serifs:.75 fi acc_height,frown_width+1);
+x[_two]=x_center-u; lft x[_one]r=hround(x[_two]-1.5u-0.5frown_width);
+rt x[_three]r=hround(x[_two]+1.5u+0.5frown_width);
+bot y[_one]=bot y[_three]=y_move+vround
+ max(x_height+oo+tiny,1/3[x_height,h]+oo-.5frown_width);
+%fill stroke z[_one]e{up}...z[_two]e{right}...{down}z[_three]e; % stroke
+% tilde part
+penpos[_five](frown_width,180); penpos[_seven](frown_width,90);
+penpos[_seven]'(flare_width,0);
+bot y[_six]l=y[_two]r+.5flare_width;
+rt x[_five]l=x[_one]r-.5flare_width;
+x[_six]=x[_two]+.25u; x[_six]-x[_five]l=x[_seven]'l-x[_six];
+rt x[_seven]=max(x[_six]+5.5u
+ if monospace:/expansion_factor fi,x[_three]r+.5frown_width);
+penpos[_six](flare_width,90);
+bot y[_five]=bot y[_seven]'=bot y[_one]; bot y[_seven]l=x_height+oo;
+forsuffixes e=l,r: path p.e;
+p.e=(x[_five]e,y[_five]e+.5fine){up}
+ ...z[_six]e{right}...{down}z[_seven]'e; endfor
+fill subpath(0,1.5) of p.l..tension.85..
+ {right}(x[_seven]l-.5fine,y[_seven]l)
+ ...z[_seven]...(x[_seven]r-.5fine,y[_seven]r){left}
+ ..tension.85..reverse subpath(0,1.6) of p.r...z[_five]...cycle; % stroke
+%%%
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
lhchar "Italic Cyrillic letter koppa (looks like c with tail)";
cyrchar(koppa,8u#,x_height#,desc_depth#);
@@ -141,7 +376,50 @@ ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
penlabels(0,1,2,3,4,5,6); endchar;
lhchar "Italic Cyrillic letter uk";
-cyrcharmoving(uk);
+%cyrcharmoving(uk);%restored for Unicode
+cyrchar(uk,9.75u#,asc_height#,0);
+italcorr asc_height#*slant-.5u#;
+adjust_fit(0,0);
+% ital_uk;
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=if hefty:bar_height else:.7x_height fi; %h;%%%%%%%%%%%%%%
+pickup fine.nib; theta=90-angle(20u,h); slope:=-h/20u;
+upper_side=max(fine.breadth+eps,hround(.5[hair,stem]-stem_corr));
+lower_side=hround(.5[hair,stem]+stem_corr);
+if lower_side>1.2upper_side: upper_side:=lower_side; fi
+pos1(top_thickness,-90); pos6(bot_thickness,-90);
+x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround 1.75u;
+ x2r-x2l=stem-fine; x5r-x5l=lower_side-fine;%%%%%%%%%%%
+ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+numeric tau; tau=max(.8,.20710678/(superness-.5));
+y2r:=vround(y2l+max(1,serif_drop)+eps);
+filldraw stroke z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+pos7(lower_side,180); pos8(upper_side,180);
+y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+filldraw stroke z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e;% lower left stroke
+% italic bulb
+z8'=z8; pos8'(upper_side,0);
+y1'+.5curve=h+oo; x1'=x8-max(u,.5u+.5curve); %+.5curve%y8+(x_height-bar_height); %%%%%%%%%%%
+numeric theta; theta=angle(4(x8'-x1'),y8'-y1'); pos1'(curve,theta+90);
+filldraw z1'l{dir theta}..tension atleast 1 and 1..{down}z8'l
+ --z8'r{up}...{-dir theta}z1'r..cycle; % bulb
+% from sloped serif
+if serif_drop>0:
+ pos12(slab,90); lft x12=x2l-.5jut-eps; y12r=y2r-serif_drop; z14=z2l;
+ filldraw z2r--z12r--z12l{right}
+ ...1/3[(x14,y12l),.5[z12l,z14] ]{z14-z12l}
+ ...{down}z14--(x2r,y14)--cycle; % sloped serif
+fi
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
lhchar "Italic Cyrillic letter cherv - old che";
cyrcharmoving(cherv);
@@ -180,10 +458,92 @@ lhchar "Italic Cyrillic letter shta - old sh";
cyrcharmoving(shta);
lhchar "Italic Cyrillic letter ib_yus - iot big yus";
-cyrcharmoving(ib_yus);
+%cyrcharmoving(ib_yus);%restored for Unicode
+cyrchar(ib_yus,9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %h
+adjust_fit(if monospace: 4u#+else: 5u#+fi w#-5u#,
+ if monospace:-1.5u# else:0 fi); %rstem_adj
+% ital_yus;iot
+% itop_yus;
+pickup fine.nib;
+penpos1(fudged.stem,0); penpos2(fudged.hair,0);
+penpos3(fudged.stem,0); penpos4(fudged.hair,0);
+w-x2r=.24w; x2-x3=x3-x1; y1=h; y2=y1; y3=y4=bar_height;
+x3l=hround(2.5u-.5stem); x3r=x4r;
+z0=whatever[z4l,z2l]=whatever[z1r,z3r];
+if hefty: y0:=bar_height+.5fine;
+ fill z3l--diag_end(3l,1l,1,1,1r,3r){z3r-z1r}
+ ...{down}(x0-.5,y0)..(x0+.5,y0){up}...
+ {z2l-z4l}diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; % diagonals
+else: fill z3l--diag_end(3l,1l,1,1,1r,3r)--z0--
+ diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; fi % diagonals
+penpos5(fudged.stem,0); x5=x3; y5-.5stem=-oo;
+fill circ_stroke z5e--z3e; %middle stem
+z6'r=z1; z7'r=z2;
+z7'l=whatever[z4l,z2l]; z6'l=whatever[z1r,z3r]; y6'l=y7'l=vround(y1-vair)-eps;
+if x7'l<x6'l: x7'l:=x6'l+eps; fi
+fill stroke z6'e--z7'e; % upper bar
+% bowls
+pos8(vair,90); pos9(stem,0); pos10(vair,90); pos11(hair,180);
+pos12(stem,180); pos13(vair,90); pos14(hair,0); z8=z3;
+x11=hround(w+.5hair-eps)-.5hair; x11-x3=x3-x14; y11=y14=1/3x_height;
+lft x9l=hround(w-2.75u-.5stem); x9-x3=x3-x12; y9=y12=1/2y8;
+x10=hround(w-1.2u); x10-x3=x3-x13;
+bot y10l=bot y13l=if monospace: 0 else:-oo fi;
+filldraw stroke if not monospace:z14e{down}... fi
+ z13e{right}...z12e{up}...z8e{right}...z9e{down}...z10e{right}
+ if not monospace:...{up}z11e fi; % left lower diagonal
+%%%
+% i half
+_one:=15; _two:=16; _three:=17; _four:=18; _five:=19; _six:=20;
+%
+pos[_four](stem,0);
+lft x[_four]l=l+letter_fit if not monospace: +hround(2.5u-.5stem) fi;
+y[_four]-.5stem=-oo; x[_three]=x[_four];
+if monospace:
+ pos[_three](stem,0); top y[_three]=h;
+else:
+ x[_one]=l+letter_fit; hook_in([_one],[_two],[_three]); fi % opening hook
+filldraw circ_stroke z[_four]e--z[_three]e; % stem
+pos[_five](vair,90); pos[_six](vair,90); %!!!
+x[_five]=x[_four]; x[_six]=x8; y[_five]=y[_six]=bar_height; %!!!
+filldraw stroke z[_five]e--z[_six]e; % bar %!!!
+%%%
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,178,19,20); endchar;
lhchar "Italic Cyrillic letter i_est - iot est (IC with mid-line)";
-cyrcharmoving(i_est);
+%cyrcharmoving(i_est);%restored for Unicode
+cyrchar(i_est,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-.5u# fi; %c+.5u
+adjust_fit(if monospace: 3u# else: 4.5u# fi +0.2u#,0);
+% ital_ukre;iot
+pickup fine.nib; pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-.5u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+pos7(vair,90);
+y7=bar_height; rt x7=hround max(rt x2+1+eps,lft x0l-eps);
+% i half
+_one:=8; _two:=9; _three:=10; _four:=11; _five:=12; _six:=13;
+%
+pos[_four](stem,0);
+lft x[_four]l=l+letter_fit if not monospace: +hround(2.5u-.5stem) fi;
+y[_four]-.5stem=-oo; x[_three]=x[_four];
+if monospace:
+ pos[_three](stem,0); top y[_three]=h;
+else:
+ x[_one]=l+letter_fit; hook_in([_one],[_two],[_three]); fi % opening hook
+filldraw circ_stroke z[_four]e--z[_three]e; % stem
+pos[_five](vair,90); pos[_six](vair,90); %!!!
+x[_five]=x[_four]; x[_six]=x7; y[_five]=y[_six]=bar_height; %!!!
+filldraw stroke z[_five]e--z[_six]e; % bar %!!!
+%%%
+penlabels(1,1',2,3,4,5,6,7,8,9,10,11,12); endchar;
lhchar "Italic Cyrillic letter vnarrow_e";
cyrcharmoving(vnarrow_e);