summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/fonts/source/lh/base/lgt2comi.mf
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/fonts/source/lh/base/lgt2comi.mf')
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2comi.mf529
1 files changed, 529 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2comi.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2comi.mf
new file mode 100644
index 00000000000..a0320e98e13
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2comi.mf
@@ -0,0 +1,529 @@
+%
+% lgt2comi.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:
+%
+% Italic Cyrillic letters common for couple of encodings
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames and their codes in T2 & Ko
+%
+% X2 T2A T2B T2C T2D X2S LH WNCYR
+%
+% tshe "62 b "a2 - - - - - "0e Tshe
+% dje "63 c "a3 - - - - - "0f Dje
+% lat_i "69 i - - - "a9 - "f7 "0c Latin letter I
+% lat_j "6a j - - - - - - "6a Je - Latin letter J
+% lje "6b k "a7 "a8 - - - - "09 Lje
+% nje "6d m "bb "b9 - - - - "08 Nje
+% lat_s "73 s "af - - "af - - "1e Latin letter S - Dze
+% dzhe "75 u "b6 - "b6 - - - "0a Dzhe
+% yat "78 x - - - "b3 - - "2b Yat
+% b_yus "79 y - - - "b8 - - - Big Yus
+% izh "7a z - - - "aa - - "1c Izhitsa
+% g_up "a0 "a0 - - - - "f3 - Ghe upturn
+% ukr_i "a8 "a8 - - "a8 - "f9 - Ukrainian i - latin i with umlaut (goes first for LH font)
+% ng "ae "ae "ae - - "xx - - Ligature en-ghe
+% otld "b0 "b0 "b0 "b0 - "xx - - O tilded & Variant Old Cyrillic Fita (goes first for wncoding)
+% u_shrt "b2 "b2 "b2 - - - "fb - Short U (goes first for LH font)
+% ukr_e "b9 "b9 - - "b9 - "f5 "0d Ukrainian e
+% eps "bb - - "bb - "bb - - - Epsilon; Narrow E
+% fita - - - - "b0 - - "1d Old Slav Fita
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Italic Cyrillic letter tshe (soft t - looks like barred h)";
+cyrchar(tshe,9u#,asc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %h
+%adjust_fit(1.5u#,0); pickup tiny.nib;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+% hcross
+pickup crisp.nib; pos8(bar,90); pos9(bar,90);
+top y8r=top y9r=vround (min(.5[x_height,h]+.5bar,h-max(bracket,1.2slab))-eps);
+%lft x8=hround(l+letter_fit-.75u); x9=x4;
+lft x8=hround(l+letter_fit-2.25u); x9=x4;
+filldraw stroke z8e--z9e; % cross bar
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter dje (soft dj - barred h with tail)";
+cyrchar(dje,8u#,asc_height#,desc_depth#);
+italcorr (.5x_height#+.5asc_height#)*slant-2u#+.5
+ if hefty:stem# else:rule_thickness# fi; %] to cross height
+italcorr .7x_height#*slant; %o
+%adjust_fit(1.5u#,0); pickup tiny.nib;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-.75u+.5stem);
+x5=x4; ital_arch(2,3,4); % arch
+pos7(hair,-90); x7=.45[x2,x4]; bot y7r=-d;
+filldraw stroke pulled_arc.e(4,7); % tail
+% hcross
+pickup crisp.nib; pos8(bar,90); pos9(bar,90);
+top y8r=top y9r=vround (min(.5[x_height,h]+.5bar,h-max(bracket,1.2slab))-eps);
+%lft x8=hround(l+letter_fit-.75u); x9=x4;
+lft x8=hround(l+letter_fit-2.25u); x9=x4;
+filldraw stroke z8e--z9e; % cross bar
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter lat_i - Ukrainian letter i (as latin i)";
+cyrchar(lat_i,5u#,min(asc_height#,10/7x_height#+.5flare#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#); %i
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+pos8(flare,0); pos9(flare,90);
+x8=.5w if not monospace:-.4(h-x_height)*slant fi; top y9r=h+1;
+if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
+penlabels(0,1,2,3,4,5,8,9); endchar;
+
+lhchar "Italic Cyrillic letter lat_j (as latin j)";
+cyrchar(lat_j,5u#,min(asc_height#,10/7x_height#+.5flare#),desc_depth#);
+italcorr h#*slant+.5stem#-u#; %j
+adjust_fit(if monospace:2u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-1.5u-.5stem);
+hook_in(0,1,2); % opening hook
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
+x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z2e---z3e...{left}z4e; % stem and arc
+bulb(4,5,6); % bulb
+pos8(flare,0); pos9(flare,90);
+rt x8r=rt x2r if not monospace:-.6(h-x_height)*slant fi; top y9r=h+1;
+if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
+penlabels(0,1,2,3,4,5,6,8,9); endchar;
+
+lhchar "Italic Cyrillic letter lje (soft l)";
+cyrchar(lje,12u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %"Weierstrass p"
+adjust_fit(if monospace:-.5u#,-.35u# else:.5u#,0 fi); %wbulb_adj&bowl_adj
+full_w:=w; w:=9u;
+% ital_l;lje
+pickup fine.nib;
+pos1(vair,-90); pos2(stem,180); pos3(hair,0); %!!!
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+top y1l=h+oo; x1=.5[x3,x2];
+x3=3u; y3=.35h;
+y6-.5flare=.1h; lft x6r=-.25u; z5r=z6r;
+bot y4r=-oo; x4=max(.4[lft x6r,rt x3r],lft x6r+.5flare-eps);
+y2=.8h; lft x2r=lft x7r=hround(w-2.5u-.5stem); %!!!
+bulb(4,5,6); % bulb
+filldraw stroke pulled_arc.e(4,3)
+ & super_arc.e(3,1) & super_arc.e(1,2); % left stem
+pos7(stem,180); y7=.6bar_height;
+filldraw stroke z2e--z7e; % right stem
+w:=full_w;
+pos15(hair,180); z15=z7;
+pos12(vair,-90); pos13(curve,0); pos14(vair,90);
+x12=x14=.5[x7,x13]; rt x13r=hround(w-u+.5curve);
+bot y12r=-oo; top y14r=1.2bar_height+oo; y13=y7;
+filldraw stroke pulled_arc.e(7,12) & pulled_arc.e(12,13)
+ & pulled_arc.e(13,14) & super_arc.e(14,15); % bowl
+penlabels(0,1,2,3,4,5,6,8,9,10,11,12,13,14,15); endchar;
+
+lhchar "Italic Cyrillic letter nje (soft n - looks like nb)";
+cyrchar(nje,6.5u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %"Weierstrass p"
+adjust_fit(if monospace:5u#,-.35u# else:6.5u#,0 fi); %ipart_adj&bowl_adj
+% soft sign part
+pickup tiny.nib; pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(u-.5stem); y1+.5stem=h+oo; y2=.6bar_height;
+filldraw circ_stroke z1e--z2e; % stem
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-u+.5curve);
+bot y3r=-oo; top y5r=1.2bar_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+% i half;
+_one:=6; _two:=7; _three:=8; _four:=9; _five:=10; _six:=11;
+%
+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]=x2; y[_five]=y[_six]=bar_height; %!!!
+filldraw stroke z[_five]e--z[_six]e; % bar %!!!
+%%%
+penlabels(0,1,2,3,4,5,6,8,9,10,11,12); endchar;
+
+lhchar "Italic Cyrillic letter lat_s -- dze";
+cyrchar(lat_s,5.25u#+max(1.75u#,flare#),x_height#,0);
+italcorr x_height#*slant-.5u#; %s
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
+y0-.5ess=y7l+.55(y2r-y7l-ess);
+lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,0); pos10(hround .75[hair,flare],0);
+pos2'(vair,90); z2'=z2;
+pos8(hair,-180); pos9(flare,-180);
+rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
+bulb(2',1,10); bulb(7,8,9); % bulbs
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter dzhe (hard dj)";
+cyrchar(dzhe,9.5u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(0,0);
+% ital_i;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+%%%
+% dzhe middle descender
+path p.r; numeric t; t=if hefty: 2.3 else: 2.2 fi;
+p.r=super_arc.r(3,4)...{up}z5r;
+_zero:=10; _one:=11; _two:=12; _three:=13;
+penpos[_zero](xvair,0); z[_zero]r=point t of p.r;
+penpos[_one](xvair,0); x[_one]=x[_zero]+2/3u; y[_one]=-1/3d;
+penpos[_two](2/3[bar,fudged.stem-2stem_corr],-90);
+x[_two]=.5[x[_one],x[_three]]; y[_two]=-.8d;
+penpos[_three](xvair,-180);
+x[_three]=x[_one]-5u; y[_three]=y[_two]+ypart the_tip_pos;
+pickup pencircle scaled 1;
+fill circ_stroke z[_three]e{down}
+ ...{right}z[_two]e...z[_one]e..{dir (360-the_pre_angle)}z[_zero]e; % middle descender
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+lhchar "Italic Cyrillic letter yat";
+cyrchar(yat,13u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %"Weierstrass p"
+adjust_fit(if monospace:-1.5u#,-.35u# else:0,0 fi); %lstem_adj&bowl_adj
+full_w:=w; w:=10u;
+% ital_yat;
+pickup fine.nib; x1=x2; pos2(stem,0);
+if monospace:
+ pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else:
+ x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4; ital_arch(2,3,4); % arch
+y5=.6bar_height; pos5(stem,0);
+filldraw stroke z4e--z5e; % right stem
+w:=full_w;
+pos6(stem,-180); pos10(hair,180); z6=z5; z10=z5;
+pos7(vair,-90); pos8(curve,0); pos9(vair,90);
+x7=x9=.5[x5,x8]; rt x8r=hround(w-u+.5curve);
+bot y7r=-oo; top y9r=1.2bar_height+oo; y8=y5;
+filldraw stroke pulled_arc.e(6,7) & pulled_arc.e(7,8)
+ & pulled_arc.e(8,9) & super_arc.e(9,10); % bowl
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter b_yus - big yus";
+cyrchar(b_yus,9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %h
+adjust_fit(w#-5u#if monospace:-1.5u# fi,if monospace:-1.5u# else:0 fi);
+% ital_yus;
+% 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=whatever[z4,z2]; z7=whatever[z1,z3]; y6=y7=good.y(y1-vair)-eps;
+fill z1--z7--z6--z2--cycle; % 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=-oo;
+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
+%%%
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+lhchar "Italic Cyrillic letter izh - izhitsa (looks like v)";
+cyrchar(izh,9.5u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(.25u#,max(u#,.5u#+.5flare#)); %izhy_adj
+% ital_izh;
+numeric left_stem,right_stem,outer_jut,alpha,bulb_diam;
+left_stem=stem-stem_corr; bulb_diam=7/8[hair,flare];
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=l+letter_fit+outer_jut+.25u; x4r=w-x1l; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+penpos4''(alpha*right_stem,0);
+penpos5(vair,90); penpos6(hair,0); penpos7(flare,0);
+x5=if serifs:.5[x4'',rt x6r] else: rt x6r fi; top y5r=h+oo;
+y4''=min(.9x_height,y5l-vair); z4''=whatever[z3,z4];
+rt x6r=hround(r-.5u-.5);
+y6=max(vround(top y5r-.5hair)-1-.5flare,
+ min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare));
+cyrbulb(5,6,7); % bulb
+penpos1'(alpha*left_stem,0); y1'=3/4x_height; z1'=whatever[z1,z2];
+x10=l+letter_fit; x10:=hround(x10-.5hair)+.5hair; y10=2/3x_height;
+penpos9(vair,90); y9r=x_height+oo; x9=min(x1l-.5,x10+u);
+if y0>cap_notch_cut:
+ y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}z4''l...{right}z5r--z5l{left}
+ ...z4''r{z3-z4}--diag_end(4r,3r,1,1,2l,1l)--
+ z1'l{z1-z2}...{left}z9l--z9r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ pickup pencircle scaled1;
+ fill z0--z4''l{z4-z3}...{right}z5r--z5l{left}...{z3-z4}z4''r
+ --diag_end(4r,3r,1,1,2l,1l)--
+ z1'l{z1-z2}...{left}z9l--z9r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ --cycle; fi % left and right diagonals
+pickup fine.nib;
+pos9'(vair,90); z9'=z9; pos10(hair,180);
+filldraw stroke z10e{up}...z9'e{right}; % hook
+%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter g_up - ghe upturn";
+cyrchar(g_up,9u#-.5width_adj#,asc_height#,0);
+italcorr x_height#*slant+.5stem#-u#; %tau
+adjust_fit(.5u#+serif_fit#,0);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(3.5u-.5stem); top y1=x_height;
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+bot y2=2/3desc_depth; bot y4r=-oo; y6-.5flare=vround.1desc_depth;
+x4=4/3u; lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z1e---z2e...{left}z4e; % stem
+bulb(4,5,6); % bulb
+% upper part
+pickup crisp.nib;
+pos7(vair,90); pos8(vair,90); pos9(flare,180); pos10(flare,180);
+x7=x1; top y7r=top y8r=x_height;
+rt x9l=rt x10l=w-.25u; x8+.25flare=lft x9r; y9=top y8r+.25flare;
+y10+.5flare=top y7r+beak; x8l:=rt x10l-(y9-top y8l);
+filldraw circ_stroke z10e{down}--z9e{down}...z8e{left}--z7e; % ital beak
+penlabels(0,1,2,3,4,5,6,7,8,9,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter ukr_i (i with umlaut)";
+cyrchar(ukr_i,5u#,lc_trema_height#,0);%
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#); %i
+adjust_fit(if monospace:u#,u# else: 0,0 fi); h:=x_height;
+pickup fine.nib; x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+% the accent
+lowercase_umlaut(0,0, 6,7,8,9);
+penlabels(0,1,2,3,4,5,8,9); endchar;
+
+if old_cyr:
+lhchar "Italic Cyrillic letter ng - ligature enghe";
+cyrcharmoving(ng);
+fi\\;
+
+iff not old_cyr:
+lhchar "Italic Cyrillic letter ng - ligature enghe";
+cyrchar(ng,10u#,x_height#,0);
+italcorr x_height#*slant+.5stem#-u#; %tau
+adjust_fit(if monospace:-1.5u# else: 0 fi,max(2u#,u#+stem#));
+% ital_ng;
+pickup fine.nib; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem);
+%ihalfstem;
+if monospace: pos2(stem,0); top y2=h;
+else: x0=0; hook_in(0,1,2); fi % opening hook
+y3-.5stem=-oo;
+filldraw circ_stroke z3e--z2e;
+x10=x3l; y10=y11=bar_height; pos10(vair,90); pos11(vair,90);
+pos6(stem,0); rt x7r=hround(w-2.5u+.5stem); top y6=h; x7=x6;
+% 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
+z7'=z7; pos7'(stem,0);
+filldraw circ_stroke z7'e--z6e; x11=x6l;
+filldraw stroke z10e--z11e;
+% italic beak
+pickup fine.nib;
+pos12(stem,0); rt x12r=r-letter_fit if monospace:+.5stem else:-.25u fi;
+y12-.5stem=2/3x_height-.5fine;
+pos13(stem,0); pos14(vair,90); pos15(vair,90);
+x15=x6; top y15r=top y14r=x_height; x13=x12; y13=bot y14l-.25flare;
+x14+.25flare=lft x12l; x14r:=lft x12l-(top y14r-y13);
+filldraw circ_stroke z12e{up}--z13e{up}...z14e{left}--z15e; % ital_beak
+%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+lhchar "Italic Cyrillic letter otld - o tilded";
+cyrchar(otld,9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+% ital_o;tld
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+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
+%%%
+% oltilde;
+if (serifs=true) and (bar#<=.5curve#):
+ numeric bar[];
+ set_bar_axis;
+ x5r=x2l; x6r=x4l;
+ y5r=y6r=y2.bh; y5l=y6l=y1.bh; x5r=x5l; x6l=x6r;
+ bar2=2/3[bar,fudged.stem];
+ penpos7(bar2,45); z7=.5[z5l,z6l];
+ fill stroke z6e{-2,-1}..{-2,1}z7e..{-2,-1}z5e;
+else:
+ bar_stroke(x2l,x4l);
+fi
+%%%%%
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Italic Cyrillic letter u_shrt - short u (as latin y)";
+cyrchar(u_shrt,if monospace:8.5u# else:9u#fi,
+ x_height#+acc_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#; %y
+adjust_fit(0,0); full_h:=h; h:=x_height;
+% ital_u;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace:
+ pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h; pos2(stem,0);
+ filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else:
+ x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+% the accent
+h:=full_h; cbreve(.5w,0, 11,12,13,14,15,16,17);
+penlabels(0,1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17); endchar;
+
+lhchar "Italic Cyrillic letter ukr_e - Ukrainian e (c with mid-line)";
+cyrchar(ukr_e,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-.5u# fi; %c+.5u
+adjust_fit(if monospace:0 else:-.35u#fi,0); %c
+% ital_ukre;
+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); pos8(vair,90);
+y7=bar_height; rt x7=hround max(rt x2+1+eps,lft x0l-eps); x8=x3; y7=y8;
+filldraw stroke z7e--z8e;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+%WNCYR shape without serifs
+lhchar "Italic Cyrillic letter fita (looks like theta)";
+cyrchar(fita,8u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+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
+bar_stroke(x2,x4); % bar
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Italic Cyrillic letter eps - epsilon";
+cyrchar(eps,if serifs:8u# else:7.5u# fi,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+% ital_eps;
+pickup fine.nib; pos0(flare,0); pos1(hair,0); pos2(vair,90); pos7(curve,180);
+pos9(vair,270); pos3(vair,270); pos9'(vair,90); pos3'(vair,90);
+pos8(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-.25u))+eps;
+x5r=good.x w-eps; x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+lft x7r=hround(2u-.5curve); lft x8r=hround(1.5u-.5curve);
+bot y4r=-oo; y7=.5[y2,y3]; y5r=y8=.5[y3,y4]; y6=bar_height;
+x3=x2; rt x9=hround max(rt x2+1+eps,lft x0l-eps); y3=y9=bar_height;
+z9'=z9; z3'=z3;
+path p; p=z4{left}..(x5,15/16bar_height)..z6;
+filldraw stroke z9e{left}...super_arc.e(3,7) & super_arc.e(7,2); % lower arc
+filldraw stroke z9'e{left}...pulled_arc.e(3',8) & pulled_arc.e(8,4)
+ ...{direction 1 of p}z5e; % upper arc
+%%%
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+endinput;
+%end of file