% This file defines the symbols of a \TeX\ math symbol font. % Character codes \0000--\0100 and \0133--\0177 are generated. % Italic corrections have not been computed for most of these characters, % since they are generally not slanted. % The Computer Modern Symbols family (by D. E. Knuth, 1979--1985) font_coding_scheme:="Mittag-Leffler TeX math symbols"; mode_setup; font_setup; autorounding:=0; font_slant slant; font_x_height x_height#; font_quad 18u# if not monospace:+4letter_fit# fi; % (The spacing is zero so that \TeX\ will always add the italic correction.) % (The calling file should give the other math symbol font parameters.) slant:=mono_charic#:=0; % the remaining characters will not be slanted currenttransform:=identity yscaled aspect_ratio scaled granularity; cmchar "Lattice top left"; beginchar(oct"000",10u#,asc_height#,0); adjust_fit(0,0); pickup rule.nib; x1=x2=good.x 2.5u; rt x3=w-hround u; bot y1=0; y2-y1=2(x3-x2); if top y2>h: y2:=bot h; fi y3=y2; draw z1--z2--z3; % stem and bar labels(1,2,3); endchar; cmchar "Lattice top right"; beginchar(oct"001",10u#,asc_height#,0); adjust_fit(0,0); pickup rule.nib; x1=x2=good.x (w-2.5u); lft x3=hround u; bot y1=0; y2-y1=2(x2-x3); if top y2>h: y2:=bot h; fi y3=y2; draw z1--z2--z3; % stem and bar labels(1,2,3); endchar; cmchar "Lattice bottom left"; beginchar(oct"002",10u#,asc_height#,0); adjust_fit(0,0); pickup rule.nib; x1=x2=good.x 2.5u; rt x3=w-hround u; bot y1=0; y2-y1=2(x3-x2); if top y2>h: y2:=bot h; fi y3=y1; draw z2--z1--z3; % stem and bar labels(1,2,3); endchar; cmchar "Lattice bottom right"; beginchar(oct"003",10u#,asc_height#,0); adjust_fit(0,0); pickup rule.nib; x1=x2=good.x (w-2.5u); lft x3=hround u; bot y1=0; y2-y1=2(x2-x3); if top y2>h: y2:=bot h; fi y3=y1; draw z2--z1--z3; % stem and bar labels(1,2,3); endchar; cmchar "Circle operator"; beginchar(oct"004",7u#,v_center(5u#)); adjust_fit(0,0); pickup light_rule.nib; autorounded; lft x6=hround u; x2=w-x6; top y8=h; y2=math_axis; circle_points; draw_circle; % circle labels(1,2,3,4,5,6,7,8); endchar; cmchar "Bullet"; beginchar(oct"005",7u#,v_center(5u#)); adjust_fit(0,0); pickup light_rule.nib; autorounded; lft x6=hround u; x2=w-x6; top y8=h; y2=math_axis; circle_points; filldraw z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left} ...z5{z6-z4}...z6{up}...z7{z8-z6}...cycle; % circle and interior labels(1,2,3,4,5,6,7,8); endchar; skewchar=oct"177"; skew#=.5u#; ligtable oct"006":oct"007": skewchar kern 2skew#; cmchar "Stylized F"; beginarithchar(oct"006"); pickup pencircle xscaled 2.5rule_thickness yscaled .5rule_thickness; bot y1=-d; top y2=top y3=h+o; y4=y5=.5[y1, y2]; lft x1=u; x3=w-x1; numeric t; t=4; % t=slope of thck stem y2-y1=t*(x2-x1); z4=whatever[z1, z2]; x5-x4=.6(x3-x2); draw z1--z2--z3; draw z4--z5; penlabels(1,2,3,4,5); endchar; transform tt; tt:=currenttransform; currenttransform:=identity slanted 1/4; cmchar "Lowercase variation of Greek kappa"; % will use same dimensions as standard Greek lowercase kappa % see vol E, p 155. beginchar(oct"007", 12u#, x_height#, 0); italcorr 1/3x_height#*slant+.5hair#+.5u#; adjust_fit(0,0); pickup rule.nib; pos1(stem,0); pos2(stem,0);x1l=hround(2u-.5stem); x2r=w-x1l; top y2+.3stem=h+oo; bot y1-.3stem=-oo; filldraw z1l---z2l...z2r---z1r...cycle; pickup crisp.nib; pos3(hair,180); x3=lft x1l; y3=3/4h; pos4(stem,90); top y4r+.15stem=h+oo; x4-x3=.05[x1,x2]; pos4'(hair,0); y4'=y3; x4'=1/4[x1,x2]; pos5(hair,90); z5=z1; filldraw super_arc.r(3,4)&super_arc.r(4,4')...{z1-z2}z5&z5{z2-z1} ...super_arc.l(4',4)&super_arc.l(4,3)---cycle; % left arm pos8(hair,-90); pos6(hair,0); z8=z2; pos7(stem, -90); bot y7r-.15stem=-oo; x6-x7=x4-x3; x6=w-x3; pos7'(hair,180); y7'=y6; x7'=w-x4'; y6=h-y3; filldraw super_arc.r(6,7)&super_arc.r(7,7')...{z2-z1}z8&z8{z1-z2} ...super_arc.l(7',7)&super_arc.l(7,6)---cycle; % right arm %filldraw z8{z1-z2}..z7l...{up}z6r---z6l{-u,-2u}...z7r..{z2-z1}z8---cycle; %right arm penlabels(range 1 thru 8,4'); endchar; currenttransform:=tt; %restore currenttrnasform charlist oct"010": oct"011": oct"012": oct"013": oct"014": oct"015": oct"016": oct"017"; numeric macron_breadth#; macron_breadth#=.2[vair#,stem#]; def big_bar = adjust_fit(0,0); numeric macron_breadth; macron_breadth:=Vround .2[vair,stem]; pickup crisp.nib; pos1(macron_breadth,90); pos2(macron_breadth,90); top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u; filldraw stroke z1e--z2e; % bar penlabels(1,2); enddef; cmchar "Wide macron (bar) accent"; beginchar(oct"010",10u#,.4[x_height#,asc_height#]+macron_breadth#,0); big_bar; endchar; cmchar "Wide (a little bit wider) macron (bar) accent"; beginchar(oct"011",12u#,.4[x_height#,asc_height#]+macron_breadth#,0); big_bar; endchar; cmchar "Wide (a bit wider) macron (bar) accent"; beginchar(oct"012",14u#,.4[x_height#,asc_height#]+macron_breadth#,0); big_bar; endchar; cmchar "Wide (yet another bit wider) macron (bar) accent"; beginchar(oct"013",16u#,.4[x_height#,asc_height#]+macron_breadth#,0); big_bar; endchar; cmchar "Wider macron (bar) accent"; beginchar(oct"014",18u#,.4[x_height#,asc_height#]+macron_breadth#,0); big_bar; endchar; cmchar "Widest macron (bar) accent"; beginchar(oct"015",26u#,.4[x_height#,asc_height#]+macron_breadth#,0); big_bar; endchar; cmchar "Wider than widest macron (bar) accent"; beginchar(oct"016",34u#,.4[x_height#,asc_height#]+macron_breadth#,0); big_bar; endchar; cmchar "Very widest macron (bar) accent"; beginchar(oct"017",42u#,.4[x_height#,asc_height#]+macron_breadth#,0); big_bar; endchar; %% cmchar "Macron (bar) accent"; %% numeric macron_breadth#; macron_breadth#=.2[vair#,stem#]; %% beginchar(oct"026",9u#,.4[x_height#,asc_height#]+macron_breadth#,0); %% italcorr h#*slant-.75u#; %% adjust_fit(0,0); %% numeric macron_breadth; macron_breadth:=Vround .2[vair,stem]; %% pickup if serifs: crisp.nib else: fine.nib fi; %% pos1(macron_breadth,90); pos2(macron_breadth,90); %% top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u; %% filldraw stroke z1e--z2e; % bar %% penlabels(1,2); endchar; charlist oct"020" : oct"021": oct"022": oct"023" : oct"024" : oct"025" : oct"026" : oct"027"; def big_check = h':=vround min(asc_height,2x_height); % height of circumflex being inverted adjust_fit(0,0); pickup crisp.nib; pos2'(.6[vair,curve],90); top y2'r=h; pos2(.6[vair,curve],90); x2=.5w; x1=w-x3=good.x -eps; top y1=top y3=h; y1-y2=.5(y2'-x_height); %% y1=y3=.5[x_height,y2]; pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90); filldraw stroke z1e--z2e--z3e; % diagonals penlabels(1,2,3); enddef; %def big_check = %h':=vround min(asc_height,2x_height); % height of circumflex being inverted %%%if serifs: italcorr h#*slant+.5hair#-1.75u#; % adjust_fit(0,0); % pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h; % pos2(.5[vair,curve],90); x2=.5w; % x1=w-x3=good.x 2.25u; top y1=top y3=h; y1-y2=.5(y2'-x_height); % pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90); % filldraw stroke z1e--z2e--z3e; % diagonals %%%else: italcorr h#*slant-.5stem#+.5vair#-.75u#; %%% adjust_fit(0,0); %%%pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3; %%% pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w; %%% top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair); %%% z0=whatever[z1r,z2r]=whatever[z2l,z3l]; %%% y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l; %%% filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals %penlabels(0,1,2,3,4); enddef; cmchar "Wide Hachek (check) accent"; beginchar(oct"020",10u#,.75[x_height#,min(asc_height#,2x_height#)],0); big_check; endchar; cmchar "Wide Hachek (check) (a little bit wider) accent"; beginchar(oct"021",12u#,.75[x_height#,min(asc_height#,2x_height#)],0); big_check; endchar; cmchar "Wide Hachek (check) (a bit wider) accent"; beginchar(oct"022",14u#,.75[x_height#,min(asc_height#,2x_height#)],0); big_check; endchar; cmchar "Wide Hachek (check) (yet another bit wider) accent"; beginchar(oct"023",16u#,.75[x_height#,min(asc_height#,2x_height#)],0); big_check; endchar; cmchar "Wider Hachek (check) accent"; beginchar(oct"024",18u#,.75[x_height#,min(asc_height#,2x_height#)],0); big_check; endchar; cmchar "Widest Hachek (check) accent"; beginchar(oct"025",26u#,.75[x_height#,min(asc_height#,2x_height#)],0); big_check; endchar; cmchar "Wider than widest Hachek (check) accent"; beginchar(oct"026",34u#,.75[x_height#,min(asc_height#,2x_height#)],0); big_check; endchar; cmchar "Extra Widest Hachek (check) accent"; beginchar(oct"027",42u#,.75[x_height#,min(asc_height#,2x_height#)],0); big_check; endchar; charlist oct"030" : oct"031": oct"032": oct"033" : oct"034" : oct"035" : oct"036" : oct"037"; def big_breve = italcorr h#*slant+.5vair#-1.5u#; adjust_fit(0,0); pickup crisp.nib; pos1(vair,-180); pos3(vair,0); top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair); numeric mid_thickness; mid_thickness=vround 1/3[vair,stem]; pos2(mid_thickness,-90); x2=.5w; bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness); filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke penlabels(1,2,3); enddef; cmchar "Wide Breve accent"; beginchar(oct"030",10u#,min(asc_height#,2x_height#),0); big_breve; endchar; cmchar "Wide Breve (a little bit wider) accent"; beginchar(oct"031",12u#,min(asc_height#,2x_height#),0); big_breve; endchar; cmchar "Wide Breve (a bit wider) accent"; beginchar(oct"032",14u#,min(asc_height#,2x_height#),0); big_breve; endchar; cmchar "Wide Breve (yet another bit wider) accent"; beginchar(oct"033",16u#,min(asc_height#,2x_height#),0); big_breve; endchar; cmchar "Wider Breve accent"; beginchar(oct"034",18u#,min(asc_height#,2x_height#),0); big_breve; endchar; cmchar "Widest Breve accent"; beginchar(oct"035",26u#,min(asc_height#,2x_height#),0); big_breve; endchar; cmchar "Wider than Widest Breve accent"; beginchar(oct"036",34u#,min(asc_height#,2x_height#),0); big_breve; endchar; cmchar "Very Widest Breve accent"; beginchar(oct"037",42u#,min(asc_height#,2x_height#),0); big_breve; endchar; charlist oct"040" : oct"041": oct"042": oct"043" : oct"044" : oct"045" : oct"046" : oct"047"; def big_vec = italcorr .7[x_height#,asc_height#]*slant; adjust_fit(0,0); pickup rule.nib; lft x1=hround .5u; x2=w-x1; y1=y2=good.x .7[x_height,asc_height]; draw z1--z2; % bar rt x3=rt x4=hround(x2-u); y3=y2+.3(asc_height-x_height); y4=y2-.3(asc_height-x_height); draw z3{x2-x3,2(y2-y3)}...{2(x2-x3),y2-y3}z2; % upper point draw z4{x2-x4,2(y2-y4)}...{2(x2-x4),y2-y4}z2; % lower point labels(1,2,3,4); enddef; cmchar "Wide Arrow (vector) accent"; beginchar(oct"040",10u#,asc_height#+.5rule_thickness#,0); big_vec; endchar; cmchar "Wide Arrow (vector) (a little bit wider) accent"; beginchar(oct"041",12u#,asc_height#+.5rule_thickness#,0); big_vec; endchar; cmchar "Wide Arrow (vector) (a bit wider) accent"; beginchar(oct"042",14u#,asc_height#+.5rule_thickness#,0); big_vec; endchar; cmchar "Wide Arrow (vector) (yet another bit wider) accent"; beginchar(oct"043",16u#,asc_height#+.5rule_thickness#,0); big_vec; endchar; cmchar "Wider Arrow (vector) accent"; beginchar(oct"044",18u#,asc_height#+.5rule_thickness#,0); big_vec; endchar; cmchar "Widest Arrow (vector) accent"; beginchar(oct"045",26u#,asc_height#+.5rule_thickness#,0); big_vec; endchar; cmchar "Wider than Widest Arrow (vector) accent"; beginchar(oct"046",34u#,asc_height#+.5rule_thickness#,0); big_vec; endchar; cmchar "Very Widest Arrow (vector) accent"; beginchar(oct"047",42u#,asc_height#+.5rule_thickness#,0); big_vec; endchar; cmchar "Dummy skewchar"; beginchar(oct"177",0, 0, 0); endchar; bye.