% This file contains special characters of ``math italic'' fonts % that actually are not supposed to be slanted. % Codes \0050--\0057, \0072--\0077, and \0133--\0137 are generated. % The italic corrections are zero in all of these characters. cmchar "Leftward top half arrow"; compute←spread(.45x←height#,.55x←height#); beginchar(oct"050",18u#,v←center(spread#+rule←thickness#)); adjust←fit(0,0); pickup crisp.nib; pos1(rule←thickness,90); pos2(rule←thickness,90); pos3(bar,0); pos4(bar,0); y0=y1=y2=math←axis; x1+.5rule←thickness=hround(w-u); lft x0=hround u; y3-y0=y0-y4=.24asc←height+eps; x3=x4=x0+3u+eps; pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; numeric t; path p; p=z4r..{2(x0-x4),y0-y4}z6r; t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; filldraw z0--(x0,y2l)---z1l..z1r---z2r ..subpath (t,0) of\\(z3r..{2(x0-x3),y0-y3}z5r) --z3l..{2(x0-x3),y0-y3}cycle; % arrowhead and stem penlabels(0,1,2,3,4,5,6); endchar; cmchar "Leftward bottom half arrow"; compute←spread(.45x←height#,.55x←height#); beginchar(oct"051",18u#,v←center(spread#+rule←thickness#)); adjust←fit(0,0); pickup crisp.nib; pos1(rule←thickness,90); pos2(rule←thickness,90); pos3(bar,0); pos4(bar,0); y0=y1=y2=math←axis; x1+.5rule←thickness=hround(w-u); lft x0=hround u; y3-y0=y0-y4=.24asc←height+eps; x3=x4=x0+3u+eps; pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; numeric t; path p; p=z4r..{2(x0-x4),y0-y4}z6r; t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; filldraw z0{2(x4-x0),y4-y0}..z4l --subpath (0,t) of\\(z4r..{2(x0-x4),y0-y4}z6r) ..z2l---z1l..z1r---(x0,y2r)--cycle; % arrowhead and stem penlabels(0,1,2,3,4,5,6); endchar; cmchar "Rightward top half arrow"; compute←spread(.45x←height#,.55x←height#); beginchar(oct"052",18u#,v←center(spread#+rule←thickness#)); adjust←fit(0,0); pickup crisp.nib; pos1(rule←thickness,90); pos2(rule←thickness,90); pos3(bar,0); pos4(bar,0); y0=y1=y2=math←axis; x1-.5rule←thickness=hround u; rt x0=hround(w-u); y3-y0=y0-y4=.24asc←height+eps; x3=x4=x0-3u-eps; pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; numeric t; path p; p=z4l..{2(x0-x4),y0-y4}z6r; t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; filldraw z0--(x0,y2l)---z1l..z1r---z2r ..subpath (t,0) of\\(z3l..{2(x0-x3),y0-y3}z5r) --z3r..{2(x0-x3),y0-y3}cycle; % arrowhead and stem penlabels(0,1,2,3,4,5,6); endchar; cmchar "Rightward bottom half arrow"; compute←spread(.45x←height#,.55x←height#); beginchar(oct"053",18u#,v←center(spread#+rule←thickness#)); adjust←fit(0,0); pickup crisp.nib; pos1(rule←thickness,90); pos2(rule←thickness,90); pos3(bar,0); pos4(bar,0); y0=y1=y2=math←axis; x1-.5rule←thickness=hround u; rt x0=hround(w-u); y3-y0=y0-y4=.24asc←height+eps; x3=x4=x0-3u-eps; pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0; numeric t; path p; p=z4l..{2(x0-x4),y0-y4}z6r; t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; filldraw z0{2(x4-x0),y4-y0}..z4r --subpath (0,t) of\\(z4l..{2(x0-x4),y0-y4}z6r) ..z2l---z1l..z1r---(x0,y2r)--cycle; % arrowhead and stem penlabels(0,1,2,3,4,5,6); endchar; cmchar "Left hook"; compute←spread(.45x←height#,.55x←height#); beginchar(oct"054",5u#,v←center(2spread#+rule←thickness#)); adjust←fit(0,0); pickup rule.nib; autorounded; lft x2=hround u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; y3=math←axis; draw z1{left}...z2{down}...z3{right}; % hook labels(1,2,3); endchar; cmchar "Right hook"; compute←spread(.45x←height#,.55x←height#); beginchar(oct"055",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 labels(1,2,3); endchar; cmchar "Triangle pointing right"; beginchar(oct"056",9u#,v←center(x←height#)); adjust←fit(0,0); pickup rule.nib; numeric a,b; a=sqrt(3.14159\\ /sqrt3); % triangle area $=$ circle area b=.5w-(rt hround u); .5[x1',x2']=.5w; x2'-x1'=a*b*sqrt3; x1=x3=good.x x1'; x2=good.x x2'; y2=.5[y1,y3]=math←axis; y1=good.y(y2+a*b); draw z1--z2--z3--cycle; % triangle labels(1,2,3); endchar; cmchar "Triangle pointing left"; beginchar(oct"057",9u#,v←center(x←height#)); adjust←fit(0,0); pickup rule.nib; numeric a,b; a=sqrt(3.14159\\ /sqrt3); % triangle area $=$ circle area b=.5w-(rt hround u); .5[x1',x2']=.5w; x1'-x2'=a*b*sqrt3; x1=x3=good.x x1'; x2=good.x x2'; y2=.5[y1,y3]=math←axis; y1=good.y(y2+a*b); draw z1--z2--z3--cycle; % triangle labels(1,2,3); endchar; cmchar "Period"; numeric dot←diam#; dot←diam#=if monospace: 5/4 fi\\ dot←size#; define←whole←blacker←pixels(dot←diam); beginchar(oct"072",5u#,dot←diam#,0); % non-ASCII position adjust←fit(0,0); pickup fine.nib; pos1(dot←diam,0); pos2(dot←diam,90); lft x1l=hround(.5w-.5dot←diam); bot y2l=0; z1=z2; dot(1,2); % dot penlabels(1,2); endchar; cmchar "Comma"; numeric dot←diam#; dot←diam#=if monospace: 5/4 fi\\ dot←size#; define←whole←blacker←pixels(dot←diam); beginchar(oct"073",5u#,dot←diam#,comma←depth#); % non-ASCII position adjust←fit(0,0); x1-.5dot←diam=hround(.5w-.5dot←diam); y1-.5dot←diam=0; comma(1,a,dot←diam,.2u,comma←depth); % dot and tail penlabels(1); endchar; 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 "Virgule (slash)"; beginchar(oct"075",9u#,body←height#,body←depth#); % non-ASCII position italcorr body←height#*slant-.5u#; adjust←fit(0,0); pickup rule.nib; rt x1=hround(w-u)+eps; top y1=h+eps; lft x2=hround u-eps; bot y2=-d-eps; draw z1--z2; % diagonal penlabels(1,2); 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 "Five-pointed star"; beginchar(oct"077",9u#,v←center(x←height#)); adjust←fit(0,0); pickup tiny.nib; numeric theta; theta=360/5; % degrees between points pos0(curve,0); pos1(rule←thickness,90); x0=x1=good.x .5w; top y1r=vround(math←axis+.5x←height+.5rule←thickness); ypart(.5[z1,z0+(z1-z2) rotated 2theta])=math←axis; pos2(curve,theta); pos3(rule←thickness,90+theta); z2=z0; z3-z0=(z1-z0) rotated theta; z4=whatever[z0l,z1r]=whatever[z2r,z3r]; filldraw for n=0 upto 4: z0+(z1r-z0)rotated(n*theta)--z0+(z4-z0)rotated(n*theta)--endfor cycle; % star penlabels(0,1,2,3,4); endchar; cmchar "Musical flat sign"; beginchar(oct"133",7u#,body←height#,0); adjust←fit(0,0); pickup crisp.nib; numeric light←hair; light←hair=if hefty: vair else: hair fi; pos1(light←hair,0); pos2(light←hair,180); pos3(light←hair,0); x1=x2=x3; pos4(.25[light←hair,curve],60); pos5(curve,0); lft x1l=hround u; x4=.5w; rt x5r=hround(w-u); top y1=h; bot y3=-o; top y4=x←height+o; y2=y4-.2x←height; y5=3/4x←height; filldraw stroke z1e--z3e; % stem filldraw stroke z2e{up}...z4e{right}...z5e{down} ...{2(x3-x5e),y3-y5e}z3e; % bowl penlabels(1,2,3,4,5); endchar; cmchar "Musical natural sign"; beginchar(oct"134",7u#,asc←height#,desc←depth#); adjust←fit(0,0); pickup crisp.nib; numeric light←hair; light←hair=if hefty: vair else: hair fi; pos1(light←hair,0); pos2(curve,90); pos3(curve,90); pos4(curve,90); pos5(curve,90); pos6(light←hair,0); rt x1r=hround 15/8u; x2=x4=x1l; x3=x5=x6r=w-x2; y1=h+o; top y2r=0; .5[y2,y3]=0; y4-y2=y5-y3=x←height; bot y6=-d-o; x2'=x1r; z2'=whatever[z2r,z3r]; x5'=x6l; z5'=whatever[z4l,z5l]; (x1r,y)=z1l+whatever*(z5-z4); y6l:=y6l-(y-y1r); y1r:=y; filldraw z1l--z2l--z3l--z3r--z2'--z1r--cycle; % left stem and lower bar filldraw z6r--z5r--z4r--z4l--z5'--z6l--cycle; % right stem and upper bar penlabels(1,2,3,4,5,6); endchar; cmchar "Musical sharp sign"; beginchar(oct"135",7u#,asc←height#,desc←depth#); adjust←fit(0,0); pickup crisp.nib; numeric light←hair; light←hair=if hefty: vair else: hair fi; pos1(curve,90); pos2(curve,90); pos3(curve,90); pos4(curve,90); lft x1=lft x3=hround u; x2=x4=w-x1; top y3r=0; .5[y3,y4]=0; y1-y3=y2-y4=x←height; filldraw stroke z1e--z2e; filldraw stroke z3e--z4e; % bars numeric theta,hstem; theta=angle(z2-z1); (hstem-crisp)*cosd theta=light←hair-crisp; pos5(hstem,theta); pos6(hstem,theta); pos7(hstem,theta); pos8(hstem,theta); lft x5l=lft x6l=hround(2u-.5light←hair); x7=x8=w-x6; top y7l=h+o; bot y6r=-d-o; z7-z5=z8-z6=(whatever,0) rotated theta; filldraw stroke z5e--z6e; filldraw stroke z7e--z8e; % stems penlabels(1,2,3,4,5,6,7,8); endchar; cmchar "Slur below (smile)"; beginchar(oct"136",18u#,v←center(.5x←height#)); adjust←fit(0,0); pickup fine.nib; numeric light←stem; light←stem=Vround .5[vair,stem]; x1-.5hair=hround u; y1+.5hair=vround(h+.5hair); x3=w-x1; y3=y1; pos2(light←stem,90); x2=.5w; y2l=good.y -d; numeric theta; theta=angle((z2-z1)yscaled 3); pos1(hair,90+theta); pos3(hair,90-theta); filldraw z1l{dir theta}...z2l...{dir-theta}z3l ..z3r{-dir-theta}...z2r...{-dir theta}z1r..cycle; % arc penlabels(1,2,3); endchar; cmchar "Slur above (frown)"; beginchar(oct"137",18u#,v←center(.5x←height#)); adjust←fit(0,0); pickup fine.nib; numeric light←stem; light←stem=Vround .5[vair,stem]; x1-.5hair=hround u; y1-.5hair=vround(-d-.5hair); x3=w-x1; y3=y1; pos2(light←stem,90); x2=.5w; y2=good.y h; numeric theta; theta=angle((z2-z1)yscaled 3); pos1(hair,90+theta); pos3(hair,90-theta); filldraw z1l{dir theta}...z2l...{dir-theta}z3l ..z3r{-dir-theta}...z2r...{-dir theta}z1r..cycle; % arc penlabels(1,2,3); endchar;