subroutine snip(var pht): % breaks a box for the alphatype in large pointsizes crsbreak pht.cf. % Lifted from cmbase in % 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): % % less than but not equal sign, greater than but not equal sign, % slashed reflexive subset sign, slashed reflexive superset sign, % slashed left and right pointing triangles, less than but not % similar to sign, greater than but not similar to sign, not similar % to sign, approximately equal to or similar sign, and the times/divide % operator input blackboard; "Less than but not equal to sign (variation with slash through 2 bars)"; call charbegin('000,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+2peqsep)+peqsep-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 top10y8=bot10y3; y8-y4=y6-y10; x8=x10=.5[x4,x5]; draw 8..10. % negation "Greater than but not equal to sign (variation with slash through 2 bars)"; call charbegin('001,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+2peqsep)+peqsep-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 top10y8=bot10y3; y8-y4=y6-y10; x8=x10=.5[x4,x5]; draw 8..10. % negation "Not Less than or equal to sign"; call charbegin('002,14,0,0,pa+.5(plessep+4peqsep),.5(plessep+4peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; x6=round(x1+2.5u); x7=round(x2-2.5u); y2=good10(a+.5(lessep+eqsep)); y1=good10(y2-.5lessep); .5[y2,y3]=y1; y3-y4=eqsep; y4-y6=eqsep; y7-y2=eqsep; w10 draw 2..1..1..3; % diagonals x4=x1; x5=x2; y4=y5; draw 4..5; draw 6..7. % bar "Not Greater than or equal to sign"; call charbegin('003,14,0,0,pa+.5(plessep+3peqsep),.5(plessep+3peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; x6=round(x2+2.5u); x7=round(x1-3u); y2=good10(a+.5(lessep+eqsep)); y1=good10(y2-.5lessep); .5[y2,y3]=y1; y3-y4=eqsep; y4-y6=eqsep; y7-y2=eqsep; w10 draw 2..1..1..3; % diagonals x4=x1; x5=x2; y4=y5; draw 4..5; draw 6..7. % bar "Not Less than sign"; call charbegin('004,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+2peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; x6=round(x1+2.5u); x7=round(x2-2.5u); y2=good10(a+.5lessep); y1=good10(y2-.5lessep); y2-y1=y1-y3; y3-y6=eqsep; y7-y2=eqsep; w10 draw 2..1..1..3; % diagonals draw 6..7. "Not Greater than sign"; call charbegin('005,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+2peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; x6=round(x2+2.5u); x7=round(x1-3u); y2=good10(a+.5lessep); y1=good10(y2-.5lessep); y2-y1=y1-y3; y3-y6=eqsep; y7-y2=eqsep; w10 draw 2..1..1..3; % diagonals draw 6..7. "Does not precede sign"; call charbegin('006,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+2peqsep)-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=round(x1+2.5u); x7=round(x2-2.5u); y3-y6=eqsep; y7-y2=eqsep; w10 draw (4..)2..1{-1,0}..1{1,0}..3(..5); % diagonals draw 6..7. % slash "Does not follow sign"; call charbegin('007,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+2peqsep)-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=round(x2+2.5u); x7=round(x1-3u); y3-y6=eqsep; y7-y2=eqsep; w10 draw (4..)2..1{1,0}..1{-1,0}..3(..5); % diagonals draw 6..7. % slash "Less than but not equal to sign (variation with 2 bars)"; call charbegin('010,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+2peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; x4=x6=x1; x5=x7=x2; y4=y5; y6=y7; 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 draw 4..5; draw 6..7; % bars y10=.5[y3,y5]; y10-y5=y7-y11; x11=round(x6+2u); x10=round(x7-2u); draw 10..11. %slash "Greater than but not equal to sign (variation with 2 bars)"; call charbegin('011,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+2peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; x4=x6=x1; x5=x7=x2; y4=y5; y6=y7; 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 draw 4..5; draw 6..7; % bar y10=.5[y3,y5]; y10-y5=y7-y11; x11=round(x7+2u); x10=round(x6-2u); draw 10..11. %slash "Not less than or equal to sign (variation with diagonal bar)"; call charbegin('012,14,0,0,pa+.5(plessep+3peqsep),.5(plessep+3peqsep)-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; y5-y6=eqsep; y7-y2=eqsep; x6=round(x1+2.5u); x7=round(x2-2.5u); w10 draw 2..1..1..3; % diagonals draw 6..7; % slash draw 4..5. % bar "Not greater than or equal to sign (variation with diagonal bar)"; call charbegin('013,14,0,0,pa+.5(plessep+3peqsep),.5(plessep+3peqsep)-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; y5-y6=eqsep; y7-y2=eqsep; x6=round(x2+2.5u); x7=round(x1-3u); w10 draw 2..1..1..3; % diagonals draw 6..7; % slash draw 4..5. % bar "Less than, not equal to sign (one bar)"; call charbegin('014,awd+2,0,0,pa+.5(plessep+2peqsep),.5(plessep+1peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; y2=good10(a+.5(lessep+1eqsep)); y1=good10(y2-.5lessep); .5[y2,y3]=y1; y3-y4=eqsep; w10 draw 2..1..1..3; % diagonals x4=x1; x5=x2; y4=y5; draw 4..5; % bar y7-y4=y4-y8=.5eqsep; x5-x7=x8-x4; x8=1/3[x4,x5]; draw 7..8. % slash "Greater than, not equal to sign (one bar)"; call charbegin('015,awd+2,0,0,pa+.5(plessep+2peqsep),.5(plessep+1peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; y2=good10(a+.5(lessep+1eqsep)); y1=good10(y2-.5lessep); .5[y2,y3]=y1; y3-y4=eqsep; w10 draw 2..1..1..3; % diagonals x4=x1; x5=x2; y4=y5; draw 4..5; % bar y7-y4=y4-y8=.5eqsep; x4-x7=x8-x5; x8=1/3[x5,x4]; draw 7..8. % slash "Does not precede or equal sign"; call charbegin('016,14,0,0,pa+.5(plessep+3peqsep),.5(plessep+3peqsep)-pa,0); vpen; lft10x1=round u; x2=x3=r-x1; y2=good10(a+.5(contsep+eqsep)); y1=good10(y2-.5contsep); y1=.5[y2,y3]; x4=x5=x2; y4=y2+b; y5=y3-b; x6=x1; x7=x2; y6=y7; y6=y3-eqsep; x8=round(x6+2.5u); x9=round(x4-2.5u); y6-y8=eqsep; y9-y2=eqsep; w10 draw (4..)2..1{-1,0}..1{1,0}..3(..5); % diagonals draw 6..7; draw 8..9. % bar and slash "Does not follow or equal sign"; call charbegin('017,14,0,0,pa+.5(plessep+3peqsep),.5(plessep+3peqsep)-pa,0); vpen; lft10x2=round u; x2=x3=r-x1; y2=good10(a+.5(contsep+eqsep)); y1=good10(y2-.5contsep); y1=.5[y2,y3]; x4=x5=x2; y4=y2+b; y5=y3-b; x6=x1; x7=x2; y6=y7; y6=y3-eqsep; x8=round(x2+2.5u); x9=round(x1-3u); y6-y8=eqsep; y9-y2=eqsep; w10 draw (4..)2..1{1,0}..1{-1,0}..3(..5); % diagonals draw 6..7; draw 8..9. % bar and slash "Precedes with slashed under twidle"; call charbegin('020,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+2peqsep)-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 x31-x103=x104-x30=1/3(x104-x103); y30=1/3[y104,y53]; y30-y104=y103-y31; w10 draw 30..31. "Follows with slashed under twidle"; call charbegin('021,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+2peqsep)-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 x31-x103=x104-x30=1/3(x104-x103); y30=1/3[y104,y53]; y30-y104=y103-y31; w10 draw 30..31. "Less than but not similar to sign"; call charbegin('022,14,0,0,pa+2.5peqsep,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 x31-x103=x104-x30=1/3(x104-x103); y30=1/3[y104,y53]; y30-y104=y103-y31; w10 draw 30..31. "Greater than but not similar to sign"; call charbegin('023,14,0,0,pa+2.5peqsep,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 x31-x103=x104-x30=1/3(x104-x103); y30=1/3[y104,y53]; y30-y104=y103-y31; w10 draw 30..31. "Not less than or equal to sign (variation with 2 bars)"; call charbegin('024,14,0,0,pa+.5(plessep+4peqsep),.5(plessep+4peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; x4=x6=x1; x5=x7=x2; y4=y5; y6=y7; x8=round(x1+2.5u); x9=round(x2-2.5u); y2=good10(a+.5(lessep+2eqsep)); y1=good10(y2-.5lessep); .5[y2,y3]=y1; y3-y4=eqsep; y4-y6=eqsep; y6-y8=eqsep; y9-y2=eqsep; w10 draw 2..1..1..3; % diagonals draw 4..5; draw 6..7; % bars draw 8..9; % slash if mode=2: call snip(pa-.5(plessep-peqsep)); fi. "Not greater than or equal to sign (variation with 2 bars)"; call charbegin('025,14,0,0,pa+.5(plessep+4peqsep),.5(plessep+4peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; x4=x6=x1; x5=x7=x2; y4=y5; y6=y7; x8=round(x2+2.5u); x9=round(x1-3u); y2=good10(a+.5(lessep+2eqsep)); y1=good10(y2-.5lessep); .5[y2,y3]=y1; y3-y4=eqsep; y4-y6=eqsep; y6-y8=eqsep; y9-y2=eqsep; w10 draw 2..1..1..3; % diagonals draw 4..5; draw 6..7; % bar draw 8..9; % slash if mode=2: call snip(pa-.5(plessep-peqsep)); fi. "Precedes but not equal to sign (variation with 2 bars)"; call charbegin('026,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+2peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; x4=x6=x1; x5=x7=x2; y4=y5; y6=y7; y2=good10(a+.5(lessep+2eqsep)); y1=good10(y2-.5lessep); .5[y2,y3]=y1; y3-y4=eqsep; y4-y6=eqsep; x12=x13=x2; y12=y2+b; y13=y3-b; w10 draw (12..)2..1{-1,0}..1{1,0}..3(..13); % diagonals draw 4..5; draw 6..7; % bars y10=.5[y3,y5]; y10-y5=y7-y11; x11=round(x6+2u); x10=round(x7-2u); draw 10..11. %slash "Follows but not equal to sign (variation with 2 bars)"; call charbegin('027,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+2peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; x4=x6=x1; x5=x7=x2; y4=y5; y6=y7; y2=good10(a+.5(lessep+2eqsep)); y1=good10(y2-.5lessep); .5[y2,y3]=y1; y3-y4=eqsep; y4-y6=eqsep; x12=x13=x2; y12=y2+b; y13=y3-b; w10 draw (12..)2..1{1,0}..1{-1,0}..3(..13); % diagonals draw 4..5; draw 6..7; % bar y10=.5[y3,y5]; y10-y5=y7-y11; x11=round(x7+2u); x10=round(x6-2u); draw 10..11. %slash "Precedes with two slashed under twiddles"; call charbegin('030,14,0,0,pa+.5(plessep+3peqsep),.5(plessep+3peqsep)-pa,0); cpen; lft10x51=round 1.5u; x52=x53=r-x51; y52=good10(a+.5(.6lessep+3.5eqsep)); y51=good10(y52-.3lessep); .5[y52,y53]=y51; x54=x55=x53; 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 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 x30=x27; x31=x21; y30=1/3[y104,y53]; y30-y104=y303-y31; w10 draw 30..31. "Follows with two slashed under twiddles"; call charbegin('031,14,0,0,pa+.5(plessep+3peqsep),.5(plessep+3peqsep)-pa,0); cpen; lft10x52=round 1.5u; x52=x53=r-x51; y52=good10(a+.5(.6lessep+3.5eqsep)); y51=good10(y52-.3lessep); .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 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 x30=x27; x31=x21; y30=1/3[y104,y53]; y30-y104=y303-y31; w10 draw 30..31. "Less than but not approximately equal to sign"; call charbegin('032,14,0,0,pa+.5(plessep+3peqsep),.5(plessep+3peqsep)-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 x30=x27; x31=x21; y30=1/3[y104,y53]; y30-y104=y303-y31; w10 draw 30..31. "Greater than but not approximately equal to sign"; call charbegin('033,14,0,0,pa+.5(plessep+3peqsep),.5(plessep+3peqsep)-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 x30=x27; x31=x21; y30=1/3[y104,y53]; y30-y104=y303-y31; w10 draw 30..31. "Not similar sign"; call charbegin('034,14,0,0,pa+2.5peqsep,2peqsep-pa,0); vpen; y101=good10(a+.4eqsep); y101-y102=round .8eqsep; lft10x103=round u; y105=.5[y101,y102]; y103=y102; y104=y101; x104=r-x103; x105=r-x105; new slope; slope=5.5u/(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=.4w10.dirx; chy=.4w10.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; x201=good10(x105-3u); x202=good10(x105+3u); y201=y103-eqsep; y202=y104+eqsep; cpen; w0 ddraw 103{.1(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{.1(x104-x102),y104-y102}, 103{.1(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{.1(x104-x102),y104-y102}; % the s-curve w10 draw 201..202. % diagonal "Not similar nor equal sign"; call charbegin('035,14,0,0,pa+2.5peqsep,2.5peqsep-pa,0); vpen; y101=good10(a+1.3eqsep); 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}; % the s-curve x301=good10(x105-3u); x302=good10(x105+3u); y301=y203-eqsep; y302=y104+eqsep; y201=y202=y102-eqsep; x201=x103; x202=x104; y203=y204=y202-eqsep; x203=x201; x204=x202; cpen; w10 draw 201..202; draw 203..204; draw 301..302. "Slashed reflexive subset sign (one bar, slash thru bottom hook)"; call charbegin('040,awd+2,0,0,pa+.5(pcontsep+2peqsep),.5(pcontsep+1peqsep)-pa,0); cpen; lft10x1=round 1.75u; x2=x3=r-x1; y2=good10 (a+.5(contsep+1eqsep)); y1=good10 (y2-.5contsep); .5[y2,y3]=y1; y3-y6=eqsep; x4=x5=good10 .5r; y4=y2; y5=y3; w10 draw 2..4{-1,0}..1{0,-1}..5{1,0}..3; % stroke lft10x6=rt10x1; x7=x2; y6=y7; draw 6..7; % bar y10=y3+.5eqsep; y10-y3=y7-y11; x11=round(x6+2.5u); x10=round(x7-2.5u); draw 10..11. %slash "Slashed reflexive superset sign (one bar, slash thru bottom hook)"; call charbegin('041,awd+2,0,0,pa+.5(pcontsep+2peqsep),.5(pcontsep+1peqsep)-pa,0); cpen; lft10x2=round 1.75u; x2=x3=r-x1; y2=good10 (a+.5(contsep+1eqsep)); y1=good10 (y2-.5contsep); .5[y2,y3]=y1; y3-y6=eqsep; x4=x5=.5r; y4=y2; y5=y3; w10 draw 2..4{1,0}..1{0,-1}..5{-1,0}..3; % stroke rt10x6=lft10x1; x7=x2; y6=y7; draw 6..7; % bar y10=y3+.5eqsep; y10-y3=y7-y11; x11=round(x7+1.5u); x10=round(x6-3.5u); draw 10..11. %slash "Slashed reflexive subset sign (slash thru hook and 2 bars)"; call charbegin('042,awd+2,0,0,pa+.5(pcontsep+3peqsep),.5(pcontsep+3peqsep)-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 rt10x10=lft10x7; lft10x11=rt10x6; y10-y2=y8-y11=.5eqsep; draw 10..11. %slash "Slashed reflexive superset sign (slash thru hook and 2 bars)"; call charbegin('043,awd+2,0,0,pa+.5(pcontsep+3peqsep),.5(pcontsep+3peqsep)-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 rt10x10=lft10x6; lft10x11=rt10x7; y10-y2=y8-y11=.5eqsep; draw 10..11. %slash "Non-reflexive subset sign (variation with 2 bars)"; call charbegin('044,awd+2,0,0,pa+.5(pcontsep+3peqsep),.5(pcontsep+3peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; y2=good10 (a+.5(contsep+3.25eqsep)); y1=good10 (y2-.5contsep); .5[y2,y3]=y1; 2/3(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 y10=.5[y3,y7]; y10-y7=y9-y11; x11=round(x6+2u); x10=round(x7-2u); draw 10..11. %slash "Non-reflexive superset sign (variation with 2 bars)"; call charbegin('045,awd+2,0,0,pa+.5(pcontsep+3peqsep),.5(pcontsep+3peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3; x1=r-x2; y2=good10 (a+.5(contsep+3eqsep)); y1=good10 (y2-.5contsep); .5[y2,y3]=y1; 2/3(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 y10=.5[y3,y7]; y10-y7=y9-y11; x11=round(x7+2u); x10=round(x6-2u); draw 10..11. %slash "Slashed reflexive subset sign (2 bars, slash thru bottom hook)"; call charbegin('046,awd+2,0,0,pa+.5(pcontsep+3peqsep),.5(pcontsep+3peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; y2=good10 (a+.5(contsep+2.75eqsep)); 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 y10=y3+.75eqsep; y10-y3=y9-y11; lft10x11=1/3[x5,x1]; rt10x10=lft10x7; draw 10..11. %slash "Slashed reflexive superset sign (2 bars, slash thru bottom hook)"; call charbegin('047,awd+2,0,0,pa+.5(pcontsep+3peqsep),.5(pcontsep+3peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3; x1=r-x2; y2=good10 (a+.5(contsep+2.75eqsep)); 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 y10=y3+.75eqsep; y10-y3=y9-y11; lft10x11=rt10x7; rt10x10=1/3[x5,x1]; draw 10..11. %slash "Non-reflexive subset sign (variation with 1 bar)"; call charbegin('050,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=1.5eqsep; x4=x5=good10 .5r; y4=y2; y5=y3; w10 draw 2..4{-1,0}..1{0,-1}..5{1,0}..3; %stroke lft10x6=rt10x1; x7=x2; y6=y7; draw 6..7; %bar x7-x10=x11-x6; x11=1/3[x6,x7]; .5eqsep=y10-y7=y7-y11; draw 10..11. %slash "Non-reflexive superset sign (variation with 1 bar)"; call charbegin('051,awd+2,0,0,pa+.5(pcontsep+2peqsep),.5(pcontsep+2peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; y2=good10 (a+.5(contsep+2eqsep)); y1=good10 (y2-.5contsep); .5[y2,y3]=y1; y3-y6=1.5eqsep; x4=x5=good10 .5r; y4=y2; y5=y3; w10 draw 2..4{1,0}..1{0,-1}..5{-1,0}..3; %stroke rt10x6=lft10x1; x7=x2; y6=y7; draw 6..7; %bar x6-x10=x11-x7; x11=1/3[x7,x6]; .5eqsep=y10-y7=y7-y11; draw 10..11. %slash "Slashed-Reflexive subset sign"; call charbegin('052,14,0,0,pa+.5(plessep+3peqsep),.5(plessep+3peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; y2=good10 (a+.5(contsep+eqsep)); y1=good10 (y2-.5contsep); .5[y2,y3]=y1; y3-y6=eqsep; x4=x5=good10 .5r; y4=y2; y5=y3; w10 draw 2..4{-1,0}..1{0,-1}..5{1,0}..3; % stroke lft10x6=rt10x1; x7=x2; y6=y7; draw 6..7; % bar rt10x8=round(r-3u); lft10x9=round 3u; y8=y2+eqsep; .5[y8,y9]=a; draw 8..9. % diagonal "Slashed-Reflexive superset sign"; call charbegin('053,14,0,0,pa+.5(plessep+3peqsep),.5(plessep+3peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; y2=good10 (a+.5(contsep+eqsep)); y1=good10 (y2-.5contsep); .5[y2,y3]=y1; y3-y6=eqsep; x4=x5=.5r; y4=y2; y5=y3; w10 draw 2..4{1,0}..1{0,-1}..5{-1,0}..3; % stroke rt10x6=lft10x1; x7=x2; y6=y7; draw 6..7; % bar rt10x8=round(r-3u); lft10x9=round 3u; y8=y2+eqsep; .5[y8,y9]=a; draw 8..9. % diagonal "Slashed double vertical line (norm or cardinality)"; call charbegin('054,12,0,0,ph+pb,ph+pb-2pa,0); cpen; x1=x2=good10 4u; top10y1=h+b; .5[y1,y2]=a; x3=x4=r-x1; y3=y1; y4=y2; w10 draw 1..2; draw 3..4; % stems x5=round(x1-2u); x6-x3=x1-x5; y5-y2=y1-y6=.25(y1-y2); draw 5..6. %slash "Does not divide sign"; call charbegin('055,9,0,0,ph,ph-2pa,0); cpen; lft10x3=round u; x1=x2=good10 .5r; x2-x3=x4-x2; top10y1=h; .5[y1,y2]=a; top10y4-bot10y3=a; y3=good10 a; w10 draw 1..2; % stem draw 3..4. % slash "Slashed short vertical line"; call charbegin('056,7,0,0,ph+pb,ph+pb-2pa,0); cpen; x1=x2=good10 .5r; top10y1=m; bot10y2=0; lft10x3=round u; x4=r-x3; y4=.3[a,m]; y3=m-y4; w10 draw 1..2; % stem draw 3..4. "Slashed double short vertical line"; call charbegin('057,9,0,0,ph+pb,ph+pb-2pa,0); rtwo=r-1; cpen; x1=x2=good10 (.3[1,rtwo]); top10y1=m; bot10y2=0; x3=x4=r-x1; y3=y1; y4=y2; lft10x5=round u; x6=r-x5; y6=.5[a,m]; y5=m-y6; w10 draw 1..2; draw 3..4; % stems draw 5..6. "Does not prove"; cpen; call charbegin('060,14,0,0,ph,0,0); top10y1=h; bot10y2=0; y3=y4=good10 .5h; lft10x5=round u; rt10x4=r-x5; x1=x2=x3; x1=good10(x5+hzsep); x6=x4; y5=good10(y2-o); y6=good10(y1+oo); w10 draw 1..2; % stem draw 3..4; % bar draw 5..6. % diagonal "Does not force"; cpen; call charbegin('061,17,0,0,ph,0,0); top10y1=h; bot10y2=0; y3=y4=good10 .5h; y5=y1; y6=y2; y7=y2-o; y8=good10(y1+oo); lft10x7=round u; rt10x4=r-x7; x1=x5+hzsep; x1=x2=x3; x6=x5; x5=good10(x7+hzsep); x8=x4; w10 draw 1..2; % stem draw 5..6; % vert bar draw 3..4; % bar draw 7..8. % diagonal "Does not satisify"; call charbegin('062,14,0,0,ph,0,0); cpen; top10y1=h; bot10y2=0; y3=y0+(round .5eqsep); y5=y0-(round .5eqsep); y4=y3; y6=y5; y0=good10 .5[y1,y2]; y7=good10(y2-o); y8=good10(y1+oo); lft10x7=round u; rt10x4=r-x7; x1=x2=x3=x5; x4=x6; x1=good10(x7+hzsep); x8=x4; w10 draw 1..2; % stem draw 3..4; % upper bar draw 5..6; % lower bar draw 7..8. % diagonal "Does not force satisfaction"; call charbegin('063,17,0,0,ph,0,0); cpen; top10y1=h; bot10y2=0; y7=y1; y8=y2; y9=y2-o; y10=good10(y1+oo); lft10x9=round u; rt10x4=r-x9; x1=x7+hzsep; y3=y0+(round .5eqsep); y5=y0-(round .5eqsep); y4=y3; y6=y5; y0=good10 .5[y1,y2]; x1=x2=x3=x5; x8=x7; x7=good10(x9+hzsep); x10=x4=x6; w10 draw 1..2; % stem draw 7..8; % vert bar draw 3..4; % bar draw 5..6; % bar draw 9..10. % diagonal "Slashed right pointing triangle with bar under"; call charbegin('064,14,0,0,pa+.5(plessep+3peqsep),.5(plessep+3peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; x4=x2; x5=x1; x6=round(x2+2.5u); x7=round(x1-3u); y1=good10(a+.5eqsep); y2=good10(y1+.5lessep); y2-y1=y1-y3; y4=good10(y3-eqsep); y4=y5; y4-y6=eqsep; y7-y2=eqsep; w10 draw 2..1..1..3; draw 2..3; draw 4..5; draw 6..7. "Slashed left pointing triangle with bar under"; call charbegin('065,14,0,0,pa+.5(plessep+3peqsep),.5(plessep+3peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; x4=x2; x5=x1; x6=round(x1+2.5u); x7=round(x2-2.5u); y2=good10(a+.5(lessep+eqsep)); y1=good10(y2-.5lessep); .5[y2,y3]=y1; y3-y4=eqsep; y4-y6=eqsep; y7-y2=eqsep; y5=y4; w10 draw 2..1..1..3; draw 2..3; draw 4..5; draw 6..7. "Slashed left-pointing triangle"; call charbegin('066,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+peqsep)-pa,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; x6=round(x1+2.5u); x7=round(x2-2.5u); y2=good10(a+.5lessep); y1=good10(y2-.5lessep); y2-y1=y1-y3; y3-y6=.5eqsep; y7-y2=.5eqsep; w10 draw 2..1..1..3..3..2; % diagonals draw 6..7. "Slashed right-pointing triangle"; call charbegin('067,14,0,0,pa+.5(plessep+2peqsep),.5(plessep+peqsep)-pa,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; x6=round(x2+2.5u); x7=round(x1-3u); y2=good10(a+.5lessep); y1=good10(y2-.5lessep); y2-y1=y1-y3; y3-y6=.5eqsep; y7-y2=.5eqsep; w10 draw 2..1..1..3..3..2; % diagonals draw 6..7. "Leftward slashed arrow"; call charbegin('070,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; 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; x9=good10(x2-3.5u); x10=good10(x3+3.5u); top10y9=y4; bot10y10=y3; 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 cpen; w10 draw 9..10. "Rightward slashed arrow"; call charbegin('071,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; 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; x9=good10(x4-3.5u); x10=good10(x2+3.5u); top10y9=y4; bot10y10=y3; 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 cpen; w10 draw 9..10. "Slashed double leftward arrow"; call charbegin('072,20,0,0,.18ph+.5prt+.5(px-pe)+pa, .18ph+.5prt+.5(px-pe)-pa,0); cpen; lft10x1=x0=round 2u; rt10x2=round(r-2u); x11=x1; x12=x2; y5=y8=good10 a; y1=y2; y11=y12; y1=y5+(round .5eqsep); y11=y5-(round .5eqsep); w10 draw 1..2; draw 11..12; % bars hpen; lft1x8=x0; 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 x20=round (2/3[x1,x2]+2.5u)=x21+5u; y20=y4; y21=y3; cpen; w10 draw 20..21. %slash "Slashed double rightward arrow"; call charbegin('073,20,0,0,.18ph+.5prt+.5(px-pe)+pa, .18ph+.5prt+.5(px-pe)-pa,0); cpen; lft10x2=round 2u; rt10x1=x0=round(r-2u); x11=x1; x12=x2; y5=y8=good10 a; y1=y2; y11=y12; y1=y5+(round .5eqsep); y11=y5-(round .5eqsep); w10 draw 1..2; draw 11..12; % bars hpen; rt1x8=x0; 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 x20=round (2/3[x1,x2]+2.5u)=x21+5u; y20=y4; y21=y3; cpen; w10 draw 20..21. %slash "Slashed double left-and-right arrow"; call charbegin('074,20,0,0,.18ph+.5prt+.5(px-pe)+pa, .18ph+.5prt+.5(px-pe)-pa,0); cpen; lft10x2=x10=round u; rt10x1=x0=round(r-u); x11=x1; x12=x2; y5=y8=good10 a; y1=y2; y11=y12; y1=y5+(round .5eqsep); y11=y5-(round .5eqsep); w10 draw 1..2; draw 11..12; % bars hpen; rt1x8=x0; lft1x18=x10; x5-x8=x8-x3=x13-x18=x18-x15=1.5(fixwidth[3u,6u]+eps); x3=x4=x6=x7; x13=x14=x16=x17; y3-y6=y11-y3=y4-y1=y7-y4=.18h+eps; y13=y3; y14=y4; y15=y5; y16=y6; y17=y7; y18=y8; rpen#; w10+w1 ddraw (5..)8..3(..6), 11..11; % erase excess at lower right hpen; draw (|w1|5..)8..|w0|3(..6); % lower right 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 right point lpen#; w10+w1 ddraw (15..)18..13(..16), 12..12; % erase excess at lower left hpen; draw (|w1|15..)18..|w0|13(..16); % lower left point lpen#; w10+w1 ddraw (15..)18..14(..17), 2..2; % erase excess at upper left hpen; draw (|w1|15..)18..|w0|14(..17); % upper left point x20=x3-2u; x21-x13=x3-x20; y20=y4; y21=y3; w10 draw 20..21. %slash "Double headed slashed arrow"; call charbegin('075,18,0,0,.24ph+.5prt+pa,.24ph+.5prt-pa,0); cpen; lft10x2=x10=round u; rt10x1=x0=round(r-u); y1=y2=y5=y8=good10 a; w10 draw 1..2; % bar hpen; rt1x8=x0; lft1x18=x10; x5-x8=x8-x3=x13-x18=x18-x15=fixwidth[3u,6u]+eps; x3=x4=x6=x7; x13=x14=x16=x17; y3-y6=y1-y3=y4-y1=y7-y4=.24h+eps; y13=y3; y14=y4; y15=y5; y16=y6; y17=y7; y18=y8; rpen#; w10+w1 draw (5..)8..3(..6); % erase excess at lower right hpen; draw (|w1|5..)8..|w0|3(..6); % lower right point rpen#; w10+w1 draw (5..)8..4(..7); % erase excess at upper right hpen; draw (|w1|5..)8..|w0|4(..7); % upper right point lpen#; w10+w1 draw (15..)18..13(..16); % erase excess at lower left hpen; draw (|w1|15..)18..|w0|13(..16); % lower left point lpen#; w10+w1 draw (15..)18..14(..17); % erase excess at upper left hpen; draw (|w1|15..)18..|w0|14(..17); % upper left point x29=good10(x4-3.5u); x30=good10(x13+3.5u); top10y29=y4; bot10y30=y13; w10 draw 29..30. "Times/divide operator"; call charbegin('076,awd+2,0,0,ph,.6awd.pu-pa,0); 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; w10 draw 3..7; % lower right to upper left diagonal draw 5..1; % lower left to upper right diagonal cpen; new w99; w99=.9*w3.dotsize; x11=x5; x13=x14=good99 .5r; x13=.5[x11,x12]; y11=y12=good10 a; w10 draw 11..12; % bar y13=good99(y11+eqsep); y11=.5[y13,y14]; w99 draw 13; draw 14. % dots "Empty set"; cpen; call charbegin('077,2+(phh+po)/pu,0,0,phh,0,pa.slant-.5pu); x8=good0 .5r; top0y8=hh+oo; lft0x6=round .5(r-hh-o); y6=good0 .5hh; call circle(1,2,3,4,5,6,7,8,w0); % bowl x9=x2; x10=x6; top0y9=hh+oo; bot0y10=0; cpen; w0 draw 9..10. "Slashed existential quantifier (Does not exist)"; call charbegin('100,10,0,0,pa+.5(plessep+4peqsep),peqsep,0); cpen; lft10x1=round u; rt10x2=round(r-u); x3=x5=x2; x4=x6-.25u=x1; x7=round(x2-2u); x8=round(x4+2u); top10y1=h; bot10y4=0; y2=y1; y5=y6=.5[y1,y3]; y3=y4; y4-y8=eqsep; y7-y2=eqsep; w10 draw 1..2..2..3..3..4; % upper bar, stem, lower bar draw 5..6; draw 7..8. % middle bar and diagonal %----------------------end of negations - from here on are % characters without negations % (open-face alphabet takes chars '101 thru '132) % the following are from romanu and are inserted to satisfy the % cravings of "mho" mi=0; new mc,lbowl,rbowl,rstem,rv,hic; % quantities used to compute spacing mc=mi/pu; % converts to relative units when $\\{mi}=1$ lbowl=.3phh.slant+.5pu; % used at left of upper-case bowl rbowl=.7phh.slant-.5pu; % used at right of upper-case bowl if pwiv>2pu: rstem=phh.slant+(ucs+usc-1.5)pu; % used at right of tall stem else: rstem=phh.slant+(ucs+usc-2.5)pu+.5pwiv; fi; rv=phh.slant+(ucs+.75usc-1)pu; % used at right of tall diagonal hic=1-.5mi; % used when half the italic correction goes into \\{rtcorr} "Upside-down Omega (mho)"; call charbegin('146,13,mc(2/3pe.slant+.5pu),-.5mc(.75phh.slant-.5pu), phh,0,hic(.75phh.slant-.5pu)); new extra; if pw>.5pwi: extra=w19-w6+2scorr; else: extra=round .75[w19,w9]-w6; fi; y12=y10-extra-.5as; hpen; bot0y1=-o; y2=.3hh; rt5x2=rt0x12=round(r-u); x10=good0(x12-.5u); x6=good0 8.5u; top0y10=hh; y6=y10; x1+x1=x2+x3=x6+x7=x10+x11=x12+x13=r; % left-right symmetry y2=y3; y6=y7; y10=y11; y12=y13; call `a arm(6,10,12,-.1u,-extra); % right arm call `b arm(7,11,13,+.1u,-extra); % left arm lpen#; .5(x6-x7) draw 2{0,1}..6{x6-x2,5/7(y6-y2)}; % erase middle rpen#; .5(x6-x7) draw 3{0,1}..7{x7-x3,5/7(y7-y3)}; % ditto call `a arc(.5theta,1,6,0,2,5); call `b arc(.5theta,1,6,0,3,5); % bowl hpen; draw |w5|2{0,1}..|w0|6{x6-x2,5/7(y6-y2)}; % right diagonal draw |w5|3{0,1}..|w0|7{x7-x3,5/7(y7-y3)}; % left diagonal . "The Scandinavian edth"; call charbegin('147,9,-.5fixwidth,-.5fixwidth,px,0,.5px.slant); cpen; x1=r-x1; % axis of left-right symmetry if w2>1.5u: lft2x2=round .5u; else: x2=good2 1.25u; fi; new w99; w99=.8w2; x1-x2=x3-x1; top6y1=m+round(1.5oo); y2=y3=.5m-hcorr; x4=x1; bot22y4=-oo; call `a arc(theta,1,6,0,2,2); call `b arc(theta,4,22,0,2,2); % left part of bowl call `c arc(theta,1,6,0,3,2); call `d arc(theta,4,22,0,3,2); % right part of bowl cpen; lft6x10=x2; top6y10=h; % end of arm x11=x1; y11=.6[y1,y10]; % cross point of arm call`e arc(0,10,6,0,3,99); %arm hpen; y12=y15=y11; x11-x12=x15-x11; lft99x12=round.5u; % ends of cross stroke y13=.5[m,y11]; y11-y13=y14-y11; x13=x2; x14=x3; % corners of cross stroke draw |w99|12..13..13..|w0|11..|w99|14..14..15. % cross stroke "Similar or equal sign"; call charbegin('150,14,0,0,refht+pa,refht-pa,0); vpen; bot10y2=round(a-mathspread[.45m,.55m]-eps); top10y1-bot10y2=y6-a=round mathspread[.45m,.55m]; lft10x3=round u; y5=.5[y1,y2]; y3=y2; y4=y1; x4=r-x3; x5=r-x5; call `a zdraw(3,1,5,2,4,w10,w10+deltaw,5u/(e-m)); % stroke cpen; y6=y7; lft10x6=round u; x7=r-x6; w10 draw 6..7. % bar "Hebrew letter beth"; call charbegin('151,10,0,0,ph,0,0); new w99; w99=1.25w4; vpen; lft6x1=round u; top6y1=h+oo; % tip of top stroke lft99x2=round(x1+1.5u); top99y2=h-o; % reference points for top bot6y4=bot99y2; rt6x4=good6(r-1.5u); % stroke y3=y2; x3=good99(x4-u); x14=x5=x4; y4-y14=y3-y4; % points on vertical stroke bot6y12=bot99y2; top6y22=top99y2; x12=x22+.5u=x2; % points for ddraw of top y13=y12; y23=y22; x13=x23=x3; % stroke vpen; bot6y6=0; x6=x1; x7=x17=x2; bot99y7=0; top6y17=top99y7; y5=y8=y17; x8=good6(r-.5u); x25=round(x5-.5u); y25=y6; cpen; w6 ddraw 1{0,-1}..22{1,0}..23{1,0}..4{0,-1}, % top stroke 1{0,-1}..12{1,0}..13{1,0}..14{0,-1}; draw 4..5; % vertical stroke cpen; w6 ddraw 6..25..25..8,6{.5,1}..17{1,0}..8..8. % bottom stroke "Hebrew letter gimel"; call charbegin('152,9,0,0,ph,0,0); new w99; w99=1.25w4; new w98; w98=1.5w4; vpen; lft6x1=.35r; top6y1=h+oo; % tip of top stroke x22=x12=x2=good6(x1+u); top99y2=h-2o; top6y22=top99y2; bot6y12=bot99y2; x3=good6(r-1.5u); y2-y3=.25(x3-x2); % end of top stroke top99y3=top6y23; bot99y3=bot6y13; rt6x23=r-u; x13=x3; y4=y3; x4=x3-.5u; % top of vertical stroke y14=y13; x14=x4; bot98y10=0; top98y10=top6y24; y5=y24; % midpoints of vertical x24=x23; x24-x14=2(x14-x5); x6=.5[x5,x24]; bot6y6=0; % bottom of vertical lft6x7=round u; y7=y8=y6; y17=y18=y5; x18-x8=x17-x7=1.5u; x18=.8[x7,x5]; % bottom stroke cpen; w6 ddraw 1{0,-1}..22{x23-x22,y23-y22}..23, 1{0,-1}..12{x13-x12,y13-y12}..13; % top stroke ddraw 14..14..24..24..6,14..14..5..5..6; % vertical ddraw 7{.5,1}..17{1,0}..5,8..8{.5,1}..18{1,0}. % bottom stroke "Hebrew letter daled"; call charbegin('153,10,0,0,ph,0,0); new w99; w99=1.25w4; vpen; lft6x1=round u; top6y1=h+oo; % tip of top stroke lft99x2=round(x1+1.5u); top99y2=h-o; % reference points for top y4=y3=y2; rt6x4=good6(r-u); % stroke x3=good99(x4-1.5u); bot6y12=bot99y2; top6y22=top99y2; x12=x22+.5u=x2; % points for ddraw of top y13=y12; y23=y22; x13=x23=x3; % stroke x5=x3; bot6y5=0; x6=.5[x5,x4]; y6=.6e; % points for vertical stroke cpen; w6 ddraw 1{0,-1}..22{1,0}..23{1,0}..4{0,-1}, % top stroke 1{0,-1}..12{1,0}..13{1,0}..4{0,1}; w6 ddraw 13..5,13..6. % vertical stroke "Less than sign with dot"; call charbegin('154,14,0,0,pa+mathspread[5/8px,3/4px]+prt/2, -pa+mathspread[5/8px,3/4px]+prt/2,0); cpen; lft10x1=round 1.5u; x2=x3=r-x1; y2=good10(a+mathspread[5/8m,3/4m]); .5[y2,y3]=y1=good10 a; y4=y1; x4=.25[x2,x1]; w30 draw 4; w10 draw 2..1..1..3. % diagonals "Greater than sign with dot"; call charbegin('155,14,0,0,pa+mathspread[5/8px,3/4px]+prt/2, -pa+mathspread[5/8px,3/4px]+prt/2,0); cpen; lft10x2=round 1.5u; x2=x3=r-x1; y2=good10(a+mathspread[5/8m,3/4m]); .5[y2,y3]=y1=good10 a; y4=y1; x4=.25[x2,x1]; w30 draw 4; w10 draw 2..1..1..3. % diagonals "Times operator with vertical line on left"; call arithbegin('156); cpen; x7=good10 1/sqrttwo[.5r,u]; y7=good10 1/sqrttwo[a,a+.5r-u]; x5=x7; x1=x3=r-x7; y1=y7; y3=y5; .5[y1,y3]=a; w10 draw 7..3; % upper left to lower right diagonal draw 5..1; % lower left to upper right diagonal draw 7..5. % vertical line on left "Times operator with vertical line on right"; call arithbegin('157); cpen; x7=good10 1/sqrttwo[.5r,u]; y7=good10 1/sqrttwo[a,a+.5r-u]; x5=x7; x1=x3=r-x7; y1=y7; y3=y5; .5[y1,y3]=a; w10 draw 7..3; % upper left to lower right diagonal draw 5..1; % lower left to upper right diagonal draw 1..3. % vertical line on right "Short vertical line"; call charbegin('160,5,0,0,ph+pb,ph+pb-2pa,0); cpen; x1=x2=good10 .5r; top10y1=m; bot10y2=0; w10 draw 1..2. % stem "Short double vertical line"; call charbegin('161,7,0,0,ph+pb,ph+pb-2pa,0); cpen; x1=x2=good10 .25r; top10y1=m; bot10y2=0; x3=x4=r-x1; y3=y1; y4=y2; w10 draw 1..2; draw 3..4. % stems "Short backslash"; call charbegin('162,11,0,0,3.5pu+pa,3.5pu-pa,0); cpen; lft10x1=1.5u; x2=r-x1; y1-y2=x2-x1=2(y1-a); w10 draw 1..2. % diagonal "Similarity sign"; call charbegin('163,awd+2,0,0,px,0,0); vpen; y101=good10(a+.4eqsep); y101-y102=round .8eqsep; lft10x103=round u; y105=.5[y101,y102]; y103=y102; y104=y101; x104=r-x103; x105=r-x105; new slope; slope=5.5u/(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=.4w10.dirx; chy=.4w10.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; x133=x103; y133=y17; x134=x104; y134=y21; cpen; w0 ddraw 133{.1(x101-x133),y101-y133}..21{x105-x133,0}.. 23{slope(y102-y101),y102-y101}.. 25{slope(y102-y101),y102-y101}.. 27{x134-x105,0}..134{.1(x134-x102),y134-y102}, 133{.1(x101-x133),y101-y133}..11{x105-x133,0}.. 13{slope(y102-y101),y102-y101}.. 15{slope(y102-y101),y102-y101}.. 17{x134-x105,0}..134{.1(x134-x102),y134-y102}. % the s-curve "Approximate equality sign"; call charbegin('164,awd+2,0,0,2peqsep+pa,2peqsep-pa,0); vpen; y101=good10(a+1.15eqsep); y101-y102=round .8eqsep; lft10x103=round u; y105=.5[y101,y102]; y103=y102; y104=y101; x104=r-x103; x105=r-x105; new slope; slope=5.5u/(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=.4w10.dirx; chy=.4w10.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; x133=x103; y133=y17; x134=x104; y134=y21; cpen; w0 ddraw 133{.1(x101-x133),y101-y133}..21{x105-x133,0}.. 23{slope(y102-y101),y102-y101}.. 25{slope(y102-y101),y102-y101}.. 27{x134-x105,0}..134{.1(x134-x102),y134-y102}, 133{.1(x101-x133),y101-y133}..11{x105-x133,0}.. 13{slope(y102-y101),y102-y101}.. 15{slope(y102-y101),y102-y101}.. 17{x134-x105,0}..134{.1(x134-x102),y134-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; x333=x133; x334=x134; y133-y333=y134-y334=round 1.5eqsep; cpen; w0 ddraw 333{.1(x301-x333),y301-y333}..221{x305-x333,0}.. 223{slope(y302-y301),y302-y301}.. 225{slope(y302-y301),y302-y301}.. 227{x334-x305,0}..334{.1(x334-x302),y334-y302}, 333{.1(x301-x333),y301-y333}..211{x305-x333,0}.. 213{slope(y302-y301),y302-y301}.. 215{slope(y302-y301),y302-y301}.. 217{x334-x305,0}..334{.1(x334-x302),y334-y302}. % bottom curve "Approximately equal or equal sign (two twiddles and a bar)"; call charbegin('165,14,0,0,pa+2.5peqsep,2peqsep-pa,0); vpen; y101=good10(a+1.7eqsep); 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 y51=y52=y303-eqsep; x51=x303; x52=x304; cpen; w10 draw 51..52. %bottom line "Follows or approximately equal to sign (two twiddles)"; call charbegin('166,14,0,0,pa+.5(plessep+4peqsep),.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; x54=x55=x52; y54-y52=y53-y55=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 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 "Precedes or approximately equal to sign (two twiddles)"; call charbegin('167,14,0,0,pa+.5(plessep+4peqsep),.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; x54=x55=x52; y54-y52=y53-y55=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 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 "Half-circle arrow left"; call charbegin('170,16,0,0,ph,6pu-pa,0); cpen; lft10x1=round(4u); bot10y1=0; x2=good10 (1.5u+.5r); y2=m; x3-x2=x2-x1; y3=y1; call `a arc(theta,2,10,0,3,10); call`b arc(theta,2,10,0,1,10); x10=x15=x18=x1; vpen; bot7y18=y10=bot10y1; lpen#; w10 draw 10..18; rpen#; w10 draw 10..18; % clean up tip of arrow y18-y15=y13-y18=.24h-eps; y13=y14=y16=y17; x13-x16=1.1(x1-x13)=.75(x14-x1)=x17-x14=3u+eps; x24=good10(x14-u); x27=good10(x17-u); % 24 and 27 correct angle of point y24=y27=good10(y14-.25u); % to correspond to curve of arrow lpen#; w10 draw (15..)18..13(..16); % erase excess at left vpen; draw (|w7|15..)18..|w6|13(..16); % left point rpen#; w10 draw (15..)18..24(..27); % erase excess at right vpen; draw (|w7|15..)18..|w6|24(..27). % right point "Half-circle arrow right"; call charbegin('171,16,0,0,ph,6pu-pa,0); cpen; lft10x1=round(u); bot10y1=0; x2=good10 (.5r-1.5u); y2=m; x3-x2=x2-x1; y3=y1; call `a arc(theta,2,10,0,3,10); call`b arc(theta,2,10,0,1,10); x10=x15=x18=x3; vpen; bot7y18=y10=bot10y1; lpen#; w10 draw 10..18; rpen#; w10 draw 10..18; % clean up tip of arrow y18-y15=y13-y18=.24h-eps; y13=y14=y16=y17; x13-x16=.75(x3-x13)=1.1(x14-x3)=x17-x14=3u+eps; x23=good10(x13+u); x26=good10(x16+u); % 23 and 26 correct angle of point y23=y26=good10(y13-.25u); % to correspond to curve of arrow lpen#; w10 draw (15..)18..23(..26); % erase excess at left vpen; draw (|w7|15..)18..|w6|23(..26); % left point rpen#; w10 draw (15..)18..14(..17); % erase excess at right vpen; draw (|w7|15..)18..|w6|14(..17). % right point %------------------------last characters (letters) -- New info ------------- new mi,mc,danger,slant,rhook,lbowl,rbowl,lhook,rstem,hic; mi=1; mc=1/pu; danger=mi/8; slant=.25; trxy slant; rhook=1/3px.slant+.5pw+.5pu; lbowl=.3px.slant-.5pwii+pu; rbowl=.7px.slant+.5pwii-pu; lhook=2/3px.slant-.5pw-.5pu; rstem=px.slant+.5pwi-pu; hic=1-.5mi; "Greek character digamma from sti font"; call charbegin('172,9,0,0,px,pd,0); new w99; w99=.75w2; vpen; top99y1=m+oo; y2=y1; rt99x2=good0(r-1.5u); hpen; lft2x1=1.5u; x3=x4=x1; y4=y5; bot0y4=.2e; bot2y3=-d; x5=good0(x2-u); w2 draw 1..3; %vertical stroke w99 draw 1..2; %top horizontal w0 draw 4..5. %baseline horizontal "Variant lower case kappa"; call charbegin('173,10,0,0,px,0,0); vpen; lft0x1=u; x11=r-x1; y1=good0(.4[e,m]); y11=m-y1; x2=.25[x1,.5r]; x12=r-x2; top2y2=m+oo; bot2y12=0; x3-x2=x2-x1; x13=r-x3; y3=y13=.5m; cpen; lft1x4=rt0x1; x14=r-x4; bot1y4=0; top1y14=m+oo; vpen; draw |w0|1{0,1}..|w2#|2{1,0}..|w0|3{-.2,-1}..4{-1,-1}; %left arm draw |w0|11{0,-1}..|w2#|12{-1,0}..|w0|13{.2,1}..14{1,1}; %right arm cpen; w1 draw 4..14. %diagonal "Diagonal slashed h"; call charbegin('175,9,0,-mc.rhook,ph,0,mi[rhook,0]); cpen; x1=x2=good1 1.5u; x3=good1(r-2.5u); x4=x3-.25u; x10=good1 (-.5u); x20=good1(x3-u); top6y1=h; bot1y2=-oo; y10=good1 .3[y1,y2]; y20=good1(.9y1); w0 draw 10..20; % slash w1 draw 2; % make end point round call `a sserif(1,1,2,.5,-lcs); % serif hpen; w1 draw 1..2; % stem call `b italhstroke(2,3); % stroke call `c skewexit(4,r); % closindg hook draw 3{0,-1}..4{-u,-m}. % link "Straight slashed h"; call charbegin('176,9,0,-mc.rhook,ph,0,mi[rhook,0]); cpen; x1=x2=good1 1.5u; x3=good1(r-2.5u); x4=x3-.25u; x10=good1 (-.5u); x20=good1(x3-u); top6y1=h; bot1y2=-oo; y10=y20=good1 .2[y1,y2]; w0 draw 10..20; % slash w1 draw 2; % make end point round call `a sserif(1,1,2,.5,-lcs); % serif hpen; w1 draw 1..2; % stem call `b italhstroke(2,3); % stroke call `c skewexit(4,r); % closing hook draw 3{0,-1}..4{-u,-m}. % link "Reverse epsilon - such that"; call max(px.slant+.5pw-2pu,-.5pu); call charbegin('177,8,mc.lbowl,-mc.acc,px,0,0); hpen; x0+.5u=x3=3u; x1=.5(r-u); x6=x0; x4=u; x5=-.5u; x2=good2 (r-1.5u); top0y3=m; y0=y1; y2=y5=y6=m-e; bot0y1=-oo; new aa; x4=aa[x6,x5]; y4=(sqrt(1-aa.aa))[y6,y3]; w0 draw 0..1; % strengthen upper point call `a arc(theta,1,6,0,2,2); % upper left of bowl call `b arc(theta,3,6,0,2,2); % lower left of bowl draw 3{-1,0}..4(..5); % lower point draw 2..6. % bar