%%texinfo slant, 6pu, 3pu, 2pu, px, 14.4pu; % NOTE: the heights of the following characters have been artificially % increased to accomodate TeX's .tfm restrictions (to wit, that at most % 16 different character heights are allowable): % % the multimap, the egg sandwich, the left and right curly arrows, % the backwards similar or equal sign, the yen symbol, the double % harpoons % "Square with dot"; call charbegin('000,ph/pu+2,0,0,ph,0,0); cpen; new w99; w99=dotsize.w3; top10y1=h; bot10y4=0; y1=y2; y4=y3; y5=good99(.5[y1,y4]); lft10x1=round u; x1=x4; y1-y4=x2-x1; x2=x3; x5=good99(.5[x1,x2]); w10 draw 1..4..4..3..3..2..2..1; % draw the box w99 draw 5. % draw the dot "Square plus"; call charbegin('001,ph/pu+2,0,0,ph,0,0); cpen; top10y1=h; bot10y4=0; y1=y2=y8; y4=y7=y3; y5=y6=good10 .5[y1,y4]; lft10x1=round u; x1=x5=x4; x2=x6=x3; y1-y4=x2-x1; x8=x7=.5[x1,x2]; w10 draw 1..4..4..3..3..2..2..1; %draw the box draw 8..7; draw 5..6. %draw the plus "Square times"; call charbegin('002,ph/pu+2,0,0,ph,0,0); cpen; top10y1=h; bot10y4=0; y1=y2; y4=y3; lft10x1=round u; x1=x4; x2=x3; y1-y4=x2-x1; w10 draw 1..4..4..3..3..2..2..1; %draw the box draw 1..3; draw 2..4. %draw the diagonals "Box"; call charbegin('003,ph/pu+2,0,0,ph,0,0); cpen; top10y1=h; bot10y4=0; y1=y2; y4=y3; lft10x1=round u; x1=x4; x2=x3; y1-y4=x2-x1; w10 draw 1..4..4..3..3..2..2..1. %draw the box "Black box"; call charbegin('004,ph/pu+2,0,0,ph,0,0); cpen; top10y1=h; bot10y4=0; y1=y2; y4=y3; lft10x1=round u; x1=x4; x2=x3; y1-y4=x2-x1; w10 ddraw 1..4,2..3. % fill in the box "Small black box"; call charbegin('005,5,0,0,ph,0,0); cpen; lft10x1=round u; x4=x1; x2=x3=(r-x1); y1-y4=x2-x1; y1=y2; bot10y4=bot10y3=0; w10 ddraw 1..2,4..3. % fill in the box "Diamond"; call charbegin('006,12,0,0,ph,ph-2pa,0); cpen; lft10x1=round u; x1=x5=x4; x2=x6=x3; x8=x7=good10 .5r; x8=.5[x1,x2]; top10y1=h; .5[y1,y4]=a; y1=y2=y8; y4=y7=y3; y5=y6=a; w10 draw 8..6; draw 6..7; draw 7..5; draw 5..8. "Black diamond"; call charbegin('007,12,0,0,ph,ph-2pa,0); cpen; lft10x1=round u; x1=x5=x4; x2=x6=x3; x8=x7=good10 .5r; x8=.5[x1,x2]; top10y1=h; .5[y1,y4]=a; y1=y2=y8; y4=y7=y3; y5=y6=a; w10 ddraw 8..6,5..7. "Clockwise notation"; call charbegin('010,14,0,0,ph,6pu-pa,0); cpen; lft0x6=round (u-oo); y6=good0 a; x8=good0 .5r; y8-y6=x8-x6; call circle(1,2,3,4,5,6,7,8,w0); % bowl hpen; rt10x11=x8+u; rt1x18=x8+u; y11=y15=y18=y8; x15-x18=x18-x13=fixwidth[3u,6u]+eps; x13=x14=x16=x17; x23=good0(x13+.75u); x26=good0(x13+.75u); y13-y16=y11-y13=y14-y11=y17-y14=round(.125aht.u); y23=good0(y13-u); y26=good0(y16-u); rpen#; w10+w1 draw (15..)18..23(..26); % erase excess at lower left hpen; draw (|w1|15..)18..|w0|23(..26); % lower point rpen#; w10+w1 draw (15..)18..14(..17); % erase excess at upper left hpen; draw (|w1|15..)18..|w0|14(..17). % upper point "Counter-clockwise notation"; call charbegin('011,14,0,0,ph,6pu-pa,0); cpen; lft0x6=round (u-oo); y6=good0 a; x8=good0 .5r; y8-y6=x8-x6; call circle(1,2,3,4,5,6,7,8,w0); % bowl hpen; lft10x11=x8-u; lft1x18=x8-u; y11=y15=y18=y8; x15-x18=x18-x13=-fixwidth[3u,6u]-eps; x13=x14=x16=x17; x23=good0(x13-.75u); x26=good0(x13-.75u); y13-y16=y11-y13=y14-y11=y17-y14=round(.125aht.u); y23=good0(y13-u); y26=good0(y16-u); lpen#; w10+w1 draw (15..)18..23(..26); % erase excess at lower left hpen; draw (|w1|15..)18..|w0|23(..26); % lower point lpen#; w10+w1 draw (15..)18..14(..17); % erase excess at upper left hpen; draw (|w1|15..)18..|w0|14(..17). % upper point "Either way harpoons (right/left)"; call charbegin('012,18,0,0,pa+2peqsep,.52ph+.5prt-pa,0); cpen; rt10x1=x0=round(r-u); lft10x2=round u; rt10x12=round(r-u); lft10x11=x10=round u; y1=good10 (a+.5eqsep+eps); y11=good10 (a-.5eqsep+eps); y1=y2=y5=y8; y11=y12=y15=y18; hpen; rt1x8=x0; x5-x8=x8-x4= fixwidth[3u,6u]+eps; x4=x7; y4-y1=y7-y4=.24h+eps; lft1x18=x10; x15-x18=x18-x13=-fixwidth[3u,6u]-eps; x13=x16; y13-y16=y11-y13=.24h+eps; cpen; w10 draw 11..12; % bar w10 draw 1..2; % bar rpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper right hpen; draw (|w1|5..)8..|w0|4(..7); % upper point lpen#; w10+w1 draw (15..)18..13(..16); % erase excess at lower left hpen; draw (|w1|15..)18..|w0|13(..16); % lower point . "Either way harpoons (left/right)"; call charbegin('013,18,0,0,pa+2peqsep,.52ph+.5prt-pa,0); cpen; lft10x1=x0=round u; rt10x2=round(r-u); lft10x12=round u; rt10x11=x10=round(r-u); y1=good10 (a+.5eqsep+eps); y11=good10 (a-.5eqsep+eps); y1=y2=y5=y8; y11=y12=y15=y18; hpen; lft1x8=x0; x5-x8=x8-x4=-fixwidth[3u,6u]-eps; x4=x7; y4-y1=y7-y4=.24h+eps; rt1x18=x10; x15-x18=x18-x13=fixwidth[3u,6u]+eps; x13=x16; y13-y16=y11-y13=.24h+eps; cpen; w10 draw 11..12; % bar w10 draw 1..2; % bar lpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper left hpen; draw (|w1|5..)8..|w0|4(..7); % upper point rpen#; w10+w1 draw (15..)18..13(..16); % erase excess at lower right hpen; draw (|w1|15..)18..|w0|13(..16); % lower point . "Square minus"; call charbegin('014,ph/pu+2,0,0,ph,0,0); cpen; top10y1=h; bot10y4=0; y1=y2; y4=y3; y5=y6=good10 .5[y1,y4]; lft10x1=round u; x1=x5=x4; x2=x6=x3; y1-y4=x2-x1; w10 draw 1..4..4..3..3..2..2..1; %draw the box draw 5..6. %draw the minus "Forces"; cpen; call charbegin('015,14,0,0,ph,0,0); top10y1=h; bot10y2=0; y3=y4=good10 .5h; y5=y1; y6=y2; lft10x5=round u; rt10x4=r-x5; x1=x5+hzsep; x1=x2=x3; x6=x5; w10 draw 1..2; % stem draw 5..6; %vert bar draw 3..4. % bar "Forces ? (with extra bar)"; cpen; call charbegin('016,17,0,0,ph,0,0); top10y1=h; bot10y2=0; y3=y4=good10 .5h; y5=y7=y1; y6=y8=y2; lft10x7=round u; rt10x4=r-x7; x5=good10(x7+hzsep); x1=good10(x5+hzsep); x1=x2=x3; x6=x5; x7=x8; w10 draw 1..2; % stem draw 7..8; % vert bar draw 5..6; % vert bar draw 3..4. % bar "Satisifies"; cpen; call charbegin('017,11,0,0,ph,0,0); top10y1=h; bot10y2=0; y3=y0+(round .5eqsep); y5=y0-(round .5eqsep); y4=y3; y6=y5; y0=good10 .5[y1,y2]; lft10x1=round u; rt10x4=r-x1; x1=x2=x3=x5; x4=x6; x0=x1; w10 draw 1..2; % stem draw 3..4; % upper bar draw 5..6. % lower bar "Double head rightward arrow"; call charbegin('020,18,0,0,.24ph+.5prt+pa,.24ph+.5prt-pa,0); cpen; lft10x2=round u; rt10x1=x0=round(r-u); y1=y2=y5=y8=good10 a; hpen; rt1x8=x0; x5-x8=x8-x3=fixwidth[3u,6u]+eps; x3=x4=x6=x7; new mp; mp=round (x1-x3); x9=x1-mp; x10=x3-mp; x11=x4-mp; x12=x5-mp; x13=x6-mp; x14=x7-mp; x15=x8-mp; y9=y1; y10=y3; y11=y4; y12=y5; y13=y6; y14=y7; y15=y8; y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps; hpen; draw (|w0|13..)10..|w1|15(..12); hpen; draw (|w1|12..)15..|w0|11(..14); cpen; w10 draw 1..2; % bar rpen#; w10+w1 draw (5..)8..3(..6); % erase excess at lower right hpen; draw (|w1|5..)8..|w0|3(..6); % lower point rpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper right hpen; draw (|w1|5..)8..|w0|4(..7). % upper point "Double head leftward arrow"; call charbegin('021,18,0,0,.24ph+.5prt+pa,.24ph+.5prt-pa,0); cpen; lft10x1=x0=round u; rt10x2=round(r-u); y1=y2=y5=y8=good10 a; hpen; lft1x8=x0; x5-x8=x8-x3=-fixwidth[3u,6u]-eps; x3=x4=x6=x7; y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps; new mp; mp=round (x3-x1); x9=x1+mp; x10=x3+mp; x11=x4+mp; x12=x5+mp; x13=x6+mp; x14=x7+mp; x15=x8+mp; y9=y1; y10=y3; y11=y4; y12=y5; y13=y6; y14=y7; y15=y8; hpen; draw (|w0|13..)10..|w1|15(..12); hpen; draw (|w1|12..)15..|w0|11(..14); cpen; w10 draw 1..2; % bar lpen#; w10+w1 draw (5..)8..3(..6); % erase excess at lower left hpen; draw (|w1|5..)8..|w0|3(..6); % lower point lpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper left hpen; draw (|w1|5..)8..|w0|4(..7). % upper point "Two left arrow"; call charbegin('022,18,0,0,.52ph+.5prt+pa,.52ph+.5prt-pa,0); cpen; lft10x1=x0=round u; rt10x2=round(r-u); x11=x1; x12=x2; y1=good10 (a-.26h); y11=good10 (a+.26h); y1=y2=y5=y8; y11=y12=y15=y18; hpen; lft1x8=x0; x5-x8=x8-x3=-fixwidth[3u,6u]-eps; x3=x4=x6=x7; y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps; x13=x3; x14=x4; x15=x5; x16=x6; x17=x7; x18=x8; y13-y16=y11-y13=y14-y11=y17-y14=.24h+eps; cpen; w10 draw 11..12; % bar w10 draw 1..2; % bar lpen#; w10+w1 draw (5..)8..3(..6); % erase excess at lower left lpen#; w10+w1 draw (15..)18..13(..16); % erase excess at lower left lpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper right lpen#; w10+w1 draw (15..)18..14(..17); % erase excess at upper right hpen; draw (|w1|5..)8..|w0|3(..6); % lower point hpen; draw (|w1|5..)8..|w0|4(..7); % upper point hpen; draw (|w1|15..)18..|w0|13(..16); % lower point hpen; draw (|w1|15..)18..|w0|14(..17). % upper point "Two right arrow"; call charbegin('023,18,0,0,.52ph+.5prt+pa,.52ph+.5prt-pa,0); cpen; lft10x1=round u; rt10x2=x0=round(r-u); x11=x1; x12=x2; y1=good10 (a-.26h); y11=good10 (a+.26h); y1=y2=y5=y8; y11=y12=y15=y18; hpen; rt1x8=x0; x5-x8=x8-x3=fixwidth[3u,6u]-eps; x3=x4=x6=x7; y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps; x13=x3; x14=x4; x15=x5; x16=x6; x17=x7; x18=x8; y13-y16=y11-y13=y14-y11=y17-y14=.24h+eps; cpen; w10 draw 11..12; % bar w10 draw 1..2; % bar rpen#; w10+w1 draw (5..)8..3(..6); % erase excess at lower left hpen; draw (|w1|5..)8..|w0|3(..6); % lower point hpen; draw (|w1|5..)8..|w0|4(..7); % upper point hpen; draw (|w1|15..)18..|w0|13(..16); % lower point rpen#; w10+w1 draw (15..)18..14(..17); % erase excess at upper right hpen; draw (|w1|15..)18..|w0|14(..17). % upper point "Two upward arrow"; call charbegin('024,16,0,0,ph,ph-2pa,0); cpen; top10y1=y0=h; .5[y1,y2]=a; y11=y1; y12=y2; y10=y0; x20=good10 .5r; x1=good10(x20-.26h); x11=good10(x20+.26h); x0=x1=x2=x5=x8; x10=x11=x12=x15=x18; w10 draw 1..2; draw 11..12; % stems vpen; top7y8=y0; top7y18=y10; lpen#; w10 draw 0..8; rpen#; w10 draw 0..8; % clean the top lpen#; w10 draw 10..18; rpen#; w10 draw 10..18; % clean the top y5-y8=y8-y3=.24h+eps; y3=y4=y6=y7; x3-x6=x1-x3=x4-x1=x7-x4=good10(3u+eps); x13-x16=x11-x13=x14-x11=x17-x14=good10(3u+eps); y13=y3; y14=y4; y15=y5; y16=y6; y17=y7; lpen#; w10 draw (5..)8..3(..6); % erase excess at left lpen#; w10 draw (15..)18..13(..16); % erase excess at left rpen#; w10 draw (5..)8..4(..7); % erase excess at right rpen#; w10 draw (15..)18..14(..17); % erase excess at right vpen; draw (|w7|5..)8..|w6|3(..6); % left point vpen; draw (|w7|5..)8..|w6|4(..7); % right point vpen; draw (|w7|15..)18..|w6|13(..16); % left point vpen; draw (|w7|15..)18..|w6|14(..17). % right point "Two downward arrow"; call charbegin('025,16,0,0,ph,ph-2pa,0); cpen; top10y2=h; .5[y1,y2]=a; y0=bot10y1; y11=y1; y12=y2; y10=y0; x20=good10 .5r; x1=good10(x20-.26h); x11=good10(x20+.26h); x0=x1=x2=x5=x8; x10=x11=x12=x15=x18; w10 draw 1..2; draw 11..12; % stems vpen; bot7y8=y0; bot7y18=y10; lpen#; w10 draw 0..8; rpen#; w10 draw 0..8; % clean the top lpen#; w10 draw 10..18; rpen#; w10 draw 10..18; % clean the top y5-y8=y8-y3=good10(-.24h-eps); y3=y4=y6=y7; x3-x6=x1-x3=x4-x1=x7-x4=good10(3u+eps); x13-x16=x11-x13=x14-x11=x17-x14=good10(3u+eps); y13=y3; y14=y4; y15=y5; y16=y6; y17=y7; lpen#; w10 draw (5..)8..3(..6); % erase excess at left lpen#; w10 draw (15..)18..13(..16); % erase excess at left rpen#; w10 draw (5..)8..4(..7); % erase excess at right rpen#; w10 draw (15..)18..14(..17); % erase excess at right vpen; draw (|w7|5..)8..|w6|3(..6); % left point vpen; draw (|w7|5..)8..|w6|4(..7); % right point vpen; draw (|w7|15..)18..|w6|13(..16); % left point vpen; draw (|w7|15..)18..|w6|14(..17). % right point "Upward half arrow (right half)"; call charbegin('026,9,0,0,ph,ph-2pa,0); cpen; top10y1=y0=h; .5[y1,y2]=a; x0=x1=x2=x5=x8=good10 .5r; w10 draw 1..2; % stem vpen; top7y8=y0; lpen#; w10 draw 0..8; rpen#; w10 draw 0..8; % clean the top y5-y8=y8-y3=.24h+eps; y3=y4=y6=y7; x3-x6=x1-x3=x4-x1=x7-x4=3u+eps; rpen#; w10 draw (5..)8..4(..7); % erase excess at right vpen; draw (|w7|5..)8..|w6|4(..7). % right point "Downward half arrow (right half)"; call charbegin('027,9,0,0,ph,ph-2pa,0); cpen; top10y2=h; .5[y1,y2]=a; y0=bot10y1; x0=x1=x2=x5=x8=good10 .5r; w10 draw 1..2; % stem vpen; bot7y8=y0; lpen#; w10 draw 0..8; rpen#; w10 draw 0..8; % clean the top y5-y8=y8-y3=-.24h-eps; y3=y4=y6=y7; x3-x6=x1-x3=x4-x1=x7-x4=3u+eps; rpen#; w10 draw (5..)8..4(..7); % erase excess at right vpen; draw (|w7|5..)8..|w6|4(..7). % right point "Upward half arrow (left half)"; call charbegin('030,9,0,0,ph,ph-2pa,0); cpen; top10y1=y0=h; .5[y1,y2]=a; x0=x1=x2=x5=x8=good10 .5r; w10 draw 1..2; % stem vpen; top7y8=y0; lpen#; w10 draw 0..8; rpen#; w10 draw 0..8; % clean the top y5-y8=y8-y3=.24h+eps; y3=y4=y6=y7; x3-x6=x1-x3=x4-x1=x7-x4=3u+eps; lpen#; w10 draw (5..)8..3(..6); % erase excess at left vpen; draw (|w7|5..)8..|w6|3(..6). % left point "Downward half arrow (left half)"; call charbegin('031,9,0,0,ph,ph-2pa,0); cpen; top10y2=h; .5[y1,y2]=a; y0=bot10y1; x0=x1=x2=x5=x8=good10 .5r; w10 draw 1..2; % stem vpen; bot7y8=y0; lpen#; w10 draw 0..8; rpen#; w10 draw 0..8; % clean the top y5-y8=y8-y3=-.24h-eps; y3=y4=y6=y7; x3-x6=x1-x3=x4-x1=x7-x4=3u+eps; lpen#; w10 draw (5..)8..3(..6); % erase excess at left vpen; draw (|w7|5..)8..|w6|3(..6). % left point "Rightward arrow with tail"; call charbegin('032,20,0,0,.24ph+.5prt+pa,.24ph+.5prt-pa,0); cpen; lft10x11=round u; rt10x1=x0=round(r-u); y1=y2=y5=y8=good10 a; hpen; rt1x8=x0; x5-x8=x8-x3=fixwidth[3u,6u]+eps; x3=x4=x6=x7; x9=x2; x15=x9-(x1-x8); x12-x15=x15-x10=fixwidth[3u,6u]+eps; x10=x11=x13=x14; y9=y1; y10=y3; y11=y4; y12=y5; y13=y6; y14=y7; y15=y8; y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps; hpen; draw (|w0|13..)10..|w1|15(..12); hpen; draw (|w1|12..)15..|w0|11(..14); cpen; w10 draw 1..2; % bar rpen#; w10+w1 draw (5..)8..3(..6); % erase excess at lower right hpen; draw (|w1|5..)8..|w0|3(..6); % lower point rpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper right hpen; draw (|w1|5..)8..|w0|4(..7). % upper point "Leftward arrow with tail"; call charbegin('033,20,0,0,.24ph+.5prt+pa,.24ph+.5prt-pa,0); cpen; lft10x1=x0=round u; rt10x13=round(r-u); y1=y2=y5=y8=good10 a; hpen; lft1x8=x0; x5-x8=x8-x3=-fixwidth[3u,6u]-eps; x3=x4=x6=x7; y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps; x9=x2; x15=x9+(x8-x1); x15-x12=x10-x15=fixwidth[3u,6u]+eps; x10=x11=x13=x14; y9=y1; y10=y3; y11=y4; y12=y5; y13=y6; y14=y7; y15=y8; hpen; draw (|w0|13..)10..|w1|15(..12); hpen; draw (|w1|12..)15..|w0|11(..14); cpen; w10 draw 1..2; % bar lpen#; w10+w1 draw (5..)8..3(..6); % erase excess at lower left hpen; draw (|w1|5..)8..|w0|3(..6); % lower point lpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper left hpen; draw (|w1|5..)8..|w0|4(..7). % upper point "Either way arrows (left/right)"; call charbegin('034,18,0,0,.52ph+.5prt+pa,.52ph+.5prt-pa,0); cpen; lft10x1=x0=round u; rt10x2=round(r-u); lft10x12=round u; rt10x11=x10=round(r-u); y1=good10 (a+.24h+eps); y11=good10 (a-.24h+eps); y1=y2=y5=y8; y11=y12=y15=y18; hpen; lft1x8=x0; x5-x8=x8-x3=-fixwidth[3u,6u]-eps; x3=x4=x6=x7; y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps; rt1x18=x10; x15-x18=x18-x13=fixwidth[3u,6u]+eps; x13=x14=x16=x17; y13-y16=y11-y13=y14-y11=y17-y14=.24h+eps; cpen; w10 draw 11..12; % bar w10 draw 1..2; % bar lpen#; w10+w1 draw (5..)8..3(..6); % erase excess at lower left hpen; draw (|w1|5..)8..|w0|3(..6); % lower point lpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper left hpen; draw (|w1|5..)8..|w0|4(..7); % upper point rpen#; w10+w1 draw (15..)18..13(..16); % erase excess at lower right hpen; draw (|w1|15..)18..|w0|13(..16); % lower point rpen#; w10+w1 draw (15..)18..14(..17); % erase excess at upper right hpen; draw (|w1|15..)18..|w0|14(..17). % upper point "Either way arrows(right/left)"; call charbegin('035,18,0,0,.52ph+.5prt+pa,.52ph+.5prt-pa,0); cpen; lft10x1=x0=round u; rt10x2=round(r-u); lft10x12=round u; rt10x11=x10=round(r-u); y1=good10 (a-.24h+eps); y11=good10 (a+.24h+eps); y1=y2=y5=y8; y11=y12=y15=y18; hpen; lft1x8=x0; x5-x8=x8-x3=-fixwidth[3u,6u]-eps; x3=x4=x6=x7; y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps; rt1x18=x10; x15-x18=x18-x13=fixwidth[3u,6u]-eps; x13=x14=x16=x17; y13-y16=y11-y13=y14-y11=y17-y14=.24h+eps; cpen; w10 draw 11..12; % bar w10 draw 1..2; % bar lpen#; w10+w1 draw (5..)8..3(..6); % erase excess at lower left lpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper left rpen#; w10+w1 draw (15..)18..14(..17); % erase excess at upper right rpen#; w10+w1 draw (15..)18..13(..16); % erase excess at lower right hpen; draw (|w1|5..)8..|w0|3(..6); % lower point hpen; draw (|w1|5..)8..|w0|4(..7); % upper point hpen; draw (|w1|15..)18..|w0|13(..16); % lower point hpen; draw (|w1|15..)18..|w0|14(..17). % upper point "Left shift sign"; call charbegin('036,9,0,0,ph,.5pd,0); cpen; lft10x1=x0=round u; rt10x2=round(r-u); y1=y2=y5=y8=good10 .75h; w10 draw 1..2; % bar x9=x2; bot10y9=-.5d; draw 2..9; % stem hpen; lft1x8=x0; x5-x8=x8-x3=-3u-eps; x3=x4=x6=x7; y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps; lpen#; w10+w1 draw (5..)8..3(..6); % erase excess at lower left hpen; draw (|w1|5..)8..|w0|3(..6); % lower point lpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper left hpen; draw (|w1|5..)8..|w0|4(..7). % upper point "Right shift sign"; call charbegin('037,9,0,0,ph,.5pd,0); cpen; lft10x2=round u; rt10x1=x0=round(r-u); y1=y2=y5=y8=good10 .75h; w10 draw 1..2; % bar x9=x2; bot10y9=-.5d; draw 2..9; % stem hpen; rt1x8=x0; x5-x8=x8-x3=3u+eps; x3=x4=x6=x7; y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps; rpen#; w10+w1 draw (5..)8..3(..6); % erase excess at lower right hpen; draw (|w1|5..)8..|w0|3(..6); % lower point rpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper right hpen; draw (|w1|5..)8..|w0|4(..7). % upper point "Rightward squiggly arrow"; call charbegin('040,18,0,0,.24ph+.5prt+pa,.24ph+.5prt-pa,0); cpen; lft10x2=round u; rt10x1=x0=round(r-u); y1=y2=y5=y8=good10 a; rt1x8=x0; x5-x8=x8-x3=fixwidth[3u,6u]+eps; x3=x4=x6=x7; y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps; y12=y14=.5[y1,y4]; y13=.5[y1,y3]; y15=y16=y11=y1; 2(x1-x16)=x16-x15=x15-x14=x14-x13=x13-x12=2(x12-x11)=.2(x1-x2); w10 draw 11..12..12..13..13..14..14..15..15..16..1; %squiggle rpen#; w10+w1 draw (5..)8..3(..6); % erase excess at lower right hpen; draw (|w1|5..)8..|w0|3(..6); % lower point rpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper right hpen; draw (|w1|5..)8..|w0|4(..7). % upper point "Right-left squiggly arrow"; call charbegin('041,25,0,0,.24ph+.5prt+pa,.24ph+.5prt-pa,0); cpen; lft10x2=x20=round u; rt10x1=x0=round(r-u); y1=y2=y5=y8=y9=y25=y28=good10 a; rt1x8=x0; lft1x28=x20; x5-x8=x8-x3=x28-x25=x23-x28=fixwidth[3u,6u]+eps; x3=x4=x6=x7; x23=x24=x26=x27; y3-y6=y1-y3=y4-y1=y7-y4=y23-y26=y2-y23=y24-y2=y27-y24=.24h+eps; y11=y13=y15=.5[y1,y4]; y14=y12=.5[y1,y3]; y16=y19=y10=y1; 2(x1-x19)=x19-x16=2(x16-x15)=x15-x14=x14-x13=x13-x12=x12-x11= 2(x11-x10)=x10-x9=.125(x1-x2); w10 draw 2..9..10..10..11..11..12..12..13..13..14..14..15..15..16..16..19..1; % right point: rpen#; w10+w1 draw (5..)8..3(..6); % erase excess at lower right hpen; draw (|w1|5..)8..|w0|3(..6); % lower point rpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper right hpen; draw (|w1|5..)8..|w0|4(..7); % upper point % left point: lpen#; w10+w1 draw (25..)28..23(..26); % erase excess at lower right hpen; draw (|w1|25..)28..|w0|23(..26); % lower point lpen#; w10+w1 draw (25..)28..24(..27); % erase excess at upper right hpen; draw (|w1|25..)28..|w0|24(..27). % upper point "Leftward curly arrow"; call charbegin('042,18,0,0,pa+2peqsep,.24ph+.5prt-pa,0); cpen; lft10x1=x0=round u; rt10x12=round(r-u); x11=good10(.66[x1,x12]); x10=good10(x11+2u); y1=y2=y5=y8=good10 (a); y10=good10 (a+1.5eqsep); call hcirc(10,100,12,120,2,w10); y11=y12; call qcirc(10,200,11,w10); cpen; w10 draw 1..2; % bar hpen; lft1x8=x0; x5-x8=x8-x3=-fixwidth[3u,6u]-eps; x3=x4=x6=x7; y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps; lpen#; w10+w1 draw (5..)8..3(..6); % erase excess at lower left hpen; draw (|w1|5..)8..|w0|3(..6); % lower point lpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper left hpen; draw (|w1|5..)8..|w0|4(..7); % upper point x13=x11; bot10y13=0; cpen; w10 draw 11..13. "Rightward curly arrow"; call charbegin('043,18,0,0,pa+2peqsep,.24ph+.5prt-pa,0); cpen; lft10x12=round u; rt10x1=x0=round(r-u); x11=good10(.33[x12,x1]); x10=good10(x11-2u); y1=y2=y5=y8=good10 (a); y10=good10 (a+1.5eqsep); call hcirc(10,100,12,120,2,w10); y11=y12; call qcirc(10,200,11,w10); cpen; w10 draw 1..2; % bar hpen; rt1x8=x0; x5-x8=x8-x3=fixwidth[3u,6u]+eps; x3=x4=x6=x7; y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps; rpen#; w10+w1 draw (5..)8..3(..6); % erase excess at lower right hpen; draw (|w1|5..)8..|w0|3(..6); % lower point rpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper right hpen; draw (|w1|5..)8..|w0|4(..7); % upper point x13=x11; bot10y13=0; cpen; w10 draw 11..13. "Circle-over equal sign"; call charbegin('044,14,0,0,pa+2peqsep,.5peqsep-pa,0); cpen; lft10x1=round u; x3=x1; x2=x4=r-x1; x18=good0 .5r; y18-y16=x18-x16; y1=y2; y3=y4; y1=good10(a+.5eqsep); y3=good10(a-.5eqsep); x16=good0 (x18-1.75u); y16=good0(y1+eqsep+y18-y16); call circle(11,12,13,14,15,16,17,18,w0); % circle w10 draw 1..2; % upper bar draw 3..4; % lower bar . "Follows with under twidle"; call charbegin('045,14,0,0,pa+.5(plessep+peqsep),.5(plessep+peqsep)-pa,0); vpen; lft10x52=round u; x52=x53=r-x51; y52=good10(a+.5(.8contsep+1.6eqsep)); y51=good10(y52-.4contsep); .5[y52,y53]=y51; x54=x55=x52; y54=y52+b; y55=y53-b; w10 draw (54..)52..51{1,0}..51{-1,0}..53(..55); % diagonals vpen; y101=good10(y53-eqsep); y101-y102=round .6eqsep; lft10x103=round u; y105=.5[y101,y102]; y103=y102; y104=y101; x104=r-x103; x105=r-x105; new slope; slope=7u/(e-m); new dirx,diry; dirx=1/sqrt(1+slope*slope); diry=-slope/sqrt(1+slope*slope); call zcomp(103,101,3,105,slope); call zcomp(104,102,5,105,slope); new chx, chy; chx=.2w10.dirx; chy=.2w10.diry; x21-x101=x101-x11=x23-x3=x3-x13=x25-x5=x5-x15=x27-x102=x102-x17=chx; y21-y101=y101-y11=y23-y3=y3-y13=y25-y5=y5-y15=y27-y102=y102-y17=chy; cpen; w0 ddraw 103{.15(x101-x103),y101-y103}..21{x105-x103,0}.. 23{slope(y102-y101),y102-y101}.. 25{slope(y102-y101),y102-y101}.. 27{x104-x105,0}..104{.15(x104-x102),y104-y102}, 103{.15(x101-x103),y101-y103}..11{x105-x103,0}.. 13{slope(y102-y101),y102-y101}.. 15{slope(y102-y101),y102-y101}.. 17{x104-x105,0}..104{.15(x104-x102),y104-y102}. % top s-curve "Greater than or similar to sign"; call charbegin('046,14,0,0,pa+2peqsep,2peqsep-pa,0); cpen; lft10x52=round 1.5u; x52=x53=r-x51; y52=good10(a+.5(.6lessep+1.6eqsep)); y51=good10(y52-.3lessep); .5[y52,y53]=y51; w10 draw 52..51..51..53; % diagonals vpen; y101=good10(y53-eqsep); y101-y102=round .6eqsep; lft10x103=round u; y105=.5[y101,y102]; y103=y102; y104=y101; x104=r-x103; x105=r-x105; new slope; slope=7u/(e-m); new dirx,diry; dirx=1/sqrt(1+slope*slope); diry=-slope/sqrt(1+slope*slope); call zcomp(103,101,3,105,slope); call zcomp(104,102,5,105,slope); new chx, chy; chx=.2w10.dirx; chy=.2w10.diry; x21-x101=x101-x11=x23-x3=x3-x13=x25-x5=x5-x15=x27-x102=x102-x17=chx; y21-y101=y101-y11=y23-y3=y3-y13=y25-y5=y5-y15=y27-y102=y102-y17=chy; cpen; w0 ddraw 103{.15(x101-x103),y101-y103}..21{x105-x103,0}.. 23{slope(y102-y101),y102-y101}.. 25{slope(y102-y101),y102-y101}.. 27{x104-x105,0}..104{.15(x104-x102),y104-y102}, 103{.15(x101-x103),y101-y103}..11{x105-x103,0}.. 13{slope(y102-y101),y102-y101}.. 15{slope(y102-y101),y102-y101}.. 17{x104-x105,0}..104{.15(x104-x102),y104-y102}. % top s-curve "Greater than or approximately equal to sign"; call charbegin('047,14,0,0,pa+.5(plessep+3peqsep),.5(plessep+4peqsep)-pa,0); cpen; lft10x52=round 1.5u; x52=x53=r-x51; y52=good10(a+.5(.6lessep+2.95eqsep)); y51=good10(y52-.3lessep); .5[y52,y53]=y51; w10 draw 52..51..51..53; % diagonals vpen; y101=good10(y53-eqsep); y101-y102=round .6eqsep; lft10x103=round u; y105=.5[y101,y102]; y103=y102; y104=y101; x104=r-x103; x105=r-x105; new slope; slope=7u/(e-m); new dirx,diry; dirx=1/sqrt(1+slope*slope); diry=-slope/sqrt(1+slope*slope); call zcomp(103,101,3,105,slope); call zcomp(104,102,5,105,slope); new chx, chy; chx= .2w10.dirx; chy=.2w10.diry; x21-x101=x101-x11=x23-x3=x3-x13=x25-x5=x5-x15=x27-x102=x102-x17=chx; y21-y101=y101-y11=y23-y3=y3-y13=y25-y5=y5-y15=y27-y102=y102-y17=chy; cpen; w0 ddraw 103{.15(x101-x103),y101-y103}..21{x105-x103,0}.. 23{slope(y102-y101),y102-y101}.. 25{slope(y102-y101),y102-y101}.. 27{x104-x105,0}..104{.15(x104-x102),y104-y102}, 103{.15(x101-x103),y101-y103}..11{x105-x103,0}.. 13{slope(y102-y101),y102-y101}.. 15{slope(y102-y101),y102-y101}.. 17{x104-x105,0}..104{.15(x104-x102),y104-y102};% top s-curve x301=x101; x302=x102; x303=x103; x304=x104; x305=x105; y101-y301=y102-y302=y103-y303=y104-y304=y105-y305=round 1.5eqsep; x403=x3; x405=x5; y3-y403=y5-y405=round 1.5eqsep; x211=x11; x221=x21; x213=x13; x223=x23; x215=x15; x225=x25; x217=x17; x227=x27; y11-y211=y21-y221=y13-y213=y23-y223=y15-y215=y25-y225=y17-y217= y27-y227=round 1.5eqsep; cpen; w0 ddraw 303{.15(x301-x303),y301-y303}..221{x305-x303,0}.. 223{slope(y302-y301),y302-y301}.. 225{slope(y302-y301),y302-y301}.. 227{x304-x305,0}..304{.15(x304-x302),y304-y302}, 303{.15(x301-x303),y301-y303}..211{x305-x303,0}.. 213{slope(y302-y301),y302-y301}.. 215{slope(y302-y301),y302-y301}.. 217{x304-x305,0}..304{.15(x304-x302),y304-y302}. % bottom curve "Multi-map symbol"; call charbegin('050,20,0,0,pa+2peqsep,5pu-pa,0); cpen; x8=round r-4u; rt10x6=round r-u; y8-y6=x8-x6; y6=good10 a; lft10x10=round u; y10=y6; call circle(1,2,3,4,5,6,7,8,w10); w10 draw 10..2. "Therefore symbol"; call charbegin('051,13,0,0,ph,0,0); cpen; lft10x1=round u; x3=r-x3; x5=r-x1; bot10y3=m; y5=y1=0; new w99; w99=w3.dotsize; w99 draw 3; draw 5; draw 1. "Because symbol"; call charbegin('052,13,0,0,ph,0,0); cpen; lft10x1=round u; x3=r-x3; x5=r-x1; bot10y3=0; y5=y1=m; new w99; w99=w3.dotsize; w99 draw 3; draw 5; draw 1. "Dot-over dot-under equal sign"; call charbegin('053,14,0,0,pa+2peqsep,2peqsep-pa,0); cpen; new w99; w99=w3.dotsize; lft10x1=round u; x3=x1; x2=x4=r-x1; x5=x6=good99 .5r; y1=y2; y3=y4; y1=good10(a+.5eqsep); y3=good10(a-.5eqsep); y5=good99(y1+eqsep); y5-y1=y3-y6; w10 draw 1..2; % upper bar draw 3..4; % lower bar w99 draw 5; draw 6. % dot "Equal-by-definition sign (Russian)"; call charbegin('054,awd+2,0,0,ph+pd, % charht estimated to avoid err msg 0,(pa+.5peqsep).slant); cpen; x13=good10 .5r; lft10x1=round u; x3=x1; x2-x13=x13-x1; x4=x2; y1=y2; y3=y4; y1=good10(a+.5eqsep); y1-y3=eqsep; w10 draw 1..2; % upper bar draw 3..4; % lower bar x11-x1=x2-x12=round 2u; y11-y1=y12-y2=eqsep; y13-y11=(x12-x11)/2*(sqrt 3); draw 11..12; draw 12..13; draw 13..11; % triangle if ptsize>18: if mode=2: call snip(pa); fi; fi. "Precedes with under twidle"; call charbegin('055,14,0,0,pa+.5(plessep+peqsep),.5(plessep+peqsep)-pa,0); vpen; lft10x51=round u; x52=x53=r-x51; y52=good10(a+.5(.8contsep+1.6eqsep)); y51=good10(y52-.4contsep); .5[y52,y53]=y51; x54=x55=x52; y54=y52+b; y55=y53-b; w10 draw (54..)52..51{-1,0}..51{1,0}..53(..55); % diagonals vpen; y101=good10(y53-eqsep); y101-y102=round .6eqsep; lft10x103=round u; y105=.5[y101,y102]; y103=y102; y104=y101; x104=r-x103; x105=r-x105; new slope; slope=7u/(e-m); new dirx,diry; dirx=1/sqrt(1+slope*slope); diry=-slope/sqrt(1+slope*slope); call zcomp(103,101,3,105,slope); call zcomp(104,102,5,105,slope); new chx, chy; chx=.2w10.dirx; chy=.2w10.diry; x21-x101=x101-x11=x23-x3=x3-x13=x25-x5=x5-x15=x27-x102=x102-x17=chx; y21-y101=y101-y11=y23-y3=y3-y13=y25-y5=y5-y15=y27-y102=y102-y17=chy; cpen; w0 ddraw 103{.15(x101-x103),y101-y103}..21{x105-x103,0}.. 23{slope(y102-y101),y102-y101}.. 25{slope(y102-y101),y102-y101}.. 27{x104-x105,0}..104{.15(x104-x102),y104-y102}, 103{.15(x101-x103),y101-y103}..11{x105-x103,0}.. 13{slope(y102-y101),y102-y101}.. 15{slope(y102-y101),y102-y101}.. 17{x104-x105,0}..104{.15(x104-x102),y104-y102}. % top s-curve "Less than or similar to sign"; call charbegin('056,14,0,0,pa+2peqsep,2peqsep-pa,0); cpen; lft10x51=round 1.5u; x52=x53=r-x51; y52=good10(a+.5(.6lessep+1.6eqsep)); y51=good10(y52-.3lessep); .5[y52,y53]=y51; w10 draw 52..51..51..53; % diagonals vpen; y101=good10(y53-eqsep); y101-y102=round .6eqsep; lft10x103=round u; y105=.5[y101,y102]; y103=y102; y104=y101; x104=r-x103; x105=r-x105; new slope; slope=7u/(e-m); new dirx,diry; dirx=1/sqrt(1+slope*slope); diry=-slope/sqrt(1+slope*slope); call zcomp(103,101,3,105,slope); call zcomp(104,102,5,105,slope); new chx, chy; chx=.2w10.dirx; chy=.2w10.diry; x21-x101=x101-x11=x23-x3=x3-x13=x25-x5=x5-x15=x27-x102=x102-x17=chx; y21-y101=y101-y11=y23-y3=y3-y13=y25-y5=y5-y15=y27-y102=y102-y17=chy; cpen; w0 ddraw 103{.15(x101-x103),y101-y103}..21{x105-x103,0}.. 23{slope(y102-y101),y102-y101}.. 25{slope(y102-y101),y102-y101}.. 27{x104-x105,0}..104{.15(x104-x102),y104-y102}, 103{.15(x101-x103),y101-y103}..11{x105-x103,0}.. 13{slope(y102-y101),y102-y101}.. 15{slope(y102-y101),y102-y101}.. 17{x104-x105,0}..104{.15(x104-x102),y104-y102}. % top s-curve "Less than or approximately equal to sign"; call charbegin('057,14,0,0,pa+.5(plessep+3peqsep),.5(plessep+4peqsep)-pa,0); cpen; lft10x51=round 1.5u; x52=x53=r-x51; y52=good10(a+.5(.6lessep+2.95eqsep)); y51=good10(y52-.3lessep); .5[y52,y53]=y51; w10 draw 52..51..51..53; % diagonals vpen; y101=good10(y53-eqsep); y101-y102=round .6eqsep; lft10x103=round u; y105=.5[y101,y102]; y103=y102; y104=y101; x104=r-x103; x105=r-x105; new slope; slope=7u/(e-m); new dirx,diry; dirx=1/sqrt(1+slope*slope); diry=-slope/sqrt(1+slope*slope); call zcomp(103,101,3,105,slope); call zcomp(104,102,5,105,slope); new chx, chy; chx=.2w10.dirx; chy=.2w10.diry; x21-x101=x101-x11=x23-x3=x3-x13=x25-x5=x5-x15=x27-x102=x102-x17=chx; y21-y101=y101-y11=y23-y3=y3-y13=y25-y5=y5-y15=y27-y102=y102-y17=chy; cpen; w0 ddraw 103{.15(x101-x103),y101-y103}..21{x105-x103,0}.. 23{slope(y102-y101),y102-y101}.. 25{slope(y102-y101),y102-y101}.. 27{x104-x105,0}..104{.15(x104-x102),y104-y102}, 103{.15(x101-x103),y101-y103}..11{x105-x103,0}.. 13{slope(y102-y101),y102-y101}.. 15{slope(y102-y101),y102-y101}.. 17{x104-x105,0}..104{.15(x104-x102),y104-y102};% top s-curve x301=x101; x302=x102; x303=x103; x304=x104; x305=x105; y101-y301=y102-y302=y103-y303=y104-y304=y105-y305=round 1.5eqsep; x403=x3; x405=x5; y3-y403=y5-y405=round 1.5eqsep; x211=x11; x221=x21; x213=x13; x223=x23; x215=x15; x225=x25; x217=x17; x227=x27; y11-y211=y21-y221=y13-y213=y23-y223=y15-y215=y25-y225=y17-y217= y27-y227=round 1.5eqsep; cpen; w0 ddraw 303{.15(x301-x303),y301-y303}..221{x305-x303,0}.. 223{slope(y302-y301),y302-y301}.. 225{slope(y302-y301),y302-y301}.. 227{x304-x305,0}..304{.15(x304-x302),y304-y302}, 303{.15(x301-x303),y301-y303}..211{x305-x303,0}.. 213{slope(y302-y301),y302-y301}.. 215{slope(y302-y301),y302-y301}.. 217{x304-x305,0}..304{.15(x304-x302),y304-y302}. % bottom curve "Less than or equal to sign (variation with diagonal bar above)"; call charbegin('060,14,0,0,pa+.5(plessep+peqsep),.5(plessep+peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; y2=good10(a+.5(lessep-eqsep)); y1=good10(y2-.5lessep); x4=x1; x5=x2; .5[y2,y3]=y1; y5-y2=y4-y1=eqsep; w10 draw 2..1..1..3; % diagonals draw 4..5. % bar "Greater than or equal to sign (variation with diagonal bar above)"; call charbegin('061,14,0,0,pa+.5(plessep+peqsep),.5(plessep+peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; y2=good10(a+.5(lessep-eqsep)); y1=good10(y2-.5lessep); x4=x1; x5=x2; .5[y2,y3]=y1; y5-y2=y4-y1=eqsep; w10 draw 2..1..1..3; % diagonals draw 4..5. % bar "Precedes or equals sign (variation with curved overbar)"; call charbegin('062,14,0,0,pa+.5(plessep+peqsep),.5(plessep+peqsep)-pa,0); vpen; lft10x1=round u; x2=x3=r-x1; y2=good10(a+.5contsep); y1=good10(y2-.5contsep); .5[y2,y3]=y1; x4=x5=x2; y4=y2+b; y5=y3-b; x6=x1; x7=x8=good10(x2-2u); y6=y1+eqsep; y7=y2+eqsep; y8=y4+eqsep; w10 draw (4..)2..1{-1,0}..1{1,0}..3(..5); % diagonals draw 6{1,0}..7(..8). % under curve "Follows or equals sign (variation with curved overbar)"; call charbegin('063,14,0,0,pa+.5(plessep+peqsep),.5(plessep+peqsep)-pa,0); vpen; lft10x2=round u; x2=x3=r-x1; y2=good10(a+.5contsep); y1=good10(y2-.5contsep); .5[y2,y3]=y1; x4=x5=x2; y4=y2+b; y5=y3-b; x6=x1; x7=x8=good10(x2+2u); y6=y1+eqsep; y7=y2+eqsep; y8=y4+eqsep; w10 draw (4..)2..1{1,0}..1{-1,0}..3(..5); % diagonals draw 6{-1,0}..7(..8). % under curve "Precedes or equals sign (variation with curved underbar)"; call charbegin('064,14,0,0,pa+.5(plessep+peqsep),.5(plessep+peqsep)-pa,0); vpen; lft10x1=round u; x2=x3=r-x1; y2=good10(a+.5contsep); y1=good10(y2-.5contsep); .5[y2,y3]=y1; x4=x5=x2; y4=y2+b; y5=y3-b; x6=x1; x7=x8=good10(x2-2u); y6=y1-eqsep; y7=y3-eqsep; y8=y5-eqsep; w10 draw (4..)2..1{-1,0}..1{1,0}..3(..5); % diagonals draw 6{1,0}..7(..8). % under curve "Less than or equal to sign (variation with 2 bars)"; call charbegin('065,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+2peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; y2=good10(a+.5(lessep+2eqsep)); y1=good10(y2-.5lessep); .5[y2,y3]=y1; y3-y4=eqsep; y4-y6=eqsep; w10 draw 2..1..1..3; % diagonals x4=x6=x1; x5=x7=x2; y4=y5; y6=y7; draw 4..5; draw 6..7. % bars "Less than or equal to sign (variation with diagonal bar)"; call charbegin('066,14,0,0,pa+.5(plessep+peqsep),.5(plessep+peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; y2=good10(a+.5(lessep+eqsep)); y1=good10(y2-.5lessep); x4=x1; x5=x2; .5[y2,y3]=y1; y3-y5=y1-y4=eqsep; w10 draw 2..1..1..3; % diagonals draw 4..5. % bar "Less than or greater than sign"; call charbegin('067,14,0,0,ph,ph-2pa,0); cpen; lft10x1=round 1.5u; x12=x13=x1; x11=x2=x3=r-x1; y2=good10(a+.45contsep+.6eqsep); y3-y11=round(1.2eqsep); y2-y1=y1-y3=y12-y11=y11-y13=round .3contsep; w10 draw 2..1..1..3; % diagonals w10 draw 12..11..11..13. % diagonals "Backwards Prime symbol (intended as superscript only)"; call charbegin('070,4.75,0,0,.8ph,0,0); new w98,w99; w98=round .5[w0,w1]; w99=round(bold+2deltaw); cpen; top99y1=round .8h; rt99x2=round(r-.25u); bot98y2=round .05h; lft98x1=round .5u; call cdraw(1,2,99,98). % diagonal "Empty Spot -- '071". "Dot-over dot-under equal sign (right/left)"; call charbegin('072,14,0,0,pa+2peqsep,2peqsep-pa,0); cpen; new w99; w99=w3.dotsize; lft10x1=round u; x3=x1; x2=x4=r-x1; x5=good99 x2; x6=good99 x3; y1=y2; y3=y4; y1-y3=eqsep; .5[y1,y3]=a; y5=good99(y1+eqsep); y6=good99(y3-eqsep); w10 draw 1..2; % upper bar draw 3..4; % lower bar w99 draw 5; draw 6. % dots "Dot-over dot-under equal sign (left/right)"; call charbegin('073,14,0,0,pa+2peqsep,2peqsep-pa,0); cpen; new w99; w99=w3.dotsize; lft10x1=round u; x3=x1; x2=x4=r-x1; x5=good99 x3; x6=good99 x2; y1=y2; y3=y4; y1-y3=eqsep; .5[y1,y3]=a; y5=good99(y1+eqsep); y6=good99(y3-eqsep); w10 draw 1..2; % upper bar draw 3..4; % lower bar w99 draw 5; draw 6. % dots "Follows or equals sign (variation with curved underbar)"; call charbegin('074,14,0,0,pa+.5(plessep+peqsep),.5(plessep+peqsep)-pa,0); vpen; lft10x2=round u; x2=x3=r-x1; y2=good10(a+.5contsep); y1=good10(y2-.5contsep); .5[y2,y3]=y1; x4=x5=x2; y4=y2+b; y5=y3-b; x6=x1; x7=x8=good10(x2+2u); y6=y1-eqsep; y7=y3-eqsep; y8=y5-eqsep; w10 draw (4..)2..1{1,0}..1{-1,0}..3(..5); % diagonals draw 6{-1,0}..7(..8). % under curve "Greater than or equal to sign (variation with 2 bars)"; call charbegin('075,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+2peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; y2=good10(a+.5(lessep+2eqsep)); y1=good10(y2-.5lessep); .5[y2,y3]=y1; y3-y4=eqsep; y4-y6=eqsep; w10 draw 2..1..1..3; % diagonals x4=x6=x1; x5=x7=x2; y4=y5; y6=y7; draw 4..5; draw 6..7. % bar "Greater than or equal to sign (variation with diagonal bar)"; call charbegin('076,14,0,0,pa+.5(plessep+peqsep),.5(plessep+peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; y2=good10(a+.5(lessep+eqsep)); y1=good10(y2-.5lessep); x4=x1; x5=x2; .5[y2,y3]=y1; y3-y5=y1-y4=eqsep; w10 draw 2..1..1..3; % diagonals draw 4..5. % bar "Greater than or less than sign"; call charbegin('077,14,0,0,ph,ph-2pa,0); cpen; lft10x11=round 1.5u; x12=x13=x1; x11=x2=x3=r-x1; y2=good10(a+.45contsep+.6eqsep); y3-y11=round(1.2eqsep); y2-y1=y1-y3=y12-y11=y11-y13=round .3contsep; w10 draw 2..1..1..3; % diagonals w10 draw 12..11..11..13. % diagonals "Square subset sign"; call charbegin('100,awd+2,0,0,pa+.5(pcontsep),.5(pcontsep)-pa,0); cpen; lft10x4=round 1.5u; x2=x3=r-x4; x4=x5; y2=good10(a+.5(contsep)); y4=y2; y5=y2-contsep=y3; w10 draw 2..4..4..5..5..3. % stroke "Square superset sign"; call charbegin('101,awd+2,0,0,pa+.5(pcontsep),.5(pcontsep)-pa,0); cpen; lft10x4=round 1.5u; x2=x3=r-x4; x4=x5; y2=good10(a+.5(contsep)); y4=y2; y5=y2-contsep=y3; w10 draw 4..2..2..3..3..5. % stroke "Right pointing triangle"; call charbegin('102,14,0,0,pa+.5plessep,.5plessep-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; y2=good10(a+.5lessep); y1=good10(y2-.5lessep); y2-y1=y1-y3; w10 draw 2..1..1..3; % diagonals draw 2..3. "Left pointing triangle"; call charbegin('103,14,0,0,pa+.5plessep,.5plessep-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; y2=good10(a+.5lessep); y1=good10(y2-.5lessep); y2-y1=y1-y3; w10 draw 2..1..1..3; % diagonals draw 2..3. "Right pointing triangle with bar under"; call charbegin('104,14,0,0,pa+.5(plessep+peqsep),.5(plessep+peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; x4=x2; x5=x1; y1=good10(a+.5eqsep); y2=good10(y1+.5lessep); y2-y1=y1-y3; y4=good10(y3-eqsep); y4=y5; w10 draw 2..1..1..3; % diagonals draw 2..3; draw 4..5. "Left pointing triangle with bar under"; call charbegin('105,14,0,0,pa+.5(plessep+peqsep),.5(plessep+peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; x4=x2; x5=x1; y1=good10(a+.5eqsep); y2=good10(y1+.5lessep); y2-y1=y1-y3; y4=good10(y3-eqsep); y4=y5; w10 draw 2..1..1..3; % diagonals draw 2..3; draw 4..5. "Solid star"; call charbegin('106,16,0,0,ph,0,0); cpen; x1=good0 .5r; y1= good0 h; new aa; aa=y1*(sind18/cosd18); % aa is half the length of a side of the % external pentagon x3=good0(x1+aa); x1-x4=x3-x1; y3=y4=good0 0; x2=good0(x1+2*aa*cosd36); x1-x5=x2-x1; y2=good0(y1-2*aa*sind36)=y5; x11=x1; y11=good0(aa*sind36/cosd36); new cc; cc=1-(y11/y1); % cc gives a way of finding the opposite % vertices of two pentagrams x14=good0(cc[x4,.5[x1,x2]]); y14=y2; x15=good0(cc[x5,.5[x2,x3]]); y15=good0(cc[y5,.5[y2,y3]]); y13=y14; x1-x13=x14-x1; y12=y15; x1-x12=x15-x1; w0 ddraw 1..13,1..14; ddraw 2..14,2..15; ddraw 3..15,3..11; ddraw 4..11,4..12; ddraw 5..12,5..13; ddraw 11..12..12..13,11..15..15..14. "Between symbol - )( "; call charbegin('107,8,0,0,ph+pd,ph+pb-2pa,(ph+pb).slant+.5pw-.5pu); %charht rounded from ph+pb to avoid err msg. hpen; new w99; w99=round .75[w0,w1]; x1=x3=good0(r-u); x11=x13=good0 u; x0=x4=x1+7.5u; x10=x14=x11-7.5u; x2=x11; x12=x1; top0y1=h+b; y2=a=.5[y1,y3]; y0=y1; y4=y3; top0y11=h+b; y12=a=.5[y11,y13]; y10=y11; y14=y13; draw (0..)|w0|1..|w99#|2..|w0|3(..4); draw (10..)|w0|11..|w99#|12..|w0|13(..14). "Inverted black triangle"; call charbegin('110,14,0,0,ph,0,0); cpen; lft10x1=round(u); .5[x1,x2]=x3=good10 .5r; x0=round .5(x2-x1); bot10y3=0; y2=y1; y1=sqrt(((x2-x1)*(x2-x1))-((x0)*(x0))); w10 ddraw 1..2,1..3. "Black right pointing triangle"; call charbegin('111,14,0,0,pa+.5plessep,.5plessep-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; y2=good10(a+.5lessep); y1=good10(y2-.5lessep); y2-y1=y1-y3; w10 ddraw 1..2,1..3. "Black left pointing triangle"; call charbegin('112,14,0,0,pa+.5plessep,.5plessep-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; y2=good10(a+.5lessep); y1=good10(y2-.5lessep); y2-y1=y1-y3; w10 ddraw 1..2,1..3. "Empty Spot -- '113". "Empty Spot -- '114". "Triangle"; call charbegin('115,14,0,0,ph,0,0); cpen; lft10x1=round(u); .5[x1,x2]=x3=good10 .5r; x0=round .5(x2-x1); bot10y1=0; y2=y1; y3=sqrt(((x2-x1)*(x2-x1))-((x0)*(x0))); w10 draw 1..2..2..3..3..1. "Black triangle"; call charbegin('116,14,0,0,ph,0,0); cpen; lft10x1=round(u); .5[x1,x2]=x3=good10 .5r; x0=round .5(x2-x1); bot10y1=0; y2=y1; y3=sqrt(((x2-x1)*(x2-x1))-((x0)*(x0))); w10 ddraw 1..2,1..3. "Inverted triangle"; call charbegin('117,14,0,0,ph,0,0); cpen; lft10x1=round(u); .5[x1,x2]=x3=good10 .5r; x0=round .5(x2-x1); bot10y3=0; y2=y1; y1=sqrt(((x2-x1)*(x2-x1))-((x0)*(x0))); w10 draw 1..2..2..3..3..1. "Egg sandwich"; call charbegin('120,14,0,0,pa+2peqsep,.5peqsep-pa,0); cpen; lft10x1=round u; x3=x1; x2=x4=r-x1; y1=y2; y3=y4; y1=good10(a+.5eqsep); y3=good10(a-.5eqsep); x18=good0 .5r; top10y18=y1; y16=good10 a; x18-x16=y18-y16; call circle(11,12,13,14,15,16,17,18,w0); % circle w10 draw 1..2; % upper bar draw 3..4; % lower bar . "Less than, equal or greater sign (one bar)"; call charbegin('121,awd+2,0,0,ph+pd,pd,0); % ht&dp est. to avoid err msg cpen; lft10x1=round 1.5u; x2=x3=r-x1; y2=good10(a+.5(1.5lessep+2eqsep)); y8=good10(a-.5(1.5lessep+2eqsep)); .5[y2,y3]=y1; y3-y4=y4-y7=eqsep; y7-y8=y2-y3; y6=.5[y7,y8]; w10 draw 2..1..1..3; % top diagonals x4=x1; x5=x2; y4=y5; draw 4..5; % bar x7=x8=x1; x6=x2; draw 7..6..6..8. % bottom diagonals "Greater than, equal or less sign (one bar)"; call charbegin('122,awd+2,0,0,ph+pd,pd,0); % ht&dp est. to avoid err msg cpen; lft10x2=round 1.5u; x2=x3=r-x1; y2=good10(a+.5(1.5lessep+2eqsep)); y8=good10(a-.5(1.5lessep+2eqsep)); .5[y2,y3]=y1; y3-y4=y4-y7=eqsep; y7-y8=y2-y3; y6=.5[y7,y8]; w10 draw 2..1..1..3; % top diagonals x4=x1; x5=x2; y4=y5; draw 4..5; % bar x7=x8=x1; x6=x2; draw 7..6..6..8. % bottom diagonals "Less than, equal or greater sign (two bars)"; call charbegin('123,awd+2,0,0,ph+pd,pd,0); % ht&dp est. to avoid err msg cpen; lft10x1=round 1.5u; x2=x3=r-x1; y2=good10(a+.5(1.5lessep+3eqsep)); y1=good10(y2-.375lessep); .5[y2,y3]=y1; y3-y4=eqsep; w10 draw 2..1..1..3; % top diagonals x4=x1; x5=x2; y4=y5; draw 4..5; % bar y14=y15=y4-eqsep; x14=x4; x15=x5; draw 14..15; %second bar y7=y14-eqsep; y7-y6=y6-y8=.375lessep; x7=x8=x1; x6=x2; draw 7..6..6..8. % bottom diagonals "Greater than, equal or less sign (two bars)"; call charbegin('124,awd+2,0,0,ph+pd,pd,0); % ht&dp est. to avoid err msg cpen; lft10x2=round 1.5u; x2=x3=r-x1; y2=good10(a+.5(1.5lessep+3eqsep)); y1=good10(y2-.375lessep); .5[y2,y3]=y1; y3-y4=eqsep; w10 draw 2..1..1..3; % top diagonals x4=x1; x5=x2; y4=y5; draw 4..5; % bar y14=y15=y4-eqsep; x14=x4; x15=x5; draw 14..15; %second bar y7=y14-eqsep; y7-y6=y6-y8=.375lessep; x7=x8=x1; x6=x2; draw 7..6..6..8. % bottom diagonals "The symbol for yen"; mi=0; mc=mi/pu; rv=phh.slant+(ucs+2sc-1)pu; % used at right of tall diagonal call charbegin('125,13,2sc+mc(phh.slant-.5pu),2sc-mc(rv-4pu), ph,0,mi[rv,4pu]); hpen; lft5x1=round 1.5u; rt0x2=round(r-1.5u); top5y1=top0y2=hh; rt5x13=rt0x14; x13-x1=x2-x14; % approximations before rounding x3=good5x13; rt5x3=rt4x6=rt0x4; lft0x9=lft5x3; y3=y4=y6=y9=.48hh; y7=y8=.5[y5,y6]; bot4y5=0; x5=x6=x8; lft0x7=lft4x8; w5 draw 1..3; % left diagonal minvr 0; minvs 0; w0 ddraw 9{x3-x1,y3-y1}..7{0,-1}, 6..8; % transition minvr .5; minvs .5; w4 draw 6..5; % stem w0 draw 4..2; % right diagonal if ucs0: call `a serif(1,5,3,1/2,-ucs); call `b serif(1,5,3,1/2,ucs); % upper left serif call `c serif(5,4,6,1/2,-ucs); call `d serif(5,4,6,1/2,ucs); % lower serif call `e dserif(2,0,4,1/2,-ucs); call `f dserif(2,0,4,1/2,ucs); % upper right serif fi; % cross bars lft10x101=round u; x103=x101; x104=x102; x102=r-x101; y101=y102; y103=y104; y103-y101=eqsep; .5[y101,y103]=.48h; w10 draw 101..102; % lower bar draw 103..104. % upper bar "Convergence arrow right"; call charbegin('126,18,0,0,pa+2peqsep,2peqsep-pa,0); cpen; lft10x2=round u; rt10x1=x0=round(r-u); rt1x8=x0; x11=x1; x12=x13=x2; y5=y8=good10 a; y1=y2; y11=y12; y13=y8; y1=y8+eqsep; y1-y8=y8-y11; w10 draw 1..2; draw 11..12; draw 8..13; % bars hpen; x5-x8=x8-x3=1.5(fixwidth[3u,6u]+eps); x3=x4=x6=x7; y3-y6=y11-y3=y4-y1=y7-y4=.18h+eps; rpen#; w10+w1 ddraw (5..)8..3(..6), 11..11; % erase excess at lower right hpen; draw (|w1|5..)8..|w0|3(..6); % lower point rpen#; w10+w1 ddraw (5..)8..4(..7), 1..1; % erase excess at upper right hpen; draw (|w1|5..)8..|w0|4(..7). % upper point "Convergence arrow left"; call charbegin('127,18,0,0,pa+2peqsep,2peqsep-pa,0); cpen; lft10x1=x0=round u; rt10x2=round(r-u); lft1x8=x0; x11=x1; x12=x13=x2; y5=y8=good10 a; y1=y2; y11=y12; y13=y8; y1=y8+eqsep; y1-y8=y8-y11; w10 draw 1..2; draw 11..12; draw 8..13; % bars hpen; x5-x8=x8-x3=1.5(-fixwidth[3u,6u]-eps); x3=x4=x6=x7; y3-y6=y11-y3=y4-y1=y7-y4=.18h+eps; lpen#; w10+w1 ddraw (5..)8..3(..6), 11..11; % erase excess at lower left hpen; draw (|w1|5..)8..|w0|3(..6); % lower point lpen#; w10+w1 ddraw (5..)8..4(..7), 1..1; % erase excess at upper left hpen; draw (|w1|5..)8..|w0|4(..7). % upper point "Check Mark"; call charbegin('130,13,0,0,ph,0,0); hpen; lft5x1=round u; y1=e; rt5x3=5u; cpen; rt10x4=rt5x3; bot10y4=0; y3=y4; rt10x2=r-u; y2=.5[m,h]; y6=y5=.5[y4,y2]; x5=.25/sqrttwo[x4,x2]; x6=.4/sqrttwo[x4,x2]; w5 draw 1..3; cpen; w10 ddraw 4{0,1}..5..2{1,0}, 4{0,1}..6..2{1,0}. "Vee-bar"; call charbegin('131,14,0,0,pa+2peqsep,2peqsep-pa,0); cpen; lft10x1=round 2u; x3=r-x3; x5=r-x1; x6=round(x1-u); x7=round(u+x5); y3=y1-2eqsep; y6=y7=y3-eqsep; y5=y1; .5[y6,y1]=a; w10 draw 6..7; % bar draw 1..3..3..5. % diagonals "Projective correspondence"; call charbegin('132,14,0,0,pa+2peqsep,2peqsep-pa,0); cpen; lft10x1=round 2u; x3=r-x3; x5=r-x1; x6=round(x1-u); x7=round(u+x5); y3=y1+2eqsep; y6=y7=y3+eqsep; y5=y1; .5[y1,y6]=a; w10 draw 6..7; % bar draw 1..3..3..5. % diagonals "Perspective correspondence"; call charbegin('133,14,0,0,pa+2peqsep,2peqsep-pa,0); cpen; lft10x1=round 2u; x3=r-x3; x5=r-x1; x6=x8=round(x1-u); x9=x7=round(u+x5); .5[y1,y8]=a; y3=y1+2eqsep; y6=y7=y3+eqsep; y5=y1; y8=y9=y6+eqsep; w10 draw 6..7; draw 8..9; % bars draw 1..3..3..5. % diagonals "Angle sign"; call charbegin('134,12,0,0,ph,0,0); cpen; lft10x2=round u; x1=x3=r-x2; top10y1=h; bot10y2=0; y3=y2; w10 draw 1..2..2..3. % diagonal and bar "Measured Angle sign"; call charbegin('135,12,0,0,ph,0,0); cpen; lft10x2=round u; x1=x3=r-x2; top10y1=h; bot10y2=0; y3=y2; length=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)); ux=(x1-x2)/length; uy=(y1-y2)/length; x4=good10(x2+.5[x2,x3]*ux); y4=good10(y2+.5[x2,x3]*uy); len=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3)); uxs=(x3-x2)/len; uys=(y3-y2)/len; x5=good10(x2+.5[x2,x3]*uxs); y5=good10(y2+.5[x2,x3]*uys); call qcirc(4,6,5,w10); w10 draw 1..2..2..3. % diagonal and bar "Angle sign 2"; call charbegin('136,14,0,0,pa+.5plessep,.5plessep-pa,0); cpen; lft10x51=round 1.5u; x52=x53=r-x51; y52=good10(a+.5lessep); y51=good10(y52-.5lessep); .5[y52,y53]=y51; new len,length,uxs,uys,ux,uy,kick; length=sqrt((x52-x51)*(x52-x51)+(y52-y51)*(y52-y51)); ux=(x52-x51)/length; uy=(y52-y51)/length; kick=good10 .5[x51,x52]; x1=good10(x51+kick*ux); y1=good10(y51+kick*uy); len=sqrt((x53-x51)*(x53-x51)+(y53-y51)*(y53-y51)); uxs=(x53-x51)/len; uys=(y53-y51)/len; y3=good10(y51+kick*uys); x8=good10 .5[x1,x53]; call hcirc(1,2,8,4,3,w10); w10 draw 52..51..51..53. % diagonals "Proportional"; cpen; call charbegin('137,15,0,0,px,5pu-pa,0); lft10x6=round (u); y6=good10 a; x8=good10 .33r; y8-y6=x8-x6; call circle(1,2,3,4,5,6,7,8,w10); % bowl x0=x2; x10=good10(x2+(x8-x6)); y10=y8; y9=y4; call hcirc(10,100,0,20,9,w10); x12=x11=good10(r-x6); y11=y10; y12=y9; w10 draw 10..11; draw 9..12. "Cup product"; call charbegin('140,13,0,0,ph,pd,0); cpen; rt10x1=round u; x3=r-x1; x2=.5[x1,x3]; x0=x1; x4=x3; y1=y3; y1-y2=.75e; .25[y1,y2]=a; y0=y4=h; w10 draw (0..)1..2..3(..4). "Cap product"; call charbegin('141,13,0,0,ph,pd,0); cpen; rt10x1=round u; x3=r-x1; x2=.5[x1,x3]; x0=x1; x4=x3; y1=y3; y2-y1=.75e; .25[y2,y1]=a; y0=y4=0-d; w10 draw (0..)1..2..3(..4). "Double left hook"; call charbegin('142,awd+2,0,0,pa+.5pcontsep,.5pcontsep-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; top10y2=round(a+.5contsep); y1=good10(y2-.5contsep); y1=.5[y2,y3]; x4=x5=good10 .5r; y4=y2; y5=y3; w10 draw 2..4{-1,0}..1{0,-1}..5{1,0}..3; % outer stroke new aa; aa=.25contsep; x12=x2; x13=x3; y12=round(y2-aa); y1=.5[y12,y13]; x11=round(x1+aa); y11=y1; y14=y12; y15=y13; x14=x4; x15=x5; w10 draw 12..14{-1,0}..11{0,-1}..15{1,0}..13. % inner stroke "Double right hook"; call charbegin('143,awd+2,0,0,pa+.5pcontsep,.5pcontsep-pa,0); cpen; rt10x1=round(r-1.5u); x2=x3=r-x1; top10y2=round(a+.5contsep); y1=good10(y2-.5contsep); y1=.5[y2,y3]; x4=x5=good10 .5r; y4=y2; y5=y3; w10 draw 2..4{1,0}..1{0,-1}..5{-1,0}..3; % outer stroke new aa; aa=.25contsep; x12=x2; x13=x3; y12=round(y2-aa); y1=.5[y12,y13]; x11=round(x1-aa); y11=y1; y14=y12; y15=y13; x14=x4; x15=x5; w10 draw 12..14{1,0}..11{0,-1}..15{-1,0}..13. % inner stroke "Double set union sign"; call charbegin('144,12,0,0,.8ph,0,0); cpen; lft10x1=round u; x2=x1; x3=r-x3; x4=x5=r-x1; y1=good10 .8h; bot10y3=-o; y2=y4=.5[y1,y3]; y5=y1; call qcirc(3,6,2,w10); call qcirc(3,7,4,w10); % cup w10 draw 1..2; draw 4..5; % stems round 2.5u=x11-x1=x4-x14=x12-x2=x5-x15; y11=y1=y14; y12=y2=y15; y13-y3=round 2.5u; x13=x3; call qcirc(13,16,12,w10); call qcirc(13,17,15,w10); % inner cup w10 draw 11..12; draw 14..15. % inner stems; "Double set intersection sign"; call charbegin('145,12,0,0,.8ph,0,0); cpen; lft10x1=round u; x2=x1; x3=r-x3; x4=x5=r-x1; y3=good10 .8h; bot10y1=0; y2=y4=.5[y1,y3]; y5=y1; call qcirc(3,6,2,w10); call qcirc(3,7,4,w10); % cap w10 draw 1..2; draw 4..5; % stems round 2.5u=x11-x1=x4-x14=x12-x2=x5-x15; y11=y1=y14; y12=y2=y15; y3-y13=round 2.5u; x13=x3; call qcirc(13,16,12,w10); call qcirc(13,17,15,w10); % inner cup w10 draw 11..12; draw 14..15. % inner stems; "Curly wedge"; call charbegin('146,12,0,0,.8ph,0,0); cpen; lft10x1=round u; x3=r-x3; x5=r-x1; y3=good10 .8h; bot10y1=0; y5=y1; x2=x1-3u; x6=x5+3u; y2=y6=y1; w10 draw (2..)1..3{0,1}..3{0,-1}..5(..6). % diagonals "Curly join"; call charbegin('147,12,0,0,.8ph,0,0); cpen; lft10x1=round u; x3=r-x3; x5=r-x1; y1=good10 .8h; bot10y3=0; y5=y1; x2=x1-3u; x6=x5+3u; y2=y6=y1; w10 draw (2..)1..3{0,-1}..3{0,1}..5(..6). % diagonals "Times operator without the upper right branch"; call arithbegin('150); cpen; lft10x7=round(.5r-.6awd.u/sqrt2); x5=x7; rt10x1-lft10x7=rt10x3-lft10x5=round 1.2awd.u/sqrt2; top10y7=round(a+.6awd.u/sqrt2); y1=y7; y7-y5=y1-y3=x1-x7; new aa,bb; x2=aa[x3,x7]; y2=aa[y3,y7]; x2=bb[x1,x5]; y2=bb[y1,y5]; w10 draw 3..7; % lower right to upper left diagonal draw 5..2. % lower left to center point "Times operator without the upper left branch"; call arithbegin('151); cpen; lft10x7=round(.5r-.6awd.u/sqrt2); x5=x7; rt10x1-lft10x7=rt10x3-lft10x5=round 1.2awd.u/sqrt2; top10y7=round(a+.6awd.u/sqrt2); y1=y7; y7-y5=y1-y3=x1-x7; new aa,bb; x2=aa[x3,x7]; y2=aa[y3,y7]; x2=bb[x1,x5]; y2=bb[y1,y5]; w10 draw 3..2; % lower right to center point draw 5..1. % lower left to upper right diagonal "Reflexive subset sign (variation with 2 bars)"; call charbegin('152,awd+2,0,0,pa+.5(pcontsep+2peqsep),.5(pcontsep+2peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; y2=good10 (a+.5(contsep+2eqsep)); y1=good10 (y2-.5contsep); .5[y2,y3]=y1; y3-y6=y6-y8=eqsep; x4=x5=good10 .5r; y4=y2; y5=y3; lft10x6=rt10x1; x7=x2; x8=x6; x9=x7; y7=y6; y9=y8; w10 draw 2..4{-1,0}..1{0,-1}..5{1,0}..3; %stroke draw 6..7; draw 8..9. %bars "Reflexive superset sign (variation with 2 bars)"; call charbegin('153,awd+2,0,0,pa+.5(pcontsep+2peqsep),.5(pcontsep+2peqsep)-pa,0); cpen; lft10x2=round 1.5u; x1=r-x2; x3=x2; y2=good10 (a+.5(contsep+2eqsep)); y1=good10 (y2-.5contsep); .5[y2,y3]=y1; y3-y6=y6-y8=eqsep; x4=x5=good10 .5r; y4=y2; y5=y3; rt10x6=lft10x1; x7=x2; x8=x6; x9=x7; y7=y6; y9=y8; w10 draw 2..4{1,0}..1{0,-1}..5{-1,0}..3; %stroke draw 6..7; draw 8..9. %bars "Equal sign with loop on top"; call charbegin('154,14,0,0,pa+2peqsep,.5peqsep-pa,0); cpen; lft10x1=round u; x3=x1; x2=x4=r-x1; x12=good10 (.5r); x11-x1=x2-x13=2/7(x2-x1); y1=y2=y11=y13; y3=y4; y1=good10(a+.5eqsep); y3=good10(a-.5eqsep); y12-y11=.5(x13-x11); w10 draw 1..11..11{0,1}..12{1,0}..13{0,-1}..13..2; % upper bar draw 3..4. % lower bar "Equal sign with loop above and below"; call charbegin('155,14,0,0,pa+2peqsep,2peqsep-pa,0); cpen; lft10x1=round u; x3=x1; x2=x4=r-x1; x12=x32=good10 (.5r); x11-x1=x31-x1=x2-x13=x2-x33=2/7(x2-x1); y1=y2=y11=y13; y3=y4=y31=y33; y1=good10(a+.5eqsep); y3=good10(a-.5eqsep); y12-y11=.5(x13-x11)=y31-y32; w10 draw 1..11..11{0,1}..12{1,0}..13{0,-1}..13..2; % upper bar draw 3..31..31{0,-1}..32{1,0}..33{0,1}..33..4. % lower bar "Much much less sign"; call charbegin('156,awd+2+2pgrgrsep,0,0,pa+.5plessep,.5plessep-pa,0); cpen; lft10x1=round2.5u; rt10x2-lft10x1=round (awd-3).u; x3=x2; x5-x2=x4-x1=x6-x3=x8-x5=x7-x4=x9-x6=round pgrgrsep.u; y2=good10(a+.5lessep); y1=good10(y2-.5lessep); .5[y2,y3]=y1; y5=y8=y2; y4=y7=y1; y9=y6=y3; w10 draw 2..1..1..3; %left diagonals draw 5..4..4..6; %middle diagonals draw 8..7..7..9. %right diagonals "Much much greater sign"; call charbegin('157,awd+2+2pgrgrsep,0,0,pa+.5plessep,.5plessep-pa,0); cpen; rt10x1=round (r-2.5u); rt10x1-lft10x2=round (awd-3).u; x3=x2; x2-x5=x1-x4=x3-x6=x5-x8=x4-x7=x6-x9=round pgrgrsep.u; y2=good10(a+.5lessep); y1=good10(y2-.5lessep); .5[y2,y3]=y1; y5=y2=y8; y4=y1=y7; y6=y3=y9; w10 draw 2..1..1..3; % right diagonals draw 5..4..4..6; % center diagonals draw 8..7..7..9. %left diagonals "Left corner"; call charbegin('160,6,0,0,ph,0,0); cpen; x1=good10 u; x3=x1; x2=r-x1; top10y1=h; y2=y1; y3=m; w10 draw 1..2; draw 1..3. "Right corner"; call charbegin('161,6,0,0,ph,0,0); cpen; x1=good10 u; x2=r-x1; x3=x2; top10y1=h; y2=y1; y3=m; w10 draw 1..2; draw 2..3. % char's 162 and 163 appear at the end of the file. "Transversal intersection sign"; call charbegin('164,12,0,0,ph,0,0); cpen; lft10x1=round u; x2=x1; x10=x15=x3=r-x3; x4=x5=r-x1; y3=good10 .7h; bot10y1=0; y2=y4=.5[y1,y3]; y15=y5=y1; y10=good10 h; call qcirc(3,6,2,w10); call qcirc(3,7,4,w10); % cap w10 draw 1..2; draw 4..5; draw 10..15. % stems "Direct sum"; call arithbegin('165); cpen; new w99; w99=dotsize*w3; lft10x3=round u; x1=x2=good10 .5r; x1=x5=.5[x3,x4]; if x4-x3+eqsep>h+d: bot10y1=-d; y3=good10 .5[y1,bot10h-eqsep]; else: y1=good10(a-.5(x4-x3+eqsep)); y3=y1+x1-x3; fi; y3=.5[y2,y1]; y5=y2+eqsep; y4=y3; w10 draw 1..2; % stem draw 3..4; % plus bar w99 draw 5. % dot "Backwards Similarity sign"; call charbegin('166,14,0,0,eqht+pa,eqht-pa,pa.slant-.5pu); vpen; top10y3=round(a+mathspread[.225m,.275m]+eps); top10y3-bot10y4=round mathspread[.45m,.55m]; lft10x3=round u; y5=.5[y3,y4]; %x2=.5[x3,x5]; x1=.5[x5,x4]; y3=y2; y4=y1; %use x's instead of y's for sdraw x4=r-x3; x5=r-x5; call `a zdraw(3,1,5,2,4,w10+deltaw,w10,-5u/(e-m)). % stroke "Similar or equal sign (1 bar and backwards twiddle)"; call charbegin('167,14,0,0,pa+2peqsep,1.5peqsep-pa,0); vpen; y102=good10(a+.8eqsep); y102-y101=round .6eqsep; lft10x103=round u; y105=.5[y101,y102]; y103=y102; y104=y101; x104=r-x103; x105=r-x105; new slope; slope=-7u/(e-m); new dirx,diry; dirx=1/sqrt(1+slope*slope); diry=-slope/sqrt(1+slope*slope); call zcomp(103,101,3,105,slope); call zcomp(104,102,5,105,slope); new chx, chy; chx=.2w10.dirx; chy=.2w10.diry; x21-x101=x101-x11=x23-x3=x3-x13=x25-x5=x5-x15=x27-x102=x102-x17=chx; y21-y101=y101-y11=y23-y3=y3-y13=y25-y5=y5-y15=y27-y102=y102-y17=chy; cpen; w0 ddraw 103{.15(x101-x103),y101-y103}..21{x105-x103,0}.. 23{slope(y102-y101),y102-y101}.. 25{slope(y102-y101),y102-y101}.. 27{x104-x105,0}..104{.15(x104-x102),y104-y102}, 103{.15(x101-x103),y101-y103}..11{x105-x103,0}.. 13{slope(y102-y101),y102-y101}.. 15{slope(y102-y101),y102-y101}.. 17{x104-x105,0}..104{.15(x104-x102),y104-y102}; % the s-curve y201=y202=y101-eqsep; x201=x103; x202=x104; cpen; w10 draw 201..202. "Lower Left corner"; call charbegin('170,6,0,0,pe,0,0); cpen; x1=good10 u; x3=x1; x2=r-x1; top10y1=0; y2=y1; y3=e; w10 draw 1..2; draw 1..3. "Lower Right corner"; call charbegin('171,6,0,0,pe,0,0); cpen; x1=good10 u; x2=r-x1; x3=x2; top10y1=0; y2=y1; y3=e; w10 draw 1..2; draw 2..3. "Maltese Cross"; call charbegin('172,14,0,0,ph,ph-2pa,0); cpen; lft10x1=round u; x5=x4=x1; x2=x6=x3=r-x1; x8=x7=good10.5[x1,x2]; x9=x12=good10.75[x1,x2]; x16=x13=good10.25[x1,x2]; x15=x14=x1; x10=x11=x2; x0=good10.5r; top10y1-bot10y4=good10 aht.u; .5[y1,y4]=a; y1=y2=y8=y16=y9; y0=good10 a; y4=y7=y3=y13=y12; y5=y6=good10 a; y10=y15=good10.25[y1,y4]; y14=y11=good10.75[y1,y4]; w10 ddraw 0{1,0}..10{0,1},0{1,0}..11{0,-1}; ddraw 0{0,1}..9{1,0},0{0,1}..16{-1,0}; ddraw 0{0,-1}..13{-1,0},0{0,-1}..12{1,0}; ddraw 0{-1,0}..14{0,-1},0{-1,0}..15{0,1}. "Bourbaki Notation C"; call charbegin('173,8,0,0,ph+pd,0,0); cpen; new w99; w99=round bold; x2=good99 1.5u; x1=r-x2; x2=x3; x1=x6=x8=x10; x4=x5=good99 .5r; top99y4=(h+d); y5=good99 0; y1=good99 .25[y4,y5]; y2=good99 .125[y4,y5]; y6=good99 .75[y4,y5]; y3=good99 .875[y4,y5]; y2=y8; y3=y10; call qcirc(4,18,8,w99); call qcirc(4,14,2,w99); call qcirc(5,100,10,w99); call qcirc(5,15,3,w99); w99 draw 1..8; draw 2..3; draw 6..10. "Intercalation product operator"; call charbegin('174,9,0,0,pa+.5plessep,pd+pb,0); vpen; lft3x1=u; rt3x2=r-u; x3=x4=.5r; top3y1=m; y1=y2=y3; bot6y4=-d-b; w3 draw 1..2; % bar hpen; w3 draw 3..4. % stem "Circle-circle operator"; cpen; call charbegin('175,14,0,0,pa+6pu,6pu-pa,0); lft0x6=round (u-oo); y6=good0 a; x8=good0 .5r; y8-y6=x8-x6; call circle(1,2,3,4,5,6,7,8,w0); % bowl x14=good10(x6+4u); x16=x8; y14=y6; y16-y14=x16-x14; call circle(9,10,11,12,13,14,15,16,w10). "Circle-asterisk operator"; cpen; call charbegin('176,14,0,0,pa+6pu,6pu-pa,0); lft0x6=round (u-oo); y6=good0 a; x8=good0 .5r; y8-y6=x8-x6; call circle(1,2,3,4,5,6,7,8,w0); % bowl new w99; w99=round(.6pixels.pw+blacker); % thinner than hairline new w98; w98=round .7[w99,w1]; x14-x10=good1((.5sqrt3)lft1 3.75u); y8-y11=x2-x14; y12-y4=x2-x14; y10=good1 a; x10=x8; x11=x12=x10; x2-x14=x13-x6; x15=x13; x16=x14; y13=y14; y15=y16; y13-y15=y11-y10; y10=.5[y13,y15]; call `a cdraw(11,10,98,99); % upper arm call `b cdraw(12,10,98,99); % lower arm call `c cdraw(13,10,98,99); % upper left arm call `d cdraw(14,10,98,99); % upper right arm call `e cdraw(15,10,98,99); % lower left arm call `f cdraw(16,10,98,99). % lower right arm "New Circle-minus operator"; call charbegin('177,14,0,0,pa+6pu,6pu-pa,0); cpen; lft0x6=round u; y6=good0 a; x8=good0 .5r; y8-y6=x8-x6; call circle(1,2,3,4,5,6,7,8,w0); % bowl x9=good0(x6+hzsep); x10=good0(x2-hzsep); y9=y10=y6; w0 draw 9..10. % bar % The following redefinitions are made for the circledR and circledS, % char's 162 and 163 new w99, w98, w97, w96, w95, w94, w93, w92, w91, w90; w90=.6w0; w91=.6w1; w92=.6w2; w93=.6w3; w94=.6w4; w95=.6w5; w96=.6w6; w97=.6w7; w98=.6w8; w99=.6w9; "Circled R"; call charbegin('162,18,0,0,ph,pd,0); cpen; top10y58=h+oo; bot10y54=-d-oo; lft10x56=round u; rt10x52=round(r-u); call circle(51,52,53,54,55,56,57,58,w10); % enclosing cirle new w80; w80=round(w94-scorr); new w87; w87=.8w17; new delta; delta=0; hpen; x4=x58; rt5x5=round(.6[x58,x51]); top80y1=.25[m,y57]; bot80y2=o; x1=x2=good80(.75[x56,x58]); w80 draw 1..2; % stem x3=x4; x14=x13=x1; vpen; top87y13=top96y1; y14=y4=good96 .5y1; y13=y3; y5=.5[top96y4,bot87y3]; x93=x3; y93=y13; x94=x4; y94=y14; w87 draw 13..93; % upper bar line call `g arc(0,3,87,delta,5,95); call `h arc(0,4,96,delta,5,95); % bowl w6 draw 14..94; % lower bar line cpen; x8=good95(x5-.5u); lft95x8=lft96x7; rt95x8=rt96x9; y7=y8=y9=1/3[y2,y4]; x6=x7; new aa; x6=aa[x4,x9]; y6=aa[y4,y9]; w96 ddraw 4{1,0}..6{0,-1}..7, 4{1,0}..9{0,-1}..9; % upper tail y17=y19=y8; lft20x17=lft96x7; rt20x19=rt96x9; bot20y10=0; y11=y10+w96-w20; y12=y22=.25[y2,y4]; x11=.5[x19,x12]; rt20x22=round(x51-u); x12=x22-(w90-w20); new aa; x10=aa[x11,x12]; y10=aa[y11,y12]; new ss; ss=.7578582832552; % $2^{-2/5}$ x20=ss[x10,x17]; x21=ss[x11,x19]; y20=ss[y17,y10]; y21=ss[y19,y11]; w20 ddraw 17{0,-1}..20{x10-x17,y10-y17}..10{1,0}, 19{0,-1}..21{x11-x19,y11-y19}.. 11{1,0}; % lower tail call `a serif(1,80,2,1/3,-.5ucs); call `b serif(1,80,2,1/3,.25ucs); call `c ubserif(1,80,-.5ucs,.25ucs); % upper serif call `d serif(2,80,1,1/3,-.5ucs); call `e serif(2,80,1,1/3,.5ucs); call `f bserif(2,80,-.5ucs,.5ucs). % lower serif "Circled S"; call charbegin('163,18,0,0,ph,pd,0); cpen; top10y58=h+oo; bot10y54=-d-oo; lft10x56=round u; rt10x52=round(r-u); call circle(51,52,53,54,55,56,57,58,w10); % enclosing cirle new w89; % thickness at the middle new w88; % mean thickness at edges new w81,w82; % actual thickness at edges new w86; % thickness at top new w85; % thickness at bottom w86=w85=w96+.7w16-w0; w89=round .5[w94,w95]; w88=round .35[w90,w94]; w81=round(w88-scorr); w82=round(w88+scorr); cpen; top86y1=.5[m,y57]; bot85y5=-o; x3=.5r; y3=.52y1; lft81x2=(.65[x56,x58]); rt82x4=round(.6[x58,x51]); x31=x32=x1; x33=x34=x5; top96y31=top86y1; bot96y32=bot86y1; top96y33=top85y5; bot96y34=bot85y5; x1=x3-.35u; x5=x3+.35u; lft90x6=lft81x2; rt90x7=(rt82x4-.35u); y6=good96 1/3y1; y7=good96 2/3y1; bot90y8=0; y9=y6; x8=x6; rt90x9=x6+w94; top90y10=y1; y11=y7; x10=x7; lft90x11=x7-w94; hpen; w90 ddraw 6..8,9..8; % lower serif ddraw 7..10,11..10; % upper serif rpen#; w94+1 draw 6{0,-1}..5{1,0}; % erase excess lpen#; w94+1 draw 7{0,1}..1{-1,0}; % ditto hpen; w90 ddraw 6{0,-1}..33{1,0}, 6{0,-1}..34{1,0}; % lower left stroke ddraw 7{0,1}..31{-1,0}, 7{0,1}..32{-1,0}; % upper right stroke call `a sdraw(1,2,3,4,5,w81,w82,w89,w86,w85,-hh/(50u)). % middle stroke