%        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'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
  {z6-z5}diag_in(5l,6l,1,6r)--z6r..
  if y4'>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;
