% tbdata.mf [1995/10/18 v0.998k WaS] % (this was formerly a part of txsymbol.mf) iff not variant_g: % not italic dcchar"Blank symbol"; % jk beginchar(oct"040",10u#+serif_fit#,asc_height#,0); italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#); adjust_fit(serif_fit#,0); pickup tiny.nib; pos1(stem',0); pos2(stem,0); pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2; lft x1l=hround(2.5u-.5stem'); top y1=h; numeric edge; edge=rt x2r; pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180); pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180); rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]); y3=1/8[bar_height,x_height]; x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo; rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height; x6l=x4l-.2u; bot y6r=-oo; x7=x3; y7=min(y3,y6+y4-y3+.6vair); (x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]); (x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]); filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l)); y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l)); pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem pickup crisp.nib; pos8(hair,0); pos7'(stem,0); z7'=z2; x8l=x7'l; bot y8=0; filldraw stroke z7'e--z8e; % point if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif put_cross(.5stem+if serifs: .9max(limit_dist,jut) else: 1.8u fi,.5stem+3u); penlabels(0,1,2,3,4,5,6,7,8); endchar; iff variant_g: % italic dcchar"Blank symbol"; % jk beginchar(oct"040",8u#,asc_height#,0); italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; adjust_fit(0,0); pickup tiny.nib; pos1(stem,0); pos2(stem,0); x1=x2; lft x1l=hround(1.5u-.5stem); top y1=h; y2=.5x_height; filldraw stroke z1e--z2e; % stem sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif pickup fine.nib; pos2'(stem,-180); pos3(vair,-90); pos4(curve,0); pos5(vair,90); pos0(hair,180); z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve); bot y3r=-oo; top y5r=x_height+oo; y4=y2; filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4) & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl math_fit(-.3x_height#*slant+.5curve#-u#,ic#); put_cross(.5stem+if serifs: .9max(limit_dist,jut) else: 1.8u fi,.5stem+3u); penlabels(0,1,2,3,4,5); endchar; dcchar"Single straight base quote"; % jk beginchar(oct"015",7u#,asc_height#,0); numeric shifth_down; adjust_fit(0,0); x1=x2=.5w; y2=max(.5[bar_height,x_height]+.5vair,h-x_height)-the_shift; if serifs: y1=flare/2; the_shift=h-.5stem-y1; pickup crisp.nib; pos1(flare,0); pos2(vair,0); filldraw circ_stroke (z1e--z2e); % stem and bulb else: top y1=stem; the_shift=h-y1; pickup fine.nib; pos1(stem,0); pos2(vair,0); filldraw stroke z1e--z2e; % stem fi charht:=dot_size#; chardp:=desc_depth#; penlabels(1,2,3,4); endchar; dcchar"Double straight base quotes"; % from pl_cud (plfonts) beginchar(oct"022",9u#,asc_height#,0); numeric top_width#,spread#,shifth_down; top_width#=if serifs: flare# else: stem# fi; spread#=max(3u#,top_width#+.5u#); define_pixels(spread); adjust_fit(0,0); numeric the_shift; x1=x2; x3=x4=w-x1; x3-x1=spread+2; y1=y3; y2=y4=max(.5[bar_height,x_height]+.5vair,h-x_height)-the_shift; if serifs: y1=flare/2; the_shift=h-.5stem-y1; pickup crisp.nib; pos1(flare,0); pos2(vair,0); pos3(flare,0); pos4(vair,0); filldraw circ_stroke (z1e--z2e); % left stem and bulb filldraw circ_stroke (z3e--z4e); % right stem and bulb else: top y1=stem; the_shift=h-y1; pickup fine.nib; pos1(stem,0); pos2(vair,0); pos3(stem,0); pos4(vair,0); filldraw stroke z1e--z2e; % left stem filldraw stroke z3e--z4e; % right stem fi charht:=dot_size#; chardp:=desc_depth#; penlabels(1,2,3,4); endchar; dcchar "twelve u dash"; beginchar(oct"025",12u#,x_height#,0); italcorr .61803x_height#*slant+.5u#; adjust_fit(letter_fit#,letter_fit#); pickup crisp.nib; pos1(vair,90); pos2(vair,90); top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps; filldraw stroke z1e--z2e; % bar penlabels(1,2); endchar; dcchar "three quarters em dash"; beginchar(oct"026",13.5u#,x_height#,0); italcorr .61803x_height#*slant+.5u#; adjust_fit(letter_fit#,letter_fit#); pickup crisp.nib; pos1(vair,90); pos2(vair,90); top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps; filldraw stroke z1e--z2e; % bar penlabels(1,2); endchar; dcchar "Leftward arrow"; % from sym.mf (cmfonts) compute_spread(.45x_height#,.55x_height#); beginchar(oct"030",18u#,v_center(spread#+rule_thickness#)); adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(rule_thickness,0); pos4(rule_thickness,0); y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u; y3-y0=y0-y4=if monospace:.24 else:.36 fi asc_height+eps; x3=x4=x0+if monospace:3u else:4u fi+eps; pos5(rule_thickness,angle(z4-z0)); z5l=z0; pos6(rule_thickness,angle(z3-z0)); z6l=z0; z9=.2[.5[z3,z4],z0]; numeric t; path p; p=z4r{z9-z4}..z6r; t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r) --z3l{z9-z3}..z0 & cycle; % arrowhead and stem penlabels(0,1,2,3,4,5,6,9); endchar; dcchar "Rightward arrow"; % from sym.mf (cmfonts) compute_spread(.45x_height#,.55x_height#); beginchar(oct"031",18u#,v_center(spread#+rule_thickness#)); adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(rule_thickness,0); pos4(rule_thickness,0); y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u); y3-y0=y0-y4=if monospace:.24 else:.36 fi asc_height+eps; x3=x4=x0-if monospace:3u else:4u fi-eps; pos5(rule_thickness,angle(z4-z0)); z5l=z0; pos6(rule_thickness,angle(z3-z0)); z6l=z0; z9=.2[.5[z3,z4],z0]; numeric t; path p; p=z4l{z9-z4}..z6r; t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r) --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r) --z3r{z9-z3}..z0 & cycle; % arrowhead and stem penlabels(0,1,2,3,4,5,6,9); endchar; dcchar "Straight single quote"; % from romsub (cm) beginchar(oct"047",5u#,asc_height#,0); italcorr asc_height#*slant+.5 if serifs: flare# else: stem# fi -2u#; adjust_fit(0,0); x1=x2=.5w; y2=max(.5[bar_height,x_height]+.5vair,h-x_height); if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0); y1+.5stem=h; filldraw circ_stroke z1e--z2e; % stem and bulb else: pickup fine.nib; pos1(stem,0); pos2(vair,0); top y1=h; filldraw stroke z1e--z2e; fi % stem penlabels(1,2); endchar; dcchar "Fraction"; % from punct (cm)" Virgule (slash)" beginchar("/",9u#,body_height#,paren_depth#); 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; dcchar"Mho sign (turned Omega)"; % from lasy beginchar(oct"115",13u#,cap_height#,0); italcorr cap_height#*slant-.35u#; %italcorr .75cap_height#*slant-.5u#; adjust_fit(0,0); pickup tiny.nib; pos1(vair,-90); pos2(cap_curve,0); pos3(vair,0); pos4(cap_curve,180); pos5(vair,180); x1=.5w; bot y1r=0-o; lft x4r=hround u; y2=y4=1/3h; x2=w-x4; rt x5l=hround(1/3(w+.5u)+.5hair); top y3=top y5=h; x3=w-x5; filldraw stroke z3e{down}...{down}z2e & pulled_super_arc.e(2,1)(.5superpull) & pulled_super_arc.e(1,4)(.5superpull) & z4e{up}...{up}z5e; % bowl numeric arm_thickness; path p; p=z3{down}...{down}z2; arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi); pickup crisp.nib; pos6(arm_thickness,90); pos7(fudged.hair,0); top y6r=h; x6=x3; rt x7r=hround (w-.8u); y7=good.y(y6l-.5beak)+eps; (x,y)=p intersectionpoint((0,y6l)--(w+h,y6l)); x6l:=x; arm(6,7,a,.5beak_darkness,1.2beak_jut); % right arm and beak pos8(arm_thickness,90); pos9(fudged.hair,180); y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l; arm(8,9,b,.5beak_darkness,-1.2beak_jut); % left arm and beak math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar; dcchar"Musical note (one eigth note)"; % jk beginchar("n",11u#,asc_height#,0); pickup rule.nib; x1=3/5w; x2=x1; top y1=h; bot y2=.5bar_height; lft x3=u; x5= x2; x4=x6=.5[x3,x5]; y3=y5=vround(.5bar_height); y4=y6-bar_height=-oo; x7=x1; rt x9=w-u; x8=.5[x7,x9]; y7=y1; bot y9=vround(.5bar_height); y8=.5[y7,y9]; draw z1--z2; % stem filldraw z3{down}...z4{right}...z5{up}...z6{left}...cycle; % body draw z7{down}...z8...{down}z9; % flag endchar; dcchar "Upward arrow"; % from sym beginchar(oct"136",9u#,asc_height#,asc_depth#); italcorr .76asc_height#*slant+.5crisp#-u#; adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,0); pos2(rule_thickness,0); pos3(rule_thickness,90); pos4(rule_thickness,90); lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d; x0=x1=x2; top y0=h; x0-x3=x4-x0=if monospace:3u else:4u fi+eps; y3=y4=y0-if monospace:.24 else:.36 fi asc_height-eps; pos5(rule_thickness,angle(z4-z0)); z5l=z0; pos6(rule_thickness,angle(z3-z0)); z6l=z0; z9=.2[.5[z3,z4],z0]; numeric t; path p; p=z4l{z9-z4}..z6r; t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p; filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r) --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3l{z9-z3}..z5r) --z3r{z9-z3}..z0 & cycle; % arrowhead and stem penlabels(0,1,2,3,4,5,6,9); endchar; dcchar "Downward arrow"; % from sym beginchar(oct"137",9u#,asc_height#,asc_depth#); adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,0); pos2(rule_thickness,0); pos3(rule_thickness,90); pos4(rule_thickness,90); lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h; x0=x1=x2; bot y0=-d; x0-x3=x4-x0=if monospace:3u else:4u fi+eps; y3=y4=y0+if monospace:.24 else:.36 fi asc_height+eps; pos5(rule_thickness,angle(z4-z0)); z5l=z0; pos6(rule_thickness,angle(z3-z0)); z6l=z0; z9=.2[.5[z3,z4],z0]; numeric t; path p; p=z4r{z9-z4}..z6r; t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p; filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r) --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r) --z3l{z9-z3}..z0 & cycle; % arrowhead and stem penlabels(0,1,2,3,4,5,6,9); endchar; dcchar"Backwards tick mark"; % from accent (cmfonts, grave accent) beginchar(oct"140",9u#,min(asc_height#,2x_height#),0); adjust_fit(0,0); if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1]; y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair); numeric theta; theta=angle(z2-z1)+90; pos1(stem,theta); pos2(hair,theta); filldraw circ_stroke z1e--z2e; % diagonal else: pickup fine.nib; pos1(stem,0); pos2(vair,0); lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair); top y1=h; bot y2=vround 2/3[h,x_height]; filldraw stroke z1e--z2e; fi % diagonal penlabels(1,2); endchar; dcchar"Breve"; beginchar(oct"200",11u#,min(asc_height#,2x_height#),0); 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); endchar; dcchar "Hachek (Caron)"; beginchar(oct"201",11u#,min(asc_height#,2x_height#),0); 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); endchar; dcchar"Double tick mark (inch sign)"; % from accent (hungarian long umlaut) beginchar(oct"202",9u#,min(asc_height#,2x_height#),0); italcorr h#*slant-u#; adjust_fit(0,0); x3-x1=x4-x2=hround 3u; y3=y1; y4=y2; if serifs: pickup crisp.nib; x3+.5stem=hround(w-1.5u); x2=2.5u; y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair); numeric theta; theta=angle(z2-z1)+90; pos1(stem,theta); pos2(hair,theta); pos3(stem,theta); pos4(hair,theta); filldraw circ_stroke z1e--z2e; % left diagonal filldraw circ_stroke z3e--z4e; % right diagonal else: pickup fine.nib; pos1(stem,0); pos2(vair,0); pos3(stem,0); pos4(vair,0); rt x3r=hround(w-1.5u); lft x4l=hround(.5w+u-.5vair); top y1=h; bot y2=vround 2/3[h,x_height]; filldraw stroke z1e--z2e; % left diagonal filldraw stroke z3e--z4e; fi % right diagonal penlabels(1,2,3,4); endchar; dcchar"Double backwards tick mark"; % jk beginchar(oct"203",9u#,min(asc_height#,2x_height#),0); adjust_fit(0,0); x3-x1=x4-x2=hround 3u; y3=y1; y4=y2; if serifs: pickup crisp.nib; x1-.5stem=hround 1.5u; x2=3.5u; y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair); numeric theta; theta=angle(z2-z1)+90; pos1(stem,theta); pos2(hair,theta); pos3(stem,theta); pos4(hair,theta); filldraw circ_stroke z1e--z2e; % left diagonal filldraw circ_stroke z3e--z4e; % right diagonal else: pickup fine.nib; pos1(stem,0); pos2(vair,0); pos3(stem,0); pos4(vair,0); lft x1l=hround 1.5u; rt x2r=hround(.5w-u+.5vair); top y1=h; bot y2=vround 2/3[h,x_height]; filldraw stroke z1e--z2e; % left diagonal filldraw stroke z3e--z4e; fi % right diagonal penlabels(1,2,3,4); endchar; dcchar"Trademark"; % jk, design based on logo font beginchar(oct"227",12u#,body_height#,0); italcorr .7body_height#; adjust_fit(0,0); numeric ww, hh; ww=.5w; hh=vround .5body_height; pickup pencircle xscaled hair yscaled vair; lft x1=-eps; x2=ww-x1; x3=x4=.5ww; y1=y2=y3; top y1=hh; bot y4=-o; draw z1--z2; draw z3--z4; labels(1,2,3,4); clearxy; x1=x2=hround(ww+u); x4=x5=hround(w-u); x3=hround .5[x1,x4]; y1=y5; y2=y4; bot y1=-o; top y2=hh+o; y3=vround (y1+.5bar_height); draw z1--z2--z3--z4--z5; labels(1,2,3,4,5); currentpicture:=currentpicture shifted (0,hh); endchar; dcchar "Currency sign"; % from rsym (wasy) beginchar(oct"244",1.13 min(asc_height#,9/7x_height#)+2u#, min(asc_height#,9/7x_height#),0); italcorr x_height#*slant; adjust_fit(if monospace: u#,u# else: 0,0 fi); pickup rule.nib; autorounded; x4 = good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=-oo; circle_points; z9 = 1.30[z5,z1]; z10 = 1.30[z7,z3]; z11 = 1.30[z1,z5]; z12 = 1.30[z3,z7]; draw_circle; draw z1--z9; draw z3--z10; draw z5--z11; draw z7--z12; labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar; dcchar "Broken vertical bar"; % jk beginchar(oct"246",3u#,body_height#,paren_depth#); italcorr body_height#*slant - u#; adjust_fit(0,0); pickup rule.nib; top y1=h; .5[y1,y4]=math_axis; compute_spread(.45x_height#,.55x_height#); y2-y3=spread; .5[y2,y3]=math_axis; x1=x2=x3=x4=good.x .5w; draw z1--z2; draw z3--z4; labels(1,2,3,4); endchar; dcchar "Umlaut (double dot) accent"; % from accent (cm) numeric dot_diam#,dot_diam; dot_diam#=max(dot_size#,cap_curve#); beginchar(oct"250",9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0); dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr)); italcorr h#*slant+.5dot_diam#-2.25u#; adjust_fit(0,0); pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90); x1=x2=2.75u; top y2r=h+1; if bot y2l good.x .5w: change_width; fi 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); clearxy; autorounding:=0; numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-6u); rr=hround(.5w+5u); if serifs: pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90); pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360); rt x1r=rt x5r=hround(rr-u); lft x3r=hround(ll+u); x2=x4=.55[x3,x1]; top y2r=hh+o; bot y4r=-o; y3=.5[y2,y4]; bot y1=min(vround max(.6hh,.7x_height-.5vair),bot y2l-eps); y5=max(good.y .95(hh-y1),y4l+eps); (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u); (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u); filldraw stroke z1e{x2-x1,10(y2-y1)} ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=hh+o; x1r-x1'=2cap_curve-fine; y1'=y1; path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left}; numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1')); filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb else: pickup fine.nib; pos1(1.2flare,80); pos2(slab,90); pos3(cap_curve,180); pos4(slab,270); pos5(flare,275); rt x1r=hround(rr-1.1u); x2=x4=.5w+1.25u; lft x3r=ll+hround max(u,2u-.5cap_curve); rt x5r=hround(rr-.9u); top y1r=vround .95hh+o; top y2r=hh+o; y3=.5hh; bot y4r=-o; bot y5r=vround .08hh-o; y5l:=good.y y5l; x5l:=good.x x5l; filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3) & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals penlabels(1,1',2,3,4,5,6); endchar; dcchar "Logical not sign"; % from sym beginchar(oct"254",12u#,x_height#,0); italcorr x_height#*slant-.5u#; adjust_fit(0,0); pickup rule.nib; lft x1=hround u-eps; x2=x3=w-x1; y1=y2=good.y .5[bar_height,h]; y2-y3=1.2(h-bar_height); draw z1--z2--z3; % bar and stem labels(1,2,3); endchar; dcchar"Registered"; beginchar(oct"256",20u#,body_height#,max(paren_depth#,desc_depth#)); autorounded; adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib; if .5w <> good.x .5w: change_width; fi 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); clearxy; autorounding:=0; numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-6u); rr=hround(.5w+6u); pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0); lft x1l=lft x2l=ll+hround max(2u,3u-.5cap_stem'); top y1=hh; bot y2=0; filldraw stroke z1e--z2e; % stem penpos3(cap_band,90); penpos4(cap_band,90); penpos5(cap_curve if hefty:-3stem_corr fi,0); penpos6(vair,-90); penpos7(vair,-90); z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7; x7=x2; y7l=vround(.5hh+.5vair); x4=x6; if serifs: x4=.5w-.5u; x5r=hround(rr-2.25u); else: x4=.5w+.5u; x5r=hround(rr-u); fi x4l:=x6l:=x4-.125cap_curve; fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe if serifs: pos6'(vair,-90); pos0(cap_stem,180); pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0); z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve); y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r]; bot y9r=-o; rt x10r=hround(rr-.25u); y10=1/3[y2,y7]; filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0); x8=x6+.5u; y8=y6; x9r=hround(rr-.5u); y9=0; fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar; dcchar"High bar (Macron)"; % jk beginchar(oct"257",14u#,min(asc_height#,2x_height#),0); adjust_fit(0,0); pickup rule.nib; lft x1=hround 1.5u-eps; x2=w-x1; top y1=top y2=h; draw z1--z2; % bar labels(1,2); endchar; dcchar "Plus-or-minus sign"; % from sym beginarithchar(oct"261"); 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=y2; draw z1--z2; % stem draw z3--z4; % plus bar draw z5--z6; % minus bar labels(1,2,3,4,5,6); endchar; dcchar"Tick mark"; %from accent (cmfonts, acute accent) beginchar(oct"264",9u#,min(asc_height#,2x_height#),0); italcorr h#*slant-if serifs: 1.5 fi u#; adjust_fit(0,0); if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1]; y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair); numeric theta; theta=angle(z2-z1)+90; pos1(stem,theta); pos2(hair,theta); filldraw circ_stroke z1e--z2e; % diagonal else: pickup fine.nib; pos1(stem,0); pos2(vair,0); rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair); top y1=h; bot y2=vround 2/3[h,x_height]; filldraw stroke z1e--z2e; fi % diagonal penlabels(1,2); endchar; dcchar "Times operator"; % from mathsy beginarithchar(oct"326"); 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; dcchar "Elementary division operator"; % from mathsy beginarithchar(oct"366"); pickup fine.nib; pickup rule.nib; numeric del; del=dot_size-currentbreadth; x3-.5del=good.x(.5w-.5del); center_on(x3); y3+.5del=good.y(math_axis+math_spread[.5x_height,.6x_height]+.5del); 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; endinput;