% File: mcyrsymb.mf % Based on: cyrsymb.mf % Modified by: Oliver Corff % Date: October 1997, Ulaanbaatar, % December 1998, Beijing, Shenyang, Berlin % if ligs>0: ligtable "<": "<" =: guillemotleft; ligtable ">": ">" =: guillemotright; fi; cmchar "Less than sign"; compute_spread(5/4x_height#,3/2x_height#); beginchar("<",14u#,v_center(spread#+rule_thickness#)); italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]=math_axis; draw z1--z2--z3; % diagonals labels(1,2,3); endchar; cmchar "Greater than sign"; compute_spread(5/4x_height#,3/2x_height#); beginchar(">",14u#,v_center(spread#+rule_thickness#)); italcorr math_axis#*slant-u#; adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]=math_axis; draw z1--z2--z3; % diagonals labels(1,2,3); endchar; cmchar "open cyrillic quote (looks like <<)"; beginchar(guillemotleft,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(guillemotright,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(CYRNo,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; cmchar "The Mongolian Currency symbol TOGROG"; beginchar(CYR_TOGROG,13u#-width_adj#,cap_height#,0); italcorr cap_height#*slant-beak_jut#-.25u#; adjust_fit(0,0); h:=vround(h-2stem_corr); pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0); lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0; filldraw stroke z1e--z2e; % stem pickup crisp.nib; pos3(slab,90); pos4(hair,0); top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps; arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak pos5(hair,180); x5=w-x4; y5=y4; arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing math_fit(-.75cap_height#*slant,ic#-2.5u#); z11=(x5,2/4y5); z12=(x4,3/4y4); % define upper bar edges z13=(x5,1/4y5); z14=(x4,2/4y4); % define lower bar edges pos11(bar,90); pos12(bar,90); % define upper bar width pos13(bar,90); pos14(bar,90); % define lower bar width filldraw stroke z11e--z12e; % draw upper bar filldraw stroke z13e--z14e; % draw lower bar penlabels(1,2,3,4,5,6,11,12,13,14); endchar; cmchar "The Mongolian Currency symbol togrog"; beginchar(CYR_togrog,10u#,x_height#,0); italcorr x_height#*slant-beak_jut#-.25u#; adjust_fit(0,0); h:=vround(h-2stem_corr); pickup tiny.nib; pos1(stem,0); pos2(stem,0); if odd(w-stem): change_width; fi lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0; filldraw stroke z1e--z2e; % stem pickup crisp.nib; pos3(slab,90); pos4(hair,0); top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-.6beak)-eps; arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak pos5(hair,180); x5=w-x4; y5=y4; arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak if serifs: dish_serif(2,1,c,1/3,1.414jut,d,1/3,1.414jut); % lower serif nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); fi % upper bracketing z11=(x5,2/4y5); z12=(x4,3/4y4); % define upper bar edges z13=(x5,1/4y5); z14=(x4,2/4y4); % define lower bar edges pos11(bar,90); pos12(bar,90); % define upper bar width pos13(bar,90); pos14(bar,90); % define lower bar width filldraw stroke z11e--z12e; % draw upper bar filldraw stroke z13e--z14e; % draw lower bar penlabels(1,2,3,4,5,11,12,13,14); endchar;