1This is METAFONT, Version 2.7182818 (preloaded base=trap 2014.1.7) 7 JAN 2014 18:11 2** &trap trap 3(trap.mf 4{if} 5{known(0)} 6{not(true)} 7{false} 8{known("")} 9{true} 10 11/*\`'@#->begingroup.message(SUFFIX1)&str(SUFFIX0)&jobname&char.ASCII'`&s 12tr(SUFFIX2)!endgroup 13(SUFFIX0)<-/*\ 14(SUFFIX1)<-`' 15(SUFFIX2)<-pass2 16{begingroup} 17{message} 18 19`'->begingroup'`endgroup 20(SUFFIX0)<- 21(SUFFIX1)<-`' 22{begingroup} 23 24'`->"\*/" 25{endgroup} 26{("\*/")&("/*\")} 27{jobname} 28{("\*//*\")&("trap")} 29 30'`->"\*/" 31{ASCII("\*/")} 32{char(92)} 33{("\*//*\trap")&("\")} 34{("\*//*\trap\")&("pass2!")} 35 36\*//*\trap\pass2! 37{endgroup} 38{outer} 39{let} 40{delimiters} 41 42! Missing symbolic token inserted. 43<inserted text> 44 INACCESSIBLE 45l.21 ...t next=\; delimiters ^~7 46 ! fi 47Sorry: You can't redefine a number, string, or expr. 48I've inserted an inaccessible symbol so that your 49definition will be completed without mixing me up too badly. 50 51! Extra tokens will be flushed. 52<to be read again> 53 ! 54l.21 ... next=\; delimiters ^~7! 55 fi 56I've just read as much of that statement as I could fathom, 57so a semicolon should have been next. It's very puzzling... 58but I'll try to get myself back together, by ignoring 59everything up to the next `;'. Please insert a semicolon 60now in front of anything that you don't want me to delete. 61(See Chapter 27 of The METAFONTbook for an example.) 62 63! Forbidden token found while scanning to the end of the statement. 64<inserted text> 65 ; 66<to be read again> 67 \ 68l.22 next\ 69 ; % the second pass will now compute silently; the ... 70A previous error seems to have propagated, 71causing me to read past where you wanted me to stop. 72I'll try to recover; but if the error is serious, 73you'd better type `E' or `X' now and fix your file. 74 75{\} 76{batchmode} 77 78! An expression can't begin with `endgroup'. 79<inserted text> 80 0 81<to be read again> 82 endgroup 83l.23 batchmode; ^~7,endgroup 84 pausing:=1; exitif p exitif bool... 85I'm afraid I need some sort of value in order to continue, 86so I've tentatively inserted `0'. You may want to 87delete this zero and insert something else; 88see Chapter 27 of The METAFONTbook for an example. 89 90! Missing ` INACCESSIBLE' has been inserted. 91<to be read again> 92 endgroup 93l.23 batchmode; ^~7,endgroup 94 pausing:=1; exitif p exitif bool... 95I found no right delimiter to match a left one. So I've 96put one in, behind the scenes; this may fix the problem. 97 98! Extra `endgroup'. 99<recently read> endgroup 100 101l.23 batchmode; ^~7,endgroup 102 pausing:=1; exitif p exitif bool... 103I'm not currently working on a `begingroup', 104so I had better not try to end anything. 105 106{pausing:=1} 107{exitif} 108{exitif} 109{pencircle} 110{endfor} 111! Extra `endfor'. 112l.23 ...ean pen pencircle endfor 113 114I'm not currently working on a for loop, 115so I had better not try to end anything. 116 117{scantokens} 118{begingroup} 119{message} 120{char(0)} 121{("^^@")&("watch this")} 122^^@watch this 123{-(1)} 124{char(-1)} 125{("pair p[],';")&("^^ff")} 126{endgroup} 127{pen(future pen)} 128{boolean(true)} 129{true} 130! No loop is in progress. 131<to be read again> 132 pair 133<scantokens> pair 134 p[],';^^ff 135<to be read again> 136 path 137l.25 path 138 p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(... 139Why say `exitif' when there's nothing to exit from? 140 141>> p 142! Undefined condition will be treated as `false'. 143<to be read again> 144 pair 145<scantokens> pair 146 p[],';^^ff 147<to be read again> 148 path 149l.25 path 150 p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(... 151The expression shown above should have had a definite 152true-or-false value. I'm changing it to `false'. 153 154{false} 155! Missing `;' has been inserted. 156<to be read again> 157 pair 158<scantokens> pair 159 p[],';^^ff 160<to be read again> 161 path 162l.25 path 163 p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(... 164After `exitif <boolean exp>' I expect to see a semicolon. 165I shall pretend that one was there. 166 167{pair} 168! Text line contains an invalid character. 169<scantokens> pair p[],';^^ff 170 171<to be read again> 172 path 173l.25 path 174 p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(... 175A funny symbol that I can't read has just been input. 176Continue, and I'll forget that it ever happened. 177 178{path} 179{-(2)} 180{-(1)} 181{turningnumber((xpart ',ypart '))} 182Path at line 25, before choices: 183(1,-2){curl 1} 184 ..(2,-1) 185 ..(2.5,0.5) 186 ..(1,2) 187 ..{curl 1}(0,2.5) 188 189Path at line 25, after choices: 190(1,-2)..controls (1.37755,-1.71404) and (1.71404,-1.37755) 191 ..(2,-1)..controls (2.33353,-0.55965) and (2.59729,-0.04124) 192 ..(2.5,0.5)..controls (2.36812,1.23369) and (1.6712,1.65662) 193 ..(1,2)..controls (0.66821,2.16974) and (0.33485,2.33641) 194 ..(0,2.5) 195 196{(unknown path qw)=(path)} 197{numeric} 198! Enormous number has been reduced. 199l.26 ...[$] ]]=10000000000000000 200 ; "this string constant is in... 201I can't handle numbers bigger than about 4095.99998; 202so I've changed your constant to that maximum amount. 203 204{(p[[ [-1] ]])=(4095.99998)} 205## p[[ [-1] ]]=4095.99998 206! Incomplete string token has been flushed. 207l.26 ...g constant is incomplete 208 209Strings should finish on the same line as they began. 210I've deleted the partial string; you might want to 211insert another by typing, e.g., `I"new string"'. 212 213{string} 214! Declared variable conflicts with previous vardef. 215<to be read again> 216 , 217l.27 string foo[]p, 218 p~if true:[]; p~000=char34&char200&char34; 219You can't use, e.g., `numeric foo[]' after `vardef foo'. 220Proceed, and I'll ignore the illegal redeclaration. 221 222{if} 223{true} 224{true} 225{char(34)} 226{char(200)} 227{(""")&("^^c8")} 228{char(34)} 229{(""^^c8")&(""")} 230{(unknown string p~0)=(""^^c8"")} 231{boolean} 232{fi} 233{showvariable} 234boolean.boolean=unknown boolean 235! OK. 236l.28 ...n; showvariable boolean; 237 def\\= =end enddef; 238 239{def} 240{picture} 241{show} 242{scantokens} 243{length("^^c8")} 244>> 1 245! OK. 246<recently read> ; 247 248l.29 ...w length scantokens p~0; 249 250 251{pen} 252! Illegal suffix of declared variable will be flushed. 253<to be read again> 254 [ 255<to be read again> 256 "a" 257l.30 pen p~[]~,q["a" 258 ,qq; p~1~=q=pencircle scaled mexp(-3016.5... 259Variables in declarations must consist entirely of 260names and collective subscripts, e.g., `x[]a'. 261Are you trying to use a reserved word in a variable name? 262I'm going to discard the junk I found here, 263up to the next comma or the end of the declaration. 264 265{pencircle} 266{-(3016.57654)} 267{mexp(-3016.57654)} 268{(future pen)scaled(0)} 269Pen polygon at line 30 (newly created): 270(0.5,0) 271 .. (0,0.5) 272 .. (-0.5,0) 273 .. (0,-0.5) 274 .. cycle 275 276{(unknown pen q)=(pen)} 277{(unknown pen p~1~)=(pen)} 278{transform} 279! Illegal suffix of declared variable will be flushed. 280<to be read again> 281 0 282l.31 transform p,pp0 283 ; if p=p:qq=makepen((1,0)..cycle) xscaled... 284Variables in declarations must consist entirely of 285names and collective subscripts, e.g., `x[]a'. 286Explicit subscripts like `x15a' aren't permitted. 287I'm going to discard the junk I found here, 288up to the next comma or the end of the declaration. 289 290{if} 291{((xpart p,ypart p,xxpart p,xypart p,yxpart p,yypart p))=((xpart p,ypart 292 p,xxpart p,xypart p,yxpart p,yypart p))} 293{true} 294Path at line 31, before choices: 295(1,0) 296 ..cycle 297 298Path at line 31, after choices: 299(1,0)..controls (1,0) and (1,0) 300 ..cycle 301 302{makepen(path)} 303{hex("1000")} 304! Number too large (4096). 305<to be read again> 306 ; 307l.31 ...cle) xscaled hex "1000"; 308 fi 309I have trouble with numbers greater than 4095; watch out. 310 311{(future pen)xscaled(4096)} 312! Pen too large. 313<to be read again> 314 ; 315l.31 ...cle) xscaled hex "1000"; 316 fi 317The cycle you specified has a coordinate of 4095.5 or more. 318So I've replaced it by the trivial path `(0,0)..cycle'. 319 320Pen polygon at line 31 (newly created): 321(0,0) 322 .. cycle 323 324{(unknown pen qq)=(pen)} 325{fi} 326Path at line 32, before choices: 327(0,0) 328 ..(1,0) 329 ..(0,1) 330 ..(0,0) 331 ..(1,0) 332 ..(0,1) 333 ..cycle 334 335Path at line 32, after choices: 336(0,0)..controls (0.29056,-0.29056) and (0.75859,-0.30772) 337 ..(1,0)..controls (1.51964,0.66237) and (0.66237,1.51964) 338 ..(0,1)..controls (-0.30772,0.75859) and (-0.29056,0.29056) 339 ..(0,0)..controls (0.29056,-0.29056) and (0.75859,-0.30772) 340 ..(1,0)..controls (1.51964,0.66237) and (0.66237,1.51964) 341 ..(0,1)..controls (-0.30772,0.75859) and (-0.29056,0.29056) 342 ..cycle 343 344{makepen(path)} 345! Pen cycle must be convex. 346<to be read again> 347 ; 348l.32 ...)..(1,0)..(0,1)..cycle); 349 350The cycle you specified either has consecutive equal points 351or turns right or turns through more than 360 degrees. 352So I've replaced it by the trivial path `(0,0)..cycle'. 353 354Pen polygon at line 32 (newly created): 355(0,0) 356 .. cycle 357 358{qq:=pen} 359{vardef} 360! Missing parameter type; `expr' will be assumed. 361<to be read again> 362 ) 363l.33 ...ext suffix a,b endtext() 364 )suffix@=show #@; p.a.b() end... 365You should've had `expr' or `suffix' or `text' here. 366 367{expandafter} 368{\} 369{let} 370 371\\->=end 372{outer} 373{pencircle} 374{(future pen)scaled(4.5)} 375{(future pen)yscaled(2)} 376Pen polygon at line 34 (newly created): 377(0.5,-4.5) 378 .. (1,-4) 379 .. (2,-2.5) 380 .. (2.5,0) 381 .. (2,2.5) 382 .. (1,4) 383 .. (0.5,4.5) 384 .. (-0.5,4.5) 385 .. (-1,4) 386 .. (-2,2.5) 387 .. (-2.5,0) 388 .. (-2,-2.5) 389 .. (-1,-4) 390 .. (-0.5,-4.5) 391 .. cycle 392 393{qq:=pen} 394{((6,12))-((xpart p7,ypart p7))} 395{((0,1))transformed((xpart p,ypart p,xxpart p,xypart p,yxpart p,yypart p 396))} 397{(x)-(x)} 398{(2)/(0)} 399>> 2 400! Division by zero. 401<to be read again> 402 , 403l.35 ...)transformed p=(2/(x-x), 404 3/0)transformed p; 405You're trying to divide the quantity shown above the error 406message by zero. I'm going to divide it by one instead. 407 408! Division by zero. 409l.35 ...ansformed p=(2/(x-x),3/0 410 )transformed p; 411I'll pretend that you meant to divide by 1. 412 413{((2,3))transformed((xpart p,ypart p,xxpart p,xypart p,yxpart p,yypart p 414))} 415{((linearform,linearform))=((linearform,linearform))} 416## yxpart p=-yypart p 417## xxpart p=-xypart p 418{((-xpart p7+6,-ypart p7+12))=((linearform,linearform))} 419## ypart p7=-ypart p-yypart p+12 420## xpart p7=-xpart p-xypart p+6 421{\} 422{if} 423{string(unknown string p~[-1])} 424{true} 425{(p0.1 0.2)-(p0.1 0.2)} 426! The token `endtext' is no longer a right delimiter. 427l.36 ...1.2-p.1.199999,1 endtext 428 transformed p; 429Strange: This token has lost its former meaning! 430I'll read it as a right delimiter this time; 431but watch out, I'll probably miss it later. 432 433{((0,1))transformed((xpart p,ypart p,-xypart p,xypart p,-yypart p,yypart 434 p))} 435{((linearform,linearform))=((linearform,linearform))} 436## ypart p=-yypart p+6 437#### ypart p7=6 438## xpart p=-xypart p+3 439#### xpart p7=3 440{(unknown path p1 2p)=((3,6))} 441{showstopping:=0} 442{showvariable} 443p=(-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p) 444p[]=pair 445p[][]=numeric 446p[][]p=unknown path 447p[][]p~=macro:(SUFFIX2)(SUFFIX3)(EXPR4)<suffix>->begingroup ETC. 448p[]~=unknown boolean 449p~=path 450p~[]=unknown string 451p~[]~=unknown pen 452p~[]~[][]=unknown picture 453p~[-1]=unknown string p~[-1] 454p~0=""^^c8"" 455p~1~=pen 456p[[ [] ]]=numeric 457p[[ [-1] ]]=4095.99998 458p0.1 0.2=p0.1 0.2 459p1 2p=path 460p7=(3,6) 461{((-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p))=((-xy 462part p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p))} 463{let} 464{let} 465{xxpart((-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p)) 466} 467{(-xypart p)+(0.002)} 468{yxpart((-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p)) 469} 470{((xpart p2,ypart p2))-((xpart p1,ypart p1))} 471{(1)*((linearform,linearform))} 472{((xpart p1,ypart p1))+((linearform,linearform))} 473{(y)+(0.00002)} 474{yypart((-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p)) 475} 476{xypart((-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p)) 477} 478{((5,y))=((yypart p,xypart p))} 479## y=xypart p 480## yypart p=5 481#### ypart p=1 482#### yxpart p=-5 483{((5,xypart p+0.00002))=((5,xypart p))} 484{((xpart p2,ypart p2))=((5,xypart p))} 485## ypart p2=xypart p 486## xpart p2=5 487{((-xypart p+0.002,-5))=((5,xypart p))} 488## xypart p=-5 489#### ypart p2=-5 490#### y=-5 491#### xpart p=8 492#### xxpart p=5 493! Inconsistent equation (off by -0.002). 494<to be read again> 495 ; 496l.38 ...,y)=(yypart p,xypart p); 497 498The equation I just read contradicts what was said before. 499But don't worry; continue and I'll just ignore it. 500 501Path at line 39, before choices: 502(0,0)..controls (15,4) and (-15,-12) 503 ..(4,0) 504 ..cycle 505 506Path at line 39, after choices: 507(0,0)..controls (15,4) and (-15,-12) 508 ..(4,0)..controls (17.52783,8.54388) and (-15.45978,-4.12262) 509 ..cycle 510 511{reverse(path)} 512{(path)transformed((8,1,5,-5,-5,5))} 513{(path)=(unknown path p2 3p)} 514 515p1 2p~(SUFFIX2)(SUFFIX3)(EXPR4)<suffix>->begingroup.show(SUFFIX0);p(SUFF 516IX2)(SUFFIX3)((EXPR4)endgroup 517(SUFFIX0)<-p1 2p 518(SUFFIX1)<-~ 519(SUFFIX2)<- 520(SUFFIX3)<-2 3p~ 521! A primary expression can't begin with `right delimiter that matches (' 522. 523<inserted text> 524 0 525<to be read again> 526 ) 527l.40 ...000000001]2p~(,[2]3p~,-) 528 =p~1~2[pausing]; 529I'm afraid I need some sort of value in order to continue, 530so I've tentatively inserted `0'. You may want to 531delete this zero and insert something else; 532see Chapter 27 of The METAFONTbook for an example. 533 534{-(0)} 535(EXPR4)<-0 536(SUFFIX5)<- 537{begingroup} 538{show} 539>> Path at line 40: 540(3,6) 541 542 543p2 3p~(SUFFIX2)(SUFFIX3)(EXPR4)<suffix>->begingroup.show(SUFFIX0);p(SUFF 544IX2)(SUFFIX3)((EXPR4)endgroup 545(SUFFIX0)<-p2 3p 546(SUFFIX1)<-~ 547! Missing `,' has been inserted. 548<to be read again> 549 (0) 550p1 2p~->...IX2)(SUFFIX3)((EXPR4) 551 endgroup 552<to be read again> 553 = 554l.40 ...00000001]2p~(,[2]3p~,-)= 555 p~1~2[pausing]; 556I've finished reading a macro argument and am about to 557read another; the arguments weren't delimited correctly. 558You might want to delete some tokens before continuing. 559 560(SUFFIX2)<- 561! Missing `,' has been inserted. 562<to be read again> 563 (0) 564p1 2p~->...IX2)(SUFFIX3)((EXPR4) 565 endgroup 566<to be read again> 567 = 568l.40 ...00000001]2p~(,[2]3p~,-)= 569 p~1~2[pausing]; 570I've finished reading a macro argument and am about to 571read another; the arguments weren't delimited correctly. 572You might want to delete some tokens before continuing. 573 574(SUFFIX3)<- 575! Missing `)' has been inserted. 576<to be read again> 577 endgroup 578<to be read again> 579 = 580l.40 ...00000001]2p~(,[2]3p~,-)= 581 p~1~2[pausing]; 582I've gotten to the end of the macro parameter list. 583You might want to delete some tokens before continuing. 584 585(EXPR4)<-0 586(SUFFIX5)<- 587{begingroup} 588{show} 589>> Path at line 40: 590(8,1)..controls (-48.68579,57.68579) and (52.91974,-43.91974) 591 ..(28,-19)..controls (-7,16) and (63,-54) 592 ..cycle 593 594>> (8,1,5,-5,-5,5) 595! Isolated expression. 596<to be read again> 597 ( 598p2 3p~->...;p(SUFFIX2)(SUFFIX3)( 599 (EXPR4)endgroup 600<to be read again> 601 endgroup 602<to be read again> 603 = 604l.40 ...00000001]2p~(,[2]3p~,-)= 605 p~1~2[pausing]; 606I couldn't find an `=' or `:=' after the 607expression that is shown above this error message, 608so I guess I'll just ignore it and carry on. 609 610! Extra tokens will be flushed. 611<to be read again> 612 ( 613p2 3p~->...;p(SUFFIX2)(SUFFIX3)( 614 (EXPR4)endgroup 615<to be read again> 616 endgroup 617<to be read again> 618 = 619l.40 ...00000001]2p~(,[2]3p~,-)= 620 p~1~2[pausing]; 621I've just read as much of that statement as I could fathom, 622so a semicolon should have been next. It's very puzzling... 623but I'll try to get myself back together, by ignoring 624everything up to the next `;'. Please insert a semicolon 625now in front of anything that you don't want me to delete. 626(See Chapter 27 of The METAFONTbook for an example.) 627 628{endgroup} 629{endgroup} 630{(vacuous)=(unknown picture p~1~2 1)} 631>> vacuous 632>> unknown picture p~1~2 1 633! Equation cannot be performed (vacuous=unknown picture). 634<to be read again> 635 ; 636l.40 ...2]3p~,-)=p~1~2[pausing]; 637 638I'm sorry, but I don't know how to make such things equal. 639(See the two expressions just above the error message.) 640 641{vardef} 642Runaway definition? 643if.p(SUFFIX1)(SUFFIX1)=(SUFFIX1)(SUFFIX1)p.fi 644! Forbidden token found while scanning the definition of p~[]. 645<inserted text> 646 enddef 647<to be read again> 648 ; 649l.41 ...iary t:=if p@ @=@ @p fi; 650 vardef p[][]p~[]=BAD; inner ;; 651I suspect you have forgotten an `enddef', 652causing me to read past where you wanted me to stop. 653I'll try to recover; but if the error is serious, 654you'd better type `E' or `X' now and fix your file. 655 656{vardef} 657! This variable already starts with a macro. 658l.41 ...@p fi; vardef p[][]p~[]= 659 BAD; inner ;; 660After `vardef a' you can't say `vardef a.b'. 661So I'll have to discard this definition. 662 663Runaway definition? 664BAD 665! Forbidden token found while scanning the definition of a bad variable. 666<inserted text> 667 enddef 668<to be read again> 669 ; 670l.41 ...i; vardef p[][]p~[]=BAD; 671 inner ;; 672I suspect you have forgotten an `enddef', 673causing me to read past where you wanted me to stop. 674I'll try to recover; but if the error is serious, 675you'd better type `E' or `X' now and fix your file. 676 677{inner} 678{show} 679{-(2)} 680 681p~[-2]@#<tertiary>->begingroup.if.p(SUFFIX1)(SUFFIX1)=(SUFFIX1)(SUFFIX1) 682p.fi.endgroup 683(SUFFIX0)<-p~ 684(SUFFIX1)<-[-2] 685(SUFFIX2)<-~ 686! A tertiary expression can't begin with `['. 687<inserted text> 688 0 689<to be read again> 690 [ 691<to be read again> 692 (3000) 693<to be read again> 694 , 695l.42 show p~[-2]~[3000, 696 x]++4000>path p3; showvariable p,P; 697I'm afraid I need some sort of value in order to continue, 698so I've tentatively inserted `0'. You may want to 699delete this zero and insert something else; 700see Chapter 27 of The METAFONTbook for an example. 701 702{(x)-(3000)} 703{(0)*(x-3000)} 704{(3000)+(0)} 705{(3000)++(4000)} 706(EXPR3)<-4999.99998 707{begingroup} 708{if} 709{(p[-2][-2])=(-2)} 710>> p[-2][-2]+2 711! Unknown relation will be considered false. 712<to be read again> 713 [-2] 714p~[-2]->...1)=(SUFFIX1)(SUFFIX1) 715 p.fi.endgroup 716<to be read again> 717 > 718l.42 show p~[-2]~[3000,x]++4000> 719 path p3; showvariable p,P; 720Oh dear. I can't decide if the expression above is positive, 721negative, or zero. So this comparison test won't be `true'. 722 723{false} 724! Missing `:' has been inserted. 725<to be read again> 726 [-2] 727p~[-2]->...1)=(SUFFIX1)(SUFFIX1) 728 p.fi.endgroup 729<to be read again> 730 > 731l.42 show p~[-2]~[3000,x]++4000> 732 path p3; showvariable p,P; 733There should've been a colon after the condition. 734I shall pretend that one was there. 735 736{endgroup} 737{path((xpart p3,ypart p3))} 738{(vacuous)>(false)} 739>> vacuous 740>> false 741! Not implemented: (vacuous)>(boolean). 742<to be read again> 743 ; 744l.42 ...~[3000,x]++4000>path p3; 745 showvariable p,P; 746I'm afraid I don't know how to apply that operation to that 747combination of types. Continue, and I'll return the second 748argument (see above) as the result of the operation. 749 750>> false 751{showvariable} 752p=(8,1,5,-5,-5,5) 753p[]=pair 754p[][]=numeric 755p[][]p=unknown path 756p[][]p~=macro:(SUFFIX2)(SUFFIX3)(EXPR4)<suffix>->begingroup ETC. 757p[]~=unknown boolean 758p~=path 759p~[]@#=macro:<tertiary>->begingroup.if.p(SUFFIX1)(SUFFIX1) ETC. 760p[[ [] ]]=numeric 761p[[ [-1] ]]=4095.99998 762p[-2][-2]=p[-2][-2] 763p0.1 0.2=p0.1 0.2 764p1=(xpart p1,ypart p1) 765p1 2p=path 766p2=(5,-5) 767p2 3p=path 768p3=(xpart p3,ypart p3) 769p7=(3,6) 770> P=tag 771{numeric} 772{(2)*(alpha)} 773{(p3~)=(2alpha)} 774## alpha=0.5p3~ 775{(1)/(-1)} 776{(3)*(beta)} 777{(p[-1]~)=(3beta)} 778## beta=0.33333p[-1]~ 779{begingroup} 780{save} 781{showvariable} 782> p=tag 783{(3)*(0.33333(SAVED)p[-1]~)} 784{((SAVED)p[-1]~)=(1)} 785## (SAVED)p[-1]~=1 786#### beta=0.33333 787{restoring p} 788{endgroup} 789{showvariable} 790p=(8,1,5,-5,-5,5) 791p[]=pair 792p[][]=numeric 793p[][]p=unknown path 794p[][]p~=macro:(SUFFIX2)(SUFFIX3)(EXPR4)<suffix>->begingroup ETC. 795p[]~=numeric 796p~=path 797p~[]@#=macro:<tertiary>->begingroup.if.p(SUFFIX1)(SUFFIX1) ETC. 798p[[ [] ]]=numeric 799p[[ [-1] ]]=4095.99998 800p[-2][-2]=p[-2][-2] 801p[-1]~=1 802p0.1 0.2=p0.1 0.2 803p1=(xpart p1,ypart p1) 804p1 2p=path 805p2=(5,-5) 806p2 3p=path 807p3=(xpart p3,ypart p3) 808p3~=p3~ 809p7=(3,6) 810{def} 811{def} 812! Missing `=' has been inserted. 813<to be read again> 814 false 815l.45 ...enddef;def!primary!false 816 ):!fi enddef; 817The next thing in this `def' should have been `=', 818because I've already looked at the definition heading. 819But don't worry; I'll pretend that an equals sign 820was present. Everything from here to `enddef' 821will be the replacement text of this macro. 822 823{def} 824{(path)scaled(-1)} 825Path at line 46, before choices: 826(1,-2)..controls (1.37755,-1.71404) and (1.71404,-1.37755) 827 ..(2,-1)..controls (2.33353,-0.55965) and (2.59729,-0.04124) 828 ..(2.5,0.5)..controls (2.36812,1.23369) and (1.6712,1.65662) 829 ..(1,2)..controls (0.66821,2.16974) and (0.33485,2.33641) 830 ..(0,2.5) 831 ..(-1,2)..controls (-1.37755,1.71404) and (-1.71404,1.37755) 832 ..(-2,1)..controls (-2.33353,0.55965) and (-2.59729,0.04124) 833 ..(-2.5,-0.5)..controls (-2.36812,-1.23369) and (-1.6712,-1.65662) 834 ..(-1,-2)..controls (-0.66821,-2.16974) and (-0.33485,-2.33641) 835 ..(0,-2.5) 836 ..cycle 837 838Path at line 46, after choices: 839(1,-2)..controls (1.37755,-1.71404) and (1.71404,-1.37755) 840 ..(2,-1)..controls (2.33353,-0.55965) and (2.59729,-0.04124) 841 ..(2.5,0.5)..controls (2.36812,1.23369) and (1.6712,1.65662) 842 ..(1,2)..controls (0.66821,2.16974) and (0.33485,2.33641) 843 ..(0,2.5)..controls (-0.37186,2.68167) and (-0.668,2.25146) 844 ..(-1,2)..controls (-1.37755,1.71404) and (-1.71404,1.37755) 845 ..(-2,1)..controls (-2.33353,0.55965) and (-2.59729,0.04124) 846 ..(-2.5,-0.5)..controls (-2.36812,-1.23369) and (-1.6712,-1.65662) 847 ..(-1,-2)..controls (-0.66821,-2.16974) and (-0.33485,-2.33641) 848 ..(0,-2.5)..controls (0.37186,-2.68167) and (0.668,-2.25146) 849 ..cycle 850 851{makepen(path)} 852Pen polygon at line 46 (newly created): 853(1,-2) 854 .. (2,-1) 855 .. (2.5,0.5) 856 .. (1,2) 857 .. (0,2.5) 858 .. (-1,2) 859 .. (-2,1) 860 .. (-2.5,-0.5) 861 .. (-1,-2) 862 .. (0,-2.5) 863 .. cycle 864 865{qq:=pen} 866{primarydef} 867{secondarydef} 868 869//<expr>-> 870 871//<expr>-> 872{pencircle} 873{length(path)} 874{(future pen)slanted(1)} 875{((3,6))-((5,-5))} 876 877_aa__<secondary>->if(true 878{(0.1)*(15)} 879{odd(1.50009)} 880{not(false)} 881{known((8,1,5,-5,-5,5))} 882{(true)and(true)} 883(EXPR0)<-true 884{if} 885{true} 886 887!<primary>->false):(EXPR0)fi 888(EXPR0)<-(5,-5) 889{false} 890{(true)or(false)} 891{true} 892{fi} 893{-((5,-5))} 894{-((5,-5))} 895{+(1)} 896{-(1)} 897>> -1 898! Improper curl has been replaced by 1. 899<to be read again> 900 ) 901l.51 {curl- +1) 902 ..tension atleast1..cycle sqrt2++sqrt2***[[]]; 903A curl must be a known, nonnegative number. 904 905! Missing `}' has been inserted. 906<to be read again> 907 ) 908l.51 {curl- +1) 909 ..tension atleast1..cycle sqrt2++sqrt2***[[]]; 910I've scanned a direction spec for part of a path, 911so a right brace should have come next. 912I shall pretend that one was there. 913 914Path at line 51, before choices: 915(-5,5) 916 917Path at line 51, after choices: 918(-5,5) 919 920Path at line 51, before choices: 921(3,6)..controls (5,-5) and (-5,5) 922 ..(-5,5)..tension atleast1 923 ..{2896.30943,-2896.30934}cycle 924 925Path at line 51, after choices: 926(3,6)..controls (5,-5) and (-5,5) 927 ..(-5,5)..controls (-3.29726,7.86205) and (0.64516,8.35484) 928 ..cycle 929 930! Missing `)' has been inserted. 931<to be read again> 932 sqrt 933l.51 ...ion atleast1..cycle sqrt 934 2++sqrt2***[[]]; 935I found no right delimiter to match a left one. So I've 936put one in, behind the scenes; this may fix the problem. 937 938{((-2,11))subpath(path)} 939{reverse(path)} 940{makepen(path)} 941 942**->[[show(EXPR0)*(EXPR1)]] 943(EXPR0)<-future pen 944(EXPR1)<-future pen 945{begingroup} 946{show} 947{(future pen)*(future pen)} 948>> future pen 949>> future pen 950! Not implemented: (future pen)*(future pen). 951<to be read again> 952 ]] 953<to be read again> 954 sqrt 955l.51 ...ion atleast1..cycle sqrt 956 2++sqrt2***[[]]; 957I'm afraid I don't know how to apply that operation to that 958combination of types. Continue, and I'll return the second 959argument (see above) as the result of the operation. 960 961! Pen path must be a cycle. 962<to be read again> 963 ]] 964<to be read again> 965 sqrt 966l.51 ...ion atleast1..cycle sqrt 967 2++sqrt2***[[]]; 968I can't make a pen from the given path. 969So I've replaced it by the trivial path `(0,0)..cycle'. 970 971>> Pen polygon at line 51: 972(0,0) 973 .. cycle 974 975{endgroup} 976(EXPR0)<-vacuous 977{sqrt(2)} 978{sqrt(2)} 979{(1.41422)++(1.41422)} 980{begingroup} 981{endgroup} 982 983***->expandafter(EXPR1)scantokens"**oct"(EXPR0) 984(EXPR0)<-2 985(EXPR1)<-vacuous 986{expandafter} 987{scantokens} 988{oct(2)} 989>> 2 990! Not implemented: oct(known numeric). 991<to be read again> 992 ; 993l.51 ...cle sqrt2++sqrt2***[[]]; 994 995I'm afraid I don't know how to apply that operation to that 996particular type. Continue, and I'll simply return the 997argument (shown above) as the result of the operation. 998 999 1000**->[[show(EXPR0)*(EXPR1)]] 1001(EXPR0)<-vacuous 1002(EXPR1)<-2 1003{begingroup} 1004{show} 1005{(vacuous)*(2)} 1006>> vacuous 1007>> 2 1008! Not implemented: (vacuous)*(known numeric). 1009<to be read again> 1010 ]] 1011<to be read again> 1012 ; 1013l.51 ...cle sqrt2++sqrt2***[[]]; 1014 1015I'm afraid I don't know how to apply that operation to that 1016combination of types. Continue, and I'll return the second 1017argument (see above) as the result of the operation. 1018 1019>> 2 1020{endgroup} 1021(EXPR0)<-vacuous 1022{begingroup} 1023{interim} 1024{-(20.5)} 1025{charcode:=-20.5} 1026{proofing:=-20.5} 1027{-(2048)} 1028{chardp:=-2048} 1029{shipout} 1030{nullpicture} 1031! Enormous chardp has been reduced. 1032<to be read again> 1033 ]] 1034l.52 ...48;shipout nullpicture]] 1035 ; 1036Font metric dimensions must be less than 2048pt. 1037 1038{restoring proofing=0} 1039{endgroup} 1040{if} 1041{-(275.50002)} 1042{charexists(-275.50002)} 1043{known(unknown path p0 0p)} 1044{(true)>(false)} 1045{known(path)} 1046{(true)=(true)} 1047{true} 1048{randomseed} 1049! Missing `:=' has been inserted. 1050<to be read again> 1051 charcode 1052l.53 ... p~: randomseed charcode 1053 ; fi 1054Always say `randomseed:=<numeric expression>'. 1055 1056{randomseed:=-20.5} 1057{fi} 1058{randomseed} 1059>> "goof" 1060! Unknown value will be ignored. 1061<to be read again> 1062 ; 1063l.54 randomseed:="goof"; 1064 a[($,18++1+-+18),(2,3)]=b[(3,2),(1,$); 1065Your expression was too random for me to handle, 1066so I won't change the random seed just now. 1067 1068{(18)++(1)} 1069{(18.02776)+-+(18)} 1070{((2,3))-((-1,1))} 1071{(a)*((3,2))} 1072{((-1,1))+((3a,2a))} 1073! Missing `]' has been inserted. 1074<to be read again> 1075 ; 1076l.54 ...8),(2,3)]=b[(3,2),(1,$); 1077 1078I've scanned an expression of the form `a[b,c', 1079so a right bracket should have come next. 1080I shall pretend that one was there. 1081 1082{((1,-1))-((3,2))} 1083{(b)*((-2,-3))} 1084{((3,2))+((-2b,-3b))} 1085{((3a-1,2a+1))=((-2b+3,-3b+2))} 1086## b=-0.66667a+0.33333 1087## a=2 1088#### b=-1 1089{show} 1090{(^)+(1)} 1091{(~)+(2)} 1092{-(1)} 1093{((^+1,~+2))slanted(-1)} 1094{-(2)} 1095{((linearform,~+2))yscaled(-2)} 1096{-((3,4))} 1097{((linearform,-2~-4))zscaled((-3,-4))} 1098>> (-5~-3^-13,10~-4^+16) 1099{((xpart pp,ypart pp,xxpart pp,xypart pp,yxpart pp,yypart pp))xscaled(9) 1100} 1101{((8,1,5,-5,-5,5))transformed((9xpart pp,ypart pp,9xxpart pp,9xypart pp, 1102yxpart pp,yypart pp))} 1103>> (9xpart pp+72xxpart pp+9xypart pp,ypart pp+8yxpart pp+yypart pp,45xxp 1104art pp-45xypart pp,-45xxpart pp+45xypart pp,5yxpart pp-5yypart pp,-5yxpa 1105rt pp+5yypart pp) 1106{((xpart pp,ypart pp,xxpart pp,xypart pp,yxpart pp,yypart pp))shifted((1 1107,2))} 1108{((8,1,5,-5,-5,5))transformed((8,1,5,-5,-5,5))} 1109{((xpart pp+1,ypart pp+2,xxpart pp,xypart pp,yxpart pp,yypart pp))transf 1110ormed((43,-34,50,-50,-50,50))} 1111>> (50xpart pp-50ypart pp-7,-50xpart pp+50ypart pp+16,50xxpart pp-50yxpa 1112rt pp,50xypart pp-50yypart pp,-50xxpart pp+50yxpart pp,-50xypart pp+50yy 1113part pp) 1114{(2)-(1)} 1115{(_0)*(1)} 1116{(1)+(_0)} 1117{-(_0+1)} 1118>> -_0-1 1119{show} 1120{normaldeviate} 1121{-(-2048)} 1122{uniformdeviate(2048)} 1123{angle((-0.41438,761.67789))} 1124{cosd(90.03117)} 1125{(200)*(-0.00055)} 1126{mexp(-0.10986)} 1127{sqrt(0.99957)} 1128{mlog(0.99979)} 1129{sind(-0.05469)} 1130{floor(-0.00096)} 1131>> -1 1132{string} 1133{(unknown string s2)=(unknown string s4)} 1134{(unknown string s1)=(unknown string s2)} 1135{(unknown string s3)=(unknown string s5)} 1136{(unknown string s2)=(unknown string s4)} 1137! Redundant equation. 1138<to be read again> 1139 ; 1140l.58 ... s1=s2=s4; s3=s5; s1=s2; 1141 if s1<=s4<>(s1<>s3):show[[ch... 1142I already knew that this equation was true. 1143But perhaps no harm has been done; let's continue. 1144 1145{if} 1146{(unknown string s2)<=(unknown string s1)} 1147{(unknown string s2)<>(unknown string s5)} 1148>> unknown string s2 1149>> unknown string s5 1150! Unknown relation will be considered false. 1151<to be read again> 1152 ) 1153l.58 ...=s2; if s1<=s4<>(s1<>s3) 1154 :show[[char34=s2:=s3]]fi; 1155The quantities shown above have not been equated. 1156 1157{(true)<>(false)} 1158{true} 1159{show} 1160{begingroup} 1161{char(34)} 1162{s2:=unknown string s5} 1163{(""")=(unknown string s2)} 1164{endgroup} 1165{fi} 1166>> vacuous 1167{(0.1)point(path)} 1168{begingroup} 1169{pencircle} 1170Pen polygon at line 59 (newly created): 1171(0.5,0) 1172 .. (0,0.5) 1173 .. (-0.5,0) 1174 .. (0,-0.5) 1175 .. cycle 1176 1177{endgroup} 1178{((3.24413,0.64801))penoffset(pen)} 1179{((0,-0.5))rotated(540)} 1180{((0,0.5))/(0.33333)} 1181{-(1.5)} 1182! Paths don't touch; `&' will be changed to `..'. 1183<to be read again> 1184 ) 1185l.60 ...tcontrol-1.5of(p~&cycle) 1186 -precontrol1/2of p~(p~)=s1:=s... 1187When you join paths `p&q', the ending point of p 1188must be exactly equal to the starting point of q. 1189So I'm going to pretend that you said `p..q' instead. 1190 1191Path at line 60, before choices: 1192(0,0)..controls (15,4) and (-15,-12) 1193 ..(4,0) 1194 ..cycle 1195 1196Path at line 60, after choices: 1197(0,0)..controls (15,4) and (-15,-12) 1198 ..(4,0)..controls (17.52783,8.54388) and (-15.45978,-4.12262) 1199 ..cycle 1200 1201{(-1.5)postcontrol(path)} 1202{(0.5)precontrol(path)} 1203{((-2.75,-5))-((3.75,-1))} 1204! Missing `of' has been inserted for directiontime. 1205<to be read again> 1206 ( 1207l.60 ...cle)-precontrol1/2of p~( 1208 p~)=s1:=s4:=s4; 1209I've got the first argument; will look now for the other. 1210 1211{((-6.5,-4))directiontime(path)} 1212{decimal(0.5)} 1213{((0,1.50003))substring("0.5")} 1214{s4:=unknown string s1} 1215{s1:=unknown string s4} 1216{("0.")=(unknown string s1)} 1217{path} 1218{length(" ")} 1219! Missing `,' has been inserted. 1220<to be read again> 1221 } 1222l.61 ...p~[]; p~1=p2{length" "} 1223 &cycle; p~1=p2=p~0; p2..contr... 1224I've got the x coordinate of a path direction; 1225will look for the y coordinate next. 1226 1227! An expression can't begin with `}'. 1228<inserted text> 1229 0 1230<to be read again> 1231 } 1232l.61 ...p~[]; p~1=p2{length" "} 1233 &cycle; p~1=p2=p~0; p2..contr... 1234I'm afraid I need some sort of value in order to continue, 1235so I've tentatively inserted `0'. You may want to 1236delete this zero and insert something else; 1237see Chapter 27 of The METAFONTbook for an example. 1238 1239Path at line 61, before choices: 1240(5,-5){4096,0} 1241 ..{4096,0}cycle 1242 1243Path at line 61, after choices: 1244(5,-5)..controls (5,-5) and (5,-5) 1245 ..cycle 1246 1247{(unknown path p~1)=(path)} 1248{((5,-5))=(unknown path p~0)} 1249{(path)=(path)} 1250! Redundant or inconsistent equation. 1251<to be read again> 1252 ; 1253l.61 ..." "}&cycle; p~1=p2=p~0; 1254 p2..controls-p2..cycle=p~2;(p7 1255An equation between already-known quantities can't help. 1256But don't worry; continue and I'll just ignore it. 1257 1258{-((5,-5))} 1259Path at line 61, before choices: 1260(5,-5)..controls (-5,5) and (-5,5) 1261 ..cycle 1262 1263Path at line 61, after choices: 1264(5,-5)..controls (-5,5) and (-5,5) 1265 ..cycle 1266 1267{(path)=(unknown path p~2)} 1268{length(path)} 1269Path at line 62, before choices: 1270(3,6)..tension 1.2 1271 ..(5,-5)..controls (5,-5) and (5,-5) 1272 ..(5,-5) 1273 ..(5,-5)..controls (-5,5) and (-5,5) 1274 ..(5,-5){0,4096}..tension 1 and atleast1 1275 ..cycle 1276 1277Path at line 62, after choices: 1278(3,6)..controls (-3.01212,4.82085) and (-1.0424,-6.01257) 1279 ..(5,-5)..controls (5,-5) and (5,-5) 1280 ..(5,-5)..controls (5,-5) and (5,-5) 1281 ..(5,-5)..controls (-5,5) and (-5,5) 1282 ..(5,-5)..controls (5,0.02791) and (4.99951,6.39217) 1283 ..cycle 1284 1285>> x 1286! Improper tension has been set to 1. 1287<to be read again> 1288 .. 1289l.63 x.. 1290 {curl1}-p7{curl hex "IsBad"}..tension.75and.74999..p... 1291The expression above should have been a number >=3/4. 1292 1293{-((3,6))} 1294{hex("IsBad")} 1295>> "IsBad" 1296! String contains illegal digits. 1297<to be read again> 1298 } 1299l.63 ...l1}-p7{curl hex "IsBad"} 1300 ..tension.75and.74999..p2{0,1... 1301I zeroed out characters that weren't hex digits. 1302 1303>> 0.74998 1304! Improper tension has been set to 1. 1305<to be read again> 1306 .. 1307l.63 ...}..tension.75and.74999.. 1308 p2{0,1}&p2{_,'}..cycle:=p 1309The expression above should have been a number >=3/4. 1310 1311>> _ 1312! Undefined x coordinate has been replaced by 0. 1313<to be read again> 1314 , 1315l.63 ...and.74999..p2{0,1}&p2{_, 1316 '}..cycle:=p 1317I need a `known' x value for this part of the path. 1318The value I found (see above) was no good; 1319so I'll try to keep going by using zero instead. 1320(Chapter 27 of The METAFONTbook explains that 1321you might want to type `I ???' now.) 1322 1323>> (xpart ',ypart ') 1324! Undefined y coordinate has been replaced by 0. 1325<to be read again> 1326 } 1327l.63 ...d.74999..p2{0,1}&p2{_,'} 1328 ..cycle:=p 1329I need a `known' y value for this part of the path. 1330The value I found (see above) was no good; 1331so I'll try to keep going by using zero instead. 1332(Chapter 27 of The METAFONTbook explains that 1333you might want to type `I ???' now.) 1334 1335Path at line 63, before choices: 1336(3,6)..controls (-3.01212,4.82085) and (-1.0424,-6.01257) 1337 ..(5,-5)..controls (5,-5) and (5,-5) 1338 ..(5,-5)..controls (5,-5) and (5,-5) 1339 ..(5,-5)..controls (-5,5) and (-5,5) 1340 ..(5,-5)..controls (5,0.02791) and (4.99951,6.39217) 1341 ..(3,6) 1342 ..{curl 1}(-3,-6){curl 2989}..tension 0.75 and 1 1343 ..{0,4096}(5,-5){curl 1} 1344 ..cycle 1345 1346Path at line 63, after choices: 1347(3,6)..controls (-3.01212,4.82085) and (-1.0424,-6.01257) 1348 ..(5,-5)..controls (5,-5) and (5,-5) 1349 ..(5,-5)..controls (5,-5) and (5,-5) 1350 ..(5,-5)..controls (-5,5) and (-5,5) 1351 ..(5,-5)..controls (5,0.02791) and (4.99951,6.39217) 1352 ..(3,6)..controls (-2.44821,4.93144) and (-5.41408,-1.00029) 1353 ..(-3,-6)..controls (-3.70045,-12.19485) and (5,-11.61679) 1354 ..(5,-5)..controls (12.45406,-3.75087) and (10.41669,7.45464) 1355 ..cycle 1356 1357>> path 1358! Improper `:=' will be changed to `='. 1359l.63 ...p2{0,1}&p2{_,'}..cycle:= 1360 p 1361I didn't find a variable name at the left of the `:=', 1362so I'm going to pretend that you said `=' instead. 1363 1364{(path)=(unknown path p~4)} 1365{-(9)} 1366{((3.5001,7.00002))subpath(path)} 1367{((-9,9))subpath(path)} 1368{(path)=(unknown path p~6)} 1369{show} 1370>> Path at line 65: 1371(-2.5,2.5)..controls (-2.49893,2.49893) and (0.00107,-0.00107) 1372 ..(5,-5)..controls (5,0.02791) and (4.99951,6.39217) 1373 ..(3,6)..controls (-2.44821,4.93144) and (-5.41408,-1.00029) 1374 ..(-3,-6)..controls (-3.70045,-12.19485) and (5,-11.61679) 1375 ..(5,-5)..controls (5.0001,-4.99998) and (5.00021,-4.99997) 1376 ..(5.00032,-4.99995) 1377 1378{((1,2))directiontime(path)} 1379>> 1 1380{-(1.00002)} 1381{((1,-1.00002))directiontime(path)} 1382>> 3.24937 1383Path at line 66, before choices: 1384(0,0)..controls (1,1) and (0,1) 1385 ..(1,0) 1386 1387Path at line 66, after choices: 1388(0,0)..controls (1,1) and (0,1) 1389 ..(1,0) 1390 1391{(unknown path p~3)=(path)} 1392{show} 1393Path at line 66, before choices: 1394(5,-5){-2896.30943,-2896.30934} 1395 ..{1831.78674,3663.57385}cycle 1396 1397Path at line 66, after choices: 1398(5,-5)..controls (5,-5) and (5,-5) 1399 ..cycle 1400 1401>> Path at line 66: 1402(5,-5)..controls (5,-5) and (5,-5) 1403 ..cycle 1404 1405{((0.31416,1))subpath(path)} 1406{((1,1))directiontime(path)} 1407{(1)-(0.31416)} 1408{(0.27097)*(0.68584)} 1409{(0.31416)+(0.18584)} 1410>> 0.5 1411{((0,0.25))subpath(path)} 1412{((0.25,1))subpath(path)} 1413Path at line 68, before choices: 1414(0,0)..controls (0.25,0.25) and (0.375,0.4375) 1415 ..(0.4375,0.5625)..controls (0.625,0.9375) and (0.25,0.75) 1416 ..(1,0) 1417 1418Path at line 68, after choices: 1419(0,0)..controls (0.25,0.25) and (0.375,0.4375) 1420 ..(0.4375,0.5625)..controls (0.625,0.9375) and (0.25,0.75) 1421 ..(1,0) 1422 1423! Missing `endtext' has been inserted. 1424<to be read again> 1425 ; 1426l.68 ...~3)shifted begintext1,0; 1427 1428I found no right delimiter to match a left one. So I've 1429put one in, behind the scenes; this may fix the problem. 1430 1431{(path)shifted((1,0))} 1432{(unknown path p~5)=(path)} 1433{(2/3)*((xpart ',ypart '))} 1434{((0.66667xpart ',0.66667ypart '))zscaled((xpart ',ypart '))} 1435>> (0,0,xpart ',-ypart ',ypart ',xpart ') 1436! Transform components aren't all known. 1437<to be read again> 1438 { 1439l.69 p~3:=2/3'zscaled'{ 1440 p~3}..controls(2,2/3(3))and penoffset(... 1441I'm unable to apply a partially specified transformation 1442except to a fully known pair or transform. 1443Proceed, and I'll omit the transformation. 1444 1445>> 0.66667xpart ' 1446! Undefined x coordinate has been replaced by 0. 1447<to be read again> 1448 { 1449l.69 p~3:=2/3'zscaled'{ 1450 p~3}..controls(2,2/3(3))and penoffset(... 1451I need a `known' x value for this part of the path. 1452The value I found (see above) was no good; 1453so I'll try to keep going by using zero instead. 1454(Chapter 27 of The METAFONTbook explains that 1455you might want to type `I ???' now.) 1456 1457>> 0.66667ypart ' 1458! Undefined y coordinate has been replaced by 0. 1459<to be read again> 1460 { 1461l.69 p~3:=2/3'zscaled'{ 1462 p~3}..controls(2,2/3(3))and penoffset(... 1463I need a `known' y value for this part of the path. 1464The value I found (see above) was no good; 1465so I'll try to keep going by using zero instead. 1466(Chapter 27 of The METAFONTbook explains that 1467you might want to type `I ???' now.) 1468 1469>> path 1470! Undefined coordinates have been replaced by (0,0). 1471<to be read again> 1472 } 1473l.69 p~3:=2/3'zscaled'{p~3} 1474 ..controls(2,2/3(3))and penoffset(... 1475I need x and y numbers for this part of the path. 1476The value I found (see above) was no good; 1477so I'll try to keep going by using zero instead. 1478(Chapter 27 of The METAFONTbook explains that 1479you might want to type `I ???' now.) 1480 1481{(2/3)*(3)} 1482{(1/2)*(x)} 1483{((0.5x,-5))penoffset((0,1))} 1484>> (0.5x,-5) 1485>> (0,1) 1486! Not implemented: penoffset(unknown pair)of(pair). 1487<to be read again> 1488 ( 1489l.69 ...enoffset(1/2x,y)of(0,1)( 1490 1,0); 1491I'm afraid I don't know how to apply that operation to that 1492combination of types. Continue, and I'll return the second 1493argument (see above) as the result of the operation. 1494 1495! Missing `..' has been inserted. 1496<to be read again> 1497 ( 1498l.69 ...enoffset(1/2x,y)of(0,1)( 1499 1,0); 1500A path join command should end with two dots. 1501 1502Path at line 69, before choices: 1503(0,0)..controls (2,2) and (0,1) 1504 ..(1,0) 1505 1506Path at line 69, after choices: 1507(0,0)..controls (2,2) and (0,1) 1508 ..(1,0) 1509 1510{p~3:=path} 1511{show} 1512{reverse(path)} 1513{(path)intersectiontimes(path)} 1514>> (0.17227,0.28339) 1515{(0.17227)point(path)} 1516>> (0.71329,0.78188) 1517{(1)-(0.28339)} 1518{(0.71661)point(path)} 1519>> (0.7133,0.78189) 1520{show} 1521{(path)shifted((0.01,0))} 1522{(path)intersectiontimes(path)} 1523{xpart((1.47693,1.18973))} 1524{(1.47693)point(path)} 1525{(path)shifted((0.01,0))} 1526{(path)intersectiontimes(path)} 1527{ypart((1.47693,1.18973))} 1528{(1.18973)point(path)} 1529{((1.50499,0.71521))-((1.495,0.71521))} 1530>> (0.01,0) 1531{begingroup} 1532{interim} 1533{tracingedges:=1} 1534{-(1)} 1535{-(1.00002)} 1536{(-1)+-+(-1.00002)} 1537! Pythagorean subtraction 1+-+1.00002 has been replaced by 0. 1538l.73 ...es:=1; e[-1+-+ -1.00001] 1539 =nullpicture; addto e1 also[[ 1540Since I don't take square roots of negative numbers, 1541I'm zeroing this one. Proceed, with fingers crossed. 1542 1543{nullpicture} 1544{(unknown picture e0)=(picture)} 1545{addto} 1546{begingroup} 1547{addto} 1548{(path)scaled(3)} 1549Path at line 74, before subdivision into octants: 1550(3,0)..controls (3.75,0.75) and (4.125,1.3125) 1551 ..(4.3125,1.6875)..controls (4.875,2.8125) and (3.75,2.25) 1552 ..(6,0)..controls (3.75,2.25) and (4.875,2.8125) 1553 ..(4.3125,1.6875)..controls (4.125,1.3125) and (3.75,0.75) 1554 ..cycle 1555 1556Cycle spec at line 74, after subdivision: 1557(3,0) % beginning in octant `NNE' 1558 ..controls (3.75,0.75) and (4.125,1.3125) 1559 ..(4.3125,1.6875) % segment 0 1560 ..controls (4.5,2.0625) and (4.5,2.25) 1561 ..(4.5,2.25) % segment 1 1562% entering octant `NNW' 1563% entering octant `WNW' 1564% entering octant `WSW' 1565% entering octant `SSW' 1566% entering octant `SSE' 1567 ..controls (4.5,2.25) and (4.5,1.5) 1568 ..(6,0) % segment 1 1569% entering octant `ESE' 1570% entering octant `ENE' 1571% entering octant `NNE' 1572% entering octant `NNW' 1573 ..controls (4.5,1.5) and (4.5,2.25) 1574 ..(4.5,2.25) % segment 2 1575% entering octant `WNW' 1576% entering octant `WSW' 1577% entering octant `SSW' 1578 ..controls (4.5,2.25) and (4.5,2.0625) 1579 ..(4.3125,1.6875) % segment 2 1580 ..controls (4.125,1.3125) and (3.75,0.75) 1581 ..(3,0) % segment 3 1582% entering octant `SSE' 1583% entering octant `ESE' 1584% entering octant `ENE' 1585 & cycle 1586 1587Tracing edges at line 74: (weight 1) 1588(4,0)(4,1)(5,1)(5,3)(4,3)(4,1)(5,1)(5,0)(6,0)(6,1)(5,1)(5,3) 1589(4,3)(4,1)(3,1)(3,0). 1590 1591{(unknown picture e1)=(unknown picture e2)} 1592{(picture)=(unknown picture e1)} 1593{cull} 1594{nullpicture} 1595{endgroup} 1596{show} 1597{-(4095)} 1598{(picture)shifted((4089,-4095))} 1599>> Edge structure at line 75: 1600row -4093: | 4093+ 4094- 1601row -4094: | 4093+ 4094- 1602row -4095: | 4092+ 4093- 4094+ 4095- 1603 1604{-(4095)} 1605{(picture)shifted((-4095,4092))} 1606{-(3)} 1607{(picture)shifted((-3,0))} 1608>> Edge structure at line 75: 1609row 4094: -4094+ -4093- -4094+ -4093- | 1610row 4093: -4094+ -4093- -4094+ -4093- | 1611row 4092: -4095+ -4092- -4093+ -4094- | 1612 1613{-(4095)} 1614{(picture)shifted((4089,-4095))} 1615! Too far to shift. 1616<to be read again> 1617 ]] 1618l.76 e2 shifted(4089,-4095)]] 1619 ;addto e1 also e2 shifted(-2,$)... 1620I can't shift the picture as requested---it would 1621make some coordinates too large or too small. 1622Proceed, and I'll omit the transformation. 1623 1624>> Edge structure at line 76: 1625row 2: 4+ 5- 4+ 5- | 1626row 1: 4+ 5- 4+ 5- | 1627row 0: 3+ 6- 5+ 4- | 1628 1629{restoring tracingedges=32767.99998} 1630{endgroup} 1631{addto} 1632{-(2)} 1633{(picture)shifted((-2,-1))} 1634{-(4)} 1635{(picture)shifted((-4,-1))} 1636{e1:=picture} 1637{addto} 1638{(picture)rotated(89.999)} 1639! That transformation is too hard. 1640<to be read again> 1641 + 1642l.77 ...e0 also e1rotated89.999+ 1643 e1scaled$; show e0 xscaled-10... 1644I can apply complicated transformations to paths, 1645but I can only do integer operations on pictures. 1646Proceed, and I'll omit the transformation. 1647 1648{(picture)scaled(-1)} 1649{(picture)+(picture)} 1650{show} 1651{-(10)} 1652{(picture)xscaled(-10)} 1653{(picture)yscaled(2)} 1654{(picture)xscaled(82)} 1655! Scaled picture would be too big. 1656<to be read again> 1657 yscaled 1658l.78 yscaled 1659 683;addto e1 doublepath (0,9) withweight-3 withwe... 1660I can't xscale the picture as requested---it would 1661make some coordinates too large or too small. 1662Proceed, and I'll omit the transformation. 1663 1664{(picture)yscaled(683)} 1665! Scaled picture would be too big. 1666<to be read again> 1667 ; 1668l.78 yscaled683; 1669 addto e1 doublepath (0,9) withweight-3 withwe... 1670I can't yscale the picture as requested---it would 1671make some coordinates too large or too small. 1672Proceed, and I'll omit the transformation. 1673 1674>> Edge structure at line 78: 1675row 5: -40- -50+ -40- -50+ | 1676row 4: -40- -50+ -40- -50+ | 1677row 3: -30+ 0- -10+ -20- -40- -50+ -40- -50+ | -10+ 0- 1678row 2: -30+ 0- -10+ -20- -40- -50+ -40- -50+ | -10+ 0- 1679row 1: 20- 10+ 20- 10+ -20+ -10- -20+ -10- -30- -60+ -50- -40+ | 1680 -10+ -10+ 0- 0- 10+ 20- 1681row 0: 20- 10+ 20- 10+ -20+ -10- -20+ -10- -30- -60+ -50- -40+ | 1682 -10+ -10+ 0- 0- 10+ 20- 1683row -1: 20- 10+ 20- 10+ -20+ -10- -20+ -10- | -20+ -10- 0+ 0+ 10- 1684 10- 1685row -2: 20- 10+ 20- 10+ -20+ -10- -20+ -10- | -20+ -10- 0+ 0+ 10- 1686 10- 1687row -3: 30- 0+ 10- 20+ | 0+ 10- 1688row -4: 30- 0+ 10- 20+ | 0+ 10- 1689 1690{addto} 1691{-(3)} 1692{turningnumber(path)} 1693! Weight must be -3, -2, -1, +1, +2, or +3. 1694<to be read again> 1695 withpen 1696l.79 withpen 1697 pencircle xscaled(oct"180"++1) rotated-angle(64... 1698I'll ignore the bad `with' clause and look for another. 1699 1700{pencircle} 1701{oct("180")} 1702>> "180" 1703! String contains illegal digits. 1704<to be read again> 1705 ++ 1706l.79 ...ircle xscaled(oct"180"++ 1707 1) rotated-angle(64,$) shifte... 1708I zeroed out characters that weren't in the range 0..7. 1709 1710{(64)++(1)} 1711{(future pen)xscaled(64.00781)} 1712{angle((64,-1))} 1713{-(-0.89517)} 1714{(future pen)rotated(0.89517)} 1715{(future pen)shifted((9,8))} 1716Pen polygon at line 80 (newly created): 1717(9,7.5) 1718 .. (37.5,8) 1719 .. (41,8.5) 1720 .. (9,8.5) 1721 .. (-19.5,8) 1722 .. (-23,7.5) 1723 .. cycle 1724 1725Path at line 80, before choices: 1726(-1,-1){curl 1} 1727 ..(1,0) 1728 ..(1,1) 1729 ..(-1,0) 1730 ..{curl 1}cycle 1731 1732Path at line 80, after choices: 1733(-1,-1)..controls (-0.18568,-1.14464) and (0.62712,-0.73824) 1734 ..(1,0)..controls (1.16457,0.32584) and (1.21637,0.71506) 1735 ..(1,1)..controls (0.46898,1.69931) and (-0.7587,1.2167) 1736 ..(-1,0)..controls (-1.06546,-0.33012) and (-1.06546,-0.66988) 1737 ..cycle 1738 1739{makepen(path)} 1740{(future pen)xscaled(4095.49998)} 1741Pen polygon at line 80 (newly created): 1742(4095.49998,0) 1743 .. (4095.49998,1) 1744 .. (-4095.49998,0) 1745 .. (-4095.49998,-1) 1746 .. cycle 1747 1748Path at line 80, before subdivision into octants: 1749(0,9)..controls (0,9) and (0,9) 1750 ..cycle 1751 1752! Curve out of range. 1753<to be read again> 1754 ; 1755l.80 ...cycle)xscaled4095.49999; 1756 1757At least one of the coordinates in the path I'm about to 1758digitize was really huge (potentially bigger than 4095). 1759So I've cut it back to the maximum size. 1760The results will probably be pretty wild. 1761 1762Cycle spec at line 80, after subdivision: 1763(0,0) % beginning in octant `ENE' 1764% entering octant `NNE' 1765% entering octant `NNW' 1766% entering octant `WNW' 1767% entering octant `WSW' 1768% entering octant `SSW' 1769% entering octant `SSE' 1770% entering octant `ESE' 1771 & cycle 1772 1773Tracing edges at line 80: (weight -3) 1774@ Octant ENE (2 offsets), from (-4095.49998,-1) to (4095.49998,0) 1775@ transition line 0, from (-4095.49998,-1) to (-4095.49998,-1) 1776@ transition line 1, from (-4095.49998,-1) to (4095.49998,0) 1777@ transition line 2, from (4095.49998,0) to (4095.49998,0) 1778(0,-1) 1779@ Octant NNE (1 offset), from (4095.49998,0) to (4095.49998,1) 1780@ transition line 2, from (4095.49998,0) to (4095.49998,0) 1781@ transition line 1, from (4095.49998,0) to (4095.49998,1) 1782(0,0)(4095,0) 1783@ Octant NNW (0 offsets), from (4095.49998,1) to (4095.49998,1) 1784@ transition line 0, from (4095.49998,1) to (4095.49998,1) 1785@ Octant WNW (0 offsets), from (4095.49998,1) to (4095.49998,1) 1786@ transition line 1, from (4095.49998,1) to (4095.49998,1) 1787@ Octant WSW (2 offsets), from (4095.49998,1) to (-4095.49998,0) 1788@ transition line 0, from (4095.49998,1) to (4095.49998,1) 1789@ transition line 1, from (4095.49998,1) to (-4095.49998,0) 1790@ transition line 2, from (-4095.49998,0) to (-4095.49998,0) 1791(4095,1)(0,1) 1792@ Octant SSW (1 offset), from (-4095.49998,0) to (-4095.49998,-1) 1793@ transition line 2, from (-4095.49998,0) to (-4095.49998,0) 1794@ transition line 1, from (-4095.49998,0) to (-4095.49998,-1) 1795(0,0)(-4095,0) 1796@ Octant SSE (0 offsets), from (-4095.49998,-1) to (-4095.49998,-1) 1797@ transition line 0, from (-4095.49998,-1) to (-4095.49998,-1) 1798@ Octant ESE (0 offsets), from (-4095.49998,-1) to (-4095.49998,-1) 1799@ transition line 1, from (-4095.49998,-1) to (-4095.49998,-1) 1800(-4095,-1). 1801 1802{show} 1803>> Edge structure at line 81: 1804row 1: | 0+ 1- 1805row 0: 0--- 4095+++ -2+ -1- -2+ -1- | 0+ 1- 1806row -1: -4095--- 0+++ -2+ -1- -2+ -1- | -1+ 0- 1+ 2- 1807row -2: -3+ 0- -1+ -2- | 1808 1809{totalweight(picture)} 1810>> -0.37476 1811{charcode:=5} 1812{chardp:=5} 1813{-(1.5)} 1814{xoffset:=-1.5} 1815{shipout} 1816[5] 1817Edge structure at line 81 (just shipped out): 1818row 1: | -1+ 0- 1819row 0: | -3+ -3+ -2- -2- -1--- -1+ 0- 4094+++ 1820row -1: | -4096--- -3+ -3+ -2- -2- -2+ -1- -1+++ 0+ 1- 1821row -2: | -4+ -3- -2+ -1- 1822 1823{showstats} 1824Memory usage 1084&202 (749 still untouched) 1825String usage 24&92 (858&11309 still untouched) 1826{addto} 1827{(path)yscaled(0.01666)} 1828Path at line 82, before subdivision into octants: 1829(0,0)..controls (15,0.06665) and (-15,-0.19995) 1830 ..(4,0)..controls (-15,-0.19995) and (15,0.06665) 1831 ..cycle 1832 1833Cycle spec at line 82, after subdivision: 1834(0,0) % beginning in octant `ENE' 1835 ..controls (1.74272,0.00775) and (2.87802,0.01099) 1836 ..(3.55333,0.01099) % segment 0 1837% entering octant `ESE' 1838 ..controls (4.12251,0.01099) and (4.36491,0.00868) 1839 ..(4.36877,0.00482) % segment 0 1840% entering octant `SSE' 1841 ..controls (4.3688,0.00479) and (4.36882,0.00476) 1842 ..(4.36882,0.00473) % segment 0 1843% entering octant `SSW' 1844 ..controls (4.36882,0.0047) and (4.3688,0.00467) 1845 ..(4.36877,0.00464) % segment 0 1846% entering octant `WSW' 1847 ..controls (4.34875,-0.01538) and (-1.88759,-0.07579) 1848 ..(-2.48894,-0.07579) % segment 0 1849% entering octant `WNW' 1850 ..controls (-2.5191,-0.07579) and (-2.5351,-0.07564) 1851 ..(-2.53542,-0.07532) % segment 0 1852% entering octant `NNW' 1853% entering octant `NNE' 1854% entering octant `ENE' 1855 ..controls (-2.53209,-0.07199) and (-0.88672,-0.05144) 1856 ..(4,0) % segment 0 1857% entering octant `NNE' 1858% entering octant `NNW' 1859% entering octant `WNW' 1860% entering octant `WSW' 1861 ..controls (-0.88672,-0.05144) and (-2.5321,-0.072) 1862 ..(-2.53542,-0.07532) % segment 1 1863% entering octant `SSW' 1864% entering octant `SSE' 1865% entering octant `ESE' 1866 ..controls (-2.53511,-0.07562) and (-2.5191,-0.07579) 1867 ..(-2.48894,-0.07579) % segment 1 1868% entering octant `ENE' 1869 ..controls (-1.88759,-0.07579) and (4.34877,-0.01537) 1870 ..(4.36877,0.00464) % segment 1 1871% entering octant `NNE' 1872 ..controls (4.3688,0.00467) and (4.36882,0.0047) 1873 ..(4.36882,0.00473) % segment 1 1874% entering octant `NNW' 1875 ..controls (4.36882,0.00476) and (4.3688,0.00479) 1876 ..(4.36877,0.00482) % segment 1 1877% entering octant `WNW' 1878 ..controls (4.36491,0.00868) and (4.12251,0.01099) 1879 ..(3.55333,0.01099) % segment 1 1880% entering octant `WSW' 1881 ..controls (2.87802,0.01099) and (1.74272,0.00775) 1882 ..(0,0) % segment 1 1883% entering octant `SSW' 1884% entering octant `SSE' 1885% entering octant `ESE' 1886 & cycle 1887 1888Tracing edges at line 82: (weight 1) 1889(No new edges added.) 1890 1891{(picture)yscaled(0)} 1892{e3:=picture} 1893{autorounding:=2} 1894{addto} 1895Path at line 83, before choices: 1896(0.5,0){curl 1} 1897 ..{curl 1}(3.5,1.5) 1898 1899Path at line 83, after choices: 1900(0.5,0)..controls (1.5,0.5) and (2.5,1) 1901 ..(3.5,1.5) 1902 1903Path at line 83, before subdivision into octants: 1904(0.5,0)..controls (1.5,0.5) and (2.5,1) 1905 ..(3.5,1.5)..controls (2.5,1) and (1.5,0.5) 1906 ..cycle 1907 1908Cycle spec at line 83, after subdivision and double autorounding: 1909(0.5,0) % beginning in octant `ENE' 1910 ..controls (1.5,0.5) and (2.5,1) 1911 ..(3.5,1.5) % segment 0 1912% entering octant `NNE' 1913% entering octant `NNW' 1914% entering octant `WNW' 1915% entering octant `WSW' 1916 ..controls (2.5,1) and (1.5,0.5) 1917 ..(0.5,0) % segment 1 1918% entering octant `SSW' 1919% entering octant `SSE' 1920% entering octant `ESE' 1921 & cycle 1922 1923Tracing edges at line 83: (weight 2) 1924(2,0)(2,1)(4,1)(4,2)(4,1)(2,1)(2,0). 1925 1926{tracingspecs:=0} 1927Path at line 84, before choices: 1928(1,1) 1929 ..cycle 1930 1931Path at line 84, after choices: 1932(1,1)..controls (1,1) and (1,1) 1933 ..cycle 1934 1935{makepen(path)} 1936{(future pen)yscaled(1.5)} 1937Pen polygon at line 84 (newly created): 1938(1,1.5) 1939 .. cycle 1940 1941{q:=pen} 1942{((-1,yy))rotated((8,1,5,-5,-5,5))} 1943>> (8,1,5,-5,-5,5) 1944! Improper transformation argument. 1945<to be read again> 1946 { 1947l.85 p~8=(($,yy)rotated p{ 1948 0,1}..{0,$}(1,0){0,$}..cycle)scaled... 1949The expression shown above has the wrong type, 1950so I can't transform anything using it. 1951Proceed, and I'll omit the transformation. 1952 1953>> yy 1954! Undefined y coordinate has been replaced by 0. 1955<to be read again> 1956 { 1957l.85 p~8=(($,yy)rotated p{ 1958 0,1}..{0,$}(1,0){0,$}..cycle)scaled... 1959I need a `known' y value for this part of the path. 1960The value I found (see above) was no good; 1961so I'll try to keep going by using zero instead. 1962(Chapter 27 of The METAFONTbook explains that 1963you might want to type `I ???' now.) 1964 1965Path at line 85, before choices: 1966(-1,0){0,4096} 1967 ..{0,-4096}(1,0){0,-4096} 1968 ..{0,4096}cycle 1969 1970Path at line 85, after choices: 1971(-1,0)..controls (-1,1.33333) and (1,1.33333) 1972 ..(1,0)..controls (1,-1.33333) and (-1,-1.33333) 1973 ..cycle 1974 1975{(path)scaled(2)} 1976{(path)shifted((1000.49,9))} 1977{(unknown path p~8)=(path)} 1978{turningcheck:=1} 1979{addto} 1980>> (8,1,5,-5,-5,5) 1981! Improper type. 1982<to be read again> 1983 withpen 1984l.86 ...n q withweight p withpen 1985 cycle p; 1986Next time say `withweight <known numeric expression>'; 1987I'll ignore the bad `with' clause and look for another. 1988 1989{cycle((8,1,5,-5,-5,5))} 1990>> false 1991! Improper type. 1992<to be read again> 1993 ; 1994l.86 ...eight p withpen cycle p; 1995 1996Next time say `withpen <known pen expression>'; 1997I'll ignore the bad `with' clause and look for another. 1998 1999Tracing edges at line 86: (weight 1) 2000@ Octant NNE (0 offsets), from (999,10.5) to (999.15451,11.65451) 2001@ transition line 1, from (999.15451,11.65451) to (999.15451,11.65451) 2002(999,11) 2003@ Octant ENE (0 offsets), from (999.15451,11.65451) to (1001,12) 2004@ transition line 0, from (999.15451,11.65451) to (999.15451,11.65451) 2005@ Octant ESE (0 offsets), from (1001,12) to (1002.8455,11.6545) 2006@ transition line 1, from (1002.8455,11.6545) to (1002.8455,11.6545) 2007@ Octant SSE (0 offsets), from (1002.8455,11.6545) to (1003,10.5) 2008@ transition line 0, from (1002.8455,11.6545) to (1002.8455,11.6545) 2009(999,12)(1003,12) 2010@ Octant SSW (0 offsets), from (1003,10.5) to (1002.84549,9.34549) 2011@ transition line 1, from (1002.84549,9.34549) to (1002.84549,9.34549) 2012@ Octant WSW (0 offsets), from (1002.84549,9.34549) to (1001,9) 2013@ transition line 0, from (1002.84549,9.34549) to (1002.84549,9.34549) 2014@ Octant WNW (0 offsets), from (1001,9) to (999.1545,9.3455) 2015@ transition line 1, from (999.1545,9.3455) to (999.1545,9.3455) 2016@ Octant NNW (0 offsets), from (999.1545,9.3455) to (999,10.5) 2017@ transition line 0, from (999.1545,9.3455) to (999.1545,9.3455) 2018(1003,9)(999,9)(999,11). 2019 2020Tracing edges at line 86: (weight 1) 2021@ Octant SSE (0 offsets), from (999,10.5) to (999.15451,9.34549) 2022@ transition line 0, from (999,10.5) to (999,10.5) 2023(999,11) 2024@ Octant ESE (0 offsets), from (999.15451,9.34549) to (1001,9) 2025@ transition line 1, from (1001,9) to (1001,9) 2026@ Octant ENE (0 offsets), from (1001,9) to (1002.8455,9.3455) 2027@ transition line 0, from (1001,9) to (1001,9) 2028@ Octant NNE (0 offsets), from (1002.8455,9.3455) to (1003,10.5) 2029@ transition line 1, from (1003,10.5) to (1003,10.5) 2030(999,9)(1003,9) 2031@ Octant NNW (0 offsets), from (1003,10.5) to (1002.84549,11.65451) 2032@ transition line 0, from (1003,10.5) to (1003,10.5) 2033@ Octant WNW (0 offsets), from (1002.84549,11.65451) to (1001,12) 2034@ transition line 1, from (1001,12) to (1001,12) 2035@ Octant WSW (0 offsets), from (1001,12) to (999.1545,11.6545) 2036@ transition line 0, from (1001,12) to (1001,12) 2037@ Octant SSW (0 offsets), from (999.1545,11.6545) to (999,10.5) 2038@ transition line 1, from (999,10.5) to (999,10.5) 2039(1003,12)(999,12)(999,11). 2040 2041{begingroup} 2042{interim} 2043{(xx)=(0.1)} 2044## xx=0.1 2045{autorounding:=0.1} 2046{addto} 2047Tracing edges at line 87: (weight -2) 2048@ Octant NNE (0 offsets), from (999,10.5) to (999.38197,11.42706) 2049@ transition line 1, from (999.38197,11.42706) to (999.38197,11.42706) 2050@ Octant ENE (0 offsets), from (999.38197,11.42706) to (1001,12) 2051@ transition line 0, from (999.38197,11.42706) to (999.38197,11.42706) 2052(999,11) 2053@ Octant ESE (0 offsets), from (1001,12) to (1002.61804,11.42705) 2054@ transition line 1, from (1002.61804,11.42705) to (1002.61804,11.42705) 2055(999,12)(1003,12) 2056@ Octant SSE (0 offsets), from (1002.61804,11.42705) to (1003,10.5) 2057@ transition line 0, from (1002.61804,11.42705) to (1002.61804,11.42705) 2058@ Octant SSW (0 offsets), from (1003,10.5) to (1002.61803,9.57294) 2059@ transition line 1, from (1002.61803,9.57294) to (1002.61803,9.57294) 2060@ Octant WSW (0 offsets), from (1002.61803,9.57294) to (1001,9) 2061@ transition line 0, from (1002.61803,9.57294) to (1002.61803,9.57294) 2062@ Octant WNW (0 offsets), from (1001,9) to (999.38196,9.57295) 2063@ transition line 1, from (999.38196,9.57295) to (999.38196,9.57295) 2064(1003,9)(999,9) 2065@ Octant NNW (0 offsets), from (999.38196,9.57295) to (999,10.5) 2066@ transition line 0, from (999.38196,9.57295) to (999.38196,9.57295) 2067(999,11). 2068 2069{restoring autorounding=2} 2070{endgroup} 2071{-(14.5)} 2072{charext:=-14.5} 2073{chardp:=-14.5} 2074{chardx:=-14.5} 2075{shipout} 2076{-(picture)} 2077{(picture)-(picture)} 2078{-(picture)} 2079{turningnumber(path)} 2080{(6)*(-1)} 2081{(picture)shifted((0,-6))} 2082{(picture)+(picture)} 2083[5.-14] 2084Edge structure at line 88 (just shipped out): 2085row 11: | 998- 998+ 998++ 1002-- 1002- 1002+ 2086row 10: | 998- 998+ 998++ 1002-- 1002- 1002+ 2087row 9: | 998- 998+ 998++ 1002-- 1002- 1002+ 2088row 5: | 998- 998+ 998++ 1002-- 1002- 1002+ 2089row 4: | 998- 998+ 998++ 1002-- 1002- 1002+ 2090row 3: | 998- 998+ 998++ 1002-- 1002- 1002+ 2091row 2: | 3+ 3+ 3+ 3+ 4- 4- 4- 4- 2092row 1: | -1+ -1+ 0- 0- 1+ 2- 3+ 3+ 3+ 3+ 4- 4- 4- 4- 2093row 0: | -3+ -3+ -3+ -2- -2- -2- -1+ -1+ 0- 0- 0+ 0+ 1- 1- 2+ 2+ 2094 3- 3- 4+ 4+ 5- 5- 2095row -1: | -3+ -3+ -2- -2- -2+ -2+ -1- -1- 0+ 0+ 0+ 1- 1- 1- 2096row -2: | -4+ -3- -2+ -2+ -1- -1- 2097row -4: | 3+ 3+ 4- 4- 2098row -5: | 3+ 3+ 4- 4- 2099row -6: | 2+ 3- 4+ 5- 2100 2101Path at line 89, before choices: 2102(0,0){curl 1} 2103 ..(1,0.5) 2104 ..(5,1.5) 2105 ..(7,2.5) 2106 ..(12,3.5) 2107 ..{curl 1}(13,4) 2108 2109Path at line 89, after choices: 2110(0,0)..controls (0.3153,0.20053) and (0.6504,0.36807) 2111 ..(1,0.5)..controls (2.29114,0.98723) and (3.72412,0.97192) 2112 ..(5,1.5)..controls (5.68967,1.78545) and (6.30771,2.22081) 2113 ..(7,2.5)..controls (8.58867,3.1407) and (10.3946,2.90645) 2114 ..(12,3.5)..controls (12.3506,3.62962) and (12.68594,3.7973) 2115 ..(13,4) 2116 2117{(unknown path p~9)=(path)} 2118{addto} 2119Tracing edges at line 89: (weight 1) 2120(1,0)(1,1)(5,1)(5,2)(7,2)(7,3)(12,3)(12,4)(12,3)(7,3)(7,2)(5,2) 2121(5,1)(1,1)(1,0). 2122 2123{smoothing:=1} 2124{addto} 2125Tracing edges at line 90: (weight 1) 2126(1,0)(1,1)(4,1)(4,2)(8,2)(8,3)(12,3)(12,4)(12,3)(8,3)(8,2)(4,2) 2127(4,1)(1,1)(1,0). 2128 2129{addto} 2130{-(4095)} 2131Path at line 91, before choices: 2132(-4095,0){curl 1}..tension 0.75 and 999 2133 ..{curl 1}(0,2) 2134 2135Path at line 91, after choices: 2136(-4095,0)..controls (-2275,0.88889) and (-1.36636,1.99933) 2137 ..(0,2) 2138 2139Tracing edges at line 91: (weight 1) 2140(-3071,0)(-3071,1)(-1024,1)(-1024,2)(-1024,1)(-3071,1)(-3071,0). 2141 2142{show} 2143{-(90)} 2144{(picture)rotated(-90)} 2145>> Edge structure at line 91: 2146 2147{(picture)+(picture)} 2148{(90)*(-1)} 2149{(picture)rotated(-90)} 2150{(picture)rotated(90)} 2151>> Edge structure at line 91: 2152row 2: | 4+++ 4+ 5--- 5- 2153row 1: | 0+++ 0+ 1--- 1- 2++ 3-- 4+++ 4+ 5--- 5- 2154row 0: | -2+++ -2+++ -1--- -1--- 0+++ 0+ 2--- 2- 3++ 4-- 5++ 6-- 2155row -1: | -2+++ -2+ 0--- 0- 1+++ 1+++ 2--- 2--- 2156row -2: | -3++ -2-- -1+++ -1+ 0--- 0- 2157 2158{if} 2159{if} 2160{elseif} 2161! Missing `:' has been inserted. 2162<inserted text> 2163 : 2164<to be read again> 2165 elseif 2166l.92 if "a" if "ab">"b" elseif 2167 path reverse (3,4): >="aa":foo... 2168 2169{("ab")>("b")} 2170{false} 2171{reverse((3,4))} 2172{path(path)} 2173{true} 2174{("a")>=("aa")} 2175{false} 2176{if} 2177{((xpart ',ypart '))-((1,yy))} 2178{((xpart '-1,linearform))<((xpart ',ypart '))} 2179{true} 2180{fi} 2181{else} 2182! Extra else. 2183l.93 ... if '-(1,yy)<': :fi else 2184 def dup text t=[[t;save endd... 2185I'm ignoring this; it doesn't match any if. 2186 2187{def} 2188{def} 2189{def} 2190 2191||<tertiary>->show.substring(EXPR0)of("a" 2192(EXPR0)<-(2,-1) 2193{show} 2194{("a")&("bc")} 2195{((2,-1))substring("abc")} 2196>> "ba" 2197{tertiarydef} 2198{def} 2199{show} 2200{((23.3,4.5))subpath(path)} 2201Path at line 100, before choices: 2202(0,0){curl 2} 2203 ..(13,4)..controls (12.84297,3.89865) and (12.68063,3.80606) 2204 ..(12.51372,3.72261){curl 3} 2205 ..{curl 4}(-1,-1){curl 4} 2206 ..{curl 2}cycle 2207 2208Path at line 100, after choices: 2209(0,0)..controls (-40.15552,-36.7088) and (58.71173,33.50317) 2210 ..(13,4)..controls (12.84297,3.89865) and (12.68063,3.80606) 2211 ..(12.51372,3.72261)..controls (8.00914,2.1484) and (3.50458,0.5742) 2212 ..(-1,-1)..controls (-0.66667,-0.66667) and (-0.33333,-0.33333) 2213 ..cycle 2214 2215>> Path at line 100: 2216(0,0)..controls (-40.15552,-36.7088) and (58.71173,33.50317) 2217 ..(13,4)..controls (12.84297,3.89865) and (12.68063,3.80606) 2218 ..(12.51372,3.72261)..controls (8.00914,2.1484) and (3.50458,0.5742) 2219 ..(-1,-1)..controls (-0.66667,-0.66667) and (-0.33333,-0.33333) 2220 ..cycle 2221 2222{numspecial} 2223{(2)+(3)} 2224 2225++->[[dup.showtoken(EXPR0);]];def.x.expr.z.of(EXPR1)=z.enddef;texts(x=(( 2226EXPR1)+0)(EXPR1)+(EXPR1))("xx",foo((EXPR0)))=0]] 2227(EXPR0)<-path 2228(EXPR1)<-5 2229{begingroup} 2230 2231dup<text>->[[(TEXT0);save 2232(TEXT0)<-showtoken(path) 2233{begingroup} 2234{showtoken} 2235> (path) 2236{save} 2237{restoring ;} 2238{endgroup} 2239{def} 2240! Missing symbolic token inserted. 2241<inserted text> 2242 INACCESSIBLE 2243++->...]];def.x.expr.z.of(EXPR1) 2244 =z.enddef;texts(x=((EXPR1)+0)... 2245<to be read again> 2246 ; 2247l.100 ...cle;numspecial p~++2+3; 2248 [[ 2249Sorry: You can't redefine a number, string, or expr. 2250I've inserted an inaccessible symbol so that your 2251definition will be completed without mixing me up too badly. 2252 2253 2254texts(TEXT0)(TEXT1)<expr>->for.n:=,for.n"yy":n,length.if.false:endfor(TE 2255XT1),(TEXT0),:if.string.n:forsuffixes.n=foo1,[foo(n)],':show(TEXT0),(TEX 2256T1)|(n;exitif.not('<='+((EXPR2),yy))endfor.for.m= :+endfor.for.m=alpha.s 2257tep-1.1 3$:+m.endfor.fi.endfor 2258(TEXT0)<-x=((5)+0)(5)+(5) 2259(TEXT1)<-"xx",foo((path)) 2260(EXPR2)<-0 2261{for} 2262{for} 2263! Missing `=' has been inserted. 2264<to be read again> 2265 "yy" 2266texts->for.n:=,for.n"yy" 2267 :n,length.if.false:endfor(TEXT1),(TEX... 2268<to be read again> 2269 ]] 2270<to be read again> 2271 ; 2272l.100 ...cle;numspecial p~++2+3; 2273 [[ 2274The next thing in this loop should have been `=' or `:='. 2275But don't worry; I'll pretend that an equals sign 2276was present, and I'll look for the values next. 2277 2278{loop value="yy"} 2279{if} 2280{false} 2281{false} 2282! Incomplete if; all text was ignored after line 100. 2283<inserted text> 2284 fi 2285<to be read again> 2286 ENDFOR 2287<for("yy")> ....if.false: ENDFOR 2288 2289texts->...length.if.false:endfor 2290 (TEXT1),(TEXT0),:if.string.n:... 2291<to be read again> 2292 ]] 2293<to be read again> 2294 ; 2295l.100 ...cle;numspecial p~++2+3; 2296 [[ 2297A forbidden `outer' token occurred in skipped text. 2298This kind of error happens when you say `if...' and forget 2299the matching `fi'. I've inserted a `fi'; this might work. 2300 2301{[repeat the loop]} 2302{length("xx")} 2303 2304foo(TEXT2)->begingroup(TEXT2)endgroup 2305(SUFFIX0)<- 2306(SUFFIX1)<-foo 2307(TEXT2)<-(path) 2308{begingroup} 2309{endgroup} 2310 2311x<expr>of<primary>->(EXPR0) 2312{(5)+(0)} 2313(EXPR0)<-5 2314! Missing `of' has been inserted for x. 2315<to be read again> 2316 (5) 2317<argument> x=((5)+0)(5) 2318 +(5) 2319texts->...:endfor(TEXT1),(TEXT0) 2320 ,:if.string.n:forsuffixes.n=f... 2321<to be read again> 2322 ]] 2323<to be read again> 2324 ; 2325l.100 ...cle;numspecial p~++2+3; 2326 [[ 2327I've got the first argument; will look now for the other. 2328 2329(EXPR1)<-5 2330{(5)+(5)} 2331{loop value="yy"} 2332{if} 2333{string("yy")} 2334{true} 2335{forsuffixes} 2336! Missing symbolic token inserted. 2337<inserted text> 2338 INACCESSIBLE 2339<for("yy")> ...orsuffixes(EXPR0) 2340 =foo1,[foo((EXPR0))],':show.x... 2341texts->...3$:+m.endfor.fi.endfor 2342 2343<to be read again> 2344 ]] 2345<to be read again> 2346 ; 2347l.100 ...cle;numspecial p~++2+3; 2348 [[ 2349Sorry: You can't redefine a number, string, or expr. 2350I've inserted an inaccessible symbol so that your 2351definition will be completed without mixing me up too badly. 2352 2353 2354foo(TEXT2)->begingroup(TEXT2)endgroup 2355(SUFFIX0)<- 2356(SUFFIX1)<-foo 2357(TEXT2)<-("yy") 2358{begingroup} 2359{endgroup} 2360>> "yy" 2361! Improper subscript has been replaced by zero. 2362<for("yy")> ...o1,[foo((EXPR0))] 2363 ,':show.x=((5)+0)(5)+(5),"xx"... 2364texts->...3$:+m.endfor.fi.endfor 2365 2366<to be read again> 2367 ]] 2368<to be read again> 2369 ; 2370l.100 ...cle;numspecial p~++2+3; 2371 [[ 2372A bracketed subscript must have a known numeric value; 2373unfortunately, what I found was the value that appears just 2374above this error message. So I'll try a zero subscript. 2375 2376{loop value=foo1} 2377{show} 2378 2379x<expr>of<primary>->(EXPR0) 2380{(5)+(0)} 2381(EXPR0)<-5 2382! Missing `of' has been inserted for x. 2383<to be read again> 2384 (5) 2385<for(foo1)> show.x=((5)+0)(5) 2386 +(5),"xx",foo((path))|(("yy");ex... 2387<for("yy")> ...'+((0),yy))endfor 2388 .for.m= :+endfor.for.m=alpha.... 2389texts->...3$:+m.endfor.fi.endfor 2390 2391<to be read again> 2392 ]] 2393<to be read again> 2394 ; 2395l.100 ...cle;numspecial p~++2+3; 2396 [[ 2397I've got the first argument; will look now for the other. 2398 2399(EXPR1)<-5 2400{(5)+(5)} 2401>> 10 2402>> "xx" 2403foo(TEXT2)->begingroup(TEXT2)endgroup 2404(SUFFIX0)<- 2405(SUFFIX1)<-foo 2406(TEXT2)<-(path) 2407{begingroup} 2408{endgroup} 2409 2410|<suffix>->,(SUFFIX0) 2411! Missing `)' has been inserted. 2412<to be read again> 2413 ("yy") 2414<for(foo1)> ...o((path))|(("yy") 2415 ;exitif.not('<='+((0),yy)) EN... 2416<for("yy")> ...'+((0),yy))endfor 2417 .for.m= :+endfor.for.m=alpha.... 2418texts->...3$:+m.endfor.fi.endfor 2419 2420<to be read again> 2421 ]] 2422<to be read again> 2423 ; 2424l.100 ...cle;numspecial p~++2+3; 2425 [[ 2426I've gotten to the end of the macro parameter list. 2427You might want to delete some tokens before continuing. 2428 2429(SUFFIX0)<- 2430>> Path at line 100: 2431(0,0)..controls (15,4) and (-15,-12) 2432 ..(4,0) 2433 2434>> "yy" 2435{exitif} 2436{((xpart ',ypart '))+((0,yy))} 2437{((xpart ',ypart '))<=((xpart ',linearform))} 2438>> -yy 2439! Unknown relation will be considered false. 2440<to be read again> 2441 ) 2442<for(foo1)> ...ot('<='+((0),yy)) 2443 ENDFOR 2444<for("yy")> ...'+((0),yy))endfor 2445 .for.m= :+endfor.for.m=alpha.... 2446texts->...3$:+m.endfor.fi.endfor 2447 2448<to be read again> 2449 ]] 2450<to be read again> 2451 ; 2452l.100 ...cle;numspecial p~++2+3; 2453 [[ 2454Oh dear. I can't decide if the expression above is positive, 2455negative, or zero. So this comparison test won't be `true'. 2456 2457{[repeat the loop]} 2458{loop value=0} 2459{not(false)} 2460{true} 2461{for} 2462{for} 2463>> 0.5p3~ 2464! Improper initial value has been replaced by 0. 2465<to be read again> 2466 step 2467<for("yy")> ....for.m=alpha.step 2468 -1.1 3$:+m.endfor.fi ENDFOR 2469texts->...3$:+m.endfor.fi.endfor 2470 2471<to be read again> 2472 ]] 2473<to be read again> 2474 ; 2475l.100 ...cle;numspecial p~++2+3; 2476 [[ 2477When you say `for x=a step b until c', 2478the initial value `a' and the step size `b' 2479and the final value `c' must have known numeric values. 2480I'm zeroing this one. Proceed, with fingers crossed. 2481 2482{-(1.1)} 2483! Missing `until' has been inserted. 2484<to be read again> 2485 3 2486<for("yy")> ...=alpha.step-1.1 3 2487 $:+m.endfor.fi ENDFOR 2488texts->...3$:+m.endfor.fi.endfor 2489 2490<to be read again> 2491 ]] 2492<to be read again> 2493 ; 2494l.100 ...cle;numspecial p~++2+3; 2495 [[ 2496I assume you meant to say `until' after `step'. 2497So I'll look for the final value and colon next. 2498 2499{(3)*(-1)} 2500{loop value=0} 2501{[repeat the loop]} 2502{loop value=-1.1} 2503{+(0)} 2504{[repeat the loop]} 2505{loop value=-2.20001} 2506{(0)+(-1.1)} 2507{[repeat the loop]} 2508{fi} 2509{[repeat the loop]} 2510{loop value=2} 2511{if} 2512{string(2)} 2513{false} 2514{[repeat the loop]} 2515{loop value=path} 2516{if} 2517{string(path)} 2518{false} 2519{[repeat the loop]} 2520{loop value=10} 2521{if} 2522{string(10)} 2523{false} 2524{[repeat the loop]} 2525{(-1.1)+(-2.20001)} 2526{endgroup} 2527{begingroup} 2528{let} 2529{save} 2530{def} 2531{def} 2532 2533texts->input 2534{input} 2535(trap.mf 2536if->endinput? 2537{endinput} 2538{if} 2539{known(0)} 2540{not(true)} 2541{false} 2542) 2543! Incomplete if; all text was ignored after line 2. 2544<inserted text> 2545 fi 2546l.101 ...input enddef;texts trap 2547 ]]; 2548The file ended while I was skipping conditional text. 2549This kind of error happens when you say `if...' and forget 2550the matching `fi'. I've inserted a `fi'; this might work. 2551 2552{restoring \} 2553{restoring if} 2554{endgroup} 2555 2556dup<text>->[[(TEXT0);save 2557Runaway text? 2558[[def.texts.secondary.x=primarydef.y++y=x@y.enddef;showtoken ETC. 2559! Forbidden token found while scanning a text argument. 2560<inserted text> 2561 endgroup 2562<to be read again> 2563 \ 2564l.102 ...showtoken++;x enddef]]\ 2565 ; 2566It seems that a right delimiter was left out, 2567causing me to read past where you wanted me to stop. 2568I'll try to recover; but if the error is serious, 2569you'd better type `E' or `X' now and fix your file. 2570 2571(TEXT0)<-[[def.texts.secondary.x=primarydef.y++y=x@y.enddef;showtoken++; 2572x.enddef]] 2573{begingroup} 2574{begingroup} 2575{def} 2576{endgroup} 2577{save} 2578! Missing symbolic token inserted. 2579<inserted text> 2580 INACCESSIBLE 2581<to be read again> 2582 \ 2583l.102 ...showtoken++;x enddef]]\ 2584 ; 2585Sorry: You can't redefine my error-recovery tokens. 2586I've inserted an inaccessible symbol so that your 2587definition will be completed without mixing me up too badly. 2588 2589{\} 2590{proofing:=1} 2591 2592texts<secondary>->primarydef.y++y=(EXPR0)@y.enddef;showtoken++;(EXPR0) 2593(EXPR0)<-"a" 2594{primarydef} 2595{showtoken} 2596> ++=primarydef'd macro: 2597("a")@(EXPR1) 2598{("a")&("b")} 2599ab 2600texts<secondary>->primarydef.y++y=(EXPR0)@y.enddef;showtoken++;(EXPR0) 2601{(1.00002)*(a1)} 2602{-(1.00002a1)} 2603(EXPR0)<--1.00002a1 2604{primarydef} 2605{showtoken} 2606> ++=primarydef'd macro: 2607(-1.00002a1)@(EXPR1) 2608{(a2)+(a3)} 2609{(linearform)+(a4)} 2610{(linearform)+(a5)} 2611{(linearform)+(a6)} 2612{-(linearform)} 2613{(-1.00002a1)=(linearform)} 2614## a1=0.99998a6+0.99998a5+0.99998a4+0.99998a3+0.99998a2 2615{-((a3,a2))} 2616{((-a3,-a2))/(0.99998)} 2617{(a4)+(a5)} 2618{begingroup} 2619{showdependencies} 2620a1=0.99998a6+0.99998a5+0.99998a4+0.99998a3+0.99998a2 2621alpha=0.5p3~ 2622{endgroup} 2623{(linearform)+(a6)} 2624{(a3)+(a4)} 2625{(linearform)+(a5)} 2626{(linearform)+(a6)} 2627{-((linearform,linearform))} 2628{((-1.00002a3,-1.00002a2))=((linearform,linearform))} 2629## a2=0.99998a6+0.99998a5+0.99998a4+0.99998a3 2630## a3=0.99998a6+0.99998a5+0.99998a4 2631{restoring INACCESSIBLE} 2632{endgroup} 2633{(1.00002)*(0.25a4*4)} 2634{(0.25a4*4)+(1)} 2635{(0.25a5*4)+(0.25a6*4)} 2636{(0.25a4*4+1)=(linearform)} 2637## a4*4=0.99998a6*4+0.99998a5*4-3.99994 2638{(0.9)*(0.5p3~)} 2639{(0.45p3~)+(7)} 2640{alpha:=0.45p3~+7} 2641## alpha=0.45p3~+7 2642{showdependencies} 2643alpha=0.45p3~+7 2644a4=0.25a6*4+0.25a5*4-0.99998 2645a3=0.49998a6*4+0.49998a5*4-0.99997 2646a2=0.99997a6*4+0.99997a5*4-1.99992 2647a1=1.99992a6*4+1.99992a5*4-3.99982 2648{(0.66667)-(0.25a6*4)} 2649{(0.25a6*4)=(-0.25a6*4+0.66667)} 2650## a6*4=1.33334 2651{(0.25a5*4)=(0.33333)} 2652## a5*4=1.33331 2653#### a4=-0.33333 2654#### a3=0.33333 2655#### a2=0.66664 2656#### a1=1.33328 2657{cull} 2658{(4)*(0.33333)} 2659{chardp:=27} 2660{charcode:=27} 2661{openwindow} 2662! Improper `openwindow'. 2663<to be read again> 2664 ; 2665l.107 ...) to (0,0) at "whoops"; 2666 addto p; shipout p; cull p; 2667Say `openwindow k from (r0,c0) to (r1,c1) at (x,y)', 2668where all quantities are known and k is between 0 and 15. 2669 2670{addto} 2671>> (8,1,5,-5,-5,5) 2672! Not a suitable variable. 2673<to be read again> 2674 ; 2675l.107 ...) at "whoops"; addto p; 2676 shipout p; cull p; 2677At this point I needed to see the name of a picture variable. 2678(Or perhaps you have indeed presented me with one; I might 2679have missed it, if it wasn't followed by the proper token.) 2680So I'll not change anything just now. 2681 2682{shipout} 2683! Variable p is the wrong type (transform). 2684<to be read again> 2685 ; 2686l.107 ...s"; addto p; shipout p; 2687 cull p; 2688I was looking for a "known" picture variable. 2689So I'll not change anything just now. 2690 2691{cull} 2692>> (8,1,5,-5,-5,5) 2693! Not a suitable variable. 2694<to be read again> 2695 ; 2696l.107 ...o p; shipout p; cull p; 2697 2698At this point I needed to see the name of a picture variable. 2699(Or perhaps you have indeed presented me with one; I might 2700have missed it, if it wasn't followed by the proper token.) 2701So I'll not change anything just now. 2702 2703{openwindow} 2704{-(0.5)} 2705 2706Calling BLANKRECTANGLE(0,0,0,0) 2707Calling UPDATESCREEN 2708{special} 2709>> (8,1,5,-5,-5,5) 2710! Unsuitable expression. 2711<to be read again> 2712 ; 2713l.108 ...$) at (0,0); special p; 2714 numspecial "p"; 2715The expression shown above has the wrong type to be output. 2716 2717{numspecial} 2718>> "p" 2719! Unsuitable expression. 2720<to be read again> 2721 ; 2722l.108 ...cial p; numspecial "p"; 2723 2724The expression shown above has the wrong type to be output. 2725 2726{openwindow} 2727{(32)*(1024)} 2728! Arithmetic overflow. 2729l.109 ....49999 from (0,32*1024) 2730 to (1,31*1057) at (0,0); shi... 2731Uh, oh. A little while ago one of the quantities that I was 2732computing got too large, so I'm afraid your answers will be 2733somewhat askew. You'll probably have to adopt different 2734tactics next time. But I shall try to carry on anyway. 2735 2736{(31)*(1057)} 2737 2738Calling BLANKRECTANGLE(100,100,0,1) 2739Calling UPDATESCREEN 2740{shipout} 2741[27.-14] 2742Edge structure at line 109 (just shipped out): 2743row 0: | -3++ -2-- -1++ 4094-- 2744row -1: | -4096++ -3-- -2++ -1-- 2745 2746{openwindow} 2747Path at line 110, before choices: 2748(0,0) 2749 2750Path at line 110, after choices: 2751(0,0) 2752 2753{length(path)} 2754 2755Calling BLANKRECTANGLE(0,2,0,4) 2756Calling UPDATESCREEN 2757{openwindow} 2758{length((-1,0))} 2759{-(5)} 2760 2761Calling BLANKRECTANGLE(1,10,1,3) 2762Calling UPDATESCREEN 2763{display} 2764{nullpicture} 2765>> picture 2766! Not a suitable variable. 2767<to be read again> 2768 ; 2769l.112 display nullpicture; 2770 display p inwindow 3; display p in... 2771At this point I needed to see the name of a picture variable. 2772(Or perhaps you have indeed presented me with one; I might 2773have missed it, if it wasn't followed by the proper token.) 2774So I'll not change anything just now. 2775 2776{display} 2777>> 3 2778! Bad window number. 2779<to be read again> 2780 ; 2781l.112 ...; display p inwindow 3; 2782 display p inwindow 6; 2783It should be the number of an open window. 2784 2785{display} 2786! Variable p is the wrong type (transform). 2787<to be read again> 2788 ; 2789l.112 ...; display p inwindow 6; 2790 2791I was looking for a "known" picture variable. 2792So I'll not change anything just now. 2793 2794{display} 2795 2796Calling BLANKRECTANGLE(1,10,1,3) 2797Calling PAINTROW(2,1;4,5,6,10) 2798Calling UPDATESCREEN 2799{cull} 2800! Enormous number has been reduced. 2801l.113 ...opping (0.1,4095.999999 2802 ) withweight 3.5 2803I can't handle numbers bigger than about 4095.99998; 2804so I've changed your constant to that maximum amount. 2805 2806! Weight must be -3, -2, -1, +1, +2, or +3. 2807<to be read again> 2808 withweight 2809l.114 withweight 2810 -3.5; display e0 inwindow 5.5; addto e0 also ... 2811I'll ignore the bad `with' clause and look for another. 2812 2813{-(3.5)} 2814! Bad culling amounts. 2815<to be read again> 2816 ; 2817l.114 withweight-3.5; 2818 display e0 inwindow 5.5; addto e0 also ... 2819Always cull by known amounts that exclude 0. 2820 2821{display} 2822 2823Calling BLANKRECTANGLE(1,10,1,3) 2824Calling PAINTROW(2,1;4,5,6,8,9,10) 2825Calling PAINTROW(1,1;6,7,8,9) 2826Calling UPDATESCREEN 2827{addto} 2828>> (8,1,5,-5,-5,5) 2829! Improper `addto'. 2830<to be read again> 2831 ; 2832l.114 ...w 5.5; addto e0 also p; 2833 addto e0 contour 0; 2834This expression should have specified a known picture. 2835So I'll not change anything just now. 2836 2837{addto} 2838>> 0 2839! Improper `addto'. 2840<to be read again> 2841 ; 2842l.114 ... p; addto e0 contour 0; 2843 2844This expression should have been a known path. 2845So I'll not change anything just now. 2846 2847{display} 2848 2849Calling BLANKRECTANGLE(0,2,0,4) 2850Calling PAINTROW(2,1;0,1) 2851Calling PAINTROW(1,1;0,1) 2852Calling PAINTROW(0,1;1,2) 2853Calling UPDATESCREEN 2854{addto} 2855! Not a cycle. 2856<to be read again> 2857 ; 2858l.115 ...; addto e0 contour p~9; 2859 2860That contour should have ended with `..cycle' or `&cycle'. 2861So I'll not change anything just now. 2862 2863{display} 2864{(3)+(3)} 2865 2866Calling BLANKRECTANGLE(1,10,1,3) 2867Calling PAINTROW(2,1;4,5,6,10) 2868Calling UPDATESCREEN 2869{display} 2870{begingroup} 2871{vardef} 2872{endgroup} 2873! Variable e0e0 has been obliterated. 2874<to be read again> 2875 ; 2876l.116 ...vardef e[]e=enddef;6]]; 2877 2878It seems you did a nasty thing---probably by accident, 2879but nevertheless you nearly hornswoggled me... 2880While I was evaluating the right-hand side of this 2881command, something happened, and the left-hand side 2882is no longer a variable! So I won't change anything. 2883 2884{addto} 2885{display} 2886Calling PAINTROW(1,1;0,1,2) 2887Calling PAINTROW(0,0;0,1,2) 2888Calling UPDATESCREEN 2889{ligtable} 2890{display} 2891{display} 2892Calling UPDATESCREEN 2893{show} 2894{begingroup} 2895{interim} 2896{tracingcommands:=0} 2897 2898lig(TEXT0)(TEXT1)->ligtable0::for*=1step1until60:0kern.boundarychar+*,en 2899dfor.skipto0;ligtable(TEXT0):(TEXT0)(TEXT1)0,skipto255;boundarychar:=bou 2900ndarychar+51.29999 2901(TEXT0)<-"g" 2902(TEXT1)<-=:| 2903 2904lig(TEXT0)(TEXT1)->ligtable0::for*=1step1until60:0kern.boundarychar+*,en 2905dfor.skipto0;ligtable(TEXT0):(TEXT0)(TEXT1)0,skipto255;boundarychar:=bou 2906ndarychar+51.29999 2907(TEXT0)<-"h":"i" 2908(TEXT1)<-|=: 2909! Character h is already in a ligtable. 2910<to be read again> 2911 : 2912<argument> "h": 2913 "i" 2914lig->...;ligtable(TEXT0):(TEXT0) 2915 (TEXT1)0,skipto255;boundarych... 2916l.119 ...=:|); lig("h":"i")(|=:) 2917 ; 2918It's not legal to label a character more than once. 2919So I'll not change anything just now. 2920 2921 2922lig(TEXT0)(TEXT1)->ligtable0::for*=1step1until60:0kern.boundarychar+*,en 2923dfor.skipto0;ligtable(TEXT0):(TEXT0)(TEXT1)0,skipto255;boundarychar:=bou 2924ndarychar+51.29999 2925(TEXT0)<-"j" 2926(TEXT1)<-|=:> 2927 2928lig(TEXT0)(TEXT1)->ligtable0::for*=1step1until60:0kern.boundarychar+*,en 2929dfor.skipto0;ligtable(TEXT0):(TEXT0)(TEXT1)0,skipto255;boundarychar:=bou 2930ndarychar+51.29999 2931(TEXT0)<-"k" 2932(TEXT1)<-=:|> 2933 2934lig(TEXT0)(TEXT1)->ligtable0::for*=1step1until60:0kern.boundarychar+*,en 2935dfor.skipto0;ligtable(TEXT0):(TEXT0)(TEXT1)0,skipto255;boundarychar:=bou 2936ndarychar+51.29999 2937(TEXT0)<-"l" 2938(TEXT1)<-|=:|> 2939{restoring tracingcommands=2.1} 2940{endgroup} 2941>> vacuous 2942{begingroup} 2943{let} 2944{vardef} 2945{endgroup} 2946! Variable c.a1 has been obliterated. 2947<to be read again> 2948 ; 2949l.121 ...;vardef b=enddef;1]] ]; 2950 ligtable"m":0=:0,skipto5; 2951It seems you did a nasty thing---probably by accident, 2952but nevertheless you nearly hornswoggled me... 2953While I was evaluating the suffix of this variable, 2954something was redefined, and it's no longer a variable! 2955In order to get back on my feet, I've inserted `0' instead. 2956 2957{b1:=0} 2958! Variable b1 has been obliterated. 2959<to be read again> 2960 ; 2961l.121 ...;vardef b=enddef;1]] ]; 2962 ligtable"m":0=:0,skipto5; 2963It seems you did a nasty thing---probably by accident, 2964but nevertheless you nearly hornswoggled me... 2965While I was evaluating the right-hand side of this 2966command, something happened, and the left-hand side 2967is no longer a variable! So I won't change anything. 2968 2969{ligtable} 2970! A statement can't begin with `skipto'. 2971<to be read again> 2972 !! 2973l.122 !! 2974 ; errhelp 0; errmessage "Be like Jane"; 2975I was looking for the beginning of a new statement. 2976If you just proceed without changing anything, I'll ignore 2977everything up to the next `;'. Please insert a semicolon 2978now in front of anything that you don't want me to delete. 2979(See Chapter 27 of The METAFONTbook for an example.) 2980 2981! Extra tokens will be flushed. 2982<to be read again> 2983 !! 2984l.122 !! 2985 ; errhelp 0; errmessage "Be like Jane"; 2986I've just read as much of that statement as I could fathom, 2987so a semicolon should have been next. It's very puzzling... 2988but I'll try to get myself back together, by ignoring 2989everything up to the next `;'. Please insert a semicolon 2990now in front of anything that you don't want me to delete. 2991(See Chapter 27 of The METAFONTbook for an example.) 2992 2993{errhelp} 2994>> 0 2995! Not a string. 2996<to be read again> 2997 ; 2998l.122 !!; errhelp 0; 2999 errmessage "Be like Jane"; 3000A message should be a known string expression. 3001 3002{errmessage} 3003! Be like Jane. 3004<to be read again> 3005 ; 3006l.122 ...message "Be like Jane"; 3007 3008This error message was generated by an `errmessage' 3009command, so I can't give any explicit help. 3010Pretend that you're Miss Marple: Examine all clues, 3011and deduce the truth by inspired guesses. 3012 3013{errhelp} 3014{errmessage} 3015! . 3016<to be read again> 3017 ; 3018l.123 ...e%%%lp%"; errmessage""; 3019 errhelp ""; errmessage "Anot... 3020He% 3021lp 3022 3023 3024{errhelp} 3025{errmessage} 3026! Another. 3027<to be read again> 3028 ; 3029l.123 ...; errmessage "Another"; 3030 3031(That was another `errmessage'.) 3032 3033{headerbyte} 3034>> 0 3035! Improper location. 3036<to be read again> 3037 ; 3038l.124 headerbyte 0; 3039 headerbyte(48.5)substring(-9,9)of"long"; ... 3040I was looking for a known, positive number. 3041For safety's sake I'll ignore the present command. 3042 3043{headerbyte} 3044! Missing `:' has been inserted. 3045<to be read again> 3046 substring 3047l.124 ...aderbyte(48.5)substring 3048 (-9,9)of"long"; for\=0:\ 3049A colon should follow a headerbyte or fontinfo location. 3050 3051{-(9)} 3052{((-9,9))substring("long")} 3053>> "long" 3054! Invalid code has been replaced by 0. 3055<to be read again> 3056 ; 3057l.124 ...ubstring(-9,9)of"long"; 3058 for\=0:\ 3059I was looking for a number between 0 and 255, or for a 3060string of length 1. Didn't find it; will use 0 instead. 3061 3062{for} 3063Runaway loop? 3064! Forbidden token found while scanning the text of a for loop. 3065<inserted text> 3066 endfor 3067<to be read again> 3068 \ 3069l.124 ...-9,9)of"long"; for\=0:\ 3070 3071I suspect you have forgotten an `endfor', 3072causing me to read past where you wanted me to stop. 3073I'll try to recover; but if the error is serious, 3074you'd better type `E' or `X' now and fix your file. 3075 3076{loop value=0} 3077{[repeat the loop]} 3078{\} 3079{headerbyte} 3080{(2)*(0.33333)} 3081{fontdimen} 3082{(2)*(0.33333)} 3083>> "q" 3084! Improper font parameter. 3085<to be read again> 3086 ; 3087l.125 ..."; fontdimen 9:2a6,"q"; 3088 fontdimen 1:2048; 3089I'm zeroing this one. Proceed, with fingers crossed. 3090 3091{fontdimen} 3092{fontmaking:=1} 3093{extensible} 3094! Missing `:' has been inserted. 3095<to be read again> 3096 5 3097l.126 ...king:=1; extensible 5 5 3098 ,"c"255.5,"d"; charlist 0:5:"... 3099I'm processing `extensible c: t,m,b,r'. 3100 3101! Missing `,' has been inserted. 3102<to be read again> 3103 255.5 3104l.126 ...extensible 5 5,"c"255.5 3105 ,"d"; charlist 0:5:"a":"d"; 3106I'm processing `extensible c: t,m,b,r'. 3107 3108>> 255.5 3109! Invalid code has been replaced by 0. 3110<to be read again> 3111 , 3112l.126 ...xtensible 5 5,"c"255.5, 3113 "d"; charlist 0:5:"a":"d"; 3114I was looking for a number between 0 and 255, or for a 3115string of length 1. Didn't find it; will use 0 instead. 3116 3117{charlist} 3118! Character code 5 is already extensible. 3119<to be read again> 3120 : 3121l.126 ...,"d"; charlist 0:5:"a": 3122 "d"; 3123It's not legal to label a character more than once. 3124So I'll not change anything just now. 3125 3126{ligtable} 3127! Too far to skip. 3128l.127 ligtable255:255:: 3129 "a"=:"b","d" kern -2048,"c":0:99.5:"e"... 3130At most 127 lig/kern steps can separate skipto1 from 1::. 3131 3132{-(2048)} 3133! Character code 0 is already in a charlist. 3134<to be read again> 3135 : 3136l.127 ...","d" kern -2048,"c":0: 3137 99.5:"e"|=:|"f",0kern'; 3138It's not legal to label a character more than once. 3139So I'll not change anything just now. 3140 3141>> (xpart ',ypart ') 3142! Improper kern. 3143<to be read again> 3144 ; 3145l.127 ...99.5:"e"|=:|"f",0kern'; 3146 3147The amount of kern should be a known numeric value. 3148I'm zeroing this one. Proceed, with fingers crossed. 3149 3150{ligtable} 3151! Character code 5 is already extensible. 3152<to be read again> 3153 : 3154l.128 ligtable 5: 3155 0; def clear(text x)=interim x:=$ enddef; cl... 3156It's not legal to label a character more than once. 3157So I'll not change anything just now. 3158 3159! Illegal ligtable step. 3160<to be read again> 3161 ; 3162l.128 ligtable 5:0; 3163 def clear(text x)=interim x:=$ enddef; cl... 3164I was looking for `=:' or `kern' here. 3165 3166{def} 3167 3168clear(TEXT0)->interim(TEXT0):=$ 3169(TEXT0)<-hppp 3170{interim} 3171{hppp:=-1} 3172{(0)=(0)} 3173! Redundant equation. 3174<to be read again> 3175 ; 3176l.128 ...f; clear(hppp); vppp=0; 3177 3178I already knew that this equation was true. 3179But perhaps no harm has been done; let's continue. 3180 3181{begingroup} 3182 3183clear(TEXT0)->interim(TEXT0):=$ 3184(TEXT0)<-tracingmacros 3185{interim} 3186{tracingmacros:=-1} 3187{interim} 3188{tracingcommands:=-1} 3189Runaway text? 3190tracingoutput 3191! Forbidden token found while scanning a text argument. 3192<inserted text> 3193 ) 3194<to be read again> 3195 \ 3196l.129 ...); clear(tracingoutput\ 3197 ; 3198It seems that a right delimiter was left out, 3199causing me to read past where you wanted me to stop. 3200I'll try to recover; but if the error is serious, 3201you'd better type `E' or `X' now and fix your file. 3202 3203{restoring proofing=1} 3204{restoring tracingoutput=1} 3205{restoring tracingcommands=2.1} 3206{restoring tracingmacros=1} 3207{endgroup} 3208{def} 3209{def} 3210{addto} 3211Path at line 139, before choices: 3212(0,0){4096,0} 3213 ..{4096,0}(1,0){0,-4096} 3214 ..{0,4096}cycle 3215 3216Path at line 139, after choices: 3217(0,0)..controls (0.33333,0) and (0.66667,0) 3218 ..(1,0)..controls (1,-0.66667) and (0,-0.66667) 3219 ..cycle 3220 3221> 0 ENE 1 (ESE SSE) SSW WSW WNW NNW 0 (NNE) 3222! Backwards path (turning number is negative). 3223<to be read again> 3224 ; 3225l.139 ....{0,1}cycle withpen qq; 3226 3227The path doesn't have a counterclockwise orientation, 3228so I'll probably have trouble drawing it. 3229(See Chapter 27 of The METAFONTbook for more help.) 3230 3231Tracing edges at line 139: (weight 1) 3232@ Octant ENE (2 offsets), from (2.5,-0.5) to (1.5,-2) 3233@ retrograde line from (2.5,-0.5) to (0.5,-2) 3234(3,0)(3,-1)(1,-1) 3235@ transition line 0, from (0.5,-2) to (0.5,-2) 3236@ transition line 1, from (1.5,-2) to (2.5,-1.5) 3237@ transition line 2, from (2.5,-1.5) to (3.5,-0.5) 3238(1,-2)(3,-2)(3,-1)(4,-1) 3239@ retrograde line from (3.5,-0.5) to (1.5,-2) 3240(4,0)(4,-1)(2,-1) 3241@ Octant ESE (2 offsets), from (1.5,-2) to (-1,0) 3242@ retrograde line from (1.5,-2) to (-1,0) 3243(2,-2)(1,-2)(1,-1)(0,-1) 3244@ transition line 3, from (-1,0) to (0.5,-1.5) 3245@ transition line 2, from (0.5,-1.5) to (1.5,-2) 3246@ transition line 1, from (1.5,-2) to (1.5,-2) 3247(0,0)(0,-1)(1,-1) 3248@ retrograde line from (1.5,-2) to (-1,0) 3249(1,-2)(1,-1)(0,-1) 3250@ Octant SSE (0 offsets), from (-1,0) to (-1,0) 3251@ transition line 0, from (-1,0) to (-1,0) 3252@ Octant SSW (2 offsets), from (-1,0) to (-0.82407,0.67593) 3253@ retrograde line from (-1,0) to (-0.5,1.5) 3254(0,0)(-1,0)(-1,1)(0,1) 3255@ transition line 3, from (-0.5,1.5) to (-0.5,1.5) 3256@ transition line 2, from (-0.5,1.5) to (-1,0) 3257@ transition line 1, from (-1.06265,-0.39499) to (-0.56265,1.10501) 3258@ transition line 2, from (-0.82407,0.67593) to (-1.32407,-0.82407) 3259@ transition line 1, from (-1.32407,-0.82407) to (-1.32407,-0.82407) 3260(0,2)(0,1)(-1,1) 3261@ retrograde line from (-1.32407,-0.82407) to (-0.82407,0.67593) 3262(-1,-1) 3263@ Octant WSW (2 offsets), from (-0.82407,0.67593) to (1,2) 3264@ retrograde line from (-0.82407,0.67593) to (1.17593,2.17593) 3265(-1,1)(0,1) 3266@ transition line 0, from (1.17593,2.17593) to (1.17593,2.17593) 3267@ transition line 1, from (1.17593,2.17593) to (0.17593,1.67593) 3268@ transition line 2, from (0,1.5) to (-1,0.5) 3269(0,2) 3270@ retrograde line from (-1,0.5) to (1,2) 3271(0,1) 3272@ Octant WNW (2 offsets), from (1,2) to (3.32407,0.17593) 3273@ retrograde line from (1,2) to (3.5,0) 3274(0,2)(2,2)(2,1)(3,1) 3275@ transition line 3, from (3.5,0) to (2,1.5) 3276@ transition line 2, from (1.82407,1.67593) to (0.82407,2.17593) 3277@ transition line 1, from (0.82407,2.17593) to (0.82407,2.17593) 3278(3,0)(3,1)(2,1) 3279@ retrograde line from (0.82407,2.17593) to (3.32407,0.17593) 3280(2,2)(2,1)(3,1) 3281@ Octant NNW (0 offsets), from (3.32407,0.17593) to (3,1) 3282@ transition line 0, from (3.32407,0.17593) to (3.32407,0.17593) 3283(3,0) 3284@ Octant NNE (2 offsets), from (3,1) to (2.5,-0.5) 3285@ retrograde line from (3,1) to (2.5,-0.5) 3286(3,1) 3287@ transition line 3, from (2.5,-0.5) to (2.5,-0.5) 3288@ transition line 2, from (2.5,-0.5) to (3,1) 3289@ transition line 1, from (3,1) to (3,1) 3290(3,0) 3291@ retrograde line from (3,1) to (2.5,-0.5) 3292(3,1)(3,0). 3293 3294 3295f(SUFFIX0)(EXPR1)(EXPR2)(TEXT3)->numeric.w;show(EXPR1);addto(SUFFIX0)con 3296tour(0,0)..(2,0)..(1,$)..(1,1)..cycle.withpen.qq;addto(SUFFIX0)doublepat 3297h(0,0){1,1}..{2,1}(2,1)withpen.qq;addto(SUFFIX0)doublepath(($,$){1,0}..( 32981,1){1,0})scaled0.5withpen.nullpen;cull(SUFFIX0)keeping(4,4)withweight1. 32995; 3300! Missing `]' has been inserted. 3301<to be read again> 3302 , 3303l.140 f(e[3, 3304 w); g(e3,transformed p,penoffset-(1,1.3)of(pencir... 3305I've seen a `[' and a subscript value, in a suffix, 3306so a right bracket should have come next. 3307I shall pretend that one was there. 3308 3309(SUFFIX0)<-e3 3310(EXPR1)<-unknown path w 3311! Missing argument to f. 3312<to be read again> 3313 ; 3314l.140 f(e[3,w); 3315 g(e3,transformed p,penoffset-(1,1.3)of(pencir... 3316That macro has more parameters than you thought. 3317I'll continue by pretending that each missing argument 3318is either zero or null. 3319 3320(EXPR2)<-0 3321! Missing argument to f. 3322<to be read again> 3323 ; 3324l.140 f(e[3,w); 3325 g(e3,transformed p,penoffset-(1,1.3)of(pencir... 3326That macro has more parameters than you thought. 3327I'll continue by pretending that each missing argument 3328is either zero or null. 3329 3330(TEXT3)<- 3331{numeric} 3332{show} 3333>> unknown path %CAPSULE1615 3334{addto} 3335Path at line 140, before choices: 3336(0,0) 3337 ..(2,0) 3338 ..(1,-1) 3339 ..(1,1) 3340 ..cycle 3341 3342Path at line 140, after choices: 3343(0,0)..controls (0.56189,-0.5286) and (1.43811,0.5286) 3344 ..(2,0)..controls (2.70831,-0.66634) and (1.66634,-1.70831) 3345 ..(1,-1)..controls (0.4714,-0.43811) and (1.5286,0.43811) 3346 ..(1,1)..controls (0.33366,1.70831) and (-0.70831,0.66634) 3347 ..cycle 3348 3349> 0 ESE ENE ESE 1 SSE SSW WSW WNW NNW 2 NNE NNW 3 WNW WSW SSW SSE ESE 0 3350! Strange path (turning number is zero). 3351<to be read again> 3352 ; 3353f->.....(1,1)..cycle.withpen.qq; 3354 addto(SUFFIX0)doublepath(0,0)... 3355<to be read again> 3356 ; 3357l.140 f(e[3,w); 3358 g(e3,transformed p,penoffset-(1,1.3)of(pencir... 3359The path doesn't have a counterclockwise orientation, 3360so I'll probably have trouble drawing it. 3361(See Chapter 27 of The METAFONTbook for more help.) 3362 3363Tracing edges at line 140: (weight 1) 3364@ Octant ENE (2 offsets), from (0.26321,-2.6526) to (1.73679,-2.34741) 3365@ transition line 0, from (0.26321,-2.6526) to (0.26321,-2.6526) 3366@ transition line 1, from (1.73679,-2.34741) to (2.73679,-1.84741) 3367@ transition line 2, from (2.73679,-1.84741) to (3.73679,-0.84741) 3368(1,-3)(1,-2)(3,-2) 3369@ retrograde line from (3.73679,-0.84741) to (1.73679,-2.34741) 3370(3,-1) 3371@ Octant ESE (2 offsets), from (1.73679,-2.34741) to (-0.25465,-0.56029) 3372@ retrograde line from (1.73679,-2.34741) to (-0.76321,-0.34741) 3373(3,-2)(1,-2)(1,-1)(-1,-1) 3374@ transition line 3, from (-0.76321,-0.34741) to (0.73679,-1.84741) 3375@ transition line 2, from (0.73679,-1.84741) to (1.73679,-2.34741) 3376@ transition line 1, from (2.05333,-2.41772) to (1.05333,-1.91772) 3377@ transition line 2, from (1.24535,-2.06029) to (2.24535,-2.56029) 3378@ transition line 1, from (2.24535,-2.56029) to (2.24535,-2.56029) 3379(-1,0)(-1,-1)(0,-1)(0,-2)(2,-2) 3380@ retrograde line from (2.24535,-2.56029) to (-0.25465,-0.56029) 3381(2,-3)(2,-2)(1,-2) 3382@ Octant SSE (0 offsets), from (-0.25465,-0.56029) to (0,-1.13196) 3383@ transition line 0, from (-0.25465,-0.56029) to (-0.25465,-0.56029) 3384@ Octant SSW (2 offsets), from (0,-1.13196) to (0.25,-0.25) 3385@ retrograde line from (0,-1.13196) to (0.5,0.36804) 3386(1,-1)(0,-1) 3387@ transition line 3, from (0.5,0.36804) to (0.5,0.36804) 3388@ transition line 2, from (0.5,0.36804) to (0,-1.13196) 3389@ transition line 1, from (-0.04594,-1.41693) to (0.45406,0.08307) 3390@ transition line 2, from (0.25,-0.25) to (-0.25,-1.75) 3391@ transition line 1, from (-0.25,-1.75) to (-0.25,-1.75) 3392(0,0) 3393@ retrograde line from (-0.25,-1.75) to (0.25,-0.25) 3394(0,-2) 3395@ Octant WSW (2 offsets), from (0.25,-0.25) to (1.63197,1) 3396@ retrograde line from (0.25,-0.25) to (2.25,1.25) 3397(0,0)(1,0) 3398@ transition line 0, from (2.25,1.25) to (2.25,1.25) 3399@ transition line 1, from (2.25,1.25) to (1.25,0.75) 3400@ transition line 2, from (1.03186,0.59352) to (2.03186,1.09352) 3401@ transition line 1, from (1.63197,1) to (0.63197,0.5) 3402@ transition line 2, from (0.63197,0.5) to (-0.36803,-0.5) 3403(1,1) 3404@ retrograde line from (-0.36803,-0.5) to (1.63197,1) 3405(1,0) 3406@ Octant WNW (2 offsets), from (1.63197,1) to (3.56024,-0.74529) 3407@ retrograde line from (1.63197,1) to (4.13197,-1) 3408(1,1)(2,1)(2,0)(4,0) 3409@ transition line 3, from (4.13197,-1) to (2.63197,0.5) 3410@ transition line 2, from (2.63197,0.5) to (1.63197,1) 3411@ transition line 1, from (1.29863,1.07983) to (2.29863,0.57983) 3412@ transition line 2, from (2.06024,0.75471) to (1.06024,1.25471) 3413@ transition line 1, from (1.06024,1.25471) to (1.06024,1.25471) 3414(4,-1)(4,0)(3,0) 3415@ retrograde line from (1.06024,1.25471) to (3.56024,-0.74529) 3416(3,1)(2,1)(2,0)(3,0) 3417@ Octant NNW (0 offsets), from (3.56024,-0.74529) to (3.3474,-0.23679) 3418@ transition line 0, from (3.56024,-0.74529) to (3.56024,-0.74529) 3419(3,-1) 3420@ Octant NNE (2 offsets), from (3.3474,-0.23679) to (3.65259,1.23679) 3421@ retrograde line from (3.3474,-0.23679) to (2.8474,-1.73679) 3422(3,0) 3423@ transition line 3, from (2.8474,-1.73679) to (2.8474,-1.73679) 3424@ transition line 2, from (2.8474,-1.73679) to (3.3474,-0.23679) 3425@ transition line 1, from (3.65259,1.23679) to (3.65259,1.23679) 3426(3,-2) 3427@ Octant NNW (0 offsets), from (3.65259,1.23679) to (3.43976,1.74529) 3428@ transition line 0, from (3.65259,1.23679) to (3.65259,1.23679) 3429(3,1)(4,1) 3430@ Octant WNW (2 offsets), from (3.43976,1.74529) to (0.36803,4) 3431@ transition line 3, from (3.43976,1.74529) to (1.93976,3.24529) 3432@ transition line 2, from (1.70137,3.42017) to (0.70137,3.92017) 3433@ transition line 1, from (0.36803,4) to (0.36803,4) 3434(4,2)(3,2)(3,3)(2,3) 3435@ Octant WSW (2 offsets), from (0.36803,4) to (-2.25,2.25) 3436@ transition line 0, from (0.36803,4) to (0.36803,4) 3437@ transition line 1, from (-0.03186,3.90648) to (-1.03186,3.40648) 3438@ transition line 2, from (-1.25,3.25) to (-2.25,2.25) 3439(2,4)(-1,4)(-1,3)(-2,3) 3440@ Octant SSW (2 offsets), from (-2.25,2.25) to (-3,0.13196) 3441@ transition line 3, from (-2.25,2.25) to (-2.25,2.25) 3442@ transition line 2, from (-2.45406,1.91695) to (-2.95406,0.41695) 3443@ transition line 1, from (-3,0.13196) to (-3,0.13196) 3444(-2,2)(-3,2) 3445@ Octant SSE (0 offsets), from (-3,0.13196) to (-2.74533,-0.43973) 3446@ transition line 0, from (-3,0.13196) to (-3,0.13196) 3447@ Octant ESE (2 offsets), from (-2.74533,-0.43973) to (0.26321,-2.6526) 3448@ transition line 3, from (-2.74533,-0.43973) to (-1.24533,-1.93973) 3449@ transition line 2, from (-1.05331,-2.08229) to (-0.05331,-2.58229) 3450@ transition line 1, from (0.26321,-2.6526) to (0.26321,-2.6526) 3451(-3,-1)(-2,-1)(-2,-2)(0,-2)(0,-3). 3452 3453{addto} 3454Path at line 140, before choices: 3455(0,0){2896.30943,2896.30934} 3456 ..{3663.57385,1831.78674}(2,1) 3457 3458Path at line 140, after choices: 3459(0,0)..controls (0.53566,0.53566) and (1.32689,0.66344) 3460 ..(2,1) 3461 3462Tracing edges at line 140: (weight 1) 3463@ Octant ENE (2 offsets), from (0,-2.5) to (4,0) 3464@ transition line 0, from (0,-2.5) to (0,-2.5) 3465@ transition line 1, from (0,-2.5) to (1,-2) 3466@ transition line 2, from (1.607,-1.57747) to (0.607,-2.07747) 3467@ transition line 1, from (2,-1.5) to (3,-1) 3468@ transition line 2, from (3,-1) to (4,0) 3469(2,-2)(2,-1)(4,-1) 3470@ Octant NNE (2 offsets), from (4,0) to (4.5,1.5) 3471@ transition line 3, from (4,0) to (4,0) 3472@ transition line 2, from (4,0) to (4.5,1.5) 3473@ transition line 1, from (4.5,1.5) to (4.5,1.5) 3474(4,1)(5,1) 3475@ Octant NNW (0 offsets), from (4.5,1.5) to (4.5,1.5) 3476@ transition line 0, from (4.5,1.5) to (4.5,1.5) 3477@ Octant WNW (2 offsets), from (4.5,1.5) to (2,3.5) 3478@ transition line 3, from (4.5,1.5) to (3,3) 3479@ transition line 2, from (3,3) to (2,3.5) 3480@ transition line 1, from (2,3.5) to (2,3.5) 3481(5,2)(4,2)(4,3)(2,3) 3482@ Octant WSW (2 offsets), from (2,3.5) to (-2,1) 3483@ transition line 0, from (2,3.5) to (2,3.5) 3484@ transition line 1, from (0.607,2.92253) to (-0.393,2.42253) 3485@ transition line 2, from (-1,2) to (-2,1) 3486(2,4)(2,3)(0,3)(0,2)(-1,2) 3487@ Octant SSW (2 offsets), from (-2,1) to (-2.5,-0.5) 3488@ transition line 3, from (-2,1) to (-2,1) 3489@ transition line 2, from (-2,1) to (-2.5,-0.5) 3490@ transition line 1, from (-2.5,-0.5) to (-2.5,-0.5) 3491(-1,1)(-2,1) 3492@ Octant SSE (0 offsets), from (-2.5,-0.5) to (-2.5,-0.5) 3493@ transition line 0, from (-2.5,-0.5) to (-2.5,-0.5) 3494@ Octant ESE (2 offsets), from (-2.5,-0.5) to (0,-2.5) 3495@ transition line 3, from (-2.5,-0.5) to (-1,-2) 3496@ transition line 2, from (-1,-2) to (0,-2.5) 3497@ transition line 1, from (0,-2.5) to (0,-2.5) 3498(-2,-1)(-1,-1)(-1,-2). 3499 3500{addto} 3501Path at line 140, before choices: 3502(-1,-1){4096,0} 3503 ..{4096,0}(1,1) 3504 3505Path at line 140, after choices: 3506(-1,-1)..controls (0.10457,-1) and (-0.10457,1) 3507 ..(1,1) 3508 3509{(path)scaled(0.5)} 3510{nullpen} 3511Tracing edges at line 140: (weight 1) 3512(0,0)(0,1)(0,0). 3513 3514{cull} 3515 3516g(SUFFIX0)->show(SUFFIX0) 3517(SUFFIX0)<-e3 3518! Too many arguments to g; 3519 Missing `)' has been inserted. 3520l.140 f(e[3,w); g(e3, 3521 transformed p,penoffset-(1,1.3)of(pencir... 3522I'm going to assume that the comma I just read was a 3523right delimiter, and then I'll begin expanding the macro. 3524You might want to delete some tokens before continuing. 3525 3526{show} 3527{(picture)transformed((8,1,5,-5,-5,5))} 3528>> Edge structure at line 140: 3529 3530{-((1,1.3))} 3531{pencircle} 3532{(future pen)scaled(20)} 3533{-(0.5)} 3534{(future pen)yscaled(-0.5)} 3535Pen polygon at line 140 (newly created): 3536(1.5,-5) 3537 .. (4.5,-4.5) 3538 .. (6,-4) 3539 .. (8,-3) 3540 .. (9.5,-1.5) 3541 .. (10,-0.5) 3542 .. (10,0.5) 3543 .. (9.5,1.5) 3544 .. (8,3) 3545 .. (6,4) 3546 .. (4.5,4.5) 3547 .. (1.5,5) 3548 .. (-1.5,5) 3549 .. (-4.5,4.5) 3550 .. (-6,4) 3551 .. (-8,3) 3552 .. (-9.5,1.5) 3553 .. (-10,0.5) 3554 .. (-10,-0.5) 3555 .. (-9.5,-1.5) 3556 .. (-8,-3) 3557 .. (-6,-4) 3558 .. (-4.5,-4.5) 3559 .. (-1.5,-5) 3560 .. cycle 3561 3562{((-1,-1.3))penoffset(pen)} 3563>> (-9.5,1.5) 3564Path at line 141, before choices: 3565(0,0)..controls (1,1) and (-1,1) 3566 ..(3,0) 3567 3568Path at line 141, after choices: 3569(0,0)..controls (1,1) and (-1,1) 3570 ..(3,0) 3571 3572{((0,1))directiontime(path)} 3573>> 0.33333 3574{(3.14159)point(path)} 3575{((3.14159,4))subpath(path)} 3576{((7.68668,2.72437))intersectiontimes(path)} 3577>> (0,0) 3578Path at line 143, before choices: 3579(-1,1.1){curl 1} 3580 ..{curl 1}(1,-1) 3581 3582Path at line 143, after choices: 3583(-1,1.1)..controls (-0.33333,0.40001) and (0.33333,-0.3) 3584 ..(1,-1) 3585 3586{(-1)precontrol((0,0))} 3587{(path)intersectiontimes((0,0))} 3588>> (-1,-1) 3589{addto} 3590{-(4094.99998)} 3591{-(0.00002)} 3592Path at line 144, before choices: 3593(-4094.99998,0){curl 1} 3594 ..{curl 1}(4094.99998,-0.00002) 3595 3596Path at line 144, after choices: 3597(-4094.99998,0)..controls (-1365,0) and (1365,-0.00002) 3598 ..(4094.99998,-0.00002) 3599 3600{pencircle} 3601{(0)penoffset(future pen)} 3602Pen polygon at line 145 (newly created): 3603(0.5,0) 3604 .. (0,0.5) 3605 .. (-0.5,0) 3606 .. (0,-0.5) 3607 .. cycle 3608 3609>> 0 3610>> pen 3611! Not implemented: penoffset(known numeric)of(pen). 3612<to be read again> 3613 ; 3614l.145 pencircle; 3615 addto e3 also e3 shifted (0,257); ,"flushed ... 3616I'm afraid I don't know how to apply that operation to that 3617combination of types. Continue, and I'll return the second 3618argument (see above) as the result of the operation. 3619 3620Tracing edges at line 145: (weight 1) 3621@ Octant ESE (1 offset), from (-4095.49998,0) to (4094.99998,-0.50002) 3622@ transition line 2, from (-4095.49998,0) to (-4094.99998,-0.5) 3623@ transition line 1, from (4094.99998,-0.50002) to (4094.99998,-0.50002) 3624(-4095,0) 3625@ Octant ENE (1 offset), from (4094.99998,-0.50002) to (4095.49998,-0.00 3626002) 3627@ transition line 0, from (4094.99998,-0.50002) to (4094.99998,-0.50002) 3628@ transition line 1, from (4094.99998,-0.50002) to (4095.49998,-0.00002) 3629(-4095,-1)(4095,-1) 3630@ Octant NNE (0 offsets), from (4095.49998,-0.00002) to (4095.49998,-0.0 36310002) 3632@ transition line 1, from (4095.49998,-0.00002) to (4095.49998,-0.00002) 3633@ Octant NNW (0 offsets), from (4095.49998,-0.00002) to (4095.49998,-0.0 36340002) 3635@ transition line 0, from (4095.49998,-0.00002) to (4095.49998,-0.00002) 3636@ Octant WNW (1 offset), from (4095.49998,-0.00002) to (-4094.99998,0.5) 3637@ transition line 2, from (4095.49998,-0.00002) to (4094.99998,0.49998) 3638@ transition line 1, from (-4094.99998,0.5) to (-4094.99998,0.5) 3639(4095,0)(-4095,0) 3640@ Octant WSW (1 offset), from (-4094.99998,0.5) to (-4095.49998,0) 3641@ transition line 0, from (-4094.99998,0.5) to (-4094.99998,0.5) 3642@ transition line 1, from (-4094.99998,0.5) to (-4095.49998,0) 3643(-4095,1) 3644@ Octant SSW (0 offsets), from (-4095.49998,0) to (-4095.49998,0) 3645@ transition line 1, from (-4095.49998,0) to (-4095.49998,0) 3646@ Octant SSE (0 offsets), from (-4095.49998,0) to (-4095.49998,0) 3647@ transition line 0, from (-4095.49998,0) to (-4095.49998,0) 3648(-4095,0). 3649 3650{addto} 3651{(picture)shifted((0,257))} 3652! A statement can't begin with `,'. 3653<to be read again> 3654 , 3655l.145 ...o e3 shifted (0,257); , 3656 "flushed with pride"; numeric... 3657I was looking for the beginning of a new statement. 3658If you just proceed without changing anything, I'll ignore 3659everything up to the next `;'. Please insert a semicolon 3660now in front of anything that you don't want me to delete. 3661(See Chapter 27 of The METAFONTbook for an example.) 3662 3663! Extra tokens will be flushed. 3664<to be read again> 3665 , 3666l.145 ...o e3 shifted (0,257); , 3667 "flushed with pride"; numeric... 3668I've just read as much of that statement as I could fathom, 3669so a semicolon should have been next. It's very puzzling... 3670but I'll try to get myself back together, by ignoring 3671everything up to the next `;'. Please insert a semicolon 3672now in front of anything that you don't want me to delete. 3673(See Chapter 27 of The METAFONTbook for an example.) 3674 3675{numeric} 3676{def} 3677 3678f(EXPR0)(EXPR1)(EXPR2)->showdependencies;tracingcapsules:=1;showdependen 3679cies;show1/3(3,6)*(((EXPR0)+(EXPR1))+((EXPR1)-(EXPR0))),(1,1)/sqrt2zscal 3680ed((EXPR0)+1,(EXPR0)+2)-((EXPR0)+1,(EXPR0)+2)rotated45,(0,1)zscaled(1,(E 3681XPR1)+2)-(1,(EXPR1)+2)rotated90 3682{(xx)+(1)} 3683{(xx+1)/(0.3)} 3684(EXPR0)<-3.3333xx+3.3333 3685{(yy)-(1)} 3686{(yy-1)/(0.5)} 3687(EXPR1)<-2yy-2 3688(EXPR2)<-(xx,0) 3689{showdependencies} 3690alpha=0.45p3~+7 3691{tracingcapsules:=1} 3692{showdependencies} 3693xpart %CAPSULE1359=xx 3694%CAPSULE1367=2yy-2 3695%CAPSULE1375 = 3.3333xx+3.3333 3696alpha=0.45p3~+7 3697{show} 3698{(1/3)*((3,6))} 3699{(3.3333xx+3.3333)+(2yy-2)} 3700{(2yy-2)-(3.3333xx+3.3333)} 3701{(linearform)+(linearform)} 3702{((1,2))*(4yy-4)} 3703>> (4yy-4,8yy-8) 3704{sqrt(2)} 3705{((1,1))/(1.41422)} 3706{(3.3333xx+3.3333)+(1)} 3707{(3.3333xx+3.3333)+(2)} 3708{((0.7071,0.7071))zscaled((3.3333xx+4.3333,3.3333xx+5.3333))} 3709{(3.3333xx+3.3333)+(1)} 3710{(3.3333xx+3.3333)+(2)} 3711{((3.3333xx+4.3333,3.3333xx+5.3333))rotated(45)} 3712{((-0.7071,4.71399xx+6.83531))-((-0.7071,4.71399xx+6.83531))} 3713>> (0,0) 3714{(2yy-2)+(2)} 3715{((0,1))zscaled((1,2yy))} 3716{(2yy-2)+(2)} 3717{((1,2yy))rotated(90)} 3718{((-2yy,1))-((-2yy,1))} 3719>> (0,0) 3720{(1000)*(o3)} 3721{(o1)-(o2)} 3722{(4000)*(linearform)} 3723{(1000o3)-(linearform)} 3724{(4000)*(o2)} 3725{(linearform)+(4000o2)} 3726{(linearform)+(9)} 3727{(0.01)*(o3)} 3728{-(0.01o3)} 3729{(3)*(ooo)} 3730{(-0.01o3)+(3ooo)} 3731{begingroup} 3732{(o2)+(o4)} 3733{(linearform)+(o5)} 3734{(linearform)-(20)} 3735{(9/10)*(linearform)} 3736{(oo)=(linearform)} 3737## oo=0.9o5+0.9o4+0.9o2-18 3738{(0.5)*(o2)} 3739{(o1)+(0.5o2)} 3740{(8/9)*(linearform)} 3741{(o5)=(linearform)} 3742## o5=0.44444o2+0.88889o1 3743{(o4)=(linearform)} 3744## o4=0.44444o2+0.88889o1 3745{(0.0001)*(o2)} 3746{-(0.0001o2)} 3747{(o6)=(-0.0001o2)} 3748## o6=-0.0001o2 3749{showdependencies} 3750o6=-0.0001o2 3751o4=0.44444o2+0.88889o1 3752o5=0.44444o2+0.88889o1 3753oo=1.7o2+1.6o1-18 3754%CAPSULE382 = 3ooo-0.01o3 3755xpart %CAPSULE1049 = 8000o2-4000o1+1000o3+9 3756xpart %CAPSULE1383=xpart ' 3757ypart %CAPSULE1383=ypart ' 3758alpha=0.45p3~+7 3759{numeric} 3760### 4000o1 = -xpart %CAPSULE1049+8000o2+1000o3+9 3761### -4.87383o2 = -oo-0.0004xpart %CAPSULE1049+0.39673o3-17.99643 3762#### o6=-0.00027 3763### -0.04366o3 = -o4+0.46689oo+8.40439 3764### -o4 = -o5 3765### 0.22894o5 = -%CAPSULE382+0.10689oo+3ooo+1.92412 3766{begingroup} 3767{pair} 3768### -alfa=-xpart %CAPSULE1494 3769{endgroup} 3770{xpart((xpart %CAPSULE1494,0))} 3771### -xpart %CAPSULE17=-%CAPSULE1176 3772{endgroup} 3773{(%CAPSULE382)+(%CAPSULE1176)} 3774### -%CAPSULE382=-%CAPSULE1893+%CAPSULE1176 3775### -%CAPSULE1893=-ypart %CAPSULE1049 3776{begingroup} 3777{save} 3778{(1)-(p$)} 3779{restoring p} 3780### p$=-ypart %CAPSULE604+1 3781{endgroup} 3782{(2/3)*((-ypart %CAPSULE604+1,ypart %CAPSULE604))} 3783### ypart %CAPSULE604=-xpart %CAPSULE604+1 3784### -0.66667xpart %CAPSULE604=-xpart %CAPSULE1889 3785{-((xpart %CAPSULE1889,-xpart %CAPSULE1889+0.66667))} 3786### xpart %CAPSULE1889=-xpart %CAPSULE1172 3787{((xpart %CAPSULE1049,ypart %CAPSULE1049))=((xpart %CAPSULE1172,-xpart % 3788CAPSULE1172-0.66667))} 3789## xpart %CAPSULE1172=-ypart %CAPSULE1049-0.66667 3790## ypart %CAPSULE1049=-xpart %CAPSULE1049-0.66667 3791### -xpart %CAPSULE1049=-xpart %CAPSULE1172 3792{((xpart ',ypart '))=((xpart %CAPSULE1172,-xpart %CAPSULE1172-0.66667))} 3793## xpart %CAPSULE1172=-ypart '-0.66667 3794## xpart '=-ypart '-0.66667 3795{begingroup} 3796{(0.5)*(ooo)} 3797{begingroup} 3798{numeric} 3799### -ooo=-%CAPSULE1494 3800{endgroup} 3801{(%CAPSULE1494)+(1)} 3802### -%CAPSULE1494=-%CAPSULE1350+1 3803{(1/2)*(%CAPSULE1350)} 3804### -0.5%CAPSULE1350=-%CAPSULE1367 3805{-(%CAPSULE1367)} 3806### %CAPSULE1367=-%CAPSULE1893 3807{(2)*(%CAPSULE1893)} 3808### -2%CAPSULE1893=-%CAPSULE1885 3809{(-0.5%CAPSULE1885-0.5)=(%CAPSULE1885)} 3810## %CAPSULE1885=-0.33333 3811{(oo)=(-0.33333)} 3812## oo=-0.33333 3813{endgroup} 3814{(4000)*(-0.33333)} 3815{yoffset:=-1333.31299} 3816{xoffset:=-1333.31299} 3817{for} 3818{sqrt(-1)} 3819! Square root of -1 has been replaced by 0. 3820l.153 for @=angle(sqrt$, 3821 mlog$):charext:=uniformdeviate$;charh... 3822Since I don't take square roots of negative numbers, 3823I'm zeroing this one. Proceed, with fingers crossed. 3824 3825{mlog(-1)} 3826! Logarithm of -1 has been replaced by 0. 3827l.153 for @=angle(sqrt$,mlog$) 3828 :charext:=uniformdeviate$;charh... 3829Since I don't take logs of non-positive numbers, 3830I'm zeroing this one. Proceed, with fingers crossed. 3831 3832{angle((0,0))} 3833! angle(0,0) is taken as zero. 3834l.153 for @=angle(sqrt$,mlog$): 3835 charext:=uniformdeviate$;charh... 3836The `angle' between two identical points is undefined. 3837I'm zeroing this one. Proceed, with fingers crossed. 3838 3839Runaway loop? 3840charext:=uniformdeviate$;charht:=2048;granularity:=-8; ETC. 3841! Forbidden token found while scanning the text of a for loop. 3842<inserted text> 3843 endfor 3844<to be read again> 3845 endtext 3846l.163 ... showstats; bye endtext 3847 3848I suspect you have forgotten an `endfor', 3849causing me to read past where you wanted me to stop. 3850I'll try to recover; but if the error is serious, 3851you'd better type `E' or `X' now and fix your file. 3852 3853{loop value=0} 3854{uniformdeviate(-1)} 3855{charext:=-0.00507} 3856{charht:=2048} 3857{-(8)} 3858{granularity:=-8} 3859{addto} 3860{-(100)} 3861{-(99)} 3862Path at line 163, before choices: 3863(0,-100)..tension 500 3864 ..(100,-99)..tension 3000 3865 ..cycle 3866 3867Path at line 163, after choices: 3868(0,-100)..controls (-36.92659,-103.51175) and (136.98943,-101.7726) 3869 ..(100,-99)..controls (99.9889,-98.99916) and (0.01108,-99.99895) 3870 ..cycle 3871 3872Tracing edges at line 163: (weight 1) 3873(-3,-101)(-3,-102)(71,-102)(71,-101)(99,-101)(99,-100)(103,-100) 3874(103,-99)(48,-99)(48,-100)(-7,-100)(-7,-101). 3875 3876{tracingoutput:=0} 3877{shipout} 3878! Enormous charht has been reduced. 3879<to be read again> 3880 ; 3881<for(0)> ...=(EXPR0);shipout.e3; 3882 special"bye";interim.char99="... 3883<inserted text> endfor 3884 3885<to be read again> 3886 endtext 3887l.163 ... showstats; bye endtext 3888 3889Font metric dimensions must be less than 2048pt. 3890 3891[109] 3892{special} 3893{interim} 3894! The token `char' isn't an internal quantity. 3895<to be read again> 3896 char 3897<for(0)> ...al"bye";interim.char 3898 99="c";true=false;[[clear(tra... 3899<inserted text> endfor 3900 3901<to be read again> 3902 endtext 3903l.163 ... showstats; bye endtext 3904 3905Something like `tracingonline' should follow `interim'. 3906 3907{char(99)} 3908{("c")=("c")} 3909! Redundant equation. 3910<to be read again> 3911 ; 3912<for(0)> ...;interim.char99="c"; 3913 true=false;[[clear(tracingcom... 3914<inserted text> endfor 3915 3916<to be read again> 3917 endtext 3918l.163 ... showstats; bye endtext 3919 3920I already knew that this equation was true. 3921But perhaps no harm has been done; let's continue. 3922 3923{true} 3924{false} 3925{(true)=(false)} 3926! Inconsistent equation. 3927<to be read again> 3928 ; 3929<for(0)> ...ar99="c";true=false; 3930 [[clear(tracingcommands);char... 3931<inserted text> endfor 3932 3933<to be read again> 3934 endtext 3935l.163 ... showstats; bye endtext 3936 3937The equation I just read contradicts what was said before. 3938But don't worry; continue and I'll just ignore it. 3939 3940{begingroup} 3941 3942clear(TEXT0)->interim(TEXT0):=$ 3943(TEXT0)<-tracingcommands 3944{interim} 3945{tracingcommands:=-1} 3946! Enormous charht has been reduced. 3947<to be read again> 3948 ; 3949<for(0)> ...shipout+nullpicture; 3950 "careful"for.for=(EXPR0)step2... 3951<inserted text> endfor 3952 3953<to be read again> 3954 endtext 3955l.163 ... showstats; bye endtext 3956 3957Font metric dimensions must be less than 2048pt. 3958 3959[0] 3960careful METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT M 3961ETAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT M 3962ETAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT M 3963ETAFONT METAFONT METAFONT METAFONT 3964{restoring tracingcommands=2.1} 3965{endgroup} 3966{scrollmode} 3967 3968{char(31)} 3969{("hello again")&("^^_")} 3970hello again^^_ 3971{save} 3972### -0.45p3~=-alpha+7 3973{-(0.043)} 3974{fillin:=-0.043} 3975{def} 3976{begingroup} 3977{tracingspecs:=1} 3978{show} 3979{nullpen} 3980 3981>> Pen polygon at line 163: 3982(0,0) 3983 .. cycle 3984 3985{makepath(pen)} 3986 3987>> Path at line 163: 3988(1,-2)..controls (1,-2) and (2,-1) 3989 ..(2,-1)..controls (2,-1) and (2.5,0.5) 3990 ..(2.5,0.5)..controls (2.5,0.5) and (1,2) 3991 ..(1,2)..controls (1,2) and (0,2.5) 3992 ..(0,2.5)..controls (0,2.5) and (-1,2) 3993 ..(-1,2)..controls (-1,2) and (-2,1) 3994 ..(-2,1)..controls (-2,1) and (-2.5,-0.5) 3995 ..(-2.5,-0.5)..controls (-2.5,-0.5) and (-1,-2) 3996 ..(-1,-2)..controls (-1,-2) and (0,-2.5) 3997 ..(0,-2.5)..controls (0,-2.5) and (1,-2) 3998 ..cycle 3999 4000{(pen)rotated(1)} 4001Pen polygon at line 163 (newly created): 4002(0.97366,1.51723) 4003 .. cycle 4004 4005{makepath(pen)} 4006 4007>> Path at line 163: 4008(0.97366,1.51723)..controls (0.97366,1.51723) and (0.97366,1.51723) 4009 ..cycle 4010 4011{pencircle} 4012{makepath(future pen)} 4013Pen polygon at line 163 (newly created): 4014(0.5,-0.5) 4015 .. (0.5,0.5) 4016 .. (-0.5,0.5) 4017 .. (-0.5,-0.5) 4018 .. cycle 4019 4020{(path)rotated(-1)} 4021 4022>> Path at line 163: 4023(0.4912,-0.50865)..controls (0.4912,-0.50865) and (0.50865,0.4912) 4024 ..(0.50865,0.4912)..controls (0.50865,0.4912) and (-0.4912,0.50865) 4025 ..(-0.4912,0.50865)..controls (-0.4912,0.50865) and (-0.50865,-0.4912) 4026 ..(-0.50865,-0.4912)..controls (-0.50865,-0.4912) and (0.4912,-0.50865) 4027 ..cycle 4028 4029{addto} 4030Path at line 163, before choices: 4031(0,2){0,-4096} 4032 ..{0,-4096}(0,1){0,-4096} 4033 ..{4096,0}(3,0){4096,0} 4034 ..{4096,0}(4,0){4096,0} 4035 ..{0,-4096}cycle 4036 4037Path at line 163, after choices: 4038(0,2)..controls (0,1.66667) and (0,1.33333) 4039 ..(0,1)..controls (0,-0.20886) and (1.63324,0) 4040 ..(3,0)..controls (3.33333,0) and (3.66667,0) 4041 ..(4,0)..controls (13.63031,0) and (0,10.64238) 4042 ..cycle 4043 4044Path at line 163, before choices: 4045(0,0) 4046 ..(5,2.9) 4047 ..(4,3) 4048 ..cycle 4049 4050Path at line 163, after choices: 4051(0,0)..controls (0.9363,-8.0181) and (11.81119,0.07109) 4052 ..(5,2.9)..controls (4.68596,3.03043) and (4.33879,3.02028) 4053 ..(4,3)..controls (1.86353,2.87216) and (-0.21431,1.83528) 4054 ..cycle 4055 4056{makepen(path)} 4057Pen polygon at line 163 (newly created): 4058(5,2.9) 4059 .. (4,3) 4060 .. (0,0) 4061 .. cycle 4062 4063Path at line 163, before subdivision into octants: 4064(0,2)..controls (0,1.66667) and (0,1.33333) 4065 ..(0,1)..controls (0,-0.20886) and (1.63324,0) 4066 ..(3,0)..controls (3.33333,0) and (3.66667,0) 4067 ..(4,0)..controls (13.63031,0) and (0,10.64238) 4068 ..cycle 4069 4070Cycle spec at line 163, after subdivision and double autorounding: 4071(1.5,0.00272) % beginning in octant `SSE' 4072 ..controls (1.5,-0.49254) and (1.63411,-0.82727) 4073 ..(1.8592,-1.05237) % segment 1 4074% entering octant `ESE' 4075 ..controls (2.23936,-1.43253) and (2.87909,-1.5) 4076 ..(3.57066,-1.5) % segment 1 4077% entering octant `ENE' 4078 ..controls (3.95114,-1.5) and (4.3473,-1.47957) 4079 ..(4.72458,-1.47957) % segment 1 4080 ..controls (5.08287,-1.47957) and (5.44116,-1.47957) 4081 ..(5.79944,-1.47957) % segment 2 4082 ..controls (7.35368,-1.47957) and (8.34424,-1.12393) 4083 ..(8.90538,-0.56279) % segment 3 4084% entering octant `NNE' 4085 ..controls (9.31982,-0.14835) and (9.5,0.37819) 4086 ..(9.5,0.95631) % segment 3 4087% entering octant `NNW' 4088 ..controls (9.5,2.00116) and (8.61821,3.4318) 4089 ..(7.41951,4.6305) % segment 3 4090% entering octant `WNW' 4091 ..controls (6.32909,5.72092) and (5.11603,6.5) 4092 ..(4.2104,6.5) % segment 3 4093% entering octant `WSW' 4094 ..controls (3.64668,6.5) and (3.12122,6.31134) 4095 ..(2.68588,5.876) % segment 3 4096% entering octant `SSW' 4097 ..controls (1.97163,5.16176) and (1.5,3.78351) 4098 ..(1.5,1.485) % segment 3 4099 ..controls (1.5,0.99092) and (1.5,0.49681) 4100 ..(1.5,0.00272) % segment 0 4101 & cycle 4102 4103Tracing edges at line 163: (weight 1) 4104@ Octant SSE (0 offsets), from (1.5,0.00272) to (1.8592,-1.05237) 4105@ transition line 0, from (1.5,0.00272) to (1.5,0.00272) 4106(2,0) 4107@ Octant ESE (0 offsets), from (1.8592,-1.05237) to (3.57066,-1.5) 4108@ transition line 1, from (3.57066,-1.5) to (3.57066,-1.5) 4109@ Octant ENE (2 offsets), from (3.57066,-1.5) to (13.90538,2.3372) 4110@ transition line 0, from (3.57066,-1.5) to (3.57066,-1.5) 4111@ transition line 1, from (8.41534,-0.93503) to (13.41534,1.96497) 4112@ transition line 2, from (13.90538,2.3372) to (13.90538,2.3372) 4113(2,-1)(9,-1)(9,0)(11,0)(11,1)(13,1) 4114@ Octant NNE (0 offsets), from (13.90538,2.3372) to (14.5,3.85631) 4115@ transition line 1, from (14.5,3.85631) to (14.5,3.85631) 4116(13,2)(14,2) 4117@ Octant NNW (0 offsets), from (14.5,3.85631) to (12.41951,7.53049) 4118@ transition line 0, from (14.5,3.85631) to (14.5,3.85631) 4119(14,6)(13,6)(13,7)(12,7) 4120@ Octant WNW (2 offsets), from (12.41951,7.53049) to (8.2104,9.5) 4121@ transition line 3, from (12.41951,7.53049) to (12.41951,7.53049) 4122@ transition line 2, from (9.38113,9.39124) to (8.38113,9.49124) 4123@ transition line 1, from (8.2104,9.5) to (8.2104,9.5) 4124(12,8)(11,8)(11,9)(8,9) 4125@ Octant WSW (2 offsets), from (8.2104,9.5) to (2.68588,5.876) 4126@ transition line 0, from (8.2104,9.5) to (8.2104,9.5) 4127@ transition line 1, from (6.92668,9.08539) to (2.92668,6.08539) 4128@ transition line 2, from (2.68588,5.876) to (2.68588,5.876) 4129(8,10)(8,9)(6,9)(6,8)(5,8)(5,7)(3,7) 4130@ Octant SSW (0 offsets), from (2.68588,5.876) to (1.5,0.00272) 4131@ transition line 1, from (1.5,0.00272) to (1.5,0.00272) 4132(3,6)(2,6)(2,0). 4133 4134Path at line 163, before subdivision into octants: 4135(0,2)..controls (0,10.64238) and (13.63031,0) 4136 ..(4,0)..controls (3.66667,0) and (3.33333,0) 4137 ..(3,0)..controls (1.63324,0) and (0,-0.20886) 4138 ..(0,1)..controls (0,1.33333) and (0,1.66667) 4139 ..cycle 4140 4141Cycle spec at line 163, after subdivision and double autorounding: 4142(2.68588,5.876) % beginning in octant `ENE' 4143 ..controls (3.12122,6.31134) and (3.64668,6.5) 4144 ..(4.2104,6.5) % segment 0 4145% entering octant `ESE' 4146 ..controls (5.11603,6.5) and (6.32909,5.72092) 4147 ..(7.41953,4.63048) % segment 0 4148% entering octant `SSE' 4149 ..controls (8.61824,3.43176) and (9.5,2.00116) 4150 ..(9.5,0.95631) % segment 0 4151% entering octant `SSW' 4152 ..controls (9.5,0.37819) and (9.31982,-0.14835) 4153 ..(8.90538,-0.56279) % segment 0 4154% entering octant `WSW' 4155 ..controls (8.34425,-1.12392) and (7.35368,-1.47957) 4156 ..(5.79944,-1.47957) % segment 0 4157 ..controls (5.44116,-1.47957) and (5.08287,-1.47957) 4158 ..(4.72458,-1.47957) % segment 1 4159 ..controls (4.3473,-1.47957) and (3.95114,-1.5) 4160 ..(3.57066,-1.5) % segment 2 4161% entering octant `WNW' 4162 ..controls (2.87909,-1.5) and (2.23936,-1.43253) 4163 ..(1.85919,-1.05235) % segment 2 4164% entering octant `NNW' 4165 ..controls (1.6341,-0.82726) and (1.5,-0.49254) 4166 ..(1.5,0.00272) % segment 2 4167% entering octant `NNE' 4168 ..controls (1.5,0.49681) and (1.5,0.99092) 4169 ..(1.5,1.485) % segment 3 4170 ..controls (1.5,3.78351) and (1.97165,5.16177) 4171 ..(2.68588,5.876) % segment 0 4172 & cycle 4173 4174Tracing edges at line 163: (weight 1) 4175@ Octant ENE (2 offsets), from (7.68588,8.776) to (4.2104,6.5) 4176@ retrograde line from (7.68588,8.776) to (2.68588,5.876) 4177(7,9)(7,8)(5,8)(5,7)(4,7) 4178@ transition line 0, from (2.68588,5.876) to (2.68588,5.876) 4179@ transition line 1, from (2.68588,5.876) to (7.68588,8.776) 4180@ transition line 2, from (8.13123,9.12088) to (3.13123,6.22089) 4181@ transition line 1, from (4.2104,6.5) to (9.2104,9.4) 4182@ transition line 2, from (9.2104,9.4) to (9.2104,9.4) 4183(4,6)(4,7)(6,7)(6,8)(8,8) 4184@ retrograde line from (9.2104,9.4) to (4.2104,6.5) 4185(8,9)(8,8)(6,8) 4186@ Octant ESE (0 offsets), from (4.2104,6.5) to (7.41953,4.63048) 4187@ transition line 1, from (7.41953,4.63048) to (7.41953,4.63048) 4188(6,7)(4,7)(4,6)(6,6) 4189@ Octant SSE (0 offsets), from (7.41953,4.63048) to (9.5,0.95631) 4190@ transition line 0, from (7.41953,4.63048) to (7.41953,4.63048) 4191(6,5)(8,5)(8,3)(9,3) 4192@ Octant SSW (0 offsets), from (9.5,0.95631) to (8.90538,-0.56279) 4193@ transition line 1, from (8.90538,-0.56279) to (8.90538,-0.56279) 4194@ Octant WSW (2 offsets), from (8.90538,-0.56279) to (7.57066,1.5) 4195@ retrograde line from (8.90538,-0.56279) to (12.90538,2.43721) 4196(9,-1)(9,0)(10,0)(10,1)(12,1) 4197@ transition line 0, from (12.90538,2.43721) to (12.90538,2.43721) 4198@ transition line 1, from (12.90538,2.43721) to (8.90538,-0.56279) 4199@ transition line 2, from (8.6665,-0.76936) to (12.6665,2.23064) 4200@ transition line 1, from (7.57066,1.5) to (3.57066,-1.5) 4201@ transition line 2, from (3.57066,-1.5) to (3.57066,-1.5) 4202(12,2)(8,2)(8,1)(6,1)(6,0)(5,0) 4203@ retrograde line from (3.57066,-1.5) to (7.57066,1.5) 4204(5,-1)(5,0)(6,0)(6,1)(8,1) 4205@ Octant WNW (2 offsets), from (7.57066,1.5) to (6.85919,1.84764) 4206@ retrograde line from (7.57066,1.5) to (8.57066,1.4) 4207(8,2) 4208@ transition line 3, from (8.57066,1.4) to (8.57066,1.4) 4209@ transition line 2, from (8.57066,1.4) to (7.57066,1.5) 4210@ transition line 1, from (6.95764,1.52585) to (7.95764,1.42584) 4211@ transition line 2, from (6.85919,1.84764) to (5.85919,1.94765) 4212@ transition line 1, from (5.85919,1.94765) to (5.85919,1.94765) 4213(8,1) 4214@ retrograde line from (5.85919,1.94765) to (6.85919,1.84764) 4215@ Octant NNW (0 offsets), from (6.85919,1.84764) to (6.5,2.90271) 4216@ transition line 0, from (6.85919,1.84764) to (6.85919,1.84764) 4217(8,2)(7,2) 4218@ Octant NNE (0 offsets), from (6.5,2.90271) to (7.68588,8.776) 4219@ transition line 1, from (7.68588,8.776) to (7.68588,8.776) 4220(7,9). 4221 4222{tracingonline:=1} 4223 4224f<expr>->let)=];let[=(;show._ 4225(EXPR0)<-xx 4226{let} 4227{let} 4228{show} 4229>> _1 4230{showdependencies} 4231xpart '=-ypart '-0.66667 4232{qq:=pen} 4233{showstats} 4234Memory usage 1462&588 (104 still untouched) 4235String usage 41&161 (815&7634 still untouched) 4236{[repeat the loop]} 4237! A group begun on line 163 never ended. 4238<to be read again> 4239 endtext 4240l.163 ... showstats; bye endtext 4241 4242I saw a `begingroup' back there that hasn't been matched 4243by `endgroup'. So I've inserted `endgroup' now. 4244 4245{endgroup} 4246 ) 4247(end occurred when else on line 93 was incomplete) 4248(end occurred when if on line 36 was incomplete) 4249(end occurred when elseif on line 21 was incomplete) 4250Here is how much of METAFONT's memory you used: 4251 68 strings out of 883 4252 3752 string characters out of 11386 4253 2897 words of memory out of 3001 4254 289 symbolic tokens out of 2100 4255 8i,43n,14r,8p,167b stack positions out of 30i,100n,300r,150p,500b 4256 4257(illegal design size has been changed to 128pt) 4258(some chardp values had to be adjusted by as much as 0.5pt) 4259(local label 0:: was missing) 4260(local label 5:: was missing) 4261(4 font metric dimensions had to be decreased) 4262(You used 3w,2h,16d,2i,312l,301k,1e,10p metric file positions 4263 out of 256w,16h,16d,64i,5000l,500k,256e,50p) 4264 4265Font metrics written on trap.tfm. 4266Output written on trap.72270gf (5 characters, 1028 bytes). 4267