% mathematical symbols by Anthony Phan.
% file: mathxdrv.mf (eXtensible symbols driver file)
% last modification: May 16, 2005.

mode_setup;

math_setup;

% PARENTHESIS

paren_left_big:=hex"00"; paren_left_Big:=hex"01";
paren_left_bigg:=hex"02"; paren_left_Bigg:=hex"03";
paren_left_top:=hex"04"; paren_left_bot:=hex"05";
paren_left_mid:=hex"06";

paren_right_big:=hex"08"; paren_right_Big:=hex"09";
paren_right_bigg:=hex"0A"; paren_right_Bigg:=hex"0B";
paren_right_top:=hex"0C"; paren_right_bot:=hex"0D";
paren_right_mid:=hex"0E";

charlist paren_left_big: paren_left_Big: 
paren_left_bigg: paren_left_Bigg: paren_left_top;
extensible paren_left_top:
paren_left_top,0,paren_left_bot,paren_left_mid;

charlist paren_right_big: paren_right_Big: 
paren_right_bigg: paren_right_Bigg: paren_right_top;
extensible paren_right_top:
paren_right_top,0,paren_right_bot,paren_right_mid;

% BRACKETS

bracket_left_big:=hex"10"; bracket_left_Big:=hex"11";
bracket_left_bigg:=hex"12"; bracket_left_Bigg:=hex"13";
bracket_left_top:=hex"14"; bracket_left_bot:=hex"15";
bracket_left_mid:=hex"16";

bracket_right_big:=hex"18"; bracket_right_Big:=hex"19";
bracket_right_bigg:=hex"1A"; bracket_right_Bigg:=hex"1B";
bracket_right_top:=hex"1C"; bracket_right_bot:=hex"1D";
bracket_right_mid:=hex"1E";

charlist bracket_left_big: bracket_left_Big: 
bracket_left_bigg: bracket_left_Bigg: bracket_left_top;
extensible bracket_left_top:
bracket_left_top,0,bracket_left_bot,bracket_left_mid;

charlist bracket_right_big: bracket_right_Big: 
bracket_right_bigg: bracket_right_Bigg: bracket_right_top;
extensible bracket_right_top:
bracket_right_top,0,bracket_right_bot,bracket_right_mid;

% BRACES

brace_left_big:=hex"20"; brace_left_Big:=hex"21";
brace_left_bigg:=hex"22"; brace_left_Bigg:=hex"23";
brace_left_top:=hex"24"; brace_left_bot:=hex"25";
brace_left_mid:=hex"26"; brace_left_mod:=hex"27";

brace_right_big:=hex"28"; brace_right_Big:=hex"29";
brace_right_bigg:=hex"2A"; brace_right_Bigg:=hex"2B";
brace_right_top:=hex"2C"; brace_right_bot:=hex"2D";
brace_right_mid:=hex"2E"; brace_right_mod:=hex"2F";

charlist brace_left_big: brace_left_Big: 
brace_left_bigg: brace_left_Bigg: brace_left_top;
extensible brace_left_top:
brace_left_top,brace_left_mid,brace_left_bot,brace_left_mod;

charlist brace_right_big: brace_right_Big: 
brace_right_bigg: brace_right_Bigg: brace_right_top;
extensible brace_right_top:
brace_right_top,brace_right_mid,brace_right_bot,brace_right_mod;

% BBBRACKETS

bbbracket_left_big:=hex"30"; bbbracket_left_Big:=hex"31";
bbbracket_left_bigg:=hex"32"; bbbracket_left_Bigg:=hex"33";
bbbracket_left_top:=hex"34"; bbbracket_left_bot:=hex"35";
bbbracket_left_mid:=hex"36";

bbbracket_right_big:=hex"38"; bbbracket_right_Big:=hex"39";
bbbracket_right_bigg:=hex"3A"; bbbracket_right_Bigg:=hex"3B";
bbbracket_right_top:=hex"3C"; bbbracket_right_bot:=hex"3D";
bbbracket_right_mid:=hex"3E";

charlist bbbracket_left_big: bbbracket_left_Big: 
bbbracket_left_bigg: bbbracket_left_Bigg: bbbracket_left_top;
extensible bbbracket_left_top:
bbbracket_left_top,0,bbbracket_left_bot,bbbracket_left_mid;

charlist bbbracket_right_big: bbbracket_right_Big: 
bbbracket_right_bigg: bbbracket_right_Bigg: bbbracket_right_top;
extensible bbbracket_right_top:
bbbracket_right_top,0,bbbracket_right_bot,bbbracket_right_mid;

% ANGLES

angle_left_big:=hex"40"; angle_left_Big:=hex"41";
angle_left_bigg:=hex"42"; angle_left_Bigg:=hex"43";
angle_right_big:=hex"44"; angle_right_Big:=hex"45";
angle_right_bigg:=hex"46"; angle_right_Bigg:=hex"47";

charlist angle_left_big: angle_left_Big: 
angle_left_bigg: angle_left_Bigg;
charlist angle_right_big: angle_right_Big: 
angle_right_bigg: angle_right_Bigg;

% SLASHES

backslash_big:=hex"48"; backslash_Big:=hex"49";
backslash_bigg:=hex"4A"; backslash_Bigg:=hex"4B";
slash_big:=hex"4C"; slash_Big:=hex"4D";
slash_bigg:=hex"4E"; slash_Bigg:=hex"4F";

charlist backslash_big: backslash_Big: 
backslash_bigg: backslash_Bigg;
charlist slash_big: slash_Big: 
slash_bigg: slash_Bigg;

% CEILINGS AND FLOORS

ceiling_left_big:=hex"50"; ceiling_left_Big:=hex"51";
ceiling_left_bigg:=hex"52"; ceiling_left_Bigg:=hex"53";
ceiling_left_top:=bracket_left_top;
ceiling_left_mid:=bracket_left_mid;

ceiling_right_big:=hex"54"; ceiling_right_Big:=hex"55";
ceiling_right_bigg:=hex"56"; ceiling_right_Bigg:=hex"57";
ceiling_right_top:=bracket_right_top;
ceiling_right_mid:=bracket_right_mid;

charlist ceiling_left_big: ceiling_left_Big:
ceiling_left_bigg: ceiling_left_Bigg: ceiling_left_mid;
extensible ceiling_left_mid:
ceiling_left_top,0,0,ceiling_left_mid;

charlist ceiling_right_big: ceiling_right_Big:
ceiling_right_bigg: ceiling_right_Bigg: ceiling_right_mid;
extensible ceiling_right_mid:
ceiling_right_top,0,0,ceiling_right_mid;

floor_left_big:=hex"58"; floor_left_Big:=hex"59";
floor_left_bigg:=hex"5A"; floor_left_Bigg:=hex"5B";
floor_left_bot:=bracket_left_bot;
floor_left_mid:=bracket_left_mid;

floor_right_big:=hex"5C"; floor_right_Big:=hex"5D";
floor_right_bigg:=hex"5E"; floor_right_Bigg:=hex"5F";
floor_right_bot:=bracket_right_bot;
floor_right_mid:=bracket_right_mid;

charlist floor_left_big: floor_left_Big:
floor_left_bigg: floor_left_Bigg: floor_left_bot;
extensible floor_left_bot:
0,0,floor_left_bot,floor_left_mid;

charlist floor_right_big: floor_right_Big:
floor_right_bigg: floor_right_Bigg: floor_right_bot;
extensible floor_right_bot:
0,0,floor_right_bot,floor_right_mid;

radical_sign:=hex"60"; radical_big :=hex"61";
radical_Big :=hex"62"; radical_bigg:=hex"63";
radical_Bigg:=hex"64"; radical_bot :=hex"65";
radical_mod :=hex"66"; radical_top :=hex"67";

charlist radical_big: radical_Big: 
radical_bigg: radical_Bigg: radical_top;
extensible radical_top:
radical_top,0,radical_bot,radical_mod;

overbrace_left  :=hex"68";
overbrace_mid   :=hex"69";
overbrace_right :=hex"6A";
overbrace_mod   :=hex"6B";
underbrace_left :=hex"6C";
underbrace_mid  :=hex"6D";
underbrace_right:=hex"6E";
underbrace_mod  :=hex"6F";

vert_mod:=hex"07"; vvert_mod:=hex"0F"; vvvert_mod:=hex"17";
vert_thick_mod:=hex"1F"; left_filet:=hex"37"; right_filet:=hex"3F";

extensible vert_mod: 0,0,0,vert_mod;
extensible vvert_mod: 0,0,0,vvert_mod;
extensible vvvert_mod: 0,0,0,vvvert_mod;
extensible vert_thick_mod: 0,0,0,vert_thick_mod;
extensible left_filet: left_filet,
left_filet,0,left_filet;
extensible right_filet: right_filet,
right_filet,0,right_filet;

% BONUS

group_left_big:=hex"76";
group_right_big:=hex"77";

% lgroup
charlist group_left_big: brace_left_bot;
extensible brace_left_bot:
brace_left_top,0,brace_left_bot,brace_left_mod;
% rgroup
charlist group_right_big: brace_right_bot;
extensible brace_right_bot:
brace_right_top,0,brace_right_bot,brace_right_mod;

% lmoustache, hope it works
extensible paren_left_bot:
brace_left_top,0,brace_right_bot,brace_left_mod;
% rmoustache, hope it works
extensible paren_right_bot:
brace_right_top,0,brace_left_bot,brace_right_mod;

input mathbdel;

input mathacnt;

bplus_sign  :=hex"90"; Bplus_sign  :=hex"A0";
btimes_sign :=hex"91"; Btimes_sign :=hex"A1";
bcomplement :=hex"92"; Bcomplement :=hex"A2";
%btruc_sign  :=hex"93"; Btruc_sign  :=hex"A3";
%bcurt_sign  :=hex"94"; Bcurt_sign  :=hex"A4";
bcap_sign   :=hex"93"; Bcap_sign   :=hex"A3";
bcup_sign   :=hex"94"; Bcup_sign   :=hex"A4";
bcup_plus   :=hex"95"; Bcup_plus   :=hex"A5";
bsqcap_sign :=hex"96"; Bsqcap_sign :=hex"A6";
bsqcup_sign :=hex"97"; Bsqcup_sign :=hex"A7";
bsqcup_plus :=hex"98"; Bsqcup_plus :=hex"A8";
bwedge_sign :=hex"99"; Bwedge_sign :=hex"A9";
bvee_sign   :=hex"9A"; Bvee_sign   :=hex"AA";
bwedge_curly:=hex"9B"; Bwedge_curly:=hex"AB";
bvee_curly  :=hex"9C"; Bvee_curly  :=hex"AC";

charlist bplus_sign:   Bplus_sign;
charlist btimes_sign:  Btimes_sign;
charlist bcomplement:  Bcomplement;
%charlist btruc_sign:   Btruc_sign;
%charlist bcurt_sign:   Bcurt_sign;
charlist bcap_sign:    Bcap_sign;
charlist bcup_sign:    Bcup_sign;
charlist bcup_plus:    Bcup_plus;
charlist bsqcap_sign:  Bsqcap_sign;
charlist bsqcup_sign:  Bsqcup_sign;
charlist bsqcup_plus:  Bsqcup_plus;
charlist bwedge_sign:  Bwedge_sign;
charlist bvee_sign:    Bvee_sign;
charlist bwedge_curly: Bwedge_curly;
charlist bvee_curly:   Bvee_curly;

summation_sign   :=hex"B0"; Summation_sign   :=hex"B8";
product_sign     :=hex"B1"; Product_sign     :=hex"B9";
coproduct_sign   :=hex"B2"; Coproduct_sign   :=hex"BA";
bintegral_sign   :=hex"B3"; Bintegral_sign   :=hex"BB";
bintegral_double :=hex"B4"; Bintegral_double :=hex"BC";
bintegral_triple :=hex"B5"; Bintegral_triple :=hex"BD";
bintegral_contour:=hex"B6"; Bintegral_contour:=hex"BE";
bintegral_dblcont:=hex"B7"; Bintegral_dblcont:=hex"BF";

charlist summation_sign:    Summation_sign;
charlist product_sign:      Product_sign;
charlist coproduct_sign:    Coproduct_sign;
charlist bintegral_sign:    Bintegral_sign;
charlist bintegral_double:  Bintegral_double;
charlist bintegral_triple:  Bintegral_triple;
charlist bintegral_contour: Bintegral_contour;
charlist bintegral_dblcont: Bintegral_dblcont;

%small_summation_sign:=hex"40";
%small_product_sign:=hex"41";
%small_coproduct_sign:=hex"42";
%complement:=hex"43";
%bold_complement:=hex"44";
%bold_cup:=hex"45";
%bold_cap:=hex"46";
%Bourbaki_Z:=hex"47";
%btriangle_up:=hex"48";
%btriangle_down:=hex"49";
%bBourbaki_Z:=hex"4A";
%BBourbaki_Z:=hex"4B";
%charlist bBourbaki_Z:BBourbaki_Z;

input mathbigs;
input mathltlk;

main_name_string:="bcircle";% ``b'' stands for big.
t:=hex"C0";
forsuffixes $=_plus,_minus,_times,_division,
   _dot,_circle,_asterisk,_co_asterisk,
   _left,_right,_top,_bot,
   _sign,_slash,_backslash,_triangle_up:
  main_name_with($):=t; t:=t+1; endfor;

input mathmbcb;

main_name_string:="bbox";% ``b'' stands for big.
t:=hex"D0";
forsuffixes $=_plus,_minus,_times,_division,
   _dot,_circle,_asterisk,_co_asterisk,
   _left,_right,_top,_bot,
   _sign,_slash,_backslash,_triangle_up:
  main_name_with($):=t; t:=t+1; endfor;

input mathmbcb;

main_name_string:="Bcircle";% ``B'' stands for Big.
t:=hex"E0";
forsuffixes $=_plus,_minus,_times,_division,
   _dot,_circle,_asterisk,_co_asterisk,
   _left,_right,_top,_bot,
   _sign,_slash,_backslash,_triangle_up:
  main_name_with($):=t; t:=t+1; endfor;

input mathmbcb;

main_name_string:="Bbox";% ``B'' stands for Big.
t:=hex"F0";
forsuffixes $=_plus,_minus,_times,_division,
   _dot,_circle,_asterisk,_co_asterisk,
   _left,_right,_top,_bot,
   _sign,_slash,_backslash,_triangle_up:
  main_name_with($):=t; t:=t+1; endfor;

input mathmbcb;

forsuffixes $=_plus,_minus,_times,_division,
   _dot,_circle,_asterisk,_co_asterisk,
   _left,_right,_top,_bot,
   _sign,_slash,_backslash,_triangle_up:
  charlist scantokens("bcircle" & str$):scantokens("Bcircle" & str$);
  charlist scantokens("bbox" & str$):scantokens("Bbox" & str$);
endfor;

% see also:
% _peace_and_love,_ying_yang,
% _truc,_curt,_full_circle,_five_star,_six_star,
% _triangle_down,_triangle_left,_triangle_right,
% _top_dot_minus,_bot_dot_minus,_horiz,_vert,_cross,_across,
% _wedge,_vee,
% _black_left,_black_right,_black_top,_black_bot,
% _black_northwest,_black_northeast,_black_southwest,_black_southeast:


arrow_top:=hex"9D"; arrow_bot:=hex"9E"; arrow_mod:=hex"9F";
extensible arrow_top: arrow_top,0,0,arrow_mod;
extensible arrow_bot: 0,0,arrow_bot,arrow_mod;
extensible arrow_mod: arrow_top,0,arrow_bot,arrow_mod;

double_arrow_top:=hex"AD"; double_arrow_bot:=hex"AE";
double_arrow_mod:=hex"AF";
extensible double_arrow_top: double_arrow_top,0,0,double_arrow_mod;
extensible double_arrow_bot: 0,0,double_arrow_bot,double_arrow_mod;
extensible double_arrow_mod: double_arrow_top,0,double_arrow_bot,
double_arrow_mod;

input matharrw;

% parameters for TFM files.

font_slant=0;
font_x_height=x_height#;
%font_normal_stretch=3u#;
%font_normal_shrink=2u#;
font_quad=18u#+4letter_fit#;
%font_extra_space=2u#;
%font_normal_space=6u#+2letter_fit#;

end.



