% % lgbersta.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: % % Lowercase letters used in files beresta(r/e): file #1 % %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % List of letternames % % Lb_bar % Lc_lcom % Ld_moc % Ld_dsc % Ld_bar % Ld_mtl % Lf_rev % LVg_hcrs % LVg_beak % Lh_voic % Lh_moc % Lh_tl % Lh_lftl % Lh_dsc % Lhflip_hcrs % Li_dsc % Lj_bar % Lj_arm % Lj_dotbar % Lj_armhcrs % Lj_crs % Lk_lcom % LHver_check(3,4); % like |version_check| in ec lhchar "Lowercase Special letter Lb_bar"; cyrchar(Lb_bar,10u#+serif_fit#,asc_height#,0); italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#); adjust_fit(serif_fit#,0); pickup tiny.nib; pos1(stem',0); pos2(stem,0); pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2; lft x1l=hround(2.5u-.5stem'); top y1=h; numeric edge; edge=rt x2r; pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180); pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180); rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]); y3=1/8[bar_height,x_height]; x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo; rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height; x6l=x4l-.2u; bot y6r=-oo; x7=x3; y7=min(y3,y6+y4-y3+.6vair); (x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]); (x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]); filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l)); y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l)); pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem pickup crisp.nib; pos8(hair,0); pos7'(stem,0); z7'=z2; x8l=x7'l; bot y8=0; filldraw stroke z7'e--z8e; % point if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif % pos80(bar,90); pos90(bar,90); x80=.5[x4,x5]; if serifs: x90=x2l-jut; else: x90=w; fi if serifs: y80=y90=.5[y.a2-.5slab,y4+.5vair]; else: y80=y90=.5[x_height,asc_height-serif_drop]; fi filldraw stroke z80e--z90e; penlabels(0,1,2,3,4,5,6,7,8); endchar; lhchar "Lowercase Special letter Lc_lcom"; cyrchar(Lc_lcom,8u#,x_height#,1.25desc_depth#); % eng italcorr x_height#*slant-.2u#; adjust_fit(if monospace: .5u#,.5u# else: -.1u#,0 fi); pickup fine.nib; pos2(vair',90); pos4(vair',270); x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo; pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h; % eng if serifs: pos1(hair,0); pos0(flare,0); y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare); rt x1r=hround(w-.7u); bulb(2,1,0); % bulb pos5(hair,0); rt x5r=hround(w-.5u); y5=max(good.y(.5bar_height-.9),y4l+vair'); (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u); filldraw stroke pulled_super_arc.e(2,3)(.7superpull) & pulled_super_arc.e(3,4)(.5superpull) ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal else: pos1(4/7[vair',flare],80); rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r]; filldraw stroke term.e(2,1,right,.8,4); % upper terminal pos5(.6[vair',flare],275); rt x5r=hround(w-.5u); y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l; forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e; if angle direction 1 of p.e>75: p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor filldraw stroke pulled_super_arc.e(2,3)(.7superpull) & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal % the accent %ac_comma(x4-.5w,0,1.25desc_depth, 6,7,8,9,10); x_move:=x4-.5w; y_move:=0; depth:=1.25desc_depth; _zero:=6; _one:=7; _two:=8; _three:=9; _four:=10; numeric height,bulb_diam; height=if serifs: depth+.5fine-max(.27depth,o+hair) else:.68depth fi; bulb_diam=max(fine.breadth,min(dot_size,floor(.56height))); if square_dots: pickup fine.nib; pos[_one](vair,0); pos[_two](.5[vair,stem],0); % comma below letter as sans serif cedilla top y[_one]=-o-2; bot y[_two]=-d-o; x[_two]=x[_one]-1.25u=.5w+x_move; filldraw stroke z[_one]e--z[_two]e; % diagonal else: pickup fine.nib; x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam); y[_four]+.5bulb_diam=-d+y_move+height; pos[_four](bulb_diam,90); pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45); z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam +if monospace:.28u / expansion_factor else:.25u fi)+2eps; x[_three]=x[_four]-.5u if monospace: /expansion_factor fi; y[_two]=1/3[y[_one],y[_three]]; bot y[_three]r=vround(y[_four]-(height-.5bulb_diam)); y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three]) intersectiontimes (z[_four]l{right}..{left}z[_four]r)); if y_<0: y_:=1; fi filldraw z[_four]r{left}..subpath (0,y_) of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail penlabels([_zero],[_one],[_two],[_three],[_four]); penlabels(0,1,2,3,4,5); endchar; lhchar "Lowercase Special letter Ld_moc"; cyrchar(Ld_moc,10u#+serif_fit#,asc_height#,desc_depth#); italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; adjust_fit(0,serif_fit#); pickup tiny.nib; pos1(stem',0); pos2(stem,0); pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2; rt x1r=hround(w-2.5u+.5stem'); top y1=h; numeric edge; edge=lft x2l; pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0); pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360); lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]); y3=1/8[bar_height,x_height]; x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo; lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height; x6l=x4l-.2u; bot y6r=-oo; x7=x3; y7=min(y3,y6+y4-y3+.6vair); (x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]); (x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]); filldraw stroke z3e{up}...pulled_arc.e(4,5) & pulled_arc.e(5,6)...{up}z7e; % bowl y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l)); pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi; filldraw stroke z1e--z0'e--z0e--z2e; % stem if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif % the accent % ac_ammoc(x2,0, 8,9,10,11,12); x_move:=x2; y_move:=0; _zero:=8; _one:=9; _two:=10; _three:=11; _four:=12; % numeric bulb_diam; bulb_diam=max(fine.breadth,min(dot_size,floor(.56d))); if square_dots: % sans serif cedilla;edited pickup fine.nib; pos[_one](vair,0); pos[_two](.5[vair,stem],0); top y[_one]=y_move-o-1-eps; bot y[_two]=-d-o; x[_two]=x[_one]-1.25u=x_move-.5u; %%%!!! filldraw stroke z[_one]e--z[_two]e; % diagonal else: pickup crisp.nib; pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45); pos[_four](bulb_diam,90); x[_four]-.5bulb_diam=hround(x_move-.5bulb_diam); y[_four]+.5bulb_diam=vround(-d-o+bulb_diam); z[_one]l=z[_four]l; lft x[_two]l= hround(x[_four]-.5bulb_diam-.28u if monospace: /expansion_factor fi)-2eps; x[_three]=x[_four]+.5u if monospace: /expansion_factor fi; y[_two]=1/3[y[_one],y[_three]]; bot y[_three]r=y_move; y_:=ypart((z[_one]{left}...z[_two]{up}...z[_three]) intersectiontimes (z[_four]r{left}..{right}z[_four]l)); if y_<0: y_:=1; fi filldraw z[_four]l{right}..subpath (0,y_) of (z[_four]r{left} ..{right}z[_four]l)--cycle; % dot filldraw stroke z[_one]e{left}...z[_two]e{up}...z[_three]e; % tail fi %%% penlabels(0,1,2,3,4,5,6,7); endchar; lhchar "Lowercase Special letter Ld_dsc"; cyrchar(Ld_dsc,10u#+serif_fit#,asc_height#,sbeak#); italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; adjust_fit(0, if serifs: serif_fit# else: 0 fi); % lr_serif_adj pickup tiny.nib; pos1(stem',0); pos2(stem,0); pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2; rt x1r=hround(w-2.5u+.5stem'); top y1=h; numeric edge; edge=lft x2l; pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0); pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360); lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]); y3=1/8[bar_height,x_height]; x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo; lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height; x6l=x4l-.2u; bot y6r=-oo; x7=x3; y7=min(y3,y6+y4-y3+.6vair); (x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]); (x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]); filldraw stroke z3e{up}...pulled_arc.e(4,5) & pulled_arc.e(5,6)...{up}z7e; % bowl y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l)); pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi; filldraw stroke z1e--z0'e--z0e--z2e; % stem if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif % sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif % lower lat descender numeric right_jut; right_jut=if serifs: 1.414jut else: hround (r-rt x2r-.5u) fi; r_serif(2,1,o,1/3,0,p,1/3,beak_darkness,right_jut,.6beak_jut); % lower left serif penlabels(0,1,2,3,4,5,6,7); endchar; lhchar "Lowercase Special letter Ld_bar"; cyrchar(Ld_bar,10u#+serif_fit#,asc_height#,0); italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; adjust_fit(0,serif_fit#); pickup tiny.nib; pos1(stem',0); pos2(stem,0); pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2; rt x1r=hround(w-2.5u+.5stem'); top y1=h; numeric edge; edge=lft x2l; pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0); pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360); lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]); y3=1/8[bar_height,x_height]; x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo if monospace: -hair fi; lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height if monospace: -.5hair fi ; x6l=x4l-.2u; bot y6r=-oo; x7=x3; y7=min(y3,y6+y4-y3+.6vair); (x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]); (x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]); filldraw stroke z3e{up}...pulled_arc.e(4,5) & pulled_arc.e(5,6)...{up}z7e; % bowl y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l)); pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi; filldraw stroke z1e--z0'e--z0e--z2e; % stem if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif % pos8(bar,90); pos9(bar,90); x8=.5[x4,x5]; if serifs: x9=x2r+jut; else: x9=w; fi if serifs: y8=y9=.5[y.a2-.5slab,y4+.5vair]; else: y8=y9=.5[x_height,asc_height-serif_drop]; fi filldraw stroke z8e--z9e; penlabels(0,1,2,3,4,5,6,7,8,9); endchar; lhchar "Lowercase Special letter Ld_mtl - miscelaneous tail"; cyrchar(Ld_mtl,10u#+serif_fit#,asc_height#,0); italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; adjust_fit(0,max(u#,.5u#+.5stem#)); pickup tiny.nib; pos1(stem',0); pos2(stem,0); pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2; rt x1r=hround(w-2.5u+.5stem'); top y1=h; numeric edge; edge=lft x2l; pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0); pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360); lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]); y3=1/8[bar_height,x_height]; x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo; lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height; x6l=x4l-.2u; bot y6r=-oo; x7=x3; y7=min(y3,y6+y4-y3+.6vair); (x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]); (x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]); filldraw stroke z3e{up}...pulled_arc.e(4,5) & pulled_arc.e(5,6)...{up}z7e; % bowl y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l)); pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi; filldraw stroke z1e--z0'e--z0e--z2e; % stem if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif % sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif % misc_tail bar_stroke(x2r,hround (r-1/3u)); penpos10(vair',90); penpos11(hair,180); x10=x2r; y10l=0; z11=.5[z10l,z9r]; fill stroke z10e{right}...z11e{up}...{right}z9e; penlabels(0,1,2,3,4,5,6,7); endchar; lhchar "Lowercase Special letter Lf_rev"; cyrchar(Lf_rev,8u#,asc_height#,0); italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#; adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#); pickup tiny.nib; pos1(stem,0); pos2(stem,0); rt x1r=rt x2r=w-hround(2.5u-.5stem); top y1=.25[x_height,h]; bot y2=0; if serifs: pos1'(stem',0); pos2'(stem',0); pos3(stem,0); x1l=x1'l=x2'l; x3=w-x1; y1=y1'; y2=y2'; filldraw stroke z1'e--z2'e; % left stem pos9(vair,-270); pos9'(vair,90); z9=z9'; x9=.5[x1,x10]; top y9r=h; pos10(hair,180); rt x10r=hround u; y10=.75[x_height,h]-.5flare; pos11(flare,180); bulb(9',10,11); % bulb filldraw stroke super_arc.e(1,9'); % tail else: pickup fine.nib; pos1'(stem,0); z1'=z1; z1''r=z1'r; z1''=z1'; z1''l=(x1'l,0); pos9(vair,-270); x9=4.5u; top y9r=h; pos10(.5[vair,flare],90); rt x10=hround 1.25u; y10r=good.y 5/6[x_height,h]; y10l:=good.y y10l; filldraw stroke z1'e..z1''e&super_arc.e(1'',9) & term.e(9,10,left,.9,4); fi % tail if serifs: dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower left serif % bar pickup fine.nib; numeric middle_weight; middle_weight=max(fine.breadth,.6[thin_join,vair]); pos21(middle_weight,90); pos20(middle_weight,90); y20=y21=x_height; x21=lft x2l-jut; x20=rt x2r+jut; filldraw stroke z20e--z21e; penlabels(1,2,3,4,9,10,11); endchar; lhchar "Lowercase Special letter LVg_hcrs"; cyrchar(LVg_hcrs,10u#+serif_fit#,x_height#,desc_depth#); h:=vround(x_height#*hppp); d:=vround(desc_depth#*hppp); % vertical adj. italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi; adjust_fit(0,serif_fit# if serifs: -.5u# fi); pickup tiny.nib; pos1(stem',0); pos2(stem,0); pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2; rt x1r=hround(w-2.5u+.5stem'); numeric edge; edge=lft x2l; path edge_path; edge_path=(edge,h)--(edge,0); pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0); pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360); lft x3l=2/3[lft x2,edge]; y3=bar_height; x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo; lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height; x6l=x4l-.2u; bot y6r=vround 1/3vair; lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair); (x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]); (x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]); filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5) &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l)); y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l)); pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi; filldraw stroke z1e--z0'e--z0e--z2e; % stem pickup crisp.nib; pos8(hround(hair-stem_corr),0); pos7'(stem',0); z7'=z1; x8r=x7'r; top y8=h+oo; filldraw stroke z7'e--z8e; % point if serifs: pickup tiny.nib; pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1; pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare; pos11(flare,-180); z11r=z10r; bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail else: pickup fine.nib; pos2'(stem,0); z2'=z2; z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0); pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1; pos10(.5[vair,flare],-90); lft x10=hround 1.25u; y10r=good.y -5/6d; y10l:=good.y y10l; filldraw stroke z2'e..z2''e&super_arc.e(2'',9) & term.e(9,10,left,.9,4); fi % tail % bar pickup fine.nib; numeric middle_weight; middle_weight=max(fine.breadth,.6[thin_join,vair]); pos21(middle_weight,90); pos20(middle_weight,90); y20=y21=hround min(-oo-1,.25[-oo,-d+vair'])-.5middle_weight; x21=lft x2l-jut; x20=rt x2r+.75jut; filldraw stroke z20e--z21e; penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar; lhchar "Lowercase Special letter Vg_beak"; cyrchar(LVg_beak,10u#+serif_fit#,asc_height#,desc_depth#); full_h:=h; h:=vround(x_height#*hppp); d:=vround(desc_depth#*hppp); % vertical adj. italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi; adjust_fit(0,serif_fit# if serifs: -.5u# fi); pickup tiny.nib; pos1(stem',0); pos2(stem,0); pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2; rt x1r=hround(w-2.5u+.5stem'); numeric edge; edge=lft x2l; path edge_path; edge_path=(edge,h)--(edge,0); pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0); pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360); lft x3l=2/3[lft x2,edge]; y3=bar_height; x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo; lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height; x6l=x4l-.2u; bot y6r=vround 1/3vair; lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair); (x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]); (x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]); filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5) &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl %y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l)); y1=full_h; y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l)); pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi; filldraw stroke z1e--z0'e--z0e--z2e; % stem pickup crisp.nib; %pos8(hround(hair-stem_corr),0); pos7'(stem',0); pos8(vair,90); pos7'(vair,90); %z7'=z1; x8r=x7'r; top y8=h+oo; top y8r=top y7'r=tiny.top y1; x7'=x1; x8=hround u; filldraw stroke z7'e--z8e; % point if serifs: pickup tiny.nib; pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1; pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare; pos11(flare,-180); z11r=z10r; bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail else: pickup fine.nib; pos2'(stem,0); z2'=z2; z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0); pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1; pos10(.5[vair,flare],-90); lft x10=hround 1.25u; y10r=good.y -5/6d; y10l:=good.y y10l; filldraw stroke z2'e..z2''e&super_arc.e(2'',9) & term.e(9,10,left,.9,4); fi % tail penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar; lhchar "Lowercase Special letter Lh_voic"; cyrchar(Lh_voic,10u#,asc_height#,0); italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#; adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#); pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos3(stem,0); lft x1l=lft x2l=hround(2.5u-.5stem); x3=w-x1; top y1=.25[x_height,h]; bot y2=0; h_stroke(2,a,3,4); % arch and right stem if serifs: pickup tiny.nib; pos1'(stem',0); pos2'(stem',0); x1l=x1'l=x2'l; y1=y1'; y2=y2'; filldraw stroke z1'e--z2'e; % left stem pos9(vair,-270); pos9'(vair,-90);z9=z9';x9=.5[x1,x10]; top y9r=h; pos10(hair,-360); rt x10r=min(w- hround u,rt x3r); y10=.75[x_height,h]-.5flare; pos11(flare,-360); bulb(9,10,11); filldraw stroke super_arc.e(1,9'); % tail else: pickup fine.nib; pos1'(stem,0); z1'=z1; z1''r=z1'r; z1''=z1'; z1''l=(x1'l,0); pos9(vair,-270); x9=4.5u; top y9r=h; pos10(.5[vair,flare],90); rt x10=hround 1.25u; y10r=good.y 5/6[x_height,h]; y10l:=good.y y10l; filldraw stroke z1'e..z1''e&super_arc.e(1'',9) & term.e(9,10,left,.9,4); fi % tail if serifs: numeric inner_jut; pickup tiny.nib; if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut; else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif penlabels(1,2,3,4,9,10,11); endchar; lhchar "Lowercase Special letter Lh_moc"; cyrchar(Lh_moc,10u#,asc_height#,desc_depth#); italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#; adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#); pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos1'(stem',0); pos2'(stem',0); pos3(stem,0); lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1; top y1=h; bot y2=0; y1=y1'; y2=y2'; filldraw stroke z1'e--z2'e; % left stem h_stroke(2,a,3,4); % arch and right stem if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif numeric inner_jut; pickup tiny.nib; if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut; else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif % the accent % ac_ammoc(x4,0, 5,6,7,8,9); x_move:=x4; y_move:=0; _zero:=5; _one:=6; _two:=7; _three:=8; _four:=9; % numeric bulb_diam; bulb_diam=max(fine.breadth,min(dot_size,floor(.56d))); if square_dots: % sans serif cedilla;edited pickup fine.nib; pos[_one](vair,0); pos[_two](.5[vair,stem],0); top y[_one]=y_move-o-1-eps; bot y[_two]=-d-o; x[_two]=x[_one]-1.25u=x_move-.5u; %%%!!! filldraw stroke z[_one]e--z[_two]e; % diagonal else: pickup crisp.nib; pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45); pos[_four](bulb_diam,90); x[_four]-.5bulb_diam=hround(x_move-.5bulb_diam); y[_four]+.5bulb_diam=vround(-d-o+bulb_diam); z[_one]l=z[_four]l; lft x[_two]l= hround(x[_four]-.5bulb_diam-.28u if monospace: /expansion_factor fi)-2eps; x[_three]=x[_four]+.5u if monospace: /expansion_factor fi; y[_two]=1/3[y[_one],y[_three]]; bot y[_three]r=y_move; y_:=ypart((z[_one]{left}...z[_two]{up}...z[_three]) intersectiontimes (z[_four]r{left}..{right}z[_four]l)); if y_<0: y_:=1; fi filldraw z[_four]l{right}..subpath (0,y_) of (z[_four]r{left} ..{right}z[_four]l)--cycle; % dot filldraw stroke z[_one]e{left}...z[_two]e{up}...z[_three]e; % tail fi %%% penlabels(1,2,3,4); endchar; lhchar "Lowercase Special letter Lh_tl"; cyrchar(Lh_tl,10u#,asc_height#,desc_depth#); italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#; adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#); h:=x_height; pickup tiny.nib; pos1(stem,0); pos2(stem,0); numeric shaved_stem; shaved_stem=hround(stem-2stem_corr); pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0); lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1; top y1=asc_height+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2'; filldraw stroke z1'e--z2'e; % left stem h_stroke(2,a,3,4); % arch and right stem if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif numeric inner_jut; pickup tiny.nib; if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut; else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif % dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif x8=x4; bot y8=-1/3d; penpos8(x3r-x3l,0); % stuff added pickup tiny.nib; filldraw stroke z4e--z8e; % right stem continuation pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180); x5=.5[x8,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d; if monospace: lft x6r=0; else: z6r=z7r; lft x7r= rt x2r; fi (x,y5r)=whatever[z5l,z8l]; x5r:=max(x,.5[x6r,x5]); filldraw stroke z8e{down}...z5e{left}; bulb(5,6,7); fi % arc and bulb penlabels(1,2,3,4,5,6,7,8); endchar; lhchar "Lowercase Special letter Lh_lftl"; cyrchar(Lh_lftl,10u#,asc_height#,0); italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#; adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#); pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos3(stem,0); lft x1l=lft x2l=hround(2.5u-.5stem); x3=w-x1; top y1=.25[x_height,h]; bot y2=0; h_stroke(2,a,3,4); % arch and right stem if serifs: pickup tiny.nib; pos1'(stem',0); pos2'(stem',0); x1l=x1'l=x2'l; y1=y1'; y2=y2'; filldraw stroke z1'e--z2'e; % left stem pos9(vair,-270); pos9'(vair,90); pos10(hair,180); z9=z9'; x9=.5[x1,x10]; top y9r=h; lft x10r=2x1-min(w-hround u,rt x3r); y10=.75[x_height,h]-.5flare; pos11(flare,180); %z11l=z10l; bulb(9',10,11); filldraw stroke super_arc.e(1,9'); % tail else: pickup fine.nib; pos1'(stem,0); z1'=z1; z1''r=z1'r; z1''=z1'; z1''l=(x1'l,0); pos9(vair,-270); x9=4.5u; top y9r=h; pos10(.5[vair,flare],90); rt x10=hround 1.25u; y10r=good.y 5/6[x_height,h]; y10l:=good.y y10l; filldraw stroke z1'e..z1''e&super_arc.e(1'',9) & term.e(9,10,left,.9,4); fi % tail if serifs: numeric inner_jut; pickup tiny.nib; if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut; else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif penlabels(1,2,3,4,9,10,11); endchar; lhchar "Lowercase Special letter Lh_dsc"; cyrchar(Lh_dsc,10u#,asc_height#,sbeak#); italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#; adjust_fit(serif_fit#+stem_shift#, if serifs: serif_fit# else: 0 fi % lr_serif_adj -stem_shift#); pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos1'(stem',0); pos2'(stem',0); pos3(stem,0); lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1; top y1=h; bot y2=0; y1=y1'; y2=y2'; filldraw stroke z1'e--z2'e; % left stem h_stroke(2,a,3,4); % arch and right stem if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif numeric inner_jut; pickup tiny.nib; if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut; else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif % lower lat descender numeric right_jut; right_jut=if serifs: 1.414jut else: hround (r-rt x4r-.5u) fi; r_serif(4,3,g,1/3,jut,h,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender penlabels(1,2,3,4); endchar; lhchar "Lowercase Special letter Lhflip_hcrs"; cyrchar(Lhflip_hcrs,10u#,x_height#,desc_depth#); italcorr x_height#*slant-serif_fit#+.5stem#-2u#; adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#); numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi; if light_vair