cmchar "open cyrillic quote (looks like <<)"; beginchar(CYR_left,10u#,x_height#,0); adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup rule.nib; lft x2=hround u-epsilon; x1=x3=.55w; y1=h; y3=0; y2=.5[y1,y3]; draw z1--z2--z3; % left diagonals x4=w-x2; y4=.9[y3,y1]; y6=.1[y3,y1]; x5-x2=x6-x3=x4-x1; y5=y2; draw z4--z5--z6; % right diagonals z2'=z2; x2':=x2-.625rule_thickness; z5'=z5; x5':=x5+.625rule_thickness; draw z1--z2'--z3; % left diagonals draw z4--z5'--z6; % right diagonals labels(1,2,3,4,5,6); endchar; cmchar "close cyrillic quote (looks like >>)"; beginchar(CYR_right,10u#,x_height#,0); adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup rule.nib; lft x2=.55w; x1=x3=hround u-epsilon; y1=.9h; y3=.1h; y2=.5[y1,y3]; y4=h; y6=0; y5=.5[y4,y6]; draw z1--z2--z3; % left diagonals x4=w-x2; x5-x2=x6-x3=x4-x1; draw z4--z5--z6; % right diagonals z2'=z2; x2':=x2-.625rule_thickness; z5'=z5; x5':=x5+.625rule_thickness; draw z1--z2'--z3; % left diagonals draw z4--z5'--z6; % right diagonals labels(1,2,3,4,5,6); endchar; cmchar "The number mark"; beginchar(CYR_number,17u#,cap_height#,0); italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#); adjust_fit(cap_serif_fit#,cap_serif_fit#); numeric thin_stem,letter_w,light_bulb; letter_w=14u; thin_stem=hround(fudged.hair+stem_corr); pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0); pos3(thin_stem,0); pos4(thin_stem,0); top y1=h; bot y4=0; if serifs: top y3=h-bot y2=.9h; else: top y3=h; bot y2=0; fi x1=x2; x3=x4; x1l=letter_w-x3r; rt x3r=hround min(letter_w-3u,letter_w-4u+.5fudged.cap_stem); filldraw stroke z1e--z2e; % left stem filldraw stroke z3e--z4e; % right stem if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0); x5l=x1; x6r=x4; y5=h; y6=0; numeric upper_notch,lower_notch; upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut; x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r]; fill z5l.. if y1'lower_notch: {left}(x4'-1,lower_notch){up}... fi {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal else: penpos5(whatever,0); penpos6(whatever,90); z5l=z1l; z6l=z4l; z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90); z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l); filldraw stroke z5e..z6e; fi % diagonal if serifs: serif(5,6,a,1/3,-cap_jut); % upper left serif light_bulb=hround 7/8[cap_hair,flare]; z2'r=(tiny.rt x2r,y2); z2'l=(tiny.lft x2l,y2); z3'l=(tiny.rt x3r,y3); z3'r=(tiny.lft x3l,y3); penpos8(vair,-90); penpos9(cap_hair,-180); penpos10(light_bulb,-180); penpos11(vair,90); penpos12(cap_hair,0); penpos13(light_bulb,0); x8=x1-1.25u; x11=letter_w-x8; x10r=hround .5u; x13r=hround(letter_w-.5u); if monospace: y10=u; y11=h-y8=h; else: y10=2u-min(.5light_bulb,.5u); top y11r=h+o; bot y8r=-o; fi y13=h-y10; fill stroke z2'e{down}...{left}z8e; fill stroke z3'e{up}...{right}z11e; % upper and lower arcs clearpen; bulb(8,9,10); bulb(11,12,13); fi % upper and lower bulbs numeric thick_hair; thick_hair=max(hair,.75stem); penpos14(vair,90); penpos16(vair,-90); penpos15(thick_hair,180); penpos17(thick_hair,0); interim superness:=sqrt(more_super*hein_super); if monospace: x15=hround(w-4.5u); rt x17r=hround(w-.5u); else: x15=hround(w-4u); rt x17r=hround(w-.5u); fi x14=x16=.5[x15,x17]; y14r=h-y16r=.7h; y15=y17=.5[y14,y16]; if x17l<=x15l+10: x15l:=x15r+vair; x17l:=x17r-vair; fi penstroke pulled_arc.e(14,15) & pulled_arc.e(15,16) & pulled_arc.e(16,17) & pulled_arc.e(17,14) & cycle; % bowl pickup crisp.nib; pos18(thick_hair,90); pos19(thick_hair,90); bot y18l=bot y19l=.075h; rt x19=x17r; lft x18=x15r; filldraw stroke z18e--z19e; % bar math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7,8,9,10,11,12,13,14,15,16,17,18,19); endchar;