home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fresh Fish 4
/
FreshFish_May-June1994.bin
/
useful
/
dist
/
text
/
tex
/
pastex
/
mf
/
inputs
/
symbol.mf
< prev
next >
Wrap
Text File
|
1992-03-17
|
44KB
|
1,042 lines
% This file defines the symbols of a \TeX\ math symbol font.
% Character codes \0000--\0100 and \0133--\0177 are generated.
% (Improvements to the author's original characters were worked out in 1982
% by Ronald F. Whitney and other members of
% the American Mathematical Society.)
% Italic corrections have not been computed for most of these characters,
% since they are generally not slanted.
minus=oct"000"; cdot=oct"001"; diamond=oct"005";
plus_minus=oct"006"; o_plus=oct"010"; o_times=oct"012";
eqv=oct"021"; leq=oct"024"; geq=oct"025";
subset=oct"032"; superset=oct"033";
left_arrow=oct"040"; right_arrow=oct"041";
up_arrow=oct"042"; down_arrow=oct"043"; double_arrow=oct"044";
infty=oct"061"; elt=oct"062";
for_all=oct"070"; there_exists=oct"071"; false_that=oct"072";
cup=oct"133"; cap=oct"134"; meet=oct"136"; join=oct"137";
left_brace=oct"146"; right_brace=oct"147"; vertical=oct"152";
backslash=oct"156"; integral=oct"163";
input sym; % symbols common to other fonts
cmchar "Times operator";
beginarithchar(oct"002"); pickup rule.nib;
x1=good.x(1/sqrt2)[.5w,rt u]; y1=good.y(1/sqrt2)[math_axis,bot h];
x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=math_axis; y2=y4;
draw z1--z2; draw z3--z4; % diagonals
labels(1,2,3,4); endchar;
cmchar "Asterisk at the axis";
beginchar(oct"003",9u#,v_center(x_height#));
adjust_fit(0,0);
numeric ast_flare; ast_flare=hround .7[thin_join,stem];
x0=.5w; y0=h-.5x_height;
for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
numeric theta; theta=angle(z[d]-z0);
fill z0+.5(0,-thin_join)rotated theta
---z[d]+.5(-ast_flare,-ast_flare)rotated theta
..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
labels(0,[-150],[-90],[-30],30,90,150); endchar;
cmchar "Elementary division operator";
beginarithchar(oct"004"); pickup rule.nib;
x3-.5dot_size=hround(.5w-.5dot_size); center_on(x3);
y3+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]+.5dot_size);
lft x1=hround u-eps; x2=w-x1; y1=y2=math_axis;
draw z1--z2; % bar
pos3(dot_size,0); pos4(dot_size,90); z3=z4;
pos5(dot_size,0); pos6(dot_size,90); z5=z6; x5=x3; .5[y3,y5]=math_axis;
dot(3,4); dot(5,6); % dots
penlabels(1,2,3,4,5,6); endchar;
cmchar "Minus-or-plus sign";
beginarithchar(oct"007"); pickup rule.nib;
numeric shiftup; shiftup=-vround 1.5u;
x1=x2=.5w; lft x3=lft x5=hround u-eps; x4=x6=w-x3;
.5[y1,y2]=y3=y4=math_axis+shiftup; top y1=h+shiftup; y5=y6=y1;
draw z1--z2; % stem
draw z3--z4; % plus bar
draw z5--z6; % minus bar
labels(1,2,3,4,5,6); endchar;
cmchar "Circle-minus operator";
beginarithchar(oct"011"); pickup light_rule.nib; autorounded;
lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
circle_points; draw_circle; % circle
draw z2--z6; % bar
labels(1,2,3,4,5,6,7,8); endchar;
cmchar "Circle-divide operator";
beginarithchar(oct"013"); pickup light_rule.nib; autorounded;
lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
circle_points; draw_circle; % circle
draw z1--z5; % diagonal
labels(1,2,3,4,5,6,7,8); endchar;
cmchar "Circle-dot operator";
beginarithchar(oct"014"); pickup light_rule.nib; autorounded;
lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
circle_points; draw_circle; % circle
fill fullcircle scaled(1.3dot_size+eps) shifted(.5[z4,z8]); % dot
labels(1,2,3,4,5,6,7,8); endchar;
cmchar "Circle for copyright, etc.";
beginchar(oct"015",18u#,asc_height#,desc_depth#); autorounded;
adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
circle_points; draw_circle; % circle
labels(1,2,3,4,5,6,7,8); endchar;
cmchar "Circle operator";
beginchar(oct"016",9u#,v_center(7u#));
adjust_fit(0,0); pickup 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"017",9u#,v_center(7u#));
adjust_fit(0,0); pickup 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;
cmchar "Hardy's asymptotic equivalence sign";
compute_spread(.45x_height#,.55x_height#);
beginchar(oct"020",14u#,v_center(2spread#+rule_thickness#));
adjust_fit(0,0); pickup rule.nib; autorounded;
lft x1=hround u-eps; x3=x1; x2=x4=w-x1; x5=x6=.5w;
y1=y2=good.y h; y3=y4; .5[y1,y3]=.5[y5,y6]=math_axis;
y5=good.y .3[y1,y3];
draw z1{x5-x1,2(y5-y1)}...z5{right}...z2{x2-x5,2(y2-y5)}; % upper bar
draw z3{x6-x3,2(y6-y3)}...z6{right}...z4{x4-x6,2(y4-y6)}; % lower bar
labels(1,2,3,4); endchar;
cmchar "Subset or equal to sign";
compute_spread(.45x_height#,.55x_height#);
spread#':=spread#; spread':=spread; % the spread of `$=$'
compute_spread(5/4x_height#,3/2x_height#);
beginchar(oct"022",14u#,v_center(spread#'+spread#+rule_thickness#));
adjust_fit(0,0); pickup rule.nib; autorounded;
lft x2=hround 1.5u-eps; x1=x3=w-x2;
y1-y3=spread; y2=.5[y1,y3]; top y1=h;
x4=x5=.5w; y4=y1; y5=y3;
draw z1---z4...z2{down}...z5---z3; % arc and bars
x8=x1; lft x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
labels(1,2,3,4,5,8,9); endchar;
cmchar "Superset or equal to sign";
compute_spread(.45x_height#,.55x_height#);
spread#':=spread#; spread':=spread; % the spread of `$=$'
compute_spread(5/4x_height#,3/2x_height#);
beginchar(oct"023",14u#,v_center(spread#'+spread#+rule_thickness#));
adjust_fit(0,0); pickup rule.nib; autorounded;
lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
y1-y3=spread; y2=.5[y1,y3]; top y1=h;
x4=x5=.5w; y4=y1; y5=y3;
draw z1---z4...z2{down}...z5---z3; % arc and bars
x8=x1; rt x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
labels(1,2,3,4,5,8,9); endchar;
cmchar "Precedes or equals sign";
compute_spread(.45x_height#,.55x_height#);
spread#':=spread#; spread':=spread; % the spread of `$=$'
compute_spread(5/4x_height#,3/2x_height#);
beginchar(oct"026",14u#,v_center(spread#'+spread#+rule_thickness#));
adjust_fit(0,0); pickup rule.nib; autorounded;
lft x2=hround 1.5u-eps; x1=x3=w-x2;
y1-y3=spread; y2=.5[y1,y3]; top y1=h;
draw z1{-u,-spread}...{left}z2; % upper diagonal
draw z3{-u,spread}...{left}z2; % lower diagonal
x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
labels(1,2,3,8,9); endchar;
cmchar "Follows or equals sign";
compute_spread(.45x_height#,.55x_height#);
spread#':=spread#; spread':=spread; % the spread of `$=$'
compute_spread(5/4x_height#,3/2x_height#);
beginchar(oct"027",14u#,v_center(spread#'+spread#+rule_thickness#));
adjust_fit(0,0); pickup rule.nib; autorounded;
lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
y1-y3=spread; y2=.5[y1,y3]; top y1=h;
draw z1{u,-spread}...{right}z2; % upper diagonal
draw z3{u,spread}...{right}z2; % lower diagonal
x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
labels(1,2,3,8,9); endchar;
cmchar "Similarity sign";
compute_spread(.45x_height#,.55x_height#);
beginchar(oct"030",14u#,v_center(spread#+rule_thickness#));
adjust_fit(0,0);
pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
bot y1=bot y3=-d; top y2=top y4=h;
draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
labels(1,2,3,4); endchar;
cmchar "Approximate equality sign";
compute_spread(.45x_height#,.55x_height#);
spread#':=spread#; spread':=spread; % the spread of `$=$'
compute_spread(.54x_height#,.66x_height#);
beginchar(oct"031",14u#,v_center(spread#'+spread#+rule_thickness#));
adjust_fit(0,0);
pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
y1=y3; top y2=top y4=h; top y2-bot y1=spread';
draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
z1-z5=z2-z6=z3-z7=z4-z8=(0,spread);
draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
labels(1,2,3,4,5,6,7,8); endchar;
cmchar "Much less sign";
compute_spread(5/4x_height#,3/2x_height#);
beginchar(oct"034",18u#,v_center(spread#+rule_thickness#));
adjust_fit(if monospace:-u#,-u# else: 0,0 fi);