% More character codes.  Created by Emma Pease, CSLI,
% Stanford University.  Based for the most part on computer modern characters

% down hook and up hook were created in order to form hookuparrows and
% hookdownarrows 

cmchar "Down hook";
compute_spread(.45x_height#,.55x_height#);
beginchar(oct"173",5u#,v_center(2spread#+rule_thickness#));
adjust_fit(0,0); pickup rule.nib; autorounded;
rt x2=hround(w-u)+eps; x1=x3=w-x2;
y1-y3=spread; y2=.5[y1,y3]; y3=math_axis;
draw z1{right}...z2{down}...z3{left};  % hook
currentpicture:=currentpicture rotatedaround ((.5w,y2),90);
labels(1,2,3); endchar;

cmchar "Up hook";
compute_spread(.45x_height#,.55x_height#);
beginchar(oct"174",5u#,v_center(2spread#+rule_thickness#));
adjust_fit(0,0); pickup rule.nib; autorounded;
rt x2=hround(w-u)+eps; x1=x3=w-x2;
y1-y3=spread; y2=.5[y1,y3]; y3=math_axis;
draw z1{right}...z2{down}...z3{left};  % hook
currentpicture:=currentpicture rotatedaround ((.5w,y2),-90);
labels(1,2,3); endchar;

cmchar "2bsquare";
beginchar(oct"176",9u#,fig_height#,comma_depth#);
adjust_fit(0,0); pickup rule.nib;
x1=x4=x8=x7; x2=x3=x5=x6; top y1=top y2=h;
y3=.6[y2,math_axis]; y3=y4; y5=y8; y7=y6;
y5=.6[y6,math_axis]; math_axis=.5[y3,y5];
y1-y4=x3-x4; lft x4=w-rt x3;
filldraw z1--z2--z3--z4--cycle;
filldraw z5--z6--z7--z8--cycle;
labels(1,2,3,4,5,6,7,8); endchar;


cmchar "bsquare";
beginchar(oct"175",9u#,v_center(7u#));
adjust_fit(0,0); pickup rule.nib;
numeric a; a=sqrt(3.14159);
lft x6=lft x7=lft x5=hround (w/2 - (w-2u)*a/4);
x2=x1=x3=w-x6; top y1=top y7=h; 
y6=y2=math_axis;  y5=y3; z2=.5[z3,z1]; 
filldraw z1--z2--z3--z5--z7--cycle;
labels(1,2,3,5,7); endchar;
