; TeX output 1999.02.25:1531! /XYdict where not{250 dict /XYdict exch def /xy{mark exch XYdict begin countdictstack /xylevel exch def xyopen xycolor mark xypatt xypattern stopped xyclose end cleartomark}def /xyg{gsave xy}def /xyf{currentfont exch xy grestore setfont}def /xycc{{xychgcol}xy}def /xyc{XYdict begin xycolstore end}def /xyx{/xyYpos exch def /xyXpos exch def}def /xyp{currentpoint xyx}def /xyd{setupDirection XYdirection 2 mul}def /xyct{currentpoint xyt 2 copy 6 2 roll}def /xyt{xyXpos xyYpos 2 copy translate}def /xyr{neg rotate xynt}def /xyrs{neg rotate 3 -1 roll sub neg 3 1 roll sub exch moveto xynt}def /xynt{neg exch neg exch translate}def /xys{scale xynt}def /xyss{scale 3 -1 roll sub neg 3 1 roll sub exch moveto xynt}def /xyi{0 0 transform grestore gsave itransform}def }if&! /XYdict where pop begin XYdict begin! /xyopen{currentdict /XYddict known{XYddict null eq{} {XYddict begin xyopen}ifelse}if}def /xyclose{countdictstack -1 xylevel 1 add{pop end}for}def /xychgcol{/xycolor exch def}def /xysetcol{xypush xychgcol}def  ! /xypush{16 dict /XYddict exch def XYddict begin}def /undef where {pop /xypop{countdictstack xylevel eq{}{end}ifelse currentdict /XYddict undef}def} {/xypop{countdictstack xylevel eq{}{end}ifelse /XYddict null def}def}ifelse /pu /xypush load def /pp /xypop load def! /xypspt{72 72.27 div dup scale}bind def /pscorrect{.85 mul}bind def /gstartxy{gsave xypspt xywidth xycap xyjoin xymiter newpath 0 0 moveto}def /xypath{gstartxy rmoveto counttomark 2 idiv -1 1{pop lineto}for}def /xystroke{stroke grestore}bind def /xyfill{closepath fill grestore}bind def /xystfil{closepath gsave fill grestore 0 setgray 0 setlinewidth xystroke}bind def /xyeofill{closepath eofill grestore}bind def ! /xypolyline{xypath xystroke}def /xypolyfill{xypath xyfill}def /xydotsep{/@ currentlinewidth 2 mul def}def /xypolydot{xypath xydotsep [xydt @] 0 setdash xystroke}def /xypolydash{xypath xydotsep [@ @] 0 setdash xystroke}def /xypolyeofill{xypath xyeofill}def /pe /xypolyeofill load def /pl /xypolyline load def /pf /xypolyfill load def /pt /xypolydot load def /pd /xypolydash load def ! /arc4pop{arcto 4{pop}repeat}bind def /xyoval{gstartxy oval closepath xystroke}def /xycircle{gstartxy circle xystroke}def /circle{dup 0 moveto 0 0 3 -1 roll 0 360 arc}def /oval{newpath 2 copy exch 5 index add 2 div exch 3 copy 10 3 roll moveto 1 index dup 5 1 roll 3 index 7 index arc4pop dup dup 4 1 roll 4 index exch 6 index arc4pop 1 index dup 8 1 roll 4 index 4 index arc4pop arc4pop closepath}def /xyellipse{gstartxy counttomark 1 gt{squarify pop pop 1}if circle xystroke}def /ov /xyoval load def /ox /xyellipse load def P! /dotit{dup currentlinewidth 6 mul div round div /@ exch def [xydt @] 0 setdash}def /elldash{dup 4 -1 roll 10 exch div dashit}def /ovdash{dup 10 dashit}def /dashit{div round 2 mul div /@ exch def [@ @] 0 setdash}def /dotcirc{gstartxy cirlen dotit circle xystroke}def /dashcirc{gstartxy cirlen dashit circle xystroke}def /dotoval{gstartxy 5 copy ovlen dotit oval xystroke}def /dashoval{gstartxy 5 copy ovlen ovdash oval xystroke}def /cirlen{dup 6.283185 mul}bind def /ovlen{3 -1 roll sub 3 1 roll sub add exch 1.716815 mul sub}def /dotellipse{gstartxy counttomark 1 gt{squarify pop pop 1}if cirlen dotit circle closepath xystroke}def /dashellipse{gstartxy counttomark 1 gt{squarify add 2 div 1} {1 exch 1 exch}ifelse cirlen elldash circle xystroke}def /ot /dotellipse load def /od /dashellipse load def /vt /dotoval load def /vd /dashoval load def R! /filloval{gstartxy oval xyfill}def /stfiloval{gstartxy oval xystfil}def /fillcircle{gstartxy circle xyfill}def /stfilcircle{gstartxy circle xystfil}def /fillellipse{gstartxy squarify pop pop 1 circle xyfill}def /stfilellipse{gstartxy squarify pop pop 1 circle xystfil}def /squarify{4 copy sub 2 div 3 1 roll sub 2 div translate add 2 div 3 1 roll add 2 div 2 copy scale 2 copy add 2 div currentlinewidth exch div setlinewidth newpath}def /fe /fillellipse load def /sfe /stfilellipse load def /fo /filloval load def /sfo /stfiloval load def /fc /fillcircle load def /sfc /stfilcircle load def ! /xywidth{.4 pscorrect setlinewidth}bind def /xydash{[] 0 setdash}bind def /xycap{1 setlinecap}bind def /xyjoin{1 setlinejoin}bind def /xymiter{10 setmiterlimit}bind def 5! /cc{dup exec xychgcol}def /lw{dup setlinewidth /@l exch def /xywidth{@l setlinewidth}bind def}def /lc{dup setlinecap /@c exch def /xycap{@c setlinecap}bind def}def /lj{dup setlinejoin /@j exch def /xyjoin{@j setlinejoin}bind def}def /ml{dup setmitrelimit /@m exch def /xymiter{@m setmitrelimit}bind def}def ! /setupDirection{dup -2048 lt{3072 add neg 1024 exch} {dup 0 lt{1024 add neg -1024}{dup 2048 lt{1024 sub -1024 exch} {3072 sub 1024}ifelse}ifelse}ifelse atan dup 180 gt{360 sub}if dup /XYdirection exch def rotate}def ! userdict begin /gray{setgray}bind def /gray@{setgray}bind def /rgb{setrgbcolor}bind def /rgb@{setrgbcolor}bind def /hsb{sethsbcolor}bind def /hsb@{sethsbcolor}bind def /setcmykcolor where{pop}{/setcmykcolor{dup 3 1 roll dup 5 1 roll exch sub 1 add 5 1 roll exch sub 1 add 4 1 roll exch sub 1 add 3 1 roll setrgbcolor}bind def}ifelse /cmyk{setcmykcolor}bind def /cmyk@{setcmykcolor}bind def /sethalftone where{/sethalftone load /tone exch def}if /xycolarray 3 array def /xycolstore{currentrgbcolor 2 -1 0 {exch xycolarray 3 1 roll put}for}def xycolstore /xycolor{0 1 2{xycolarray exch get}for setrgbcolor}def /xypatt{}def /xypattern{cleartomark}bind def end ! end end&! /XYdict where pop begin XYdict begin! /:patt {XYddict begin 14 dict begin /BGnd exch def /FGnd exch def /PaintData exch def /PatternType 1 def /PaintType 1 def /BBox[0 0 1 1]def /TilingType 1 def /XStep 1 def /YStep 1 def /PatternMtx[24 0 0 24 0 0]def /PaintProc BGnd null ne {{begin BGnd aload pop setrgbcolor 0 0 1 1 rF FGnd aload pop setrgbcolor 24 24 true PatternMtx PaintData imagemask end}} {{begin FGnd aload pop setrgbcolor 24 24 true PatternMtx PaintData imagemask end}} ifelse def currentdict PatternMtx end gsave patangle xyland{180 add}if rotate macfreq patfreq div dup neg exch scale matrix currentmatrix grestore gsave setmatrix /DeviceRGB setcolorspace makepattern grestore end}defj! /rF{gsave newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto neg 0 rlineto fill grestore}bind def ! /setpatscreen{/pattstring exch store patfreq patangle xyport not{90 add}if {1 add 4 mul cvi pattstring exch get exch 1 add 4 mul cvi 7 sub bitshift 1 and}setscreen}bind def /setcolpattern{setpatscreen 64 div 1 exch sub currentrgbcolor 1 1 3{pop 1 exch sub 3 index mul 1 exch sub 3 1 roll}for setrgbcolor pop}def /setgraypattern{setpatscreen 64 div setgray}def /macfreq 9.375 def /patangle 0 def /patfreq 12.5 def! /checkland{/normland where{pop normland not}{false}ifelse /xyland exch def /por where{pop por}{/isls where{pop isls not /xyland true def} {/land where{pop land not}{true} ifelse}ifelse}ifelse /xyport exch def}def *! /setpatfreq{/patfreq exch def}def /setpatangle{/patangle exch def}def /setbackcolor{/backcolor exch def}def /setforecolor{/forecolor exch def}def [1 1 1] setbackcolor xycolarray setforecolor /bg /setbackcolor load def /fg /setforecolor load def /pa /setpatangle load def /pq /setpatfreq load def ! /xypattern{checkland counttomark dup 0 eq{pop} {dup 1 eq{pop setpatscreen} {dup 2 eq{pop setcolpattern} {dup 3 eq{pop /setcolorspace where { /.setcolorspace where{pop pop pop setcolpattern} {/.buildpattern where {pop forecolor backcolor :patt setpattern }{pop pop setcolpattern}ifelse}ifelse} {pop setcolpattern}ifelse} {5 eq{/setcolorspace where{ /.setcolorspace where{pop pop pop pop pop setcolpattern} {/.buildpattern where {pop :patt setpattern }{pop pop pop pop setcolpattern}ifelse}ifelse} {pop pop pop setcolpattern}ifelse }{}ifelse}ifelse}ifelse}ifelse}ifelse cleartomark }def /xysetpattern{/xypatt exch def}def /sp /xysetpattern load def ! end end&! /XYdict where pop begin XYdict begin! /xysize 10 def /T true def /F false def /dimendiv{65536 div}bind def /xysegl 327680 dimendiv def /xyopp{1 -1 scale}bind def /xynormwidth{26213 dimendiv pscorrect}bind def /xywidth{xynormwidth setlinewidth}bind def ! /xyfont{4096 add 64 div round 64 mul 4096 sub}def /xydt 0.01 def /xysdfont{4096 add 32 div round 32 mul 4096 sub}def /xydots{xywidth 1 setlinecap [xydt 2] 0 setdash}bind def /f /xyfont load def /fs /xysdfont load def! /xyCheckDir{dup 8 div 3 mul 3 -1 roll sub neg exch div 360 mul dup dup XYdirection sub 180 div round 180 mul XYdirection add dup 3 -1 roll sub abs 10 gt not{exch}if pop}def G! /xyrulth{26213 dimendiv pscorrect setlinewidth 0 setlinecap}bind def ! /gsavexy{gsave xypspt XYdirection rotate xywidth newpath 0 0 moveto}def /gchksavexy{gsave xypspt setupDirection xywidth newpath 0 0 moveto}def m! /xyswap{XYdirection 180 add /XYdirection exch def}def /xyline{gstartxy setupDirection rlineto xystroke}def ! /dash{exch gchksavexy xysegl XYdirection dup -90 lt{pop neg}{90 gt{neg}if}ifelse exch{neg}if 0 rlineto xystroke}def /stopper{gstartxy setupDirection 0 xysegl 2 div rmoveto 0 xysegl neg rlineto xystroke }def /d /dash load def /st /stopper load def! /solid{gstartxy xydash neg exch neg exch rlineto xystroke}def /dashed{gstartxy 2 copy dup mul exch dup mul add sqrt dup xysegl add xysegl 2 mul div round 2 mul 1 sub div [ exch dup ] 0 setdash neg exch neg exch rlineto xystroke}def /l /solid load def /dd /dashed load def! /dot{gstartxy 2 setlinecap [xydt 2] 0 setdash 1 0 rlineto xystroke}def /dotted{gstartxy 2 copy dup mul exch dup mul add sqrt dup 2 div round 1 add div 2 setlinecap [xydt 3 -1 roll] 0 setdash neg exch neg exch rlineto 0 0 rlineto xystroke}def /p /dot load def /dt /dotted load def! /cubic{gstartxy docubic} def /docubic{chkvalid {chkcubedge 8 -2 roll moveto curveto xystroke pop} {cleartomark grestore}ifelse}def /chkcubedge{2 copy 1.0 eq{0.0 eq{pop pop}{cubicedge}ifelse} {pop cubicedge}ifelse}def /bz /cubic load def! /dotcubic{gstartxy 1 setlinecap [xydt 2] 0 setdash docubic}def /dashcubic{gstartxy [5 5] 0 setdash docubic}def /bt /dotcubic load def /bd /dashcubic load def! /squine{gstartxy dosquine}def /dosquine{chkvalid {chksquedge 2 copy moveto xysq2cub curveto xystroke pop} {cleartomark grestore}ifelse}def /q /squine load defD! /chkvalid{2 copy lt{dup 1 gt{false}{true}ifelse}{false}ifelse}def ! /chksquedge{2 copy 1.0 eq{0.0 eq{pop pop}{squineedge}ifelse} {pop squineedge}ifelse}def /xysq2cub{xysq2cubit 6 1 roll xysq2cubit 6 1 roll 3 index 3 index xysq2cubit 6 1 roll xysq2cubit 6 1 roll pop pop}def /xysq2cubit{2 index 2 mul add 3 div}def ! /dotsquine{gstartxy 1 setlinecap [xydt 2] 0 setdash dosquine}def /dashsquine{gstartxy [5 5] 0 setdash dosquine}def /qt /dotsquine load def /qd /dashsquine load def! /xy4mul{8 copy 5 -1 roll mul 5 1 roll 6 -1 roll mul 6 1 roll 3 -1 roll mul exch 4 -1 roll mul 3 1 roll add 3 1 roll add exch 10 2 roll 7 -1 roll mul 7 1 roll 4 -1 roll mul 5 1 roll 4 -1 roll mul 4 1 roll mul add 3 1 roll add exch 3 -1 roll }def ! /xy44mul{4 copy 16 4 roll exch 3 1 roll 4 copy 12 4 roll xy4mul 12 4 roll xy4mul 12 -4 roll 4 copy 16 4 roll 8 4 roll xy4mul 12 4 roll xy4mul}def M! /cubicedge{10 2 roll exch 8 1 roll 3 -1 roll dup dup 9 2 roll 5 -1 roll dup dup 9 1 roll 8 3 roll 4 1 roll dup dup 5 3 roll dup dup 5 1 roll 3 -1 roll 18 -2 roll 2 copy 1 sub neg 4 1 roll 1 sub neg exch 4 1 roll xy444mul pop pop pop 13 1 roll pop pop pop 9 1 roll 10 1 roll pop 8 1 roll 7 1 roll 8 1 roll pop 5 1 roll 3 1 roll}def ! /xy444mul{4 copy 24 4 roll 12 -4 roll 16 4 roll 4 copy 16 4 roll xy44mul 20 8 roll xy44mul 12 -4 roll 4 -1 roll 7 1 roll exch 4 1 roll exch 6 -1 roll exch 4 2 roll 16 8 roll 8 4 roll 4 -1 roll 7 1 roll exch 4 1 roll exch 6 -1 roll exch 4 2 roll 8 4 roll 16 4 roll 8 4 roll 20 -4 roll exch 3 1 roll 4 copy 20 4 roll 4 copy 16 4 roll 4 copy 12 4 roll xy4mul 28 4 roll xy4mul 20 4 roll xy4mul 12 4 roll xy4mul}def ! /squineedge{8 2 roll exch 5 1 roll 3 -1 roll dup 6 2 roll 1 index exch 10 -2 roll 2 copy 1 sub neg 4 1 roll 1 sub neg exch 4 1 roll xy44mul 4 1 roll pop 5 1 roll 6 1 roll 3 -1 roll pop}def c! /xyshort{2 copy abs exch abs add xysegl .5 mul lt {pop pop grestore}{rlineto xystroke}ifelse}def s! /tipwidth{xywidth xynormwidth dup currentlinewidth exch div sqrt dup dup scale mul setlinewidth 1 setlinecap}def ! /halftip{tipwidth xysize 10 div 0 0 moveto -.25 0 3 -1 roll -2.5 mul 0 xysize 2 div neg dup .62 mul 2 div neg curveto}bind def ! /atip{gchksavexy halftip xystroke}def /btip{gchksavexy xyopp halftip xystroke}def /tip{gchksavexy gsave halftip stroke grestore xyopp halftip xystroke}def /t /tip load def /a /atip load def /b /btip load def@! /cmatip{gchksavexy halfcmtip xystroke}def /cmbtip{gchksavexy xyopp halfcmtip xystroke}def /cmtip{gchksavexy gsave halfcmtip stroke grestore xyopp halfcmtip xystroke}def /halfcmtip{tipwidth 0 0 moveto -.1333 0 .25 neg dup .125 3 -1 roll .25 curveto}bind def /ct /cmtip load def /ca /cmatip load def /cb /cmbtip load def2! /xyfscale{/xyfsize exch def}def /xyfsize{10}def /eu{-0.0551 0.0643 -0.0976 0.1386 -0.125 0.2188}def /cm{-0.105 0.0437 -0.1804 0.1380 -0.2 0.25}def /XY{-0.1753 0.0181 -0.3452 0.0708 -0.5 0.155}def /tipstart{3 -1 roll gchksavexy exch xyfscale tipwidth dup XYdict exch known{dup /xy eq{pop /XY}if}{pop /XY}ifelse XYdict exch get}def /tipend{halfxytip xystroke}def /halfxytip{1 1 6{pop xyfsize mul 6 1 roll}for 0 0 moveto curveto}def /A{tipstart D}def /B{tipstart C}def /C{xyopp D}def /D{exec tipend}def /AB{tipstart dup gsave exec halfxytip stroke grestore C}def ;! /Tip{exch gchksavexy /xyfsize{10}def tipwidth gsave dup XYdict exch known{dup /xy eq{pop /XT}if}{pop /XT}ifelse XYdict exch get dup halfTip stroke grestore xyopp halfTip xystroke}def /XT{360 32 div neg}def /Xt{-1 .31 mul 1 atan}def /ET{360 64 div 5 mul neg}def /Et{-1 .31 mul 1 atan}def /halfTip{exec rotate XY halfxytip}def /halfTtip{halfTip}def /Ttip{exch gchksavexy /xyfsize{10}def tipwidth gsave dup XYdict exch known{dup /xy eq{pop /Xt}if}{pop /Xt}ifelse XYdict exch get dup halfTtip stroke grestore xyopp halfTtip xystroke}def /tt /Tip load def /tT /Ttip load def! /halfturn{xysegl 2 div dup dup neg exch rmoveto 0 exch dup exch -180 -90 arc}bind def /aturn{gchksavexy halfturn xystroke}def /bturn{gchksavexy xyopp halfturn xystroke}def /ta /aturn load def /tb /bturn load def! /xysqll 231705 dimendiv def /squigl{gchksavexy xysqll dup neg 0 rmoveto 2 div dup dup neg dup 3 -1 roll 2 sqrt mul dup 5 1 roll 135 45 arcn dup 3 -1 roll -135 -45 arc xystroke}def /g /squigl load defk! /fullhook{0 xysegl 2 div dup -90 90 arcn}bind def /halfhook{xysegl 2 div dup 0 exch 180 90 arcn}bind def ! /ahook{gchksavexy fullhook xystroke}def /bhook{gchksavexy xyopp fullhook xystroke}def /hook{gchksavexy gsave halfhook stroke grestore xyopp halfhook xystroke}def /h /hook load def /ha /ahook load def /hb /bhook load defe! /xyqcirc{dup dup neg exch translate newpath dup neg 0 exch moveto 0 0 3 -1 roll -90 0 arc}bind def x! /circ{gstartxy 3 copy pop 2 copy cos mul 3 1 roll sin mul rmoveto 0 0 5 2 roll arc xystroke}bind def /o /circ load def! /circhar{gsave dup 3 gt{7 sub neg}if dup 3 eq{pop dup 2 sqrt -2 div mul}{dup 1 eq{pop dup 2 sqrt 2 div mul} {0 eq{dup}{0}ifelse}ifelse}ifelse 0 translate 3 1 roll circ grestore}bind def /c /circhar load def ! end end*tj??]wheader=color.proۼ8]; DtGGcmr17X>YI1X-pic7tCompleteSourceswithT[-E;gXnicalCommenqtary.ٟq!XQ cmr12Kristo erH.Rose #!", cmsy10hKristo er.Rose@ens-lyron.fri2|{Ycmr81RossMoSore hross@mpce.mq.edu.aui22lύ9cXyY-picvrersion3.7h1999/02/16iMt덍 ^ٓRcmr71K`y cmr10EcoleUUNormaleSupGerieuredeLyon(LIP),46AllGeed'Italie,F{69364Lyon,F*rance. u ^2MPCEUU(Mathematicsdept.),MacquarieUniversity*,UUNorthRyde,Sydney,AustraliaNSW2109.**tjK`y 3 cmr102??hwPrin!tedfFeebruary25,1999,from$ logo10METAF9ONTsourcesoftheXYj@-picpackdDagewithT,[wEB Xnicalcom- men!tarye.iIt assumesthatyouarefamiliarwiththeuseofhXY -picasdescribMedintheUser'sGuide[14 4]asfw!ellaswiththefundamentalsofT,[wEB X[6y]andMETAF9ONT[7].)"V 3 cmbx10Ovterview. 5Chapter>1explainstheT,[wEB XsourcesoftheXY H-picturekerneldra!winglanguage.%Chapter2explains$vthesourcesofthestandardextensions pro!vidingextendedgraphiccapabilities,>sandchapter3thersourcesofstandardfepaturespro!vidingrspMecialisednotationforparticulardiagramtypMes.Chapter5expMosesftheMETAF9ONTsourcesofthestandardfon!tsprovidedinthedistribution.TheFappMendicescon!tainadditionalinformation:`AppendixAcon!tainsanswerstoalltheexercisesofthemaintext.~ AppMendixBsummarisesthebac!kwardscompatibilitywithnXY -picversion2.~ AppMendixCcon!tains&theGNU&GeneralPublicLicensedetailingtheconditionsofuseofiXY-pic,FandappMendixDvdDariousfsuppMort lescon!tainedinthedistribution.Finallyabibliographyandtheindex.ThefrepMortincludesmostoftheinformationinthereferenceman!ual[?H].License. 5MostPoftheXYZ-picpac!kdDageiscopyrightbytheindividualauthors. Weehavechosentousethe\GNUCop!yleft"tomakethepackdDageavdDailablewithoutrestrictiontoasmanyusersaspMossibleand ensurethatitisattributedtoitsauthorswithoutriskofpMersecution.pThedisclaimercanbefoundonftheinsideco!verfpage;thefulltextofthelicenseisreproMducedasappendixC.LWiGܠ*tjii??P*tj??Con8tents@1Kernel:xy\.doYc{,1 1.1 (JTheXY p-picfimplemen!tation.=................................)1 (J1.1.102LoadingXY p-picy.=...................................)1 (J1.1.202Logo,fv!ersion,andmessages".=............................^13 (J1.1.302Feon!tsz.=........................................^14 (J1.1.402AlloMcations>.=.....................................^15 (J1.1.502Utilit!yfmacrosv.=...................................^171.2 (JPicturefbasics~.=........................................^19 (J1.2.102P!ositions׍.=......................................^20 (J1.2.202Objectsp.=.......................................^20 (J1.2.302Connections'`.=.....................................^20 (J1.2.402Decorations.=.....................................^21 (J1.2.502TheXY p-picfstateʍ.=..................................^211.3 (JP!ositionsd獍.=...........................................^221.4 (JObjects.=...........................................^451.5 (JDecorations.=.........................................^641.6 (JKernelfobjectlibraryw.=....................................^70 (J1.6.102Directionals}.=.....................................^70 (J1.6.202Circlefsegmen!ts.=...................................^85 (J1.6.302Teext.=.........................................^891.7 XYT-picfoptionsЍ.=........................................^90 (J1.7.102Loading.=.......................................^90 (J1.7.202Optionf leformat.=.................................^91 (J1.7.302Driv!erfoptionsヘ.=...................................^921.8 (JAlgorithmsD.=.........................................^97 (J1.8.102Directions~.=......................................^97 (J1.8.202Edgesh.=........................................103 (J1.8.302Connections'`.=.....................................1112Extensions^1192.1 (JCurv!efandSplineextension ፍ.=................................119 (J2.1.102Curv!edfconnectionsl=.=................................120 (J2.1.202CirclesfandEllipses=.=.................................188 (J2.1.302QuadraticfSplineslC.=.................................1932.2 (JFeramefandBrac!ketfextension3.=...............................196 (J2.2.102FeramesE.=.......................................198 (J2.2.202Brac!ketst.=.......................................206 (J2.2.302Filledfregionsm.=....................................209 (J2.2.402FeramingfasobjectmoMdi er.=............................211LWKiiiP*tjiv&p0J 3 cmsl10CONTENTS??hw (J2.2.502Usingfcurv!esforframes!.=..............................212 02.3 (JMorefTipsextensionԍ.=....................................214 (J2.3.102Endf&logȍ.=......................................2172.4 (JLinefst!ylesextension.=....................................2172.5 (JRotatefandScaleextension%3.=................................2272.6 (JColourfextensionqT.=......................................2342.7 (JP!atternfandTileextension.=.................................2402.8 (JImpMortfgraphicsextension.=.................................2472.9 (JMo!viefStorybMoardextension.=................................2502.10 (JP!ostScriptfbackend.=.....................................253 (J2.10.102ChoMosingftheD!VI-driver̍.=..............................254 (J2.10.202Wh!yfuse*- 3 cmcsc10PostScript1 ɹ.=..............................259 (J2.10.302HoMokingfin!toXY p-pict.=................................261 (J2.10.402Kernelfimpro!vements{덍.=................................2622.11 (JTPICfbac!kend.=.......................................2692.12 (Jem-TeeXfbac!kend$q.=......................................2762.13 (JNecula'sfextensionsh.=.....................................279 (J2.13.102ExpansionNV.=......................................280 (J2.13.202P!olygonfshapMesፍ.=...................................2813F\eatureś2913.1 (JAllffeatures#.=.........................................2913.2 (JDumm!yfoptionaɍ.=.......................................2923.3 (JArro!wfandPathfeature'.=..................................294 (J3.3.102P!aths.=........................................295 (J3.3.202Arro!wsd.=.......................................3073.4 (JTw!o-cellffeatureU6.=.......................................316 (J3.4.102T!ypMesettingf2-cellsinDiagramst鍍.=..........................317 (J3.4.202StandardfOptionslB.=.................................323 (J3.4.302Nudging .=.......................................325 (J3.4.402ExtrafOptions.=...................................326 (J3.4.502AfterfP!arsing...ፍ.=...................................330 (J3.4.6022-cellsfingeneralXY p-picturese.=............................3313.5 (JMatrixffeature.=.......................................341 (J3.5.1/5XY:-matricesR(.=.....................................342 (J3.5.202NewfcoMordinateformatsp.=..............................352 (J3.5.302Spacingfandrotationʽ.=................................354 (J3.5.402En!tries'.=........................................3573.6 (JGraphffeatureO.=........................................3603.7 (JP!olygonffeatureOV.=.......................................3693.8 (JLatticefandw!ebfeatureCt.=..................................3893.9 (JCircle,fEllipse,ArcfeatureFi.=.................................394 (J3.9.102FeullfCircles:̍.=.....................................396 (J3.9.202Ellipsesj.=.......................................399 (J3.9.302Dra!wingfarcs2.=....................................400 (J3.9.402CircularfandEllipticalArcs.=............................4053.10 (JKnotsfandLinksfeature\.=..................................4183.11 (JSmartfP!athoption5.=.....................................445 ffy̟ L͍ {-=Aacmr61a.- cmcsc10PostScriptT+o cmr9isaregisteredT:rademarkofAdobAe,Inc.[1].*tjCONTENTS*v??hw4Drivters@461 4.1 (JSuppMortfforSpeci cDriv!ers.=................................4614.2 (Jdvidrvfdriv!erZ.=........................................4614.3 (JD!VIPSfdriver.=........................................4624.4 (JD!VITOPSfdriverA.=......................................4674.5 (JOzTeeXfdriv!erڍ.=........................................4724.6 (JOzTeeXfv1.7driv!erӍ.=.....................................4774.7 (JTeexturesfdriv!erx1.=.......................................4814.8 (JTeexturesfv1.6driv!er*.=....................................4854.9 (JXD!VIfdrivertk.=.........................................4894.10 (JCMacTeeXfdriv!er܍.=......................................4944.11 (JExtraffeatureswithPostScriptsuppMort.=........................495 (J4.11.102xyps-ps.doMcԙ.=.....................................495 (J4.11.202Installation.=.....................................497 (J4.11.302Extensions͍.=.....................................504 (J4.11.402xyps-c.doMcى.=......................................506 (J4.11.502Colour.=........................................507 (J4.11.602xyps-f.doMc^ލ.=......................................509 (J4.11.702FeramesE.=.......................................510 (J4.11.802xyps-l.doMc.=......................................513 (J4.11.902Line-st!ylesU+.=......................................514 (J4.11.1002xyps-r.doMcm{.=......................................516 (J4.11.1102Rotationsfandscaling.=...............................517 (J4.11.1202xyps-t.doMcuD.=......................................519 (J4.11.1302P!atternsfandtiles.=.................................520/5Standard2F\onttsl2O5235.1 (JSemidirectionalffon!t-.=....................................523 (J5.1.102xyd2.mf͍.=.......................................523 (J5.1.202xydash10.=......................................5255.2 (JDirectionalffon!tOV.=.......................................527 (J5.2.102xyd.mf*.=........................................527 (J5.2.202xy!atip10ߍ.=.......................................528 (J5.2.302xybtip10D.=.......................................530 (J5.2.402xybsql10ّ.=.......................................5325.3 (JSpMecialffon!tsڍ.=........................................534 (J5.3.102xycirc10k.=.......................................5345.4 (JOptionalffon!tsMq.=........................................538 (J5.4.102xycmat10_.=......................................538 (J5.4.202xycm!bt10.=......................................539 (J5.4.302xy!euat105鍍.=......................................541 (J5.4.402xy!eubt10-.=......................................542AAnswters2toallexercises='!545BBactkwards2Compatibility5553B.1 (JVeersionf2Compatibilit!y.=..................................553 (JB.1.102UnsuppMortedfincompatibilities\x.=..........................554 (JB.1.202Obsoletefk!ernelfeatures`.=..............................555 (JB.1.302Obsoletefextensions&featuresd.=..........................560#*tjviCONTENTS??hw (JB.1.402Obsoletefloadingij.=..................................563 (JB.1.502Compilingfv2-diagramsN.=..............................565B.2 (JObsoleteffon!tsٛ.=........................................567 (JB.2.102xyline10 4.=.......................................567 (JB.2.202xyqc10,.=........................................570 (JB.2.302xymisc10<.=......................................572ύCGNU2GeneralPublicLicense577DDistribution2suppYort les4583 D.1 (JHypMeFō.=.............................................583 (JD.1.102CAeTALOG>.=.....................................583 (JD.1.202READMEٍ.=......................................583D.2 (JInstallationfinstructionsʍ.=..................................585 (JD.2.102TRAILER@.=......................................585 (JD.2.202INSTeALLɍ.=......................................587D.3 (JGeneration.=.........................................594 (JD.3.102MAKE\.=.......................................594 (JD.3.202Mak!e leX.=.......................................598Bibliograph!yk.=...........................................628ύIndex631#[*tj???0Nq cmbx12Chapter 12:ȍKernel: pxy.do c5bAfterRgivingano!verviewRoftheXY\-picen!vironmentRinx1.1,Vthisc!hapterdoMcumentthebasicconcepts ofӈXY R-pictureconstructioninx1.2,-includingthemain!tained`graphicstate'.Thefollowingsectionsgivether7precisesyn!taxrulesofthemainYXYA-picconstructions:uthepMositionlanguageinx1.3,+theobjectconstructionsHinx1.4,^@andthepicture`decorations'inx1.5.x1.6presen!tsthekernelrepMertoireofobjects{foruseinpictures;)x1.7doMcumen!tstheinterfaceto%XYd-picoptionslikethestandard`feature'andf`extension'options. bSectionx1.8doMcumen!tsthemorecomplicatedalgorithmsusedtocomputedirections, edges,andconnections.#*2Nff cmbx121.1r|TheǨX#՟YY-picffimplementationThisasectionbrie ydiscussesthevdDariousaspMectsofthepresen!tIJXY Ȫ-pickernelimplementationofwhichthefusershouldbMea!ware.n3N cmbx121.1.1 Loading&aX1"Yv-pic4sùXY#-picHiscarefultosetupitso!wnenvironmentinordertofunctionwithalargevdDarietyofformats.FeorfmostformatsasinglelinewiththecommandI򍍒\inputxyinlthepream!bleofadoMcument leshouldloadthekernel(see`integrationwithstandardformats' bMelo!wfforvdDariationspossiblewithcertainformats,inparticularLAGT,[wEB X[10 4]).TherestofthissectiondescribMesthingsy!oumustconsiderifyouneedtousei*XY -pictogetherwithotherуmacropac!kdDages,Jstyleуoptions,orformats._5Thelessy!ourenvironmentdeviatesfromplainT,[wEB XthefeasieritshouldbMe.<Fileheader: 5Here iswhatactuallyhappMensintheheaderofxy.doc'H.HItcon!tainsthecopyrightmessage,protectiontagainstloadingthe lemorethanonce,andthenbMootstraptcodetohandlecategoryfcoMdesandtheDOCMODEformat|w!eexplaineachseparatelybMelow:P1%%$Id:xy.doc,v3.71999/02/1615:12:50krisroseExp$2%%3%%BasicXy-pictures:Xy-picbootstrapandkernelmacros.4%%Copyright(c)1991-1999 TKristofferH.Rose5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.LWҨ~1?*tj20ؿCHAPTERf1.CKERNEL:XY.DOC??hw7%%Copyright(c)1991-1999 TKristofferH.Rose 8%%9%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify10%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe11%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour12%%option)anylaterversion.13%%14%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but15%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY16%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense17%%formoredetails.18%%19%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong20%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,21%%675MassAve,Cambridge,MA02139,USA.22%%23\ifx\xyloaded\undefined\else\message{notreloaded}\endinput\fi24\let\xyloaded=\relaxP26%NOTE:Apartfromtheactualmacros(asalsofoundinxy.tex),thisfile27%containsboththeXy-pickernelreferencemanualandTeXnicaldocumentation.28%Seexyrefer.manandxysource.manforhowtotypesetthisinformation.30\message{Bootstrap\string'ing\string:}32{\catcode9612\catcode`\#6\catcode`\.12\catcode`\:12\catcode`\'12\catcode`\@1133\ifx\xywarnifdefined\undefined\else\immediate\write16{}%34K\immediate\write16{Xy-picWarning:\string\xywarnifdefined\spaceredefined.}%35K\immediate\write16{}\fi36\gdef\xywarnifdefined#1{\ifx#1\undefined\else\immediate\write16{}%37K\immediate\write16{Xy-picWarning:`\string#1'redefined.}%38K\immediate\write16{}\fi}39\xywarnifdefined\xydef@\gdef\xydef@#1{\xywarnifdefined#1\gdef#1}40\xywarnifdefined\xylet@\gdef\xylet@#1{\xywarnifdefined#1\global\let#1}41\xywarnifdefined\xynew@42K\gdef\xynew@#1#2{\xywarnifdefined#2\csnamenew#1\endcsname#2}}44\message{catcodes\string,}46\xywarnifdefined\xyuncatcodes47\xywarnifdefined\xyreuncatcodes\def\xyreuncatcodes{\edef\xyuncatcodes{%48K\catcode920\catcode1231\catcode1252\catcode371449K\catcode9\the\catcode9\catcode10\the\catcode10\catcode12\the\catcode1250K\catcode35\the\catcode35\catcode36\the\catcode36\catcode38\the\catcode3851K\catcode43\the\catcode43\catcode45\the\catcode45\catcode46\the\catcode4652K\catcode47\the\catcode4753K\catcode60\the\catcode60\catcode61\the\catcode61\catcode62\the\catcode6254K\catcode64\the\catcode64\catcode96\the\catcode9655K\newlinechar\the\newlinechar\endlinechar\the\endlinechar}}56\xyreuncatcodes58\xywarnifdefined\xycatcodes\def\xycatcodes{%59K\catcode910K#*tj1.1.CTHEXY p-PICfIMPLEMENTeATIONB3??hw60K\catcode35 T6\catcode363\catcode384 61K\catcode4312\catcode4512\catcode4612\catcode471262K\catcode6012\catcode6112\catcode621263K\catcode6411\catcode9612}P65\xycatcodes67\message{docmode,}69{\catcode`\|0\xywarnifdefined|DOCMODE 70\gdef|DOCMODE#1{\ifx(#1\relax\xycatcodes\expandafter\ignorespaces71K\else\skipspecials@\expandafter\docm@\fi}%P73\xywarnifdefined\skipspecials@74\gdef\skipspecials@{%75K\catcode`\\12\catcode`\{12\catcode`\}12\catcode`\#12\catcode`\%1276K\catcode`\^^L12\endlinechar`\^^J}%78\catcode`\/=12\lccode`\/`\\%79\lccode`\D`\D\lccode`\O`\O\lccode`\C`\C\lccode`\M`\M\lccode`\E`\E80\lowercase{%81\xywarnifdefined\docm@\gdef\docm@{\docm@i}%82\xywarnifdefined\docm@i\gdef\docm@i#1^^J{\docm@ii#1/DOCMODE\docm@iii}%83\xywarnifdefined\docm@ii84K\gdef\docm@ii#1/DOCMODE{\def\next@{#1}\futurelet\next\docm@iii}%85\xywarnifdefined\docm@iii\gdef\docm@iii#1\docm@iii{%86K\ifx\next\docm@iii\let\next\next@\docecho@\let\next@\docm@87K\else\ifx\next@\empty\let\next@\docfinish@88K\else\edef\next@{\noexpand\docm@iv\next@/DOCMODE#1\noexpand\docm@iv}%89K\fi\fi\next@}%90\xywarnifdefined\docm@iv91K\gdef\docm@iv#1/DOCMODE\docm@iv{\def\next{#1}\docecho@\docm@}}%93\xywarnifdefined\docecho@\global\let\docecho@\relax94\xywarnifdefined\docfinish@\gdef\docfinish@{\xyuncatcodes|DOCMODE\next}},8PrivLacy: ߹XYZ?-picnwillw!arnabMoutcontrolsequencesitrede nes|thusyoucanbMesurethatthereareÉnocon ictsbMet!ween3XY*-pic-de nedÉcontrolsequences, thoseofyourformat, andothermacros,pro!videdfyouloadXY p-piclastandgetnowarningmessageslike iyXy-picWarning:`aC b> 3 cmmi10:1::'redefined.In`kgeneraltheHXY u-pick!ernelwillcheckallcontrolsequencesitrede nesexcpeptjUthat(1)generictempMo- rarieszlik!e\nextarenotchecked,(2)prede nedfontidenti ers(seex1.1.3)areassumedintentionallypreloaded,and(3)someofthemoreexoticcon!trolsequencenamesusedinternally(like@{-})areonlyfc!heckedtobMedi erentfrom\relax.Thisyishandledb!y\xywarnifdefined|afterwehaveensuredthatitisuniqueitself1.\xydef@,\xylet@,6and\xynew@{1ht!ypMei}bareabbreviationsusedtothisendthroughoutbXY -picinsteadof\let,\def,fandthe\newht!ypMeicommands. wffy̟ L͍ {-=1aThisma9yseemparanoidbutinfactmanyinconvieniencesintheTuAEXworldstemfromthefactthatsomebAody copiedxsomebAodyelsesde nitionof,sa9y:,5ߤN cmtt9\xywarnifdefined,moAdi edit,andthenuseditinsomethingthatsomeho9wgot+distributed!The` atnamespace'problemremainsTuAEXlargestproblemasaprogramminglanguageinthisTuAEXhac9kersTopinion.X*tj40ؿCHAPTERf1.CKERNEL:XY.DOC??hwNext#someauxilliaries:MW\xydefcsname@Vissimilarto\xydef@1exceptthatitbuildsthecon!trol sequence`with\csname.3..3\endcsname`whic!hmeansthatitis\relax)?whenunde ned|thereisthusnofw!aytopreventrede nitionofcontrolsequencesbMoundto\relax 532cmmi8_ s;.P201\xydef@\xydefcsname@#1{\DN@{#1}\DNii@##1{%202 m\ifx##1\relax\else\xywarning@{\string`\string##1\string'redefined}\fi203 m\def##1}%204K\expandafter\nextii@\csname\codeof\next@\endcsname}O\xyletcsnamecsname@efisMto\letonew!eirdcontrolsequencebMethesameasanotherusingseveral\expandafter(s:211\xydef@\xyletcsnamecsname@#1#2{\def\1{#1}\def\2{#2}\DN@##1##2{%212 m\ifx##1\relax\else\xywarning@{`\string##1\string'redefined}\fi213 m\let##1=##2}%214K\expandafter\expandafter\expandafter\next@215 m\expandafter\csname\expandafter\codeof\expandafter\1\expandafter\endcsname216\csname\codeof\2\endcsname}OFinally\codeof:5ausefulhac!kusedtoallowanycharactersincontrolsequences:5\codeofhcsiexpandsYtothec!haractersofthecontrolsequencehcsiasastringof`other'characters,#i.e.,allYofcategoryf12andwitha z12 nafterev!erycontrolsequence.ThehcsimustbMeamacrooritblowsup.226\xywarnifdefined\codeof227\xywarnifdefined\codeof@228{\catcode`\:=12%toensurethatallof:->and<-:areother:-)229K\gdef\codeof#1{\expandafter\codeof@\meaning#1<-:}230K\gdef\codeof@#1:->#2<-:{#2}}'TCategorycoYdes: 5TheCsituationiscomplicatedb!ythe exibilityofT,[wEB X'sinputformat.Theculpritiscithe`categorycoMde'conceptofT,[wEB X(cf.[6y,pp.37]):_whenloadedKXY s-picrequiresthec!haracters \{}%(the˓ rstisaspace)toha!ve˓theirstandardmeaningandallotherprin!tablecharacterstohavethesamecpategoryaswhenwXZY /j-picwilFlbpeused!|in{particularthismeansthat(1)y!oushouldsurroundtheloadingofXYlZ-picPwith\makeatother.3..؃\makeatletterPwhenloadingitfromwithinaLAGT,[wEB Xpac!kdDage, andthat#.(2) XY 8-picshouldbMeloadedafter lesthatc!hangecategorycodeslik!ethegerman.stythatmakes"Tactiv!e._SomeWstylesrequirethatyouresetthecatcoMdesforeverydiagram,e.g.,withfrench.styy!oufshouldusethecommand\english5JbMeforeevery\xymatrix7c`.Weefde ne\xyuncatcodestorestorethecurren!tcatcoMdes,and\xycatcodestoinstallourown.HerefisanexactlistofthecategorycoMdeswhic!hXY p-picrequires(allstandardinplainT,[wEB X): o#c!haracter(s)Z\}J{}CRTTeABfSP/A5p{Z fa%{zr x0w"{9A% #categoryfcoMde[ 0}m12P5r10="M11uU1214ƍFeurthermorefnoneoftheremainingprin!tableASCIMIcharacters(!"#$&'()*,/:;?@[]^_` "E|~ma!ybMeofcategory0,1,2,9,14,or15,becauseallshouldbetok!ensallowedinthereplacementtext offa\def|thisalsomeansthattheyma!ynotbMeactivecharactersde nedtobMe\\outer"}"!AllothercatcoMdesneededareestablishedusing\xycatcodesde nedabo!ve|thisisthereasonthemacrosEm!ustbMeloadedatatimewherethecategorycodesarestable(otherwiseitwillmak!ethemstable!).h*tj1.1.CTHEXY p-PICfIMPLEMENTeATIONB5??hwIn!ternallyXY p-picfenforcesthefollowingcategorycoMdes:*"x. c!haracterM*#sW$1&a'nf+-"".Bw<]=x;>ۖ@` . ASCIMIfcodeJ35q136l3839ԡ43uP45 ]46?60Z61v v62A64c,96. categoryfcoMdeKz}6r,3412ԡ12uP12 ]12?12Z12v v12A11c,12. abbreviationD)HASHk+DOLL̇ANDRQPLUSoDASHEDOT?LTZ EQufGTATLQ*ύwithSspMecialcon!trolsequencesnamed\addQhabbreviationi@ ȹthattakeanargumentandexpandtoit follo!wed|bytheoriginalcharactertoken,i.e.,man!yteststhroughouttheprogramloMoklike\addDOT@\ifx1'\next߹.3..P293\xywarnifdefined\addAT@294\xywarnifdefined\addHASH@295\xywarnifdefined\addDOLL@296\xywarnifdefined\addAND@297\xywarnifdefined\addRQ@298\xywarnifdefined\addPLUS@299\xywarnifdefined\addDASH@300\xywarnifdefined\addDOT@301\xywarnifdefined\addLT@302\xywarnifdefined\addEQ@303\xywarnifdefined\addGT@304\xywarnifdefined\addLQ@306\xydef@\xymakeADD@#1#2#3{\ifnum\catcode#3=6\def#1##1{##1#2#2}%307K\else\def#1##1{##1#2}\fi}309\xydef@\xyrecat@{\xymakeADD@\addAT@}310\xydef@\xyrecat{\xyrecat@}311\xydef@\xyresetcatcodes{\def\xyrecat{\xyrecat@}\xyreuncatcodes312K\inputxyrecat\relax\xyuncatcodes}314\xyuncatcodes\xyresetcatcodes\xycatcodes316\xydef@\testAND@{{\aftergroup\ifx317 m\addAND@\ifx\next\addFalse@\else\addTrue@\fi}}318\xydef@\addFalse@{\aftergroup\iffalse}319\xydef@\addTrue@{\aftergroup\iftrue}jxHo!wever,cit {ispMossibleto`repair'theproblemincasean!yofthecharacters#$&'+-.<=>`IQDchangecategoryfcoMde: Fffd \xyresetcatcodesӉffd5willfloadthe lexyrecat.tex(v!ersion3.3)todoit."U1%%$Id:xyrecat.doc,v3.31996/12/1903:31:56krisroseExp$2%%3%%Xy-pic``ResetCategoryCodes''utility.4%%Copyright(c)1994-1996"}KristofferH.Rose5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996"}KristofferH.Rosey*tj60ؿCHAPTERf1.CKERNEL:XY.DOC??hw9%% 10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%Header: 5Thecommandisde nedinxy.doc&u:4thepurpMoseofthis leistobereloadablesuc!hthatthefc!haracterscanbMerereadbyT,[wEB XwithfreshcatcoMdes.u썑ThecoMderede nesthespecial\add=.3..@ rcon!trolsequencesusedforparsingofjustthosecharacters,assumingf\next$ isfde nedcorrectlybMeforeloadingit:P51%\xyreuncatcodes52\xyuncatcodes54\xyrecat@64\catcode641156\xymakeADD@\addHASH@#3557\xymakeADD@\addDOLL@$3658\xymakeADD@\addAND@R&3859\xymakeADD@\addRQ@"}'3960\xymakeADD@\addPLUS@+4361\xymakeADD@\addDASH@-4562\xymakeADD@\addDOT@R.4663\xymakeADD@\addLT@"}<6064\xymakeADD@\addEQ@"}=6165\xymakeADD@\addGT@"}>6266\xymakeADD@\addLQ@"}`9668\endinput70%$Log:xyrecat.doc,v$71%Revision3.3 T1996/12/1903:31:56krisrose72%Maintenancerelease73%74%Revision3.1 T1995/09/0520:31:32kris75%Releasing!76%77%Revision3.0 T1995/07/0720:14:21kris78%Majorreleasew/newUser'sGuide!79%80%Revision2.13 T1995/07/0415:11:17kris81%Readytoreleasev3?82%I*tj1.1.CTHEXY p-PICfIMPLEMENTeATIONB7??hw83%NEWfiletogoinversion3!*bThelastbloMc!koftheXY>-picheaderbootstrapsthe\DOCMODEטformat"usedin.doc tvdDarian!tsof sXY#-pic*macro lesinordertok!eepdoMcumentationandmacrostogetherinaliteralprogrammingstyle(this(isredundan!tinthexy.tex)Lmacro lewhereallinstancesofDOCMODE/havebMeeneliminated(seec!hapterxD.3.2forhowthisisaccomplished)butitisincludedanywaysinceusersmayloadoptionsstillfRinDOCMODE/ Jformat).ȁThedetailsofDOCMODEaredescribMedinxydoc.sty7#L,s#aspecialLAGT,[wEB Xpac!kdDageusedftot!ypMesetXY p-picdocumen!tation;pleasereaditifyouintendtowriteXY p-picoptions.#InttegrationLwithstandardformats 5Thisޞishandledb!ythexyidioms.texJ4 leandtheintegrationasfaLAGT,[wEB X[10 4]pac!kdDagebyxy.sty&$b.Weefinputxyidioms.texLHĹfromthek!ernel:P350\inputxyidioms!xyidioms.doYc: 5Thisaincluded lepro!videssomecommonidiomswhosede nitiondepMendsontheused1formatsuc!hthatXY;-piccanuseprede neddimensionregistersetc.andyetstillbMeindependen!tofutheformatunderwhic!hitisused.Thecurrentversion(3.4)handlesplainT,[wEB X(version2and3[6y]),A,[wM S-T,[wEB XU(v!ersion2.0and2.1[17 4]),FLAGT,[wEX(v!ersion2.09[9y]and2"[10 4]),FA,[wM S-LAGT,[wEX(v!ersion1.0,1.1f[2y],and1.2),andeplain(v!ersion2.6[3])2.1%%$Id:xyidioms.doc,v3.41997/05/1801:14:25krisroseExp$2%%3%%Format-dependentidiomsforXy-pic.4%%Copyright(c)1991-1997 TKristofferH.Rose5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997 TKristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyidiomsloaded\empty\message{notreloaded}\endinput\fi25\let\xyidiomsloaded=\emptyPHeader: 5Thisfisaseparate lesothatw!ecanabMortthede nitionseasilyusing\endinput7c`. /ffy̟ L͍ {-=2aTheT`v2'featurein9troAducessomenamecon icts,inordertomaintaincompatibilitywithearlierversionsof(X9Y 1-pic.U*tj80ؿCHAPTERf1.CKERNEL:XY.DOC??hwScratcth(%registers: 5Alltheformatscurren!tlytreatedallowtheuseofthefollowingplainT,[wEB Xscratch registerfcon!ventions(cf.[6y,p.346])č\count@*)isfa!vdDailableasaloMcalscratchcounterregister.\dimen@')ù,[\dimen@i2X,[\dimen@ii8,[\dimen30аto7e\dimen9,u ,[and7e\dimen255<+Ĺare7ea!vdDailableasscratchdimensionfregisters.\skip@!j,f\skip1)ȹtof\skip9&$b,fand\skip2555Jarea!vdDailableasscratchskipregisters.\toks@%andf\toks1)ȹtof\toks9arefa!vdDailableasscratchtokenlists.\boxz@%andf\box1$ tof\box9arefa!vdDailableasscratchbMoxregisters.Íwiththeconstrain!tthat\globalshouldnever(always)bMeusedwhenassigningtonumbMer0,v2,4,6,8,fand255(1,3,5,7,and9).eɍIX8VY敏-spYeci cscratcthregisters: 5WeeK rstgiv!enewnamestodimensionregisters4,uG6,andK8,sincenoneMoftheformatsdothat:\A@(,\B@Ź,and\R@arespMeci ctoXYW-picandwillbereferredtoasA,B,andfRincommen!ts.P85\xywarnifdefined\A@\dimendef\A@=486\xywarnifdefined\B@\dimendef\B@=687\xywarnifdefined\R@\dimendef\R@=8eҍSomefsharedscratc!hregistersarede nedlast.Idioms: 5First5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996"}KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.24%LoadXy-picwithcatcodeof@setasitwillbeinusertext:25\count255=\the\catcode`\@{\catcode`\@=11\xdef\xystycatcode{\the\count255}}26\makeatletter28%REPAIRbugofthe2eversionofAMS-LaTeXwhere\makeatotherisbroken... )*tj12+_%CHAPTERf1.CKERNEL:XY.DOC??hw29\ifx\@ifpackageloaded\undefined\makeatother 30\else\@ifpackageloaded{amstex}{\catcode`\@=\active}{\makeatother}\fiP32\inputxy34%ThatisallunlessthisiscalledasaLaTeX2e`nativemode'package. TIs35%thereanofficialwaytocheckthis? TAnyway,thisseemstowork:36\makeatletter37\ifx\if@compatibility\undefined\catcode`\@=\xystycatcode\endinput\fi39%Ensurethatweare*really*runningLaTeX2e...!40\NeedsTeXFormat{LaTeX2e}42%ThisfileprovidesthecurrentversionofXy-pic!43\edef\next{%44K\noexpand\ProvidesPackage{xy}[\xydate\spaceXy-picversion\xyversion]}\next46%RecognisesomestandardLaTeX2eclassoptions(cf.`LaTeXCompanion'p.317):47\DeclareOption{cmactex}{\xyoption{cmactex}}48\DeclareOption{dvips}{\xyoption{dvips}\xyoption{ps}}49\DeclareOption{dvitops}{\xyoption{dvitops}\xyoption{ps}}50\DeclareOption{emtex}{\xyoption{emtex}}51\DeclareOption{ln}{\xywarning@{`ln'DVIdrivernotyetfullysupported}}52\DeclareOption{oztex}{\xyoption{oztex}}53\DeclareOption{textures}{\xyoption{textures}}54\DeclareOption{xdvi}{\xyoption{xdvi}}56%Thisisspecial:57\DeclareOption{colour}{\xyoption{color}}%:-)59%This(obsolete)cmtipstyleoptionshouldbeactivatedafterloading:60\DeclareOption{cmtip}{\xyoption{cmtip}\UseComputerModernTips}62%Passthedesiredtipsizeifdefined63\DeclareOption{10pt}{\xywithoption{tips}{\def\tipsize@@{10}}}64\DeclareOption{11pt}{\xywithoption{tips}{\def\tipsize@@{11}}}65\DeclareOption{12pt}{\xywithoption{tips}{\def\tipsize@@{12}}}67%Otheroptionsarejustloaded.68\DeclareOption*{\edef\next{\noexpand\xyoption{\CurrentOption}}\next}70%Reinstallcatcodeof@...71\catcode`\@=\xystycatcode73%...processtheoptions,andthatisall.74\ProcessOptions76\endinput78%$Log:xy.sty,v$79%Revision3.3 T1996/12/1903:31:56krisrose80%Maintenancerelease81%82%Revision3.1 T1995/09/0520:31:32kris83%Releasing!84%85%Revision3.0 T1995/07/0720:14:21kris86%Majorreleasew/newUser'sGuide! Ӏ*tj1.1.CTHEXY p-PICfIMPLEMENTeATION13??hw87% 88%Revision2.13 T1995/07/0415:11:17kris89%Readytoreleasev3?90%91%Revision2.12 T1994/10/2511:34:25kris92%Interimreleasejustbeforev3[workswithAMS-LaTeX1.2]...93%94%Revision2.9 T1994/06/0914:59:19kris95%Release3beta.96%97%Revision2.8 T1994/04/0804:30:00kris98%Second(bugfix)3alpharelease.99%100%Revision2.7 T1994/03/0802:06:01kris101%Release3alpha.102%103%Newforversion2.7.,鴍1.1.2 Logo,version,andmessages]LoadingXY w-picmprin!tsabannercontainingtheversionandauthorofthekernel;ksmallprogressmessagesarefprin!tedwheneachmajordivisionofthekernelhasbMeenloaded.Anyoptionsloadedwillannouncethemselffinasimilarfashion.;hOfĻthese, O\stripRCSqisav!eryusefulhackforextractingthe rstcompMonentofanRCSq$ .3..$k!eywordfvdDalue.P412\xydef@\stripRCS$#1${\stripRCS@#1:@@@@@}413\xydef@\stripRCS@#1:#2@#3@@@{%414K\ifx@#2\string?\else\ifx:#2\else\stripRCS@@#2\fi\fi}415\xydef@\stripRCS@@#1#2:@{#1}417\edef\next{\stripRCS$Revision:3.7$}418\xylet@\xyversion=\next420\edef\next{\stripRCS$Date:1999/02/1615:12:50$}421\xylet@\xydate=\next423\xydef@\Xygreet@{%424K\W@{}%425K\W@{Xy-picversion\xyversion\space<\xydate>}%426K\W@{Copyright(c)1991-1998byKristofferH.Rose}%427K\W@{Xy-picisfreesoftware:seetheUser\string'sGuidefordetails.}%428K\W@{}}429\Xygreet@430\expandafter\everyjob\expandafter{\the\everyjob\Xygreet@}432\message{Loadingkernel:}VIfy!ourefertofXY U-picinyourwrittentext(pleasedo [;^M)thenyoucanusethecommand\Xy-picdtot!ypMesetpthe\XY g -pic"logo.TheversionofthekernelistypMesetby\xyversionandthereleasedateby\xydateO(asfoundinthebanner).Bythew!aye,:StheXY Y-picOnameҡ3originatesfromthefactthatthe rst jffy̟ L͍ {-=3aNoTdescriptionofaTuAEXprogramiscompletewithoutanexplanationofitsname.*tj14+_%CHAPTERf1.CKERNEL:XY.DOC??hwv!ersiondwaslittlemorethansuppMortfor(x;1yd)coordinatesinacon gurablecoordinatesystemwhere theGmainideaw!asthatalFlopMerationscouldbespeci edinamannerindependen!toftheorientationofBthecoMordinates.Thispropert!yhasbeenmain!tainedexceptthatnowthepackdDageallowsexplicitabsoluteforien!tationaswell.P451\xydef@\Xy{\leavevmode452K\hbox{\kern-.1emX\kern-.3em\lower.4ex\hbox{Y\kern-.15em}}}uMessagesthatstartwith\Xy-pic&*Warning"areindicationsthatsomethingneedsy!ourattention;anf\Xy-pic&$bError"willstopT,[wEB XbMecauseXY p-picdoesnotkno!whowtoproMceed. Weeܪusetheinputlinen!umbMerܪifa!vdDailableandrudimentaryhelpintheformofareferencetotheman!ualyifnospMeci chelpstringisgiven.8\newlinecharissetloMcallyto^^Jwhilewritingsuchthatmessagesfofsev!erallinescanbMewritten.469\message{messages;}471\xywarnifdefined\thelineno@472\ifx\inputlineno\undefined\edef\thelineno@{\string?}473\else\def\thelineno@{\the\inputlineno}\fi474\xydef@\xytracelineno@{\string[\jobname:\thelineno@\string]}476\xydef@\xywarning@#1{{\newlinechar=10%477 m\W@{}\W@{Xy-picWarning:#1\xytracelineno@.}\W@{}}}479\xydef@\xyerror@#1#2{\if\inxy@\xy@{ERROR#1}{}\fi480K{\def\2{#2}\newlinechar=10%481 m\ifx\2\empty\errhelp{SeetheXy-picmanualforfurtherinformation.}%482 m\else\errhelp{#2}\fi483 m\errmessage{Xy-picerror:#1}}}uFinallyfonethatIhopMewillnev!ergetexpanded 53_489\xydef@\xybug@#1{{\newlinechar=10%490K\errhelp{ThisisabuginXy-picandshouldnothappen!^^J%491IfitdidthenpleasesendabugreportwiththeoffendingXy-piccode^^J%492totheauthorofXy-pic,krisrose@ens-lyon.fr.}%493K\errmessage{Xy-picBUG:#1--notifykrisrose@ens-lyon.fr.}}}"^1.1.3 Fonts TheXY p-picfk!ernelimplementationmakesitsdrawingsusing vespMeciallydesignedfonts:ANUqviffO ͟} ff8Feon!tH ffnCharactersǶ̟} ffDefault} ffzffO͟} ff͟\xydashfontH ffy`dashesǶ͟} ffxydash10} ff ͟} ff͟\xyatipfontH ffTUarro!wftips,uppMerhalfǶ͟} ffxyatip10} ff͟} ff͟\xybtipfontH ffUarro!wftips,lowerhalfǶ͟} ffxybtip10} ff͟} ff͟\xybsqlfontH ffSAquarterfcirclesforǶ͟} ffxybsql10} ff͟} ffH ffd"hoMoksfandsquigglesǶ̟} ff} ff͟} ff͟\xycircfontH ffZ1=8fcirclesegmen!tsǶ̟} ffxycirc10} ffffOB The7G rstfourcon!tainvdDariationsofcharactersinalargenumbMerofdirections,[thelastcontains1/8circlefsegmen!ts. Note: 5Thedefaultfon!tsarenotpartoftheXY,!-pickernelsppeci cation :>theyjustsetastandardforwhatdra!wingcapabilitiesshouldatleastbMerequiredbyanXY(-picimplementation.04Implementations֠*tj1.1.CTHEXY p-PICfIMPLEMENTeATION15??hwexploitingyAcapabilititesofparticularoutputdevicesareinuse.VoHencethefon!tsareonlyloadedby sXY#-picifthecon!trolsequencenamesareunde ned|thisisusedtopreloadthematdi erentsizesorprev!entfthemfrombMeingloadedatall. UTeo2bMemoreprecise,=XY-picrequires\xydashfonttobeasemidirpectionalTfon!t2asMETAF9ONTwillgenerateewiththedriv!er lexyd2.mf|thisisveryimpMortantbMecausetheitaliccporrections}ofethec!haracters6Minthisparticularfontareusedtoapproximatetrigonometriccomputations,ZFsoifyoure-place\xydashfontbMesuretoreplaceitwithanothersemidirectionalfon!t!oSimilarlye,thethreefonts\xyatipfont,s\xybtipfont,andf-\xybsqlfontshouldbMedirpectional׹asf-METAF9ONTwillgeneratewiththefdriv!er lexyd.mf.Finallye,:\xycircfontnshouldcon!tain1=8circlesegmentsofvdDariousradiiasdescribMedinxycirc10.mfA=.The.follo!wingcoMdeloadsthefontsunless}itwasalrpeady}loadedPand.de nessomeassoMciateddimen-sionsfor\xydashfontand\xybsqlfont:foreac!hofthesef>?wede nefȮ` iasthelengthofaunitinthemcurren!tdirection(usedwhenjuxtapMosingforconnections),ofȮh L^astheheightoftheunit(usedforsev!eralparallelconnections),9andfzw lasthe`linewidth'oftheunit(toknowhowtointerfacetorules).P557\message{fonts;}559\xydef@\xyfont@#1{\ifx#1\undefined\DN@{\global\font#1}\expandafter\next@ 560K\else\xywarning@{Usingpreviouslyloaded\string#1\spacefont}\fi}562\xyfont@\xydashfont=xydash10563\xydef@\xydashl@{\fontdimen6\xydashfont}564\xydef@\xydashh@{\fontdimen5\xydashfont}565\xydef@\xydashw@{\fontdimen8\xydashfont}567\xyfont@\xyatipfont=xyatip10568\xyfont@\xybtipfont=xybtip10570\xyfont@\xybsqlfont=xybsql10571\xydef@\xybsqll@{\fontdimen6\xybsqlfont}572\xydef@\xybsqlh@{\fontdimen5\xybsqlfont}573\xydef@\xybsqlw@{\fontdimen8\xybsqlfont}575\xyfont@\xycircfont=xycirc10"ƍ1.1.4 Allo`cations饍One nalthingthaty!oumustbMeawareofisthat֘XYU-picalloMcatesasigni cantnumbMerofdimensionregisters_andsomecoun!ters,token_registers,andbMo!xregisters,inordertorepresen!tthestateanddo0computations.:Thecurren!tkernelalloMcates4counters,R28dimensions,2bMo!xregisters,4tokenregisters,1ereadc!hannel,and1writec!hannel(whenrunningunderLAGT,[wEB X;someotherformatsusesligh!tly}morebMecausestandardgenerictemporariesareused).#Optionsma!yallocatefurtherregisters(curren!tlyloadingeverythingݹloads6dimen-,3toks-,1bMo!x-,and9coun!t-registersinadditiontothek!ernelfones).598\message{allocations:}pCSeefx1.1.1forscratc!hregisteralloMcations.rPicturestate: 5Thesel`realisethepicturestateasdescribMedinx1.2.5:c,wp,thel`bpaseҡ,andthepicturesize:609\message{state,}611\xynew@{dimen}\X@c612\xynew@{dimen}\Y@c*tj16+_%CHAPTERf1.CKERNEL:XY.DOC??hw613\xynew@{dimen}\U@c 614\xynew@{dimen}\D@c615\xynew@{dimen}\L@c616\xynew@{dimen}\R@c617\xynew@{toks}\Edge@cP619\xynew@{dimen}\X@p620\xynew@{dimen}\Y@p621\xynew@{dimen}\U@p622\xynew@{dimen}\D@p623\xynew@{dimen}\L@p624\xynew@{dimen}\R@p625\xynew@{toks}\Edge@p627\xynew@{dimen}\X@origin\X@origin=\z@628\xynew@{dimen}\Y@origin\X@origin=\z@629\xynew@{dimen}\X@xbase \X@xbase=1mm630\xynew@{dimen}\Y@xbase \Y@xbase=\z@631\xynew@{dimen}\X@ybase \X@ybase=\z@632\xynew@{dimen}\Y@ybase \Y@ybase=1mm634\xynew@{dimen}\X@min635\xynew@{dimen}\Y@min636\xynew@{dimen}\X@max637\xynew@{dimen}\Y@max%Drop2andconnect: 5\lastobjectbox@dԑstoresfthemostrecen!tlydroppMedobject.646\xynew@{box}\lastobjectbox@ \zerodotbox@≠isDofzerosizewitha`dot'intheformofarulethewidthandheigh!tasthelinewidthfofthelinefon!t;\zz@is`almost-zero-check'.654\xynew@{box}\zerodotbox@655\setbox\zerodotbox@=\hbox{\dimen@=.5\xydashw@656K\kern-\dimen@\vrulewidth\xydashw@height\dimen@depth\dimen@}657\wd\zerodotbox@=\z@\ht\zerodotbox@=\z@\dp\zerodotbox@=\z@659\xynew@{dimen}\almostz@\almostz@=50sp660\xydef@\zz@#1{\ifdim#1<\z@-\fi#1<\almostz@\relax}662\xynew@{if}\iftmp@%Direction2state: 5ThefdirectionstateisrathercomplicatedanddescribMedindetailinx1.8.1.671\message{direction,}673\xynew@{dimen}\d@X674\xynew@{dimen}\d@Y675\xydef@\sd@X{}676\xydef@\sd@Y{}678\xynew@{count}\K@\K@=1024679\xynew@{count}\KK@\KK@=32681\xynew@{count}\Direction L*tj1.1.CTHEXY p-PICfIMPLEMENTeATION17??hw682\xynew@{dimen}\K@dXdY 683\xynew@{dimen}\K@dYdXP685\xydef@\cosDirection{}686\xydef@\sinDirection{}688\xywarnifdefined\DirectionChar689\xywarnifdefined\SemiDirectionChar!ۍMiscellaneous: 5FinallyfsomegenericalloMcationsusedinthefollo!wing:697\xynew@{read}\xyread@~%for`safeinput'698\xynew@{write}\xywrite@~%for`saving'to.xycfile700\xynew@{count}\csp@~%for`controlstackpointer'701\xynew@{dimen}\quotPTK@~%for`fractions'SҍThefrequiredtempMorariesarede nedb!yxyidioms.texH^.eS1.1.5 UtilitymacroscFinallyfw!ede nesomeutilitymacros.715\message{utilitymacros;}!ۍSimple2queue: 5JustfappMendingtothe\toks@list.724\xydef@\addtotoks@#1{\toks@=\expandafter{\the\toks@#1}}Safeinput: 5Chec!k(that leisavdDailablebMeforeinput.Teriesthealternateextension.docincasethe .tex le;isnotthere.H]Thesecondisthelo!west;levelfunctionusedwhenthedesired lescannotbMepreloadedfanddonotexistin.docKtform.735\xydef@\xyinputorelse@#1#2{%736K\expandafter\let\expandafter\next@\csname#1loaded\endcsname737K\ifx\next@\empty\else738 m\DN@{\xyinputorelse@@{#1}{\xyinputorelse@@{#1.doc}{#2}}}%739K\fi\next@}741\xydef@\xyinputorelse@@#1#2{\openin\xyread@=#1%742K\ifeof\xyread@\DN@{#2}\else\DN@{\closein\xyread@\input#1}\fi\next@}!ۍConttinuationstack: 5Thisisusedto`en!ter'anewcontextand`leave'tothepreviouscontext.8Itw!orks asastackde ningacontrolsequenceforeachlevel,tthususingacounterasthestackpMointer.De nesfthefollo!wing Vffd fMB\csp@K`Con!tinuationfStackPointer'MB\enter@{{@7hcoMdei}KEn!ternewbloMckwithhcoMdeiexpandedascontinu-KationMB\nter@{uhcoMdei}KEn!terfnewbloMckwithhcoMdeiascontinuationMB\dontleave@KExecutefcon!tinuationwithoutleavingbloMckMB\unenter@KLea!vefbloMckwithoutexecutingitscontinuationMB\leave@KLea!vefbloMck(executeitscontinuation)~-ffd ߎr*tj18+_%CHAPTERf1.CKERNEL:XY.DOC??hwSof\enter@{}\leave@cGlisfanoMopand\leave@/risthesameas\dontleave@\unenter@v.P765\global\csp@=\z@767\xydef@\enter@#1{\global\advance\csp@\@ne 768K\expandafter\xdef\csnamecs@\number\csp@\endcsname{#1}\ignorespaces}770\xydef@\nter@#1{\global\advance\csp@\@ne771K\expandafter\gdef\csnamecs@\number\csp@\endcsname{#1}\ignorespaces}773\xydef@\dontleave@{\csnamecs@\number\csp@\endcsname}775\xydef@\unenter@{\global\advance\csp@\m@ne}777\xydef@\leave@{\expandafter\unenter@\csnamecs@\number\csp@\endcsname} ⒍F\ractions: 5Belo!wΜweoftenuseafactorontheformofaquotientA=B.V~Hereisahacktogetit;itisfnotv!eryprecisebutsucesforourneeds.ffd 46&\quotient@qY0hcsif{ fA}{%B} De neshcsitoexpand(immediately)tothefactor correspMondinghtoA=B;iA,B m!ustbedimensions wherefjAj< \maxdimen6ǡ=KK%andfjBjG> KK(u46&\quotient@@whcsif{ fA}{%B} Same,fbutuses8KK%forKK.ffdmfNotes:(1)If\c isacoun!tregister,then{1\c}$ isalegaldimension.(2)Reallycomputesƍ((AnjyKKj)=(B=1jKK]0jg۹)) n(1pt =1jK j 1)andMthende neshcsitoexpandtotheresultingptvdDalue.]ThismeansthatresultsareonlyreasonableforfjAj \maxdimen6ǡ=KK%andfjBjG KK.P807\quotPTK@=\p@\divide\quotPTK@\K@808\xylet@\quotsign@@=\empty809\xywarnifdefined\removePT@810{\catcode`p=12\catcode`t=12\gdef\removePT@#1pt{#1}}812\xydef@\quotient@#1#2#3{\A@=#2\relax\B@=#3\relax813\ifdim\A@<\z@\def\quotsign@@{-}\else\def\quotsign@@{+}\fi814\ifdim\quotsign@@\A@<15pt\multiply\A@\K@815\else\ifdim\quotsign@@\A@<511pt\multiply\A@\KK@816#>\advance\B@\ifdim\B@<\z@-\fi16sp\divide\B@\KK@817T\else818#>\advance\B@\ifdim\B@<\z@-\fi512sp\divide\B@\K@819\fi\fi820\ifdim\ifdim\B@<\z@-\fi\B@<\quotPTK@\xywarning@{divisionoverflow}%821\else\advance\A@.5\B@\divide\A@\B@\fi822\multiply\A@\quotPTK@\edef#1{\expandafter\removePT@\the\A@}}824\xydef@\quotient@@#1#2#3{\A@=#2\relax\B@=#3\relax\multiply\A@\KK@825\advance\B@\ifdim\B@<\z@-\fi128sp\divide\B@\KK@\divide\B@8%826\ifdim\B@=\z@\else\advance\A@.5\B@\divide\A@\B@\fi827\B@=.125\quotPTK@\multiply\A@\B@\edef#1{\expandafter\removePT@\the\A@}} ⒍LoYops: ߹XYZ?-picfusesitso!wn\loop@)ȹtoavoidinterferencewithplain\loop.836\xydef@\loop@#1\repeat@{\def\body@{#1}\iterate@}\xylet@\repeat@=\fi837\xydef@\iterate@{\body@\expandafter\iterate@\else\fi}*tj1.2.CPICTUREfBASICS`չ19??hwExecution: 5AllfexecutionofXY p-commandsshouldbMe`indirect',i.e.,executen?yjt\xy@{(hsourceiY}{hin!ternalfcommandsi+x}where:thehin!ternalcommandsidirectlydothedesiredopMeration(s).YThisisusedfortracingand canbMeusedtoseparateparsingandexecutionb!ychanging\xy@1;Ś\oxy@'uiskeptstablesuchthat\let\xy@=\oxy@7Թwilloreestablishasanestate;litshouldonlybMec!hangedwith\change@oxy@L ֹtomakethisfeasytov!erifye.P854\xydef@\xyinitial@#1#2{\DN@{#1}%855K\xyerror@{commandusedoutofcontext:\codeof\next@}{}}857\xylet@\xy@=\xyinitial@858\xylet@\oxy@=\xy@860\xydef@\change@oxy@#1{\let\oxy@=#1\relax861%\W@{*OXY@:=\meaning\oxy@}%862}jThisuisalsousedtoc!heckuwhetheranXY -pictureisalreadyactiv!e;quseas\if\inxy@6Xo.3..\else...\fi1:869\xydef@\inxy@{T\ifx\xy@\xyinitial@F\elseT\fi}The nalexecutioncommandisatric!kusedtoputbitsoftheuser'sinputinsidethe\next@'scratch macroFwithRtheuser'scpatcodesRintact :\xy@@ix@{9|.3..} #isthesameas\xy@@{\global\toks9={|8...}}exceptfforthecategorycoMdesusedforthe.3...879\xydef@\xyxy@@ix@{\begingroup880K\xyuncatcodes\afterassignment\endgroup\global\toks9=}jThisftosa!vefsometok!ens{maybMenotworthit:886\xydef@\xy@@{\xy@{}}Finallyfthistoestablishasanestate{onlyusewithinagroup!892\xydef@\plainxy@{\let\xy@=\xyxy@\change@oxy@\xy@\let\xy@@ix@=\xyxy@@ix@}T\oEDo:ECleanupallusesofthesesuc!hthathsourceiisalwaysthatandonlythat.xDe nea methoMdqfor`inner'akaW|`implied'hsourceithatdoesn'treallycoun!tinthatitisaconsequenceofsomeotherfsource.3..)>1.2r|Pictureffbasics죍TheG basicconceptsin!volvedG whenconstructing.XY-picturesarepMositionsandobjects,o2andho!wtheycom!bineftoformthestateusedbythegraphicengine.|ThefgeneralstructureofanXY p-pictureisasfollo!ws:\ffd I\xyfhpMosihdecori\endxyʼnffd builds+abMo!xwithancXY -picture(LAGT,[wEB Xusersmaysubstitute\begin{xy}?.3..\end{xy}6'if+theyprefer).hpMositZandhdecoriarecomponen!tsofthespecial`graphiclanguage'whic!h\XY d-picturesarespeci ed in.iWeeW explainthelanguagecompMonen!tsingeneraltermsinthisxandinmoredepthinthefollowingxx.|ThefcoMdeforthe\xyd.3..\endxy'commandfispresen!tedlastinthissection.,*tj20+_%CHAPTERf1.CKERNEL:XY.DOC??hw1.2.1 PositionsDAllKppositionscma!ybMewritten<X,Yn> JwhereXCistheT,[wEB Xdimensiondistanceright&5andY:thedistance uprKfromYthezerpo9positiond0YoftheXY(c-picture(0 hascoMordinates<0mm,0mm>8~S,ofcourse)..ThezeropMosition}JofthedXY T-picturedeterminesthebo!xproducedb!ythe\xy.3..\endxy}Jcommandtogetherwiththe+fourparametersXzmin,XzmaxQֹ,Yzmin,and+Yzmax}setsuc!hthatalltheobjectsinthepictureare`con!tained'finthefollowingrectangle:g0"principle,@e.g.,the!indicatedT,[wEB XreferencepMointhascoMordinates< tXzmin,0pt>/ZԹwithinthetXYX-picture. Thezeropositiondoesnotha!vetobecon!tainedinthepicture,AbutXzmin.vXzmax^r YzminYzmaxalw!aysholds.ThepMossiblepositionsaredescribedindetailfinx1.3. ؍WhenLan4hXY-pictureisen!teredinmathowmopde_thenthereferencepMointbMecomesthe\vcenter"instead,fi.e.,w!eusethepMoint< fXzmin,-\the\fontdimen22>asreferencepMoint.1.2.2 ObjectsThesimplestformofputtingthingsin!tothepictureisto`drop'anobjepctatapMosition.Anobjectislik!e?haT,[wEB XbMoxexceptthatithasageneralEdge arounditsreferencepMoint|inparticularthishastheextentsM(i.e.,*it5isalw!ays5containedwithin)thedimensionsL,*R,U1,andD^a!wayfromthereferencepMoin!t`ineachofthefourdirectionsleft,nright,up,and`down.ƧObjectsareencoMdedinT,[wEB Xbo!xesusingtheJmcon!ventionthattheT,[wEB XreferencepMointofanobjectisatitsleftedge,sothusshifted< ]L,0pt>fromthecen!ter|soaT,[wEB XbMoxmaybMesaidtobearectangularobjectwithL=0ptΠ. Hereisanexample:eEvYps: SDict begin xyc endh0p2" {0.0 42.65114 -14.23187 -28.48038 22.75652 ov}xy4vh0" {-28.48038 0.0 dt}xyOv#Lh0" {42.65114 0.0 dt}xyn#Rh0pߟ;\" {0.0 -14.23187 dt}xy ADh0pߟ>U" {0.0 22.75652 dt}xy#UvT,[wEB XfreferencepMoin!tt;vh0" {24.0 9.60004 dt}xy!$oThe>objectsho!wnhasarectangleedgebutothersareavdDailableeventhoughthekernelonlysuppMortsrectangle2andcircleedges.NItisalsopMossibletouseen!tirebXY -picturesasobjectswitharectangleedge,0aswPthereferencepMoin!t,Lfֹ=Xzmin$4,R|~=Xzmax ,D=Yzmin!>,andwPUu=Yzmax.PThecommandsforobjectsfaredescribMedinx1.4.1.2.3 ConnectionsBesidesRMha!vingtheabilitytobMedroppedatapositioninapicture,callobjectsma!ybeusedtocponnecttheJtt!wocurrentobjectsofthestate,\i.e.,pandc.7Feormostobjectsthisisdoneb!y` lling'thestraightlinefbMet!weenthecenterswithasmanycopiesaswill tbMetweentheobjects:@Qgxps: SDict begin xyc end;cmmi6ph0" {6.0 0 360 o}xy ȟ cҺc4" {0.0 9.0 -4.0 -9.0 4.0 ov}xy4c" {155.89508 38.97359 dd}xy4c3232)3232Vv3232323232323232Vg3232?J׍3232323232323232323232325׍32323232323232323232323232c3232)3232Vv3232323232323232Vg3232843}Ef" {-8.53021 0.0 dt}xy70sL4f" {5.69609 0.0 dt}xysRf3" {0.0 -5.69609 dt}xyqLDfxD" {0.0 8.53021 dt}xy./UΞ3232y3232Vv3232323232323232Vg3232?c׍323232323232323232323232׍323232323232323232323232323232y3232Vv3232323232323232Vg3232z#'VZ" {-8.53021 0.0 dt}xyyc'LVZ" {5.69609 0.0 dt}xyYfc'RVZGQ3" {0.0 -5.69609 dt}xy/<@DVZGQxD" {0.0 8.53021 dt}xypПIUվyL3232{>ɍ3232Vv3232323232323232Vg3232?yγ׍323232323232323232323232;՟׍32323232323232323232323232yL3232{>ɍ3232Vv3232323232323232Vg3232ԟzE" {-8.53021 0.0 dt}xy{ПRL;ԟE" {5.69609 0.0 dt}xyRREč3" {0.0 -5.69609 dt}xyr+DEčxD" {0.0 8.53021 dt}xy U٭rj*3232k3232Vv3232323232323232Vg3232?j׍323232323232323232323232x~%׍32323232323232323232323232j*3232k3232Vv3232323232323232Vg3232p$jD55." {-8.53021 0.0 dt}xyk ALx~$5." {5.69609 0.0 dt}xyrAR5.r3" {0.0 -5.69609 dt}xyoaD5.rxD" {0.0 8.53021 dt}xyopUݜ܍Zl3232[i3232Vv3232323232323232Vg3232?ZSS׍323232323232323232323232hu׍32323232323232323232323232Zl3232[i3232Vv3232323232323232Vg3232aAteZ$" {-8.53021 0.0 dt}xy\@p1eLht$" {5.69609 0.0 dt}xyc V1eR$cA3" {0.0 -5.69609 dt}xy_ ~D$cAxD" {0.0 8.53021 dt}xy`7UFJ<3232L3232Vv3232323232323232Vg3232?J׍323232323232323232323232Yş׍32323232323232323232323232J<3232L3232Vv3232323232323232Vg3232QğJ՟" {-8.53021 0.0 dt}xyL LYğ" {5.69609 0.0 dt}xySb RSP3" {0.0 -5.69609 dt}xyP9DSPxD" {0.0 8.53021 dt}xyPzU{:3232withMtheobjectLzp],_[Rzp,Dzp],fUzp,Edgezp,andthecurrpent ,c,isthepMosition< fXzc.y, Yzc.y>withtheobjectLzc.y,Rzc,Dzc,Uzc,Edgezc. Feurthermore,nXY -pic hasacon gurablecpartesian]coordinatesystem'describMed b!yanoriginpMosition"hvandr#t!wobpasevectorsX;< XȮxbasekf,+YȮxbasekf>3and< 1XȮybaseq,aYȮybaseq>>accessedb!ytheusualnotationfusingparen!theses:_{.cJ6(i x,yd)׹=<>Xzorigin+nxXȮxbaseR+yXȮybaseA, >Yzorigin+nxYȮxbaseR+yYȮybaseA>_|Thisfisexplainedinfullwhenw!eshowhowtosetthebaseinnote1.3dofx1.3.FinallyJ*t!ypMesettingaconnectionwillsetupa\placementstate"forreferringtopMositionsontheconnectionthatisaccessedthroughaspMecial? ʹpositionconstruction;Bthisisalsodiscussedindetailinfx1.3.The׈XYV-picstateconsistsofalltheseparameterstogether.FTheyareinitialisedtozeroexceptforXȮxbasev = YȮybase=1mmI.Thefedgesarearea!vdDailabletotheprogrammerastokenlists;seex1.8.2fordetails.ProYcedure: U\xy.3..(\endxybuildsanobjectfroman۟XYZ-pichpMosihdecorisequenceasfollo!ws:(l.1114|)\xyԹstartsthe\hbox&N(tocon!taintheXY.-picture,K(l.1115)startsaninnerbMo!xtoberesizedap-propriatelylater,/sets\xy@&عtojustexecuteimmediatelye,andmak!esafreshscopMeforglobalinternalnames,(0and;(l.1117|)initialisestheXYuE-picstate(settingthesizetoaridiculouslylargenegativ!evdDalue),andf nallypassescon!troltothehpMosiparser.Somecareistak!ento`lift'thediagramabitto`vcenter'itwheninmathmoMde,oand\mathsurroundisfsettozerotomak!echangesintomathmoMdesafe.P1107\message{pictures:\string\xy,}1109\xydef@\xy{\ifmmode\expandafter\xymath@\else\expandafter\xynomath@\fi} 1110\xydef@\xymath@{\hbox\bgroup\dimen@=\the\fontdimen22\textfont\tw@\xyinside@}1111\xydef@\xynomath@{\hbox\bgroup\dimen@=\z@\xyinside@}P1113\xydef@\xyinside@{%1114K\saveXyStyle@\aftergroup\xycheck@end1115K\setboxz@h\bgroup1116 m\plainxy@1117 m\X@c=\z@\Y@c=\z@\czeroEdge@1118 m\X@p=\z@\Y@p=\z@\U@p=\z@\D@p=\z@\L@p=\z@\R@p=\z@\Edge@p={\zeroEdge}%1119 m\X@min=\hsize\X@max=-\hsize\Y@min=\hsize\Y@max=-\hsize1120 m\mathsurround=\z@1121 m\expandafter\POS\everyxy@@}1123\xydef@\czeroEdge@{\U@c=\z@\D@c=\U@c\L@c=\U@c\R@c=\U@c\Edge@c={\zeroEdge}}o*tj22+_%CHAPTERf1.CKERNEL:XY.DOC??hw1125\xydef@\xyxy@#1#2{#2}P1127\xywarnifdefined\everyxy 1128\expandafter\def\addEQ@\everyxy#1{\def\everyxy@@{#1}\ignorespaces}1130\xylet@\everyxy@@=\emptyWhen62 nished\endxy*`doMesa\relaxtodisablean!yparserstillactiveand(l.1144|)resetsthesizeof|thegeneratedbMo!xtozeroifno(unhidden)objectswereinserted,and(l.1148|)de nesacommandtoendPkbMoththetemporaryandthe`proper'bo!xandsetitssizecorrectly|thisuses\edeftoexpandthemrequireddimensionsusedwithinthetempMorarybo!xbeforelea!vingthetwogroups(namelythetempMoraryfbo!xandthe`proper'bo!x).1142\xydef@\endxy{\if\inxy@\else\xyerror@{Unexpected\string\endxy}{}\fi1143K\relax1144 m\dimen@=\Y@max\advance\dimen@-\Y@min1145 m\ifdim\dimen@<\z@\dimen@=\z@\Y@min=\z@\Y@max=\z@\fi1146 m\dimen@=\X@max\advance\dimen@-\X@min1147 m\ifdim\dimen@<\z@\dimen@=\z@\X@min=\z@\X@max=\z@\fi1148 m\edef\tmp@{\egroup1149 \setboxz@h{\kern-\the\X@min\boxz@}%1150 \ht\z@=\the\Y@max\dp\z@=-\the\Y@min\wdz@=\the\dimen@1151 \noexpand\maybeunraise@\raise\dimen@\boxz@1152 \noexpand\recoverXyStyle@\egroup\noexpand\xy@end1153 \U@c=\the\Y@max\D@c=-\the\Y@min\L@c=-\the\X@min\R@c=\the\X@max}\tmp@}1155\xydef@\maybeunraise@{\if\inxy@\else\dimen@ii=\dp\z@1156 m\ifdim\dimen@ii<\z@\advance\dimen@\dimen@ii\fi\fi}Ifan\xyisnotpropMerlyclosedb!yan\endxy*?thentheerrormessageisproduced.Thishappensif3(a)toMoman!y\xyrsor(b)tooman!y\endxy& sor(c)ifthereisthecorrectnumbMerofeachbutthegroupingfbMecomesun!balancedduetoamisplaced} vor\egroup+ .1165\xydef@\xycheck@end{\xyFN@\xycheck@end@}1166\xydef@\xycheck@end@{\ifx\next\xy@end\DN@\xy@end{}\else\DN@{\xy@end}\fi\next@}1167\xydef@\xy@end{%1168K\xyerror@{An\string\xy\spaceenvironmentisnotclosedcorrectly.}%1169 m{Iexpected\string\endxy. TYouprobablyhaveanumatched{}grouping.}}It!rispMossibletoinsertan`initial'pieceofhposihdecoriatthestartofev!ery XY|-picturewiththedeclarationPffd Ս\everyxy={htextif}̜ffd Thiswillactasifthehtextiw!astypMedliterallyrightaftereach\xycommand,parsingtheactualcon!tents;asifitfollo!wsthis{thusitisrecommendedthathtextihastheformhpMosi, Psuchthatuserscanfcon!tinuewithhpMosihdecori.!1.3$cPositions(y1195\message{positions,}A.thpMosiition.isaw!ay.ofspecifyinglocationsasw!ellasdroppingobjectsatthemanddecoratingthem|in?factan!yaspMectoftheXYI-picstatecanbec!hangedbyahpMosibutmostwilljustchangethecoMordinatesfand/orshapeofc.AllfpMossiblepositionsaresho!wnin gure1.1withexplanatorynotesbelo!w.*tj1.3.CPOSITIONS23??^S ffffd { FbSyn!taxActionwffd k FbhpMosi@G!_:hcoMordic hcoMordiH<^j_:hpMosif+hcoordic hpMosi,\+nhcoMordi%qd1.3aH<^j_:hpMosif-hcoordic hpMosi,\nhcoMordi%qd1.3aH<^j_:hpMosif!hcoordic hpMosicֹthenfsk!ew1.3b{cbyhcoMordiH<^j_:hpMosif.hcoordic hpMosicֹbutfalsoco!vering1.3c_LhcoMordiH<^j_:hpMosif,hcoordic hpMosicֹthenfc hcoMordiH<^j_:hpMosif;hcoordic hpMosip,fsw!appandc,c hcoMordiH<^j_:hpMosif:hcoordic hpMosip,fsetbase1.3dY,c hcoMordiH<^j_:hpMosif::hcoordic hpMosip,fybpase kZ cnoriginew,fc hcoMordiH<^j_:hpMosif*hobjectic hpMosip,fdrop1.3fhobjectiH<^j_:hpMosif**hobjectic hpMosip,fconnect1.3g톹usinghobjectiH<^j_:hpMosif?hplaceic hpMosip,fc hplacei1.3hH<^j_:hpMosif@hstac!kingic hpMosip,fdohstac!kingi1.3oH<^j_:hpMosif=hsa!vingic hpMosip,fdohsa!vingi1.3p FbhcoMordi@G!_:hv!ectorihpMosifishv!ectoriwithzerosize H<^j_:hempt!yiLjCcϹreuseflastc(donothing)H<^j_:ppH<^j_:xLjCyϹaxisfin!tersection1.3k4withfe ?vpcH<^j_:shdigitiLjCs{#hn!umbMeri}Ϲstac!k1.3o pMositionhdigitiorhnumbMeribelo!wthetopH<^j_:"ehidi"Ϲrestorefwhatw!assaved1.3p{ashidiearlierH<^j_:{i@JhpMosifhdecori}Ϲthefcresultingfromin!terpretingthegroup1.3l Fbhv!ectori@G!_:0Ϲzero H<^j_:ϹabsoluteH<^j_:ϹabsolutefwithequaldimensionsH<^j_:(i@Jhfactorif, vhfactorif)Ϲinfcurren!tbase1.3dH<^j_:af( vhn!umbMerif)Ϲanglefincurren!tbase1.3eH<^j_:hcorneriϹfromfreferencepMoin!ttohcorneriofcH<^j_:hcornerif( vhfactorif)ϹThefhcornerim!ultipliedwithhfactoriH<^j_:/i@Jhdirectionifhdimeni/Ϲv!ectorfhdimeniinhdirectioni1.3m Fbhcorneri@G!_:Lfj WwRfjDfjUϹo set1.3n{tofleft,righ!t,down,upsideH<^j_:CLfj WwCRfjCDfjCUfjCϹo set1.3n{tofcen!terofside,truecenterH<^j_:LDfj WwRDfjLUfjRUϹo set1.3n{tofactualleft/do!wn,.3..ycornerH<^j_:Efj WwPϹo set1.3n{tofnearest/propMortionaledgepoin!ttop Fbhplacei@G!_:<fhplaceiLjC>hplaceiϹsha!ve1.3h{(0)/(1)ftoedgeofp/c,f8c  0Q=1H<^j_:(i@Jhfactorif) vhplaceif8c  hfactoriH<^j_:hslideiϹpic!kfplace1.3h{andapplyhslideiwH<^j_:!{ hpMosi} fhslideiϹin!tercept1.3jIwithlinesetupbyhpMosiandapplyhslidei` Fbhslidei@G!_:/i@Jhdimenif/Ϲslide1.3ihdimeniffurtheralongconnectionH<^j_:hempt!yiϹnofslidezffdC1aFiguref1.1:hpMosiitions.W*tj24+_%CHAPTERf1.CKERNEL:XY.DOC??hwExercise;11.1: 5Whic!hofthepMositions0 m,<0pt,0pt>7lŹ,<0pt> n,(0,0),and/0pt/$&isdi erentfromthe others?Ptarsing: 5Firstnthe\POSnand\afterPOShdecoriations,:andsimilar\afterCOORDand\afterVECTORorEMPTYones.&TheyAAhandleparsingofhpMosi,U|hcoordi,andAAhv!ectori;bparsingofhcorneriandhplaceiispresentedalongfwithnote1.3nand1.3hexplainingthem.P1368\xydef@\POS{\afterPOS{}}1370\xydef@\afterPOS#1{% 1371K\DN@##1{\def\afterPOS@{\def\afterPOS@{##1}#1}}%1372K\expandafter\next@\expandafter{\afterPOS@}%1373K\afterCOORD{\xyFN@\POS@}}P1375\xylet@\afterPOS@=\empty1377\xydef@\afterCOORD#1{% 1378K\DN@##1{\def\afterCOORD@{\def\afterCOORD@{##1}#1}}%1379K\expandafter\next@\expandafter{\afterCOORD@}%1380K\afterVECTORorEMPTY{\xy@@\czeroEdge@\afterCOORD@}{\xyFN@\COORD@}}P1382\xylet@\afterCOORD@=\empty1384\xydef@\afterVECTORorEMPTY#1#2{% 1385K\DN@##1{\def\afterVECTOR@{\def\afterVECTOR@{##1}%1386 m\ifVECTORempty@\DN@{#2}\else\DN@{#1}\fi\next@}}%1387K\expandafter\next@\expandafter{\afterVECTOR@}%1388K\xyFN@\VECTOR@}P1390\xynew@{if}\ifVECTORempty@1391\xylet@\afterVECTOR@=\empty~]TheW\afterVECTORorEMPTYWpcommandisspMecialinthatittak!estwoarguments:lthe`continuation'ifoahv!ectoriwasfoundandthecontinuationifhemptyiwasfound(thisisnotapplicabletotheothert!wofsincehempt!yiisalegalhcoMordiandthusalsoalegalhpMosi). oNext0w!eproMceedwiththeactualparsingprimitives:\COORD@.0,S\POS@!ٹ,Sand\VECTOR@2.7.}_ThesearebMound\to\xyCOORD@8,M\xyPOS@,,Mand\xyVECTOR@B6inordertobeextendable,Me.g.,the\matrix+7noptionextends]hcoMorditosupportthe[ +rpow-, Jcolumn ] 6format]b!yrede ning\COORD@.to rsttestforthisnewformatfandthencall\xyCOORD@7c`.TheparsingcommandsabMo!vearesetupsuc!hthattheyall rstcallthe\VECTOR@8 command.hcoMordiִandhposiparsingthenproceedswithcallingthe\COORD@1iftherew!asnohvectori.nhpMosiparsingfthencalls\POS@$ tocon!tinuefthehpMosi(inbothcases).Firstfhv!ectoris:P1415\xydef@\xyVECTOR@{%1416K\ifx\space@\next\expandafter\DN@\space{\xyFN@\VECTOR@}%gobblespaces1417K\else\ifcatA\noexpand\next\let\next@=\VECTOR@letter1418K\else\let\next@=\VECTOR@other\fi\fi\next@}1420\xylet@\VECTOR@=\xyVECTOR@~]AllHlettersusedforhv!ectorisareuppMercasehcornerisexceptfora :usedforangles(wherethemaincoMdeaisinnote1.3e);^thisisalsowherew!eintroMducetheauxiliary\notrelaxorelse@c_bthattakestwocon!trolfsequencesandexpandsthe rstunlessitisrelaxinwhichcaseitexpandsthesecond:1430\def\notrelaxorelse@#1#2{\ifx#1\relax\expandafter#2\else\expandafter#1\fi}1432\xydef@\VECTOR@letter{%*tj1.3.CPOSITIONS25??hw1433K\ifxa\next\expandafter\VECTOR@a\else\expandafter\CORNER@\fi}P1435\xydef@\VECTOR@aa(#1){\xy@{a(#1)}{\vfromcartesianangle@{#1}}% 1436K\VECTORempty@false\afterVECTOR@}5Theuhcorneritric!kistodonothingwhenthereisnothingandinitialisebMothXdmandYdinallothercases.1443\xydef@\CORNER@{%1444K\xy@{}{\A@=-.5\L@c\advance\A@.5\R@c\B@=-.5\D@c\advance\B@.5\U@c1445 m\let\nextii@=\zeroit@}%1446K\VECTORempty@true\CORNER@i}1448\xydef@\zeroit@#1{#1=\z@}1450\xydef@\CORNER@i{%1451K\ifxD\next] \DN@D{\xy@{D}{\Y@c=-\D@c\nextii@\X@c\B@=\Y@c}\CORNER@ii}%1452K\else\ifxU\next\DN@U{\xy@{U}{\Y@c=\U@c\nextii@\X@c\B@=\Y@c}\CORNER@ii}%1453K\else\ifxL\next\DN@L{\xy@{L}{\X@c=-\L@c\nextii@\Y@c\A@=\X@c}\CORNER@ii}%1454K\else\ifxR\next\DN@R{\xy@{R}{\X@c=\R@c\nextii@\Y@c\A@=\X@c}\CORNER@ii}%1455K\else\ifxC\next\DN@C{\xy@{C}{\X@c=\A@\Y@c=\B@}\CORNER@ii}%1456K\else\ifxE\next\DN@E{\xy@{E}{%1457 \A@=\X@c\B@=\Y@c\the\Edge@c\z@\advance\X@c-\A@\advance\Y@c-\B@}%1458\CORNER@ii}%1459K\else\ifxP\next\DN@P{\xy@{P}{%1460 \A@=\X@c\B@=\Y@c\the\Edge@c\thr@@\advance\X@c-\A@\advance\Y@c-\B@}%1461\CORNER@ii}%1462K\else\ifx(\next%)1463\DN@(##1){\xy@{(##1)}{\X@c=##1\X@c\Y@c=##1\Y@c}\afterVECTOR@}%1464K\else\let\next@=\afterVECTOR@1465K\fi\fi\fi\fi\fi\fi\fi\fi\next@}1467\xydef@\CORNER@ii{\xy@@{\let\nextii@=\eat@}%1468K\VECTORempty@false\xyFN@\CORNER@i}5\CORNER@i-;trecognisesathe( hfactori)also;^thisadoMesnoharmasitw!asnevercalledifthe rstc!haracterfwasa( f.#GThefremaininghv!ectoriformsjustsetX^andYn.1477\xydef@\VECTOR@other{%1478K\addLT@\ifx\next1479 m\addGT@{\addLT@\DN@##1}{\xy@{<##1>}{\vfromabsolute@{##1}}%1480\VECTORempty@false\afterVECTOR@}%1481K\else\ifx(\next%)1482 m\DN@({\xyFN@\VECTOR@other@open}%)1483K\else\ifx/\next%/1484 m\DN@/##1/{\xy@@ix@{{##1}}%1485\xy@{/##1/}{\expandafter\vfromslide@\the\toks9}%1486\VECTORempty@false\afterVECTOR@}%1487K\else\ifx0\next1488 m\DN@0{\xy@{0}{\X@c=\z@\Y@c=\z@}\VECTORempty@false\afterVECTOR@}%1489K\else1490 m\DN@{\VECTORempty@true\afterVECTOR@}%1491K\fi\fi\fi\fi\next@}h*tj26+_%CHAPTERf1.CKERNEL:XY.DOC??hwHactk:ݹescapMefoutincaseofthespecial(* in!troducer.3..pic!kedfupb!ythehcoordiparser,then.P1498\xydef@\VECTOR@other@open{% 1499K\ifx*\next\DN@{\VECTORempty@true\xyFN@\afterVECTOR@(}%)1500K\else1501 m\DN@##1){\xy@{(##1)}{\vfromcartesian@{##1}}\VECTORempty@false\afterVECTOR@}%1502K\fi\next@}NextfhcoMordiinatesthatarenothv!ectoris:1508\xydef@\xyCOORD@{%1509K\ifx\space@\next\expandafter\DN@\space{\xyFN@\COORD@}%gobblespaces1510K\else\ifcatA\noexpand\next\let\next@=\xyCOORD@letter1511K\else\let\next@=\xyCOORD@other\fi\fi\next@}1513\xylet@\COORD@=\xyCOORD@1515\xydef@\xyCOORD@letter{%1516K\ifxc\next1517 m\DN@c{\xy@{c}{}\afterCOORD@}%1518K\else\ifxp\next1519 m\DN@p{\xy@{p}\cfromp@\afterCOORD@}%1520K\else\ifxx\next1521 m\DN@x{\xy@{x}{\R@c=\X@xbase\U@c=\Y@xbase\intersect@}\afterCOORD@}%1522K\else\ifxy\next1523 m\DN@y{\xy@{y}{\R@c=\X@ybase\U@c=\Y@ybase\intersect@}\afterCOORD@}%1524K\else\ifxs\next1525 m\DN@s##1{\xy@{s{##1}}{\cfroms@{##1}}\afterCOORD@}%1526K\else\let\next@=\afterCOORD@\fi\fi\fi\fi\fi\next@}1528\xydef@\xyCOORD@other{%1529K\ifx"\next%"1530 m\DN@"##1"{\xy@{"##1"}{\cfromid@{##1}}\afterCOORD@}%1531K\else\ifx\bgroup\next1532 m\DN@##1{\xy@{{##1}}{\enter@{\pfromthep@\basefromthebase@}}%1533\silencexy@\POS##1\relax\unsilencexy@\xy@@\leave@\afterCOORD@}%1534K\else\ifx(\next%)1535 m\DN@({\xyFN@\xyCOORD@other@open}%)1536K\else\let\next@=\afterCOORD@\fi\fi\fi\next@}1538\xynew@{if}\ifsilentxy@1540\xydef@\silencexy@{%1541K\ifsilentxy@\nter@{}%1542K\else\nter@{\silentxy@false\let\xy@=\unsilent@@xy@}1543 m\silentxy@true\let\unsilent@@xy@=\xy@\def\xy@##1##2{\unsilent@@xy@{}{##2}}%1544K\fi}1546\xydef@\unsilencexy@{\leave@}1548\xydef@\xyCOORD@other@open{%1549K\ifx*\next1550 m\DN@*##1*){\xy@{(*}{\enter@{\pfromthep@\basefromthebase@}}%1551\POS##1\relax\xy@{*)}\leave@\afterCOORD@}%1552K\else\DN@{\xyFN@\afterCOORD@(}%)1553K\fi\next@}_*tj1.3.CPOSITIONS27??hwFinallyfhpMosiparsingafterhcoordi(possiblyhv!ectori)isinterpreted:P1560\xydef@\xyPOS@{% 1561K\ifx\space@\next\expandafter\DN@\space{\xyFN@\POS@}%gobblespaces1562K\else\addPLUS@\ifx\next1563 m\addPLUS@\DN@{\xy@+{\enter@\cplusthec@}%1564 \afterCOORD{\xy@@\leave@\xyFN@\POS@}}%1565K\else\addDASH@\ifx\next1566 m\addDASH@\DN@{\xy@-{\enter@\cplusthec@}%1567 \afterCOORD{\xy@@{\X@c=-\X@c\Y@c=-\Y@c\leave@}\xyFN@\POS@}}%1568K\else\ifx!\next1569 m\DN@!{\xy@!{\enter@\cskewthec@}\afterCOORD{\xy@@\leave@\xyFN@\POS@}}%1570K\else\addDOT@\ifx\next1571 m\addDOT@\DN@{\xy@.{\enter@\cmergethec@}%1572\afterCOORD{\xy@@\leave@\xyFN@\POS@}}%1573K\else\ifx,\next1574 m\DN@,{\xy@,{\comma@@}\afterCOORD{\xyFN@\POS@}}%1575K\else\ifx;\next1576 m\DN@;{\xy@;{\swap@}\afterCOORD{\xyFN@\POS@}}%1577K\else\ifx:\next1578 m\DN@:{\xyFN@\POS@colon}%1579K\else\addEQ@\ifx\next1580 m\addEQ@\DN@{\xyFN@\saveid@}%1581K\else\ifx*\next1582 m\DN@*{\xyFN@\POS@star}%1583K\else\ifx?\next1584 m\DN@?{\xy@?{}\afterPLACE{\xyFN@\POS@}}%1585K\else\addAT@\ifx\next1586 m\addAT@\DN@{\xyFN@\STACK@}%1587K\else1588 m\let\next@=\afterPOS@1589K\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\next@}1591\xylet@\comma@@=\relax1593\xylet@\POS@=\xyPOS@ -\comma@@&isRahoMokusedtoc!hangetheoperationof, ,e.g.,whenRreadingastac!ksetupwhereitmeansf`push'.R?The% nalfunctionsserv!eonlytodistinguishbMetweenthesinglecharacter: Ϲ/*and%dualcharacter:: m/**%opMerators:1603\xydef@\POS@colon{\DNii@{\afterCOORD{\xyFN@\POS@}}%1604K\ifx:\next\xy@{::}{\setbase@@\X@c\Y@c}\DN@:{\nextii@}%1605K\else\xy@:{\setbase@\X@p\Y@p\X@c\Y@c}\let\next@=\nextii@\fi1606K\next@}1608\xydef@\POS@star{%1609K\ifx*\next1610 m\DN@*##1##{\nextii@{##1}}%1611 m\DNii@##1##2{\xy@@ix@{{##1}{##2}}%1612\xy@{**##1{##2}}{\expandafter\connect@\the\toks9}\xyFN@\POS@}%1613K\elseȯ*tj28+_%CHAPTERf1.CKERNEL:XY.DOC??hw1614 m\DN@##1##{\nextii@{##1}}% 1615 m\DNii@##1##2{\xy@@ix@{{##1}{##2}}%1616\xy@{*##1{##2}}{\expandafter\drop@\the\toks9}\xyFN@\POS@}%1617K\fi1618K\next@}*1SimpleQactions: 5Next%:1647\xydef@\vfromabsolute@#1{\vfromabsolute@@#1,@}1649\xydef@\vfromabsolute@@#1,#2@{\X@c=#1\relax1650K\DN@{#2}\ifx\next@\empty\Y@c=\X@c1651K\else\DN@##1,{\Y@c=##1}\next@#2\relax\fi1652%\advance\X@c1sp\advance\Y@c1sp%HACK1653}vThe̕nextgroupofcommandsareusedtostoreonthecon!trolstackwiththe\enter@/йcommand,softheyexppandtosomethinguseful:1660\xydef@\cfromthec@{\X@c=\the\X@c\Y@c=\the\Y@c1661K\U@c=\the\U@c\D@c=\the\D@c\L@c=\the\L@c\R@c=\the\R@c1662K\Edge@c={\expandafter\noexpand\the\Edge@c}}1664\xydef@\cfromthep@{\X@c=\the\X@p\Y@c=\the\Y@p1665K\U@c=\the\U@p\D@c=\the\D@p\L@c=\the\L@p\R@c=\the\R@p1666K\Edge@c={\expandafter\noexpand\the\Edge@p}}1668\xydef@\pfromthep@{\X@p=\the\X@p\Y@p=\the\Y@p1669K\U@p=\the\U@p\D@p=\the\D@p\L@p=\the\L@p\R@p=\the\R@p1670K\Edge@p={\expandafter\noexpand\the\Edge@p}}1672\xydef@\pfromthec@{\X@p=\the\X@c\Y@p=\the\Y@c1673K\U@p=\the\U@c\D@p=\the\D@c\L@p=\the\L@c\R@p=\the\R@c1674K\Edge@p={\expandafter\noexpand\the\Edge@c}}*1NotesĎ1.3a.=When,doingarithmeticwith+0and-thentheresultingcurren!tobjectinheritsthesizeofthehcoMordi,fi.e.,therigh!targument|thiswillbMezeroifthehcoordiisahv!ectori.Ӯ*tj1.3.CPOSITIONS29??hwExercise 1.2: 5Ho!wdoyousetctoanobjectthesamesizeasthesavedobject"ob" >butmoved .?P1694\xydef@\cplusthec@{\advance\X@c\the\X@c\advance\Y@c\the\Y@c}&<1.3b.Skewing߹using! fjustmeansthatthereferencepMoin!tofcismovedwithaslittlechangetotheshapMenoftheobjectaspossible,0i.e.,thenedgeofcwillremaininthesamelocationexceptthatitwillfgro!wlargertoavoidmovingthereferencepMointoutsidec."ڍExercise}1.3: 5WhatdoMesthehposi.3..!R-L|do?Bug:`RTheresultof! isalw!aysarectanglecurren!tlye.ProYcedure: 5!YEmo!vesfthecen!terofcbyatempMorarilyreadc0tandthenreadjuststheextents::J=TDzcT;:=j#,Yn0+nYzcemin(Yn0DMޟ0;1Yn0+Yzc.y)=2cmaxF0(Yzce+nDMޟ0;10) >UzcT;:=j#,max~@(Yn0+nU10;1Yn0+Yzc.y)(Yn0+Yzc.y)=2cmaxF0(U10nnYzc.y;10)@ XYzcT;:=j#,Yn0+nYzc>LzcT;:=j#,X0+nXzcemin(X0L09;1X0+Xzc.y)=2cmaxF0(Xzce+nL09;10)>RRzcT;:=j#,max~@(X0+nR0;1X0+Xzc.y)(X0+Xzc.y)=2cmaxF0(R0RnXzc.y;10)=SbXzcT;:=j#,X0+nXzc?ލ1737\xydef@\cskewthec@{%1738K\noexpand\cskew@{\the\Y@c}{\the\X@c}{\the\D@c}{\the\U@c}{\the\L@c}{\the\R@c}}P1740\xydef@\cskew@#1#2#3#4#5#6{%1741K\D@c=#3\advance\D@c\Y@c\ifdim\D@c<\z@\D@c=\z@\fi1742K\U@c=#4\advance\U@c-\Y@c\ifdim\U@c<\z@\U@c=\z@\fi1743K\advance\Y@c#1%1744K\L@c=#5\advance\L@c\X@c\ifdim\L@c<\z@\L@c=\z@\fi1745K\R@c=#6\advance\R@c-\X@c\ifdim\R@c<\z@\R@c=\z@\fi1746K\advance\X@c#2%1747K\Edge@c={\rectangleEdge}}&<1.3c.rAihpMosicpoversanotherifitisarectanglewithsizesucien!tlylargethattheotheris\under-neath".aThe. ߌopMeration\extends"ahpositoco!veranadditionalone|thereferencepoin!tofcisnotfmo!vedbuttheshapMeischangedtoarectanglesuchthattheentirepobjectiscovered.tBug:*non-rectangularobjectsare rst\translated"in!toarectanglebyusingadiagonalthroughthefobjectasthediagonaloftherectangle.ProYcedure: 5.YEtak!esfatempMoraryobjectc0tandadjuststheextentsofcsuchthatitiscovered.,VOLzcet:={X0nmin(X0nLzc.y;1XJL)9 =Pmax.d(Lzc.y;1An+L) N%Rzcet:={maxd(X0+nRzc.y;1XJ+R)X09 =Pmax.d(Rzc.y;1An+R)N4Dzcet:={Yn0nmin(Yn0nDzc.y;1YDM޹)9 =Pmax.d(Dzc.y;1B+nDM޹)O˟Uzcet:={maxd(Yn0+nUzc.y;1Y۹+U1)Yn09 =Pmax.d(Uzc.y;1B+nU1)-with_< A,B> V= <QX0QX,Yn0Yn>..First_methoMd2oftheobjectisusedtocon!vert_itin!toarectangle.P1782\xydef@\cmergethec@{%1783K\noexpand\cmerge@{\the\Y@c}{\the\X@c}{\the\D@c}{\the\U@c}{\the\L@c}{\the\R@c}}*tj30+_%CHAPTERf1.CKERNEL:XY.DOC??hw1785\xydef@\cmerge@#1#2#3#4#5#6{\the\Edge@c4% 1786K\A@=#2\advance\A@-\X@c\B@=#1\advance\B@-\Y@c1787K\dimen@=#5\advance\L@c\A@\ifdim\L@c<\dimen@\L@c=\dimen@\fi1788K\dimen@=#6\advance\R@c-\A@\ifdim\R@c<\dimen@\R@c=\dimen@\fi1789K\dimen@=#3\advance\D@c\B@\ifdim\D@c<\dimen@\D@c=\dimen@\fi1790K\dimen@=#4\advance\U@c-\B@\ifdim\U@c<\dimen@\U@c=\dimen@\fi1791K\advance\X@c\A@\advance\Y@c\B@}"1.3d.TheJopMerations:(>and::setthebpaseusedforhcoordiinatesha!vingtheform( sx,yd)$=.The:opMerationwillset< VXzorigin6,!Yzorigin6>top,-< hXȮxbasekf,=YȮxbasekf>tocorigin,-and< VXȮybaseq,sYȮybaseq>to(thispensuresthatitisausualsquarecoMordinatesystem).:LHĹsetsthecoMordinatesystem73ҍps: SDict begin xyc endz4<.h0" {28.45274 0.0 l}xy<.h0" {3072 10 /xy AB}xyh0 sG" {0.0 28.45274 l}xy sGI" {-3072 10 /xy AB}xy7': cmti10origin?.xb}'ase֟yb}'ase8 B.(1,1) sGI" {-28.45274 0.0 dt}xyh0<." {0.0 -28.45274 dt}xydwhilef<1cm,.5cm>;<2cm,1.5cm>:<1cm,1cm>::/lde nesS 9Ups: SDict begin xyc end4 ˟ҺU" {-28.45276 28.45276 dd}xy ܟҺf" {-2048 10 /xy AB}xy35tyb}'ase bGefore 8\B@\advance\R@-\B@\repeat@1959K\ifdim\R@<.5\B@\else\R@=-\R@\advance\R@\B@1960 m\X@ybase=-\X@ybase\Y@ybase=-\Y@ybase\fi1961K\B@=180\p@1962K\ifdim\R@<.5\B@\else\R@=-\R@\advance\R@\B@1963 m\X@xbase=-\X@xbase\Y@xbase=-\Y@xbase\fi1964K\B@=90\p@1965K\ifdim\R@<.5\B@\let\nextiii@=\literal@1966K\else\R@=-\R@\advance\R@\B@\def\nextiii@##1,##2@{##2,##1@}\fi1967K\dimen@=\z@\DN@{1,0@}%1968K\dimen@ii=45\p@\DNii@{.70710678,.70710678@}%1969K\chooseangleinterval@1970K{\chooseangleinterval@1971 m{\chooseangleinterval@1972{\chooseangleinterval@1973 {\chooseangleinterval@1974Jk{}%1975Jk{4.090909}{.99677570,.08023846@}%1976Jk{}}%1977 {6}{.99452190,.10452846@}%1978 {\chooseangleinterval@1979Jk{}%1980Jk{8.181818}{.98982144,.14231484@}%1981Jk{}}}% *tj32+_%CHAPTERf1.CKERNEL:XY.DOC??t5_~AVeectorsA(foranglesin[0ʫ: 45]:>con!tainsallanglesrequiredtotypMesetfractionsuptoK 7nt[fePA12p2d,K1fePA16E2, andK1fePA24|2Aexactlye,and~t!woextralowonestoensurethatallgapsarelessthan5>andtheprecisionoffallsine/cosinesbMetterthanK 91ٙfePA1000 ܹ.̈za`ffefdͤ ff""fd b> cmmi10 % ffO(cos7 z;nKsin| z)3 fffractionsUUof2*ß ff)߲ ippGedUUfractionsof22 ffffe ͤ2˄Lcff""50'>Lcff_I(1;nK0)*2˄Lcff MB0Ҽ&fe~ 0ercmmi7n*ğ2˄Lcff )1)&fes2ϵ; ۱1۟&fes4 ; ۱2۟&fes4; ۱2۟&fes8; ۱3۟&fes4; ۱3۟&fes6; 3۟&fe12 ; ۱4۟&fes8; 5۟&fe10; ۱6۟&fes8; 6۟&fe12; 9۟&fe122˄Lcff /ͤ ff""fd4:090909wy ff9%(:99677570;nK:08023846)͟ ffg !", cmsy101 ffV6G ff ͤ ff""fd6'> ff9%(:99452190;nK:10452846)͟ ffg1 ffV6G ff 4ͤ2˄Lcff""58:181818wyLcff9%(:98982144;nK:14231484)͟2˄Lcff MB3O&fe11*ğ2˄Lcff Xu8V;&fe1132˄LcffLcͤ2˄Lcff͟510%Lcff9%(:98480775;nK:17364818)͟2˄Lcff MA7MA&fes9*ß2˄Lcff Xt2Xt&fes922˄Lcffͤ2˄Lcff͟512:857143Lcff9%(:97492791;nK:22252093)͟2˄Lcff MA2MA&fes7*ß2˄Lcff Xt5Xt&fes722˄Lcffͤ2˄Lcff͟515%Lcff9%(:96592583;nK:25881905)͟2˄Lcff MB1O&fe24*ğ2˄Lcff32˄Lcffͤ2˄Lcff͟516:363636Lcff9%(:95949297;nK:28173256)͟2˄Lcff MB6O&fe11*ğ2˄Lcff Xu5V;&fe1132˄Lcffͤ2˄Lcff͟518%Lcff9%(:95105652;nK:30901699)͟2˄Lcff zj3|0&fe10ШI; ۱4۟&fes5 ; 8۟&fe10/濟2˄Lcff IJc1IJc&fes5Nz ; 2۟&fe10 ; 7۟&fe10E2˄Lcffͤ2˄Lcff͟520%Lcff9%(:93969262;nK:34202014)͟2˄Lcff MA5MA&fes9*ß2˄Lcff Xt4Xt&fes922˄Lcffͤ2˄Lcff͟522:5ҡLcff9%(:92387953;nK:38268343)͟2˄Lcff MB1O&fe16*ğ2˄Lcff32˄Lcffͤ2˄Lcff͟524:545455Lcff9%(:90963200;nK:41541501)͟2˄Lcff MB9O&fe11*ğ2˄Lcff Xu2V;&fe1132˄Lcffͤ2˄Lcff͟525:714286Lcff9%(:90096887;nK:43388374)͟2˄Lcff MA4MA&fes7*ß2˄Lcff Xt3Xt&fes722˄Lcffͤ2˄Lcff͟530%Lcff9%(:86602540;nK:5)'ԟ2˄Lcff l21l2&fes3ص; 1۟&fe12 ; ۱2۟&fes6 ; ۱3۟&fes9; 4۟&fe12; ۱5۟&fes6; 7۟&fe12; ۱10۟&fe122˄Lcff *:e1*:e&fes6/j ; ۱2۟&fes3 ; 2۟&fe12 ; ۱4۟&fes6; 5۟&fe12; ۱6۟&fes9; 8۟&fe12; ۱11۟&fe12&2˄Lcffͤ2˄Lcff͟532:727273Lcff9%(:84125353;nK:54064082)͟2˄Lcff MB1O&fe11*ğ2˄Lcff V;10V;&fe1132˄Lcffͤ2˄Lcff͟536%Lcff9%(:80901699;nK:58778525)͟2˄Lcff zj1|0&fe10ШI; ۱3۟&fes5 ; 6۟&fe10/濟2˄Lcff IJc2IJc&fes5Nz ; 4۟&fe10 ; 9۟&fe10E2˄Lcffͤ2˄Lcff͟538:571429Lcff9%(:78183148;nK:62348980)͟2˄Lcff MA6MA&fes7*ß2˄Lcff Xt1Xt&fes722˄Lcffͤ2˄Lcff͟540%Lcff9%(:76604444;nK:64278761)͟2˄Lcff MA1MA&fes9*ß2˄Lcff Xt8Xt&fes922˄Lcffͤ2˄Lcff͟540:909091Lcff9%(:75574957;nK:65486073)͟2˄Lcff MB4O&fe11*ğ2˄Lcff Xu7V;&fe1132˄Lcffͤ2˄Lcff͟545%Lcff9%(:70710678;nK:70710678)͟2˄Lcff T1T&fes8=; ۱3۟&fes8 ; ۱5۟&fes8; ۱7۟&fes8*|p2˄LcffV6G2˄Lcff1ffe&򍍑}Figuref1.2:Computinganglev!ectors!f*tj1.3.CPOSITIONS33??hw1982{10}{.98480775,.17364818@}% 1983{\chooseangleinterval@1984 {}%1985 {12.857143}{.97492791,.22252093@}%1986 {}}}%1987 m{15}{.96592583,.25881905@}%1988 m{\chooseangleinterval@1989{\chooseangleinterval@1990 {}%1991 {16.363636}{.95949297,.28173256@}%1992 {}}%1993{18}{.95105652,.30901699@}%1994{\chooseangleinterval@1995 {}%1996 {20}{.93969262,.34202014@}%1997 {}}}}%1998K{22.5}{.92387953,.38268343@}%1999K{\chooseangleinterval@2000 m{\chooseangleinterval@2001{\chooseangleinterval@2002 {}%2003 {24.545455}{.90963200,.41541501@}%2004 {}}%2005{25.714286}{.90096887,.43388374@}%2006{}}%2007 m{30}{.86602540,.5@}%2008 m{\chooseangleinterval@2009{\chooseangleinterval@2010 {}%2011 {32.727273}{.84125353,.54064082@}%2012 {}}%2013{36}{.80901699,.58778525@}%2014{\chooseangleinterval@2015 {\chooseangleinterval@2016Jk{}%2017Jk{38.571429}{.78183148,.62348980@}%2018Jk{}}%2019 {40.909091}{.75574957,.65486073@}%2020 {\chooseangleinterval@2021Jk{}%2022Jk{40}{.76604444,.64278761@}%2023Jk{}}}}}%2024K\A@=\R@\advance\A@-\dimen@2025K\ifdim\ifdim\A@<\z@-\fi\A@<.01\p@\edef\next@{\expandafter\nextiii@\next@}%2026K\else\B@=\dimen@ii\advance\B@-\R@2027 m\ifdim\A@<\B@\dimen@=\toradians@\A@2028\edef\next@{\next@\expandafter\removePT@\the\dimen@@}%2029 m\else\dimen@=-\toradians@\B@2030\edef\next@{\nextii@\expandafter\removePT@\the\dimen@@}%"+*tj34+_%CHAPTERf1.CKERNEL:XY.DOC??hw2031 m\fi 2032 m\expandafter\interpolatepoint@\next@2033 m\edef\next@{\expandafter\nextiii@\next@}%2034K\fi2035K\expandafter\vfromcartesian@@\next@2036K\leave@}P2038\xydef@\chooseangleinterval@#1#2#3#4{%2039K\B@=#2\p@\def\next{#3}%2040K\ifdim\R@<\B@\dimen@ii=\B@\let\nextii@=\next#1%2041K\else\dimen@=\B@\let\next@=\next\ifdim\B@<\R@#4\fi\fi}2043\xydef@\interpolateinterval@#1,#2@#3,#4@{%2044K\A@=#1\p@\dimen@=#3\p@\advance\dimen@-\A@\advance\A@\next\dimen@2045K\B@=#2\p@\dimen@=#4\p@\advance\dimen@-\B@\advance\B@\next\dimen@2046K\edef\next@{\expandafter\removePT@\the\A@,\expandafter\removePT@\the\B@@}}2048\xydef@\toradians@{0.01745329}2050\xydef@\interpolatepoint@#1,#2@#3@{%2051K\A@=#1\p@\dimen@ii=#3\A@\dimen@ii=-.5\dimen@ii\advance\A@#3\dimen@ii2052 m\dimen@=-#2\p@\advance\A@#3\dimen@2053K\B@=#2\p@\dimen@ii=#3\B@\dimen@ii=-.5\dimen@ii\advance\B@#3\dimen@ii2054 m\dimen@=#1\p@\advance\B@#3\dimen@2055K\edef\next@{\expandafter\removePT@\the\A@,\expandafter\removePT@\the\B@@}}ЍFiguref1.3sho!wsalldirections.F*1.3f.,Teo4drpop&anhobjectiatcwith*meanstoactuallyph!ysicallytypMesetitinthepicturewithreferencepMositionatc|ho!wthisisdonedependsonthehobjectiinquestionandisdescribedindetailMinx1.4.Thein!tuitionwithadropisthatittypMesetssomethingat< lXzc.y, #Yzc.y>;andsetstheedgefofcaccordinglye.!ProYcedure: 5(9Etcmbx6??H)\setsupthedirectiontoallo!wfordirectionalsandbuildstherequestedhobjectiinwthe(global)\lastobjectbox@^abMo!x,.(l.2106|)adjustthepicturesizeunlessitisahiddenobject,settinguF\dimen@.= Xzc;% Lzc.y,anduF(l.2112|)droptheobjectinthepictureattherigh!tpMointbysettingbox01'andfusingthe\Drop@@/rmethoMd.2104\xydef@\drop@#1#2{%*[drop1]2105K\global\setbox\lastobjectbox@=\object#1{#2}%2106K\ifHidden@\dimen@=\X@c\advance\dimen@-\L@c\else2107 m\dimen@=\Y@c\advance\dimen@\U@c\ifdim\Y@max<\dimen@\Y@max=\dimen@\fi2108 m\dimen@=\Y@c\advance\dimen@-\D@c\ifdim\dimen@<\Y@min\Y@min=\dimen@\fi2109 m\dimen@=\X@c\advance\dimen@\R@c\ifdim\X@max<\dimen@\X@max=\dimen@\fi2110 m\dimen@=\X@c\advance\dimen@-\L@c\ifdim\dimen@<\X@min\X@min=\dimen@\fi2111K\fi2112K\ifInvisible@\else2113 m\setboxz@h{\kern\dimen@\raise\Y@c\box\lastobjectbox@}%2114 m\ht\z@=\z@\dp\z@=\z@\wd\z@=\z@{\Drop@@}\fi}ЍNote:ݹAllft!ypMesettingintoapictureshoulduseoremulate\drop@&$b!F*1.3g.=ThecponnectֽopMeration**will rstcomputean!umbMerofinternalparametersdescribingthedirection&rfromptocandthent!ypMesetsaconnection lledwithcopiesofthehobjectiasillustrated#3۠*tj1.3.CPOSITIONS35??G#6Ѧps: SDict begin xyc end|\^CK" {4.0 0 360 o}xy-" {138.26303 0.0 l}xy00+K3+럟wv+/+|=,͟VU" {137.62503 13.28923 l}xy/͟5+9˟J***Ac-+]#K" {136.16931 23.96596 l}xy.]#Zo10)dşI(僟5(\@o$'(-" {133.56512 35.73744 l}xy+15&}ǟ7d%H% x$Ad$qW" {129.93906 47.25331 l}xy'qyR20"ӟr!ޟ# 0+ȑ> 3]" {125.31682 58.42583 l}xy#3Á25Y[NZ+uwsU" {119.7174 69.17058 l}xyws"30Ο)Ub G[Kf" {113.23877 79.33498 l}xyK߆35=\ ؿd M =ٟf" {105.9216 88.86807 l}xy=ٟW40 -jv=+ahyuۮg" {97.76683 97.76683 l}xyۮg45pl2cﺟ{埓r" {88.86807 105.9216 l}xy;r50EPCTT&[Ꟑ\V,w" {79.33498 113.23877 l}xy؟w55K?}F8!}d" {69.17058 119.7174 l}xy摣60?[2Sb" {58.42583 125.31682 l}xyћ|65כwTzR ߠ~к }뤠zP" {47.25331 129.93906 l}xyάwP70@{ɴL{"UVzbyTv" {35.73744 133.56512 l}xy3Ws75(ҠxewХRwGb-v Ts(" {23.96596 136.16931 l}xyxp(80&u1u%u:<trd~" {13.28923 137.62503 l}xy夠od~85:tiutofotAF9t0CKq" {0.0 138.26303 l}xyn90B:t0}tAF6toftird~" {-13.28972 137.62503 l}xyHOod~95Qthu:<u%|ƠuBs(" {-23.96645 136.16931 l}xyp(100v )2Y0#r%W" {-129.93954 47.25331 l}xy 0yR160:q\x%7dߟ-" {-133.56561 35.73744 l}xy165 o$i5'I)sK" {-136.1698 23.96596 l}xy)~Zo170:-,CB!JɟVU" {-137.62552 13.28923 l}xyԟ175p=m/Mwv3" {-138.26303 0.0 l}xy180Mfhm &p 3ɟ " {-137.62552 -13.28972 l}xyԟx185B!MC,<*:)s " {-136.1698 -23.96645 l}xy)~190'&i "n $ߟ$ " {-133.56561 -35.73793 l}xy(195%)z,q\.eE:09%0Y" {-129.93954 -47.2538 l}xy 04b2005k7Y:2l'@hqm&Cбl" {-88.86856 -105.92209 l}xy7-Zmethodtoconnectusing\lastobjectbox@X.P2140\xydef@\connect@#1#2{\setupDirection@\enter@{\cfromthec@}%2141K\global\setbox\lastobjectbox@=\object#1{#2}\leave@2142K\Connect@@}2144\xydef@\preconnect@#1#2{\setupDirection@\enter@{\cfromthec@}%2145K\global\setbox\lastobjectbox@=\object#1{#2}\leave@\connectStore@2146K\ifInvisible@\Connect@@\else\Invisible@true\Connect@@\Invisible@false\fi}{%Thef\preconnectFcommandfisforin!ternalusebyarrow.3..yitfmakesuseofthefollowing:2153\xynew@{box}\connectobjectbox@@2154\xylet@\connectDrop@@=\empty2155\xylet@\connectpreXY@style@=\empty2156\xylet@\connectpostXY@style@=\empty2158\xylet@\connectRest@@=\empty2160\xydef@\connectStore@{%2161K\global\setbox\connectobjectbox@@=\copy\lastobjectbox@$BZ*tj36+_%CHAPTERf1.CKERNEL:XY.DOC??hw2162K\let\connectDrop@@=\Drop@@ 2163K\let\connectpreXY@style@=\preXY@style@2164K\let\connectpostXY@style@=\postXY@style@2165K\xdef\connectRest@@{%2166 m\def\noexpand\Upness@{\Upness@}%2167 m\def\noexpand\Leftness@{\Leftness@}%2168 m\ifInvisible@\noexpand\Invisible@true\else\noexpand\Invisible@false\fi2169 m\ifHidden@\noexpand\Hidden@true\else\noexpand\Hidden@false\fi}}P2171\xydef@\connectRestore@{%2172K\ifvbox\connectobjectbox@@2173 m\setbox\lastobjectbox@=\copy\voidb@x2174K\else2175 m\global\setbox\lastobjectbox@=\copy\connectobjectbox@@2176K\fi2177K\let\Drop@@=\connectDrop@@2178K\global\let\preXY@style@=\connectpreXY@style@2179K\global\let\postXY@style@=\connectpostXY@style@2180K\connectRest@@}<See¬e`de nehshapMei'fortheuseof\preXY@style@Tand\postXY@style@Ztoapplyspecialhst!yleis,:spMeci ednviahobject-modi eris;beingsa!vednhereb!y\connectStore@UY*as\connectpreXY@style@andf\connectpostXY@style@tofbMeresetb!y\connectRestore@_.r~1.3h.Usingk?`willk\pic!kaplace"alongthemostrecentconnectiontypMesetwith**/.. >,ichangethedefaulthfactori,if-,andho!witisused,b!y`mo!ving'JrthepMositionsthatcorrespondto(0)and(1)(respMectiv!ely):Theseareinitiallysetequaltopandc,butsha!vingwillmovethemtothepMointontheedgeofpandcwheretheconnection\lea!ves/enters"them,+andc!hangethedefaultfYasindicated.WhenoneendhasalreadybMeensha!ved2thusthensubsequentshaveswillcorrespMondtoslidingtheappropriateposition(s)aT,[wEB X\jot[(usuallyequalto3pt)furtherto!wards[theotherendoftheconnection(andpastit).Finallythepickactionwillpic!kthepMositionlocatedthefractionfofthew!ayfrom(0)Fto(1)wheref8c= 0.5 iffitw!asnotset(by< f,>,orexplicitly).AllthisisprobablybMestillustratedwithsomeexamples:Veac!h in gure1.4istypMesetbyasequenceBoftheformp; c**@{.})?.Öhplacei*{\oplus}:Bwherew!eindicatethe?hplaceiineac!hcase.(Weefalsogiv!eexamplesofhslideis.)"4ProYcedure: 5ThecoMdeforparsinghplaceiisthefollo!wing.Teoget rst<>X̹tomovetoedgeandthe:remainingtomo!ve:a\jotw!ehavebMothinitialandcontinuingversionsforeach,6CtheideabMeingthatfthesecondandfollo!winggototheedgeofasmalltempMoraryobjectwithradius\jot.Note:kThiszparserteststhenew5pparsingprincipleMNthatz\xy@shouldzalw!aysbMecalledas\xy@{sourpcey}{targetP} o!P2274\xydef@\afterPLACE#1{%2275K\DN@##1{\def\afterPLACE@{\xy@@\leave@\def\afterPLACE@{##1}#1}}%2276K\expandafter\next@\expandafter{\afterPLACE@}%2277K\def\PLACEf@{{.5}}%2278K\xy@@{\enter@{\pfromthep@}%%r*tj1.3.CPOSITIONS37??ʍBፍMps: SDict begin xyc end4Hs " {10.0 ox}xy4Hs " {7.9 ox}xy$pfiscircular: ʍJ`cMisa GhsquareKOtext!h0Vs2" {0.0 21.90005 -21.90005 -21.90005 21.90005 ov}xyA ̈́33+Ԏl̈́+33@ " {248.09995 -101.1031 dd}xyDP$qƟo?(0)E'" {23.71349 14.25116 l}xyE'" {3686 10 /xy AB}xyRP$$qƟo?(1)S'" {23.71349 14.25116 l}xyS'" {3686 10 /xy AB}xyˎP$ğ݆?'Ȕ" {23.71349 14.25116 l}xy'Ȕ" {3686 10 /xy AB}xy$ͱo?(.7)&ߟޔ" {23.71349 14.25116 l}xy&ߟޔ" {3686 10 /xy AB}xyIJ/k?<>(.5)h0>K" {0.0 -12.1667 l}xy>?" {1024 10 /xy AB}xyIJ/=B?<>(.2)(.5)Ȇz" {-23.71399 -14.2517 l}xyȆz" {-410 10 /xy AB}xyDP$d0w~`?DEV4" {-23.71399 -14.2517 l}xyDEV4" {-410 10 /xy AB}xy4Q6ܒ*40?>>>>h08Yur" {0.0 -12.1667 l}xy8Yݢ" {1024 10 /xy AB}xy9ǟa?<>(.7)$g" {-23.71399 -14.2517 l}xy$g" {-410 10 /xy AB}xy9<şa?>(.7)h0{ßԃu" {0.0 -12.1667 l}xy{ß" {1024 10 /xy AB}xy0Figuref1.4:Examplehplaceis+2279 m\Creset@@\def\PLACEf@{{.5}}% 2280 m\let\PLACEedgep@@=\PLACEedgep@\let\PLACEedgec@@=\PLACEedgec@}%2281K\xyFN@\PLACE@}P2283\xydef@\PLACEf@{}2285\xydef@\PLACEedgep@@{} 2286\xydef@\PLACEedgec@@{}2288\xydef@\PLACEedgep@{\Cshavep@@\def\PLACEedgep@@{\Cslidep@@\jot}}2289\xydef@\PLACEedgec@{\Cshavec@@\def\PLACEedgec@@{\Cslidec@@{-\jot}}}2291\xylet@\afterPLACE@=\empty2293\xydef@\PLACE@{%2294K\ifx\space@\next\expandafter\DN@\space{\xyFN@\PLACE@}%gobblespaces2295K\else\addLT@\ifx\next2296 m\addLT@\DN@{\addLT@\xy@{\def\PLACEf@{{0}}\PLACEedgep@@}\xyFN@\PLACE@}%2297K\else\addGT@\ifx\next2298 m\addGT@\DN@{\addGT@\xy@{\def\PLACEf@{{1}}\PLACEedgec@@}\xyFN@\PLACE@}%2299K\else\ifx(\next%)2300 m\DN@(##1){\def\PLACEf@{{##1}}\xy@{(##1)}{\def\PLACEf@{{##1}}}\xyFN@\PLACE@}%2301K\else\ifx!\next2302 m\DN@!{\xyFN@\PLACE@intercept}%2303K\else2304 m\DN@{\xy@@{\expandafter\Calong@@\PLACEf@\czeroEdge@}\PLACE@@}%2305K\fi\fi\fi\fi\fi\next@}2307\xydef@\PLACE@intercept{%2308K\ifx\space@\next\expandafter\DN@\space{\xyFN@\PLACE@intercept}%gobblespaces2309K\else\ifx\bgroup\next2310 m\DN@##1{\xy@{!{##1}}{}\PLACE@intercept@{##1}}%2311K\else\ifx(\next%)2312 m\DN@(*##1*){\xy@{!(*##1*)}{}\PLACE@intercept@{##1}}%2313K\else\DN@{\xyerror@{{}expectedafter!in}{}}%2314K\fi\fi\fi\next@}2316\xydef@\PLACE@intercept@#1{%&*tj38+_%CHAPTERf1.CKERNEL:XY.DOC??hw2317K\xy@@{\enter@{\pfromthep@\basefromthebase@}\begingroup}% 2318K\xy@@ix@{#1}\xy@@{\plainxy@\expandafter\POS\the\toks9\relax2319 m\edef\next@{\endgroup2320\X@c=\the\X@c\Y@c=\the\Y@c\X@p=\the\X@p\Y@p=\the\Y@p}%2321 m\next@\Cintercept@@\leave@}%2322K\PLACE@@}P2324\xydef@\PLACE@@{%2325K\ifx\space@\next\expandafter\DN@\space{\xyFN@\PLACE@@}%gobblespaces2326K\else\ifx/\next\DN@/##1/{\xy@{/##1/}{\Cslidec@@{##1}}\afterPLACE@}%2327K\else\let\next@=\afterPLACE@2328K\fi\fi\next@} l1.3i.NAPhslideiP̹willmo!vePthepMositionadimensionfurtheralongtheconnectionatthepic!kedPposition.Feorvstraigh!tconnections(theonlyoneskernel^XY -picprovides)thisisthesameasaddingavectorinfthetangen!tdirection,i.e.,? 9A:1::/A/ fisthesameas? 9A:1::+/%R)A/.~1.3j.,ThiswspMecialhplacei ndsthepoin!twherethelastconnectioninterceptswiththelinefromptocmassetupb!ythehpMosi,tthususuallythiswillhavetheform!{hcoMordi;hcoordi}4 ,tformexample,Bug:ݹOnlyfw!orksforstraightarrowsatpresent.\xy<1cm,0cm>:K(0,0)*=0{+}="+";K(2,1)*=0{\times}="*"**@{.},K(1,0)*+{A};(2,2)*+{B}**@{-}K?!{"+";"*"}*{\bullet}\endxyszwillft!ypMesetIR܍:ps: SDict begin xyc endݞ$+48ΟI" {56.90549 28.45274 dt}xyX%A4z\>$Bh05" {21.7115 43.423 l}xy#7Пٳ1.3k.\The=pMositionsdenotedb!ytheaxis5IintersepctionHhcoordiinatesxandyarethepoin!tswherethelinefthroughpandcin!tersectswitheachaxis.Thefollowing gureillustratesthis:45Nps: SDict begin xyc end Jorigin-ꕟ.=xbpaseJh'.=" {28.45274 14.22636 l}xyJh'.=" {3584 10 /xy AB}xy ,ybpaseM.=" {-14.22636 14.22636 l}xyM.=" {-2048 10 /xy AB}xyHYQN <pORU+%c[PxVӃh0XPꬣ" {14.21939 28.43883 dt}xyJh'.=" {-14.21938 -7.09927 dt}xy@kXD9yA~`h0CK-V" {-7.11317 -14.22636 dt}xy-@h0" {-21.33955 21.33955 dt}xyU0Exercise1.4: 5Giv!en@prede nedpMointsA,g\B,Cȁ,and@D(storedasobjects"A"¹,g\"B"Z,g\"C",g\and"D"),lwrite[8ahcoMordispeci cationthatwillreturnthepoin!twherethelinesQMfeKABǻandQMfeCȁD!crossiffy̟ L͍ {-=4aTheTbracescanbAereplacedb9y(* ...*)*:j cmti9once ,Ti.e.,therecanbenootherbracesnestedinsideit.'ޠ*tj1.3.CPOSITIONS39??hw(thefpMoin!tmarkedwithalargecirclehere):?ፍCps: SDict begin xyc end6gh0" {1.0 0 360 o}xyh0A"!R" {1.0 0 360 o}xyF8RB33n" {1.0 0 360 o}xy63nC84" {1.0 0 360 o}xy;4D*mn" {3.0 0 360 o}xyh019" {41.8074 60.08694 dt}xyh0%" {-25.19963 50.3934 dt}xyݟProYcedure: 5Weefsolv!ethefollowingequationina;1b:uoriginn+na<.Rzc.y, #Uzc.y> ʹ= cb(cp)andfthenset$Ǚ<*CXzc.y, #Yzc.y> ʹ:= <QXzc.y,Yzc.y> ]nb(cp) 5withfzerosizeWADzc.y;1Uzc;Lzc;Rzc9 := 0;0;0;0:ThefcoMdeusesc =(Xzc.y;1Yzc;Dzc;Uzc;Lzc;Rzc)fandA;B3 astempMorariesandcomputes:1 KaiMG(:=<Xzc.y, #Yzc.y> ]n<.Xzp];1Yzp>v<|A,B>G(:=<Xzc.y, #Yzc.y> ]n<.Xzorigin6,SYzorigin6>So&G(:=Zp=nG(:=<Xzc.y, #Yzc.y> ]n(Lzc.y=Dzc)<.dX,dYn>1 Lwherefw!ereallydoDX:= (R=pt T)dYn(U=pt)dX^andfsimilarlyforL.P2450\xydef@\intersect@{ 2451K\d@X=\X@c\advance\d@X-\X@p\d@Y=\Y@c\advance\d@Y-\Y@p2452K\A@=\X@c\advance\A@-\X@origin\B@=\Y@c\advance\B@-\Y@origin2453K\edef\next@{\expandafter\removePT@\the\R@c}%2454K\edef\nextii@{\expandafter\removePT@\the\U@c}%2455K\D@c=\next@\d@Y\advance\D@c-\nextii@\d@X\divide\D@c\KK@2456K\L@c=\next@\B@\advance\L@c-\nextii@\A@\divide\L@c\KK@2457K\ifdim\D@c=\z@\zeroDivide@\else\quotient@\next@\L@c\D@c\fi2458K\advance\X@c-\next@\d@X\advance\Y@c-\next@\d@Y2459K\czeroEdge@}When{Uthereisnoin!tersectionpMointawronganswerisreturned,%accompaniedbyawarningmessage.ThisybMeha!viourcanbealteredb!yassigningadi erentvdDaluetothehoMok:\zeroDivide@K.X&Thismacrofm!uststoreanumbMerin\next@&$b.2468\xydef@\zeroDivide@@{\zeroDivide@message{\intersect@}{treatedas0}\DN@{0}}2469\xydef@\zeroDivide@message#1#2{\xywarning@{divisionby0in\string#1,#2}}2470\xylet@\zeroDivide@=\zeroDivide@@2472\xydef@\zeroDivideLimit@@{\ifdim\L@c=\z@\DN@{0}%2473K\else\ifdim\L@c<\z@\DN@{-\zeroDivide@Limit}%2474K\else\DN@{\zeroDivide@Limit}\fi\fi2475K\zeroDivide@message{\intersect@}{replacedby\zeroDivide@Limit}}2476\xydef@\zeroDivideLimit@#1{\edef\zeroDivide@Limit{#1}%2477K\let\zeroDivide@=\zeroDivideLimit@@}2478\xylet@\zeroDivideLimit=\zeroDivideLimit@By}wspMecifying\zeroDivideLimit{f7hn!umi} =!theusercanlocallyestablishthatKxfePADr0ܹ=qsgnQ(x)hn!umi,whenev!erfsuchadivisionbyzerowouldotherwiseoMccurinanintersectioncalculation.(*tj40+_%CHAPTERf1.CKERNEL:XY.DOC??hw1.3l.NAhpMosihdecorigrpoupedin{}\-braces5A isin!terpretedinalocalscopeinthesensethatan!ypand bpaseƹbuilt0%withinitareforgottenafterw!ards,Gleaving0%onlythecastheresultofthehcoMordi.rNote:Onlyfpandbpaseyarerestored{itisnotaT,[wEB Xgroup. ZzExercise21.5: 5Whatfe ectisac!hievedfbyusingthehcoMordiinate\{;}>"?ThefcoMdeisinside\POS@ d.ꍍ1.3m.The Fwhere ¹is|btheangleofthelastdirectionsetb!yaconnection(i.e.,with**)orsubsequentplacement(?)pMosition.P2514\xydef@\vfromslide@#1{\enter@\DirectionfromtheDirection@\begingroup2515K\plainxy@\afterDIRECTIONorEMPTY\vfromslide@i\vfromslide@i#1@}2517\xydef@\vfromslide@i#1@{\DN@{#1}%2518K\edef\next{\endgroup2519 m\ifx\next@\empty\dimen@=.5pc\else\dimen@=#1\relax\fi2520 m\X@c=\cosDirection\dimen@\Y@c=\sinDirection\dimen@}\next2521K\leave@}CIt\ispMossibletogiv!eahdirectioniasdescribedinthenextsection( gure1.5,+note1.4linparticular)that(willthenbMeusedtosetthevdDalueof `.4#Itisalsopossibletoomitthehdimeniinwhic!hcaseitfissettoadefaultvdDalueof.5pc.ꍍ1.3n.AThcornerilisano setfromthecurren!t< Xzc.y, #Yzc.y> pMositiontoaspeci cpositionontheedgeofthefcobject(thet!wo-letterfonesma!ybMegiveninanycombination):C⭍ps: SDict begin xyc endh0;1" {0.0 42.67891 -11.37827 -14.2263 25.61012 ov}xy9J]çc-nh0" {-11.85696 0.0 dt}xyfVh0" {40.30957 0.0 dt}xyh0; `" {0.0 -9.02098 dt}xyh0;c" {0.0 23.25284 dt}xyL-nh0" {16.02571 0.0 l}xy-nh0" {3072 10 /xy AB}xyy]LRfVh0" {-16.02571 0.0 l}xyfVh0" {-1024 10 /xy AB}xy8"Dh0; `" {0.0 15.55423 l}xy;" {-3072 10 /xy AB}xy8>Uh0;c" {0.0 -15.55421 l}xy;" {1024 10 /xy AB}xy  LD-n" {9.1888 7.46468 l}xy-n" {3904 10 /xy AB}xyu\RDfV" {-12.33064 3.47746 l}xyfV" {-1312 10 /xy AB}xyݟLUh0-nc" {7.17282 -12.73917 l}xy-n" {1600 10 /xy AB}xysk'RUfV" {-10.07968 -5.98274 l}xyfV" {-416 10 /xy AB}xy-CL-nJ" {10.83891 -5.42667 l}xy-nJ" {2560 10 /xy AB}xyv9ACRfVJ" {-12.8867 -2.01213 l}xyfVJ" {-864 10 /xy AB}xyU!ğ DCIٟ" {-9.19232 7.46468 l}xyIٟ" {-1856 10 /xy AB}xyNUCh0Iٟc" {-7.16394 -12.73917 l}xyIٟ" {448 10 /xy AB}xyZŸ-CIٟJ" {-13.71059 -6.8553 l}xyIٟJ" {-512 10 /xy AB}xyΟD P-n" {15.76372 2.46391 l}xy-n" {3232 10 /xy AB}xyv7p9J][ " {51.78127 20.71053 dt}xyDE-nb" {14.41635 5.85547 l}xy-nb" {3488 10 /xy AB}xy5UThek`edgepMoin!t'E @liesontheedgealongthelinefromptothecentreoftheobject,wincontrasttothe`propMortional'poin!tP whichisalsoapMointontheedgebutcomputedinsuchawaythattheobjectfloMoksasm!uchf`awayfromp'aspMossible.Finallye,fafollo!wing( ff-) ̹suxwillmultiplytheo setvectorbythehfactorif-. ZzExercise21.6: 5Whatfisthedi erencebMet!weenfthehposiitionsc?<ʹandc+Ed?Exercise21.7: 5WhatfdoMesthist!ypeset?\xy*=<3cm,1cm>\txt{Box}*\frm{-} K!U!R(.5)*\frm{..}*{\bullet}\endxyCHint :\frmisde nedb!ytheframeextensionandjusttypMesetsaframeofthekindindicatedbythefargumen!t.Bug: Curren!tly:onlythesingle-lettercorners(L,R,D,U,C,E,andP):willworkforanyshapMe|theothersfsilen!tlyassumethattheshapMeisrectangular.mƉffy̟ L͍ {-=5aOneTcanuse(* ...*)*insteadTalsohere.)*tj1.3.CPOSITIONS41??hw1.3o.=The:stackBisaspMecialconstructionusefulforstoringasequenceofhposiitionsthatareaccessible using:thespMecialhcoordiinatess kn,whereniseitherasingledigitorapositiv!eintegerin{}+s:s0isalw!aysthe`top'elementofthestackandifthestackhasdepthdthenthe`bMottom'elementoftheFstac!khasnumbMers{ed1}.}TheFstackissaidtobMe`empty'whenthedepthis0andthenitisanerrortoaccessan!yofthes aKnor`pMop'whichmeansremovethetopelement,shiftingwhatisinNs1AtoNs0`,s2PtoNs1,etc.Similarlye,`pushNc'meanstoshifts0tos1`,etc.,andNtheninsertthecasfthenews0%.\=Thefstac!kismanipulatedasfollows: lffѲd nH@MUhstac!kingiֺAction5ffѲd [H@+hcoMordiֺpushfhcoMordiH@-hcoMordiֺc hcoMordi)thenfpMopH@=hcoMordiֺloadfstac!kwithhcoMordiH@@hcoMordiֺdofhcoMordi*ODforfc stac!kH@iֺinitialiseH@(ֺen!terfnewframeH@)ֺlea!vefcurrentframe5ffѲd[Teo#`loadstac!k',CmeanstoloadtheentirestackwiththepMositionssetbyhcoMordiwithinwhich,meansf`pushc'.\=TeoP/`dohcoMordiforallstac!kelements'meanstosetctoeachelementofthestackinturn,anfromthebMottomandup,!andforeac!hinterpretthehcoMordi.Thusthe rstinterpretationhascsettothebMottom8elemen!tofthestackandthelasthascsettos0".Ifthestackisemptye,thehcoMordiisnotin!terpretedfatall.Theseft!woopMerationscanbecom!binedtorepeataparticularhcoordiforsev!eralpoin!ts,likethis:P\xyK@={(0,-10),(10,3),(20,-5)}@@{*{P}}\endxy+willft!ypMesetcps: SDict begin xyc endPsޟP8缟_P1뻍Finallye,@$the!estac!kcanbMeforciblyclearedusing@i,ho!wever,this!eisrarelyneededbMecauseof@(,whic!hsavesthestackasitis,Eandthenclearsit,suc!hwhenithasbMeenused(andisempty),Eand@)ӹisfissued,thenitisrestoredasitw!asatthetimeofthe@(%."K؍Exercise-1.8: 5Ho!w=wouldyouchangetheexampleabMovetoconnectthepMointsasshownbMelow?mps: SDict begin xyc end" {-56.90521 -14.2263 l}xyh0sޟv" {28.4526 36.98839 l}xy8缟 " {28.4526 -22.76208 l}xy&@Firstfthestac!ktopandbMottom,bothinitially1:P2673\xydef@\s@bot{-1}2674\xydef@\s@top{-1}*Ÿ*tj42+_%CHAPTERf1.CKERNEL:XY.DOC??hwNextNthefunctiontosetc~ s Q(n, i.e.,testNthatbpotH<~n۹+bpotv\s@bot\relax\ifnum\count@>\s@top\else\DN@{#2}\fi\fi2686K\next@}2688\xydef@\runs@{\csnameS@\the\count@\endcsname}2690\xydef@\outofranges@{\count@=\s@top\advance\count@-\s@bot2691K\xyerror@{stackindexoutofrange(shouldbe0..\the\count@)}{}}b_FinallyqtheactualcoMdetodothestac!koperations:Âitdependsonthe`code'passedafter@ 1[;Cspacesarefnotallo!wed:2698\xydef@\STACK@{%2699K\addPLUS@\ifx\next2700 m\addPLUS@\DN@{\xy@{@+}{}\afterCOORD{\xy@@\spushc@\xyFN@\POS@}}%2701K\else\addDASH@\ifx\next2702 m\addDASH@\DN@{\xy@{@-}{}\afterCOORD{\xy@@\spop@\xyFN@\POS@}}%2703K\else\ifxi\next\DN@i{\xy@{@i}\sinit@\xyFN@\POS@}%2704K\else\ifx(\next\DN@({\xy@{@(}\senter@\xyFN@\POS@}%2705K\else\ifx)\next\DN@){\xy@{@)}\sleave@\xyFN@\POS@}%2706K\else\addEQ@\ifx\next\addEQ@\DN@{\STACK@load}%2707K\else\addAT@\ifx\next\addAT@\DN@{\xy@{@@}{}\smap@}%2708K\else\DN@##1{\xyerror@{illegalstackcommand##1}{}\afterCOORD{\xyFN@\POS@}}%2709K\fi\fi\fi\fi\fi\fi\fi\next@}2711\xydef@\STACK@load{\xy@{@=}{%2712 m\if\sempty@\else\xywarning@{loadingontopofnon-emptystack}\sinit@\fi2713 m\let\comma@@=\spushc@}%2714K\afterCOORD{\xy@@{\spushc@\let\comma@@=\relax}\xyFN@\POS@}}2716\xydef@\spushc@{%2717K\count@=\s@top\advance\count@\@ne\edef\s@top{\the\count@}%2718K\expandafter\edef\csnameS@\s@top\endcsname{\cfromthec@}}2720\xydef@\spushid@#1{\DNii@{#1}\edef\nextii@{\codeof\nextii@}%2721K\expandafter\let\expandafter\next@\csnameQ@\nextii@\endcsname2722K\ifx\next@\relax\xyerror@{\string"\nextii@\string"notdefined}{}%2723K\else2724 m\count@=\s@top\advance\count@\@ne\edef\s@top{\the\count@}%2725 m\DNii@##1{\expandafter\def\csnameS@\s@top\endcsname{##1}}%2726 m\expandafter\nextii@\expandafter{\next@}%2727K\fi}2729\xydef@\idfroms@#1#2{%2730K\tests@{#2}{\DN@{\idfromxy@{#1}}%2731 m\expandafter\expandafter\expandafter\next@2732\expandafter\expandafter\expandafter{\csnameS@\the\count@\endcsname}%2733 m}\outofranges@}2735\xydef@\spop@{\count@=\s@top+ؠ*tj1.3.CPOSITIONS43??hw2736K\ifnum\count@>\s@bot\advance\count@\m@ne\edef\s@top{\the\count@}% 2737K\else\xyerror@{nothingtopopfromstack}{}\fi}P2739\xydef@\sinit@{\edef\s@top{\s@bot}}2741\xydef@\senter@{%2742K\count@=\s@top\advance\count@\@ne2743K\expandafter\edef\csnameS@\the\count@\endcsname{\s@bot}%2744K\edef\s@bot{\the\count@}\edef\s@top{\the\count@}}2746\xydef@\sleave@{%2747K\ifnum\s@bot=\s@top\else\xywarning@{leavingnon-emptystack}\sinit@\fi2748K\ifnum\s@bot>\m@ne\edef\s@bot{\csnameS@\s@top\endcsname}%2749 m\count@=\s@top\advance\count@\m@ne\edef\s@top{\the\count@}%2750K\edef\sbot{\the\count@}\fi}2752\xydef@\sempty@{\ifnum\s@top=\s@botTT\elseTF\fi}\smap@{mapsfahcoMordio!verfastac!k:2758\xydef@\xytotoks@#1#2{\addtotoks@{#2}}2759\xydef@\xytotoks@@toksix@#1{\addtotoks@{\toks9={#1}}}2761\xydef@\smap@{%2762K\begingroup\toks@={}\let\xy@=\xytotoks@\change@oxy@\xy@2763 m\let\xy@@ix@=\xytotoks@@toksix@2764 m\afterCOORD{\expandafter\endgroup2765\expandafter\smapxy@@\expandafter{\the\toks@}\xyFN@\POS@}}2767\xydef@\smapxy@@#1{\xy@@{\edef\smapp@@{\s@bot}\smapxy@i{#1}}}2769\xylet@\smapp@@=\empty2771\xydef@\smapxy@i#1{%2772K\ifnum\smapp@@<\s@top2773 m\count@=\smapp@@\advance\count@\@ne\edef\smapp@@{\the\count@}%2774 m\DN@{\csnameS@\smapp@@\endcsname#1\relax\smapxy@i{#1}}%2775K\else\let\next@=\relax2776K\fi\next@}ub1.3p.ItispMossibletode nenewhcoordiinatesontheform" whidi"b!ysavingιthecurrentcusingthe.3..=" Rhidi"[hpMosiition>form.LSubsequen!tusesof"hidi"willthenreestablishthecatthetimeofthesa!ving.,Using3Fa"hidi"that3Fw!asneverde nedisanerror,JMhowever,saving3Fintoanamethatwaspreviouslyde nedIjustreplacesthede nitionwithoutw!arning,i.e.," lhidi" salwaysIreferstothelastthingsa!vedfwiththathidi.Ho!wever,fmanyotherthingscanbMe`saved':ingeneral@ fhsavingihaseitheroftheforms>֍ffѲd S?@:"Qhidi"(^"hidi" frestoresfcurren!tbpase?@EhcoMordi"hidi"(^"hidi" frein!terpretsfhcoMordi?@@"Qhidi"(^@="g\hidi" freloadsfthisstac!kffѲdR Thef rstformde nes" fhidi"tofbMeamacrothatrestoresthecurren!tbpaseҡ.TheseconddoMesnotdependonthestateatthetimeofde nitionatall;>itisamacrode nition.Yeoucanpassparameterstosuc!hamacrobylettingitusecoMordinatesnamed"1"她,"2"嶹,etc.,and,y*tj44+_%CHAPTERf1.CKERNEL:XY.DOC??hwthenuse="1"H,="2",etc.,justbMeforeev!eryuseofittosettheactualvdDaluesofthese.FNote:itis notfpMossibletouseahcoordioftheform" fhidi"directly:writefitas{"%hidi"} T.##.ExerciseW1.9: 5Weriteamacro"dbl"$Jtodoublethesizeofthecurren!tcobject, e.g.,changingitfromfthedottedtothedashedoutlineinthis gure:0ٍps: SDict begin xyc end(B#$+ʍ(3232_Ս32327A323232323232323232323232323232323232323232323232323232323232323232323232763232Q퍍d32323232323232323232323232323232323232323232323232323232Bjd3232323232323232323232323232323232323232323232323232323232(3232_Ս32327A323232323232323232323232323232323232323232323232323232323232323232323232763232cg3232" {3072 F d}xy ߍ" {3072 F d}xy tF" {3072 F d}xy" {3072 F d}xy" {3072 F d}xy" {3072 F d}xy" {3072 F d}xy" {3072 F d}xy t=" {3072 F d}xyt=3232>x" {1024 F d}xyΤ {ꍐ32" {1024 F d}xy32" {1024 F d}xy32" {1024 F d}xy32" {1024 F d}xy {32" {1024 F d}xyxY;" {1024 F d}xyY {ꍐ32" {1024 F d}xy32" {1024 F d}xy32" {1024 F d}xy32" {1024 F d}xy {32" {1024 F d}xy32g3232" {3072 F d}xy ߍ" {3072 F d}xy tF" {3072 F d}xy" {3072 F d}xy" {3072 F d}xy" {3072 F d}xy" {3072 F d}xy" {3072 F d}xy t=" {3072 F d}xyt=3232)y(aThe. nalformde nesaspMecialkindofmacrothatshouldonlybeusedafterthe@=stac!koperation:thefen!tirecurrentstackissavedsuchthatthestackopMeration@="dhidi" fwillreloadit.Note:CTherejisnodistinctionbMet!weenjthe`namespaces'ofhidisusedforsa!vedjcoordinatesandotherfthings.ThisfparserdistinguishesbMet!weenfthecases:P2843\xydef@\saveid@{%2844K\ifx\space@\next\expandafter\DN@\space{\xyFN@\saveid@}%gobblespaces2845K\else\ifx"\next\DN@"##1"{\xy@{="##1"}{\idfromc@{##1}}\xyFN@\POS@}%2846K\else\ifx:\next\DN@:##1"##2"{\xy@{=:"##2"}{\idfrombase@{##2}}\xyFN@\POS@}%2847K\else\addAT@\ifx\next2848 m\addAT@\DN@"##1"{\xy@{=@"##1"}{\idfromstack@{##1}}\xyFN@\POS@}%2849K\else\ifxs\next2850 m\DN@s##1"##2"{\xy@{=s##1"##2"}{\idfroms@{##2}{##1}}\xyFN@\POS@}%2851K\else\addEQ@\ifx\next\let\saveid@COORD@@=\saveid@COORDii2852 m\addEQ@\DN@{\xyFN@\saveid@COORD}%2853K\else\let\saveid@COORD@@=\saveid@COORDi\let\next@=\saveid@COORD2854K\fi\fi\fi\fi\fi\fi\next@}2856\xylet@\saveid@COORD@@=\relaxSOHerefisthecoMdeforsa!ving/restoringapositionandabase.2862\xydef@\idfromc@#1{\DN@{#1}%2863K\expandafter\edef\csnameQ@\codeof\next@\endcsname{\cfromthec@}}2865\xydef@\idfrombase@#1{\DN@{#1}%2866K\expandafter\edef\csnameQ@\codeof\next@\endcsname{\basefromthebase@}}2868\xydef@\idfromstack@#1{%2869K\toks@={\if\sempty@\else2870\xywarning@{loadingontopofnon-emptystack}\sinit@\fi}%2871K\count@=\s@bot\advance\count@\@ne2872K\ifnum\count@>\s@top\else2873 m\loop@2874\expandafter\let\expandafter\next@\csnameS@\the\count@\endcsname2875\expandafter\addtotoks@\expandafter{\next@}%2876 m\ifnum\count@<\s@top\advance\count@\@ne\addtotoks@{\spushc@}\repeat@2877K\fi2878K\DN@{#1}\edef\next@##1{%-*tj1.4.COBJECTSչ45??hw2879 m\def\expandafter\noexpand\csnameQ@\codeof\next@\endcsname{##1}}% 2880K\expandafter\next@\expandafter{\the\toks@}}P2882\xydef@\saveid@COORD{%2883K\begingroup\toks@={}\let\xy@=\xytotoks@\change@oxy@\xy@2884 m\let\xy@@ix@=\xytotoks@@toksix@2885 m\afterCOORD{\expandafter\saveid@COORDi\expandafter{\the\toks@}}}2887\xydef@\saveid@COORDi#1#2"#3"{\endgroup\xy@@{\idfromxy@{#3}{#1}}\xyFN@\POS@}2888\xydef@\saveid@COORDii#1#2"#3"{\endgroup\xy@@{\idfromcxy@{#3}{#1}}\xyFN@\POS@}2890\xydef@\idfromxy@#1#2{\DN@{#1}%2891K\expandafter\def\csnameQ@\codeof\next@\endcsname{#2}}2893\xydef@\idfromcxy@#1#2{\DN@{#1}%2894K\expandafter\edef\csnameQ@\codeof\next@\endcsname{\cfromthec@#2}}2896\xydef@\cfromid@#1{\DNii@{#1}\edef\nextii@{\codeof\nextii@}%2897K\expandafter\let\expandafter\next@\csnameQ@\nextii@\endcsname2898K\ifx\next@\relax\xyerror@{\string"\nextii@\string"notdefined}{}%2899K\else\expandafter\next@\fi}("^1.4r|ObfjectsOG2914\message{objects,}yObjects5aretheen!titiesthataremanipulatedwiththe**and**hpMosioperationsabo!ve5toactuallygetrsomeoutputinXY:|-pictures.eAsforhpMosiitionstheoperationsarein!terpretedstrictlyfromlefttorigh!t,Rhowever,the=actualobjectisbuiltbpeforeall=thehmoMdi eristak!ee ect.Thesyntaxofobjectsisgiv!enz2in gure1.5withreferencestothenotesbMelow.!Remark:ùItisneverallowedtoincludebraces{}nƹinsidecYhmoMdi eris!DŽIncasey!ouwishtodosomethingthatrequires{ #.3..} 6thencYcheckinthismanualwhetherfy!oucanuse(*%.3..*)instead.Iffnotthenyouwillhavetouseadi erentconstruction! WeeY rstdiscusstheparserandthensummarisetherequiredmethoMds.Theen!trypoin!ttouseofobjectsis\objectdescribMedinnote1.4c.Thisshouldalw!aysbeusedbecauseitinitialisesthetok!enFlistandrede nes\xy@tobMe\addtotoks@GɴsuchthatwecanusehpMosiparserroutineswithinthefhobjecti!NPtarsing: 5Thenphobjectiparser\OBJECT@40will rstparsethehmoMdi eris,ystoringtheactionofeac!hinsequence onthe\toks@(Ftok!enlist.GWhentherearenomoremoMdi ersweinsert\objectboxifwehavereac!hedfthe{ otherwisewejustassumethattherestofthehobjectiissomekindofbMoxconstruction.Noteҡ: TheGxhmoMdi eriactionsdoingshiftsareimplemen!tedbyhavinganindepMendentvectorfortheshift:< )Rzp], Uzp]>alw!ayscontainsthevectorfromthecurrenttotheoriginalT,[wEB XreferencepMoint;furthermoreFtheinitialLzctissa!vedFasLzp wsuc!hthatwecanretrievetheoriginal(XY g -pic)referencepMointagain..MoMdifyingHthepvdDaluesissafebecauseallactualc!hangesaredoneinalocalscopeaftertheen!tirefhobjectiisparsedandwehavebuilttheobjectbMox(in\OBJECT@@7c`).ThezhmoMdi erisc!hangingthedirectionareexecutedwhileparsingtomakesurethatthedirectionused*whenbuildingthehobjectiisrigh!t,andrestoredintherightsequencewhileevdDaluatingthehmoMdi erisfafterw!ards.P3074\xydef@\OBJECT@{%3075K\ifx\space@\next\expandafter\DN@\space{\xyFN@\OBJECT@}%gobblespaces3076K\else\ifcatA\noexpand\next\let\next@=\OBJECT@letter3077K\else\let\next@=\OBJECT@other\fi\fi\next@}.*tj46+_%CHAPTERf1.CKERNEL:XY.DOC??: ffffd {ySyn!taxActionwffd yhobjectiCH"I7!ZfhmoMdi erifhobjectiùapplyfhmoMdi eritohobjecti JjZfhobjectbMo!xiùbuildfhobjectbMo!xithenapplyitshmodi erisyhobjectbMo!xiCH"I7!Zf{chtextif}ùbuildfdefault1.4a톹objectJjZfhlibraryfobjectiLjC@chdiriùusefhlibraryobjectiorhdiriectional(seex1.6)JjZfhT,[wEB XfbMo!xi{ vhtexti}ùbuildcXbMo!x1.4b8objectwithhtextiusingthegivenhT,[wEB XfbMo!xicommand,e.g.,\hboxoJjZf\objectfhobjectiùwrapfupthehobjectiasa nishedobjectbMo!x1.4cJjZf\compositef{ vhcompMositeif}ùbuildfcompMositeobjectbo!x1.4dJjZf\xyboxf{ vhpMosifhdecori}ùpac!kdDagefentireXY p-pictureasobject1.4eyhmoMdi eriCH"I7!Zf!chv!ectorihobjecti1shasitsreferencepMoin!tshifted1.4f̹byhv!ectoriۂJjZf!hobjectifhastheoriginalreferencepMoin!treinstatedJjZfhaddfopihsizeiùc!hangefhobjectisize1.4gJjZfhLjCihobjectifishidden1.4hY,in!visible1.4iwJjZf[chshapMeif]hobjectifisgiv!enthespMeci edhshapei1.4jJjZf[=fhshapMei]ùde nehshapMei1.4ktoreestablishcurren!tobject st!yle?ǍJjZfhdirectioniùsetfcurren!tdirectionforthishobjectiyhaddfopiCH"I7!Zf+gr|jq-~ij-=:Vj+=]jd-=ùgro!w,fshrink,set,growto,shrinktoyhsizeiCH"I7!Zfhempt!yiùdefaultfsize1.4g JjZfhv!ectoriùsizefassidesofrectangleco!veringfthehv!ectoriyhdirectioniCH"I7!Zfhdiagihdiagionalfdirection1.4lJjZfvfhv!ectoriùdirection1.4loffhv!ectoriJjZfq{ fhpMosifhdecori}ùdirection1.4lfromfptocafterhpMosihdecoriJjZfhdirectionif:hv!ectoriùv!ectorfrelativetohdirectioni1.4mJjZfhdirectionif_j Shdirectionif^ù90fjcloMc!kwise/anticlockwiseftohdirectioni1.4myhdiagiCH"I7!Zfhempt!yiùlastfuseddirection(notnecessarilydiagonal1.4l<)JjZflcjj}'rs7jzHdXjiuùleft,frigh!t,down,updiagonal1.4lJjZfldijp\p@\L@c=\dimen@\advance\L@c-\p@\R@c=-\L@c\fi\fi3146K\else\L@c=\Leftness@\wdz@\R@c=\wdz@\advance\R@c-\L@c\fi}3148\xydef@\adjustUD@{\dimen@=\ht\z@\advance\dimen@\dp\z@3149K\ifdim\zz@\dimen@\U@c=\z@\D@c=\z@\dimen@=\Upness@\p@3150 m\ifdim\dimen@<\z@\U@c=\dimen@\D@c=-\L@c3151 m\else\ifdim\dimen@>\p@\U@c=\dimen@\advance\U@c-\p@\D@c=-\L@c\fi\fi3152K\else\D@c=\dimen@\U@c=\Upness@\dimen@\advance\D@c-\U@c\fi}3154\def\checkZeroEdge@{%3155K\DN@{}%3156K\ifdim\zz@\L@c\ifdim\zz@\R@c\ifdim\zz@\U@c\ifdim\zz@\D@c3157\DN@{\Edge@c={\zeroEdge}}\fi\fi\fi\fi3158K\next@}$Asfanoptimisation\OBJECT@@; ƹsetstheedget!ypMeofallzero-sizedobjectsto\zeroEdge.m\OBJECT@x+cleans6uptheobjectb!yensuringthatitde nesalltherequiredmethoMds:$EssentiallyitterminatesthebMo!xwiththesequence\}U\def\Drop@@{MM.3..} \def\Connect@@{`~...} \D@c='Yڹ...\U@c=!0...\L@c=Jk.3..\\R@c="... m\Invisible@JX...\Hidden@/Ѓ...\\def\Leftness@{[...} m\def\Upness@{U...}ݹ"whereeac!h.3..\issettothemethoMdde nedwithintheobjectcreationen!vironment(startedwith\hbox{)¹in\OBJECT@@ӪorpMossiblyelsewhere).ԘWeeuseratherhea!vyexpansionhackingwith\toks@)*tocreatethesequencefsopleaseloMoktheotherw!ay.3.. @ ^3176\xydef@\OBJECT@x{\toks@={\egroup\def\Drop@@}%3177K\expandafter\addtotoks@\expandafter{\expandafter{\Drop@@}\def\Connect@@}%3178K\expandafter\addtotoks@\expandafter{\expandafter{\Connect@@}}%3179K\edef\tmp@{\D@c=\the\D@c\U@c=\the\U@c\L@c=\the\L@c\R@c=\the\R@c3180 m\Edge@c={\expandafter\noexpand\the\Edge@c}%3181 m\ifInvisible@\noexpand\Invisible@true\else\noexpand\Invisible@false\fi3182 m\ifHidden@\noexpand\Hidden@true\else\noexpand\Hidden@false\fi3183 m\def\noexpand\Leftness@{\Leftness@}\def\noexpand\Upness@{\Upness@}}%3184K\expandafter\addtotoks@\expandafter{\tmp@}\the\toks@}&__MethoYds: 5InIadditiontothe\curren!tobjectpropMerties"forc(cf.1.2.5)thefollowingmethoMdsaresetfupb!yallobjects:m ։ffd{\Invisible@truenn4orf\Invisible@falseLZwhetherfobjectisin!visible1.4i\Hidden@true]/6orf\Hidden@falseLZwhetherfobjectishidden1.4h\def\Leftness@{jhfactori}LZthefdesiredL=(Ln+R)\def\Upness@{_Hzhfactori}LZthefdesiredU=(Dʹ+nU1)\def\Drop@@{Yй.3..}LZcoMdeFthatoutputstheobject,nassuming\boxz@+ >isLZof zerosizeandhastheobjectdisplaced< X,Yn>LZinside|usuallyfjust\def'dto\styledboxz@10*tj1.4.COBJECTSչ49??hw\def\Connect@@{NS.3..}scoMdeuthatbuildsaconnectionfromptoc,assuming s\lastݖobjectbox@Ϲcon!tainsftheobjectytffd  It<\isimpMortan!tto\defw`andnot\letthelastfourmethoMdssincetheT,[wEB Xniqueusedin\OBJECT@x (andSelsewhere)ofpassingthemtosurroundingscopMesdependsonit.,The\Connect@@?cJmethodshouldinfturnsetupsev!eralsubmethoMdsasdescribedindetailin1.8.3.Suitableܡdefaultsaresetupb!y\OBJECT@@;v;]togetthereferencepoin!tidenticaltotheT,[wEB XreferencefpMoin!tusethemodi er!!Ld..T,[wEB Xnicalremark:nAn!ymacrothatexpandstosomethingthatstartswithahbMoximaybMeusedasafhT,[wEB XbMo!xihere.Thisfisdoneb!ytheparsingabMove.ð1.4c.hTeak!es@anobjectandconstructsit,buildingabMox;itisthenproMcessedaccordingtothepreceedingmoMdi ers.wThist"formmak!esitpossibletousean!yhobjectiasaT,[wEB Xbo!x(evenoutsideof[XY ,-pictures)bMecausefa nishedobjectisalw!aysfalsoabo!x.Thismacroisthemainen!trypMointtothehobjectiparser.xItfurthermoreinitialisesthemoMdi erlistfandthepreviousobjectedge.P3291%\xydef@\object{\hbox\bgroup\object@}3292\xydef@\object{\hbox\bgroup\resetStyle@\object@}3294\xydef@\object@{%2@@*tj50+_%CHAPTERf1.CKERNEL:XY.DOC??hw3295K\edef\next@{={\DirectionfromtheDirection@}}\expandafter\toks@\next@ 3296%\resetStyle@\plainxy@\xyFN@\OBJECT@}3297K\plainxy@\xyFN@\OBJECT@}uThefinitialvdDalueof\toks@)hmoMdi erilistisexplainedinnote1.4lbelo!w.t1.4d.Sev!eralhobjectiscanbMecombinedintoasingleobjectusingthespMecialcommand\compositewithalistofthedesiredobjectsseparatedwith* asastheargumen!t.TheresultingbMox(andobject)fistheleastrectangleenclosingalltheincludedobjects.9FirstRJw!ecollectalltheobjectssmashontopofeachotherinbMox0whilewemaintainthemaximalexten!tsin(DMU1LR)zp].ThenweresetbMox0tocontainthesamebutwiththerightspacingaround.P3319\xydef@\composite#1#{\hbox\bgroup\composite@{#1}}3321\xydef@\composite@#1#2{% 3322K\DN@{#1}\ifx\next@\empty\else\xywarning@{novariantsof3323#i\string\composite\spaceallowed}\fi3324K\global\setbox9=\hbox\bgroup3325 m\D@p=-\maxdimen\U@p=-\maxdimen\L@p=-\maxdimen\R@p=-\maxdimen3326 m\xyFN@\composite@i#2@}P3328\xydef@\composite@i{%3329K\ifx\space@\next\expandafter\DN@\space{\xyFN@\composite@i}%gobblespaces3330K\else\ifx*\next\DN@*{\xyFN@\composite@i}%3331K\else\ifx@\next\DN@@{\composite@x}%3332 m\xyerror@{objectexpected}{}\czeroEdge@3333K\else\DN@{\composite@ii}\fi\fi\fi\next@}3335\xydef@\composite@ii#1#{\composite@iii{#1}}3337\xydef@\composite@iii#1#2{%3338K\setbox\z@=\object#1{#2}%3339K\ifInvisible@\setboxz@h{}\else3340 m\setboxz@h{\kern-\L@c\boxz@}\ht\z@=\z@\dp\z@=\z@\wd\z@=\z@{\Drop@@}\fi3341K\ifHidden@\else3342 m\ifdim\U@p<\U@c\U@p=\U@c\fi\ifdim\D@p<\D@c\D@p=\D@c\fi3343 m\ifdim\R@p<\R@c\R@p=\R@c\fi\ifdim\L@p<\L@c\L@p=\L@c\fi3344K\fi3345K\xyFN@\composite@iv}3347\xydef@\composite@iv{%3348K\ifx\space@\next\expandafter\DN@\space{\xyFN@\composite@iv}%gobblespaces3349K\else\ifx@\next\DN@@{\composite@x}%3350K\else\let\next@=\composite@i\fi\fi\next@}3352\xydef@\composite@x{%3353K\edef\tmp@{\egroup3354 m\D@c=\the\D@p\U@c=\the\U@p\L@c=\the\L@p\R@c=\the\R@p}\tmp@3355K\setboxz@h{\kern\L@c\box9}\ht\z@=\U@c\dp\z@=\D@c3356K\dimen@=\L@c\advance\dimen@\R@c\wdz@=\dimen@3357K\Edge@c={\rectangleEdge}\computeLeftUpness@\boxz@3358K\OBJECT@x}3360\xydef@\computeLeftUpness@{%3361K\dimen@=\L@c\advance\dimen@\R@c3M*tj1.4.COBJECTSչ51??hw3362K\ifdim\zz@\dimen@\def\Connect@@{\straight@{\dottedSpread@\jot}}% 3363 m\ifdim\zz@\L@c\else3364\DN@{\zeroEdge}\expandafter\DNii@\expandafter{\the\Edge@c}%3365\ifx\next@\nextii@\Edge@c={\rectangleEdge}\fi\fi3366K\else\quotient@\Leftness@\L@c\dimen@\fi3367K\dimen@=\U@c\advance\dimen@\D@c3368K\ifdim\zz@\dimen@\def\Connect@@{\straight@{\dottedSpread@\jot}}%3369 m\ifdim\zz@\U@c\else3370\DN@{\zeroEdge}\expandafter\DNii@\expandafter{\the\Edge@c}%3371\ifx\next@\nextii@\Edge@c={\rectangleEdge}\fi\fi3372K\else\quotient@\Upness@\U@c\dimen@\fi}1.4e.rTeak!eeanentireXY@o-pictureandwrapitupasabMoxasdescribMedinx1.2.1.vMakesnestingofsXY#-pictures pMossible:theinnerpicturewillha!ve itso!wnzeropoin!twhichwillbMeitsreferencepoin!tin}qthefouterpicturewhenitisplacedthere.eThisfissimpleexploitingthefactthat\endxy)ȹactuallysetsuptheexten!tsofthe`object':P3390\xydef@\xybox#1{\xy#1\endxy\Edge@c={\rectangleEdge}\computeLeftUpness@}1.4f.,Anobjectisshiftepdłahv!ectoribymovingthepMointinsideitwhichwillbMeusedasthereferencepMoin!t.Thisfe ectivelypushestheobjectthesameamountintheoppMositedirection.eShiftingusesthespMecialvdDalueofRzpaandUzpusedwhileevdDalutaingthehmoMdi eris.ZThefactthatshiftsP!lik!e!Crefertotheinitialobject'ssizemeansthatweshouldparsethehvectorisuchthatitsactionsfhappMenatmodi cationtime.3..hencef\xytotoks@@pisfusedtodela!yexecution.P3410\xydef@\OBJECT@shift{%3411K\let\xy@=\xytotoks@\afterVECTORorEMPTY3412 m{\OBJECT@shift@}%3413 m{\addtotoks@{\X@c=-\L@c\advance\X@c\R@p\advance\X@c\L@p\Y@c=\U@p}%3414\OBJECT@shift@}}3416\xydef@\OBJECT@shift@{%3417K\addtotoks@{\advance\U@p-\Y@c3418 m\advance\L@c\X@c\advance\R@c-\X@c\advance\D@c\Y@c\advance\U@c-\Y@c3419 m\computeLeftUpness@}%3420K\let\xy@=\oxy@\xyFN@\OBJECT@},Exercise21.10: 5Whatfisthedi erencebMet!weenfthehposiitions0*{a}!DR5Jand0*!DR{a}1?%01.4g.=Ahsizei>isapair< OWV,EH> 3ofthewidthandheigh!tofarectangle.eWhengivenasahvectorithesearejustthev!ectorcoMordinates,i.e.,thehvectoristartsinthelowerleftcornerandendsintheuppMerrigh!tcorner.DThepossiblehaddopierationsthatcanbeperformedaredescribedinthefollo!wingftable.1񍍒C6ffr ͟} ff͟haddfopi2| ff8]description[?} ffzffr͟} ff+2| ff8]gro!w[?} ff ͟} ff-2| ff8]shrink[?} ff͟} ff=2| ff8]setfto[?} ff͟} ff+=2| ff8]gro!wftoatleast[?} ff͟} ff-=2| ff8]shrinkftoatmost[?} ffffr4Zr*tj52+_%CHAPTERf1.CKERNEL:XY.DOC??hwIneac!hcasethehvectorimaybMeomittedwhichinvokesthe\defaultsize"fortheparticularhadd opi:1|IC6ff ͟} ff͟haddfopi2| ff8]defaultÌџ} ffzff͟} ff+2| ff8]+oBϟ} ff ͟} ff-2| ff8]-oBϟ} ff͟} ff=2| ff8]=Ìџ} ff͟} ff+=2| ff8]+= w} ff͟} ff-=2| ff8]-= } ffff85,Thefdefaultsforthe rstthreearesetwiththecommands ~ ffѲd 7\objectmarginfhaddopi{ fhdimeni}\objectwidthfhaddopi{ fhdimeni}\objectheightfhaddopi{ fhdimeni}-offѲdN wherefhaddopiisin!terpretedinthesamewayasabMove.P3484\xylet@\objectmargin@=\jot3485\xylet@\objectwidth@=\z@3486\xylet@\objectheight@=\z@3488\xydef@\objectmargin{\afterADDOP{\Addop@@\objectmargin@}}3489\xydef@\objectwidth{\afterADDOP{\Addop@@\objectwidth@}}3490\xydef@\objectheight{\afterADDOP{\Addop@@\objectheight@}}5Thedefaultsfor+=,/-=aresuc!hthattheresultingobjectwillbMethesmallestcontaining/largestcon!tainedfsquare.&ExerciseA{1.11: 5Ho!waretheobjectstypMesetbythehpMosiitions\*+UR{\sum}9|"and\*+DL{\sum}"enlarged?~Bug: Curren!tly6changingthesizeofacircularobjectisbuggy|itischangedasifitisarectangleandhthenthec!hangetotheR~~parametera ectsthecircle.%-ThisshouldbMe xedprobablybyageneralisationfoftheo vshapMetobeo!vdDalsorellipseswithhorizontal/verticalaxes.Thenthreecasesdistinguishedb!ytheparsingabMovearehandledsimilarly:B"theyinserttheparsed/defaultv!ector9intoX@<;1YinthemoMdi cationsandthenperformtheoperationatthattimeusingthe\xytotoks@2#tric!kfdescribMedinnote1.4f:P3522\xydef@\OBJECT@change{%3523K\afterADDOP{%3524 m\addEQ@\ifx\next3525\addtotoks@{\X@c=\D@c\advance\X@c\U@c\Y@c=\L@c\advance\Y@c\R@c}%3526 m\else3527\addtotoks@{\X@c=\objectmargin@\advance\X@c\X@c\Y@c=\X@c}%3528 m\fi3529 m\let\xy@=\xytotoks@3530 m\afterVECTORorEMPTY\OBJECT@change@\OBJECT@change@}}3532\xydef@\OBJECT@set{%3533K\afterADDOP{%3534 m\let\xy@=\xytotoks@\afterVECTORorEMPTY\OBJECT@change@3535{\addtotoks@{\X@c=\objectwidth@\Y@c=\objectheight@}\OBJECT@change@}}}5ic*tj1.4.COBJECTSչ53??hwThe/realw!orkisdonebythefollowingcommand:ahackusingexpansiontrickstomakeuseof thef\Addop@@5Jkno!wnfnowonthevdDaluesinX@<;1YUatmoMdi cationtime.P3543\xydef@\OBJECT@change@{%3544K\addtotoks@{\advance\R@c\L@c\advance\R@p-\L@c\let\tmp@=\R@c}%3545K\expandafter\addtotoks@\expandafter{\Addop@@\tmp@\X@c\R@c=\tmp@3546 m\L@c=\Leftness@\R@c\advance\R@p\L@c\advance\R@c-\L@c}%3547K\addtotoks@{\advance\D@c\U@c\let\tmp@=\D@c}%3548K\expandafter\addtotoks@\expandafter{\Addop@@\tmp@\Y@c\D@c=\tmp@3549 m\U@c=\Upness@\D@c\advance\D@c-\U@c}%3550K\let\xy@=\oxy@\xyFN@\OBJECT@}uItgisclearlycrucialthat\Addop@@6expandstoitsactionimmediately!"UAlsonotethatenlargingc!hangesftheinitialbMoxo setinthehorizontaldirectiononlye,i.e.,Rzp]. FinallythecoMdetoin!terpretanhaddopiusedabo!ve:g Thissimplyparsesitandcreatesamacro\Addop@@(ܹthatstak!esacontrolsequenceandaparameterhdimeniasarguments,q6andexpandsdirectlyftocommandsthatpMerformthehaddopiofthehdimenionthecon!trolsequence:L>~%ܼffL ͟} ff͟haddfopi2| ff8]e ectfof\Addop@@5Jcs~D} ffzffL͟} ff+2| ff8]csEH  csR+nD:G} ff ͟} ff-2| ff8]csEH  csRnD:G} ff͟} ff=2| ff8]csEH  DR$} ffR͟ C>ff+=2|ff8]csEH  (.jD$iffDX cscs$iffDX> cs^՜ C>ff͟ C>ff-=2|ff8]csEH  (.jD$iffDX cscs$iffDX< cs^՜ C>ff ffLL>Feurthermore>@\afterADDOP>%lea!vesthe\next#:ҹtokensetto= <*inthelastthreecasesonly(thisisusedtofdeterminetherigh!tdefaultvdDalueinthesizechangesabMove).Thef\afterADDOPmacroisrelativ!elysimplebMecausehaddopisdon'tnest:P3591\xydef@\afterADDOP#1{\def\afterADDOP@{#1}\xyFN@\ADDOP@}3593\xylet@\afterADDOP@=\empty3595\xydef@\ADDOP@{% 3596K\ifx\space@\next\expandafter\DN@\space{\xyFN@\ADDOP@}%gobblespaces3597K\else\addPLUS@\ifx\next\addPLUS@\DN@{\xyFN@\ADDOP@plus}%3598K\else\addDASH@\ifx\next\addDASH@\DN@{\xyFN@\ADDOP@minus}%3599K\else\addEQ@\ifx\next3600 m\addEQ@\DN@{\def\Addop@@{\Addop@0+=}\afterADDOP@}%3601K\else3602 m\DN@{\def\Addop@@{\Addop@0+=}\afterADDOP@}%3603K\fi\fi\fi\fi\next@}P3605\xydef@\ADDOP@plus{%3606K\addEQ@\ifx\next3607 m\addEQ@\DN@{\def\Addop@@{\Addop@0+<}\afterADDOP@}%3608K\else3609 m\DN@{\def\Addop@@{\Addop@1+=}\afterADDOP@}%3610K\fi\next@}3612\xydef@\ADDOP@minus{%6w?*tj54+_%CHAPTERf1.CKERNEL:XY.DOC??hw3613K\addEQ@\ifx\next 3614 m\addEQ@\DN@{\def\Addop@@{\Addop@0+>}\afterADDOP@}%3615K\else3616 m\DN@{\def\Addop@@{\Addop@1-=}\afterADDOP@}%3617K\fi\next@}ďThefw!orkisdonebythegeneral\Addop@/r{5Jf-} {Sv} f{%.,/} f{cs} L(DDthatfde nesmcs{V (.fncsDQiff:((fncsDM޹).,/lD) csQotherwiseandfalsolea!vesfthedimensionin\dimen@+ .P3631\xydef@\Addop@#1#2#3#4#5{%3632K\dimen@=#4\relax\edef#4{\the\dimen@}%3633K\dimen@=#1\dimen@\advance\dimen@#2#5\relax%\advance\dimen@1sp%HACK3634K\ifdim\dimen@#3#4\else\edef#4{\the\dimen@}\fi3635K\ifx\xy@\xyinitial@\else\DN@##1{\xy@@{\edef#4{##1}\checkZeroEdge@}}%3636 m\expandafter\next@\expandafter{#4}\fi}81.4h.ASNhidden*objectS{willbMet!ypesetbuthiddenfrom;%XY-picinthatitw!on'ta ectthesizeoftheen!tirefpictureasdiscussedinx1.2.1. Thisfishandledb!ythe\ifHidden@@pconditionalalloMcatedwiththemethods.1.4i.NAn4invisible"objectwillbMetreatedcompletelynormalexceptthatitw!on'tbet!ypeset,KIi.e.,2XY S-picwillfbMeha!veasifitwas.Thisfishandledb!ythe\ifInvisible@RnconditionalalloMcatedwiththemethods.1.4j.,Settingtheshappe4ofanobjectforcestheshapMeofitsedgetobeasindicated.AThek!ernelprovidesthreefshapMesthatc!hangetheedge,namely[.],[],and[o],correspondingtotheoutlines$q ps: SDict begin xyc endh0|,}\ps: SDict begin xyc endh0z2" {0.0 42.65114 -11.36993 -28.48038 19.92793 ov}xy,h0h0" {-28.48038 0.0 dt}xy Y#LG!h0" {42.65114 0.0 dt}xy.#Rh0z ^" {0.0 -11.36993 dt}xy(FDh0zs" {0.0 19.92793 dt}xy-ٟ-&U<,fandps: SDict begin xyc endğh0h0" {20.0 0 360 o}xyh0" {-20.0 0.0 dt}xy#L(h0" {20.0 0.0 dt}xy7#Rh0" {0.0 -20.0 dt}xye. #Dh0" {0.0 20.0 dt}xyߟ#U%VwhereCthedenotesthepMoin!tofthereferencepositionintheobject(the rstisapoin!t).;Ex-tensions-canpro!videmoreshapMes,however,all-shapMessettheextentdimensionsL,R,DM޹,andU1.ThefdefaultshapMeforobjectsis[]andforplaincoordinatesitis[.].P3698\xydef@\objectEdge{\rectangleEdge}ďFeurthermoreLthehshapMeis[r],^[l],[u],andL[d],arede nedforcon!veniencetoadjusttheobjectto%2theindicatedsideb!ysettingthereferencepMointsuchthatthereferencepMointisthesamedistanceAfromtheoppMositeoftheindicatededgeandthet!woAneighbourAedgesbutnev!erclosertotheindicatedsidethantheoppMositeedge,e.g.,theobject[r]\hbox{Widetext}tI hasreferencepMoin!tXattheinps: SDict begin xyc endtϟ5Wideftexth0B#/" {0.0 44.25693 -3.80208 -3.80148 3.80208 ov}xy$75buttheobject[d]\hbox{Widetext}s@hasreferencepoin!tattheinps: SDict begin xyc end5Wideftexth0z." {0.0 24.0292 -3.80208 -24.0292 3.80208 ov}xyW$% .Finallye,f[c]putsthereferencepMoin!tatthecenter.3713\xydefcsname@{shape[r]}{\advance\U@p\D@c\centerobject@3714K\ifdim\L@c>\D@c3715 m\advance\R@c\L@c\L@c=.5\U@c\advance\L@c.5\D@c\advance\R@c-\L@c\fi3716K\advance\U@p-\D@c}7*tj1.4.COBJECTSչ55??hw3717\xydefcsname@{shape[l]}{\advance\U@p\D@c\centerobject@ 3718K\ifdim\L@c>\D@c3719 m\advance\L@c\R@c\R@c=.5\U@c\advance\R@c.5\D@c\advance\L@c-\R@c\fi3720K\advance\U@p-\D@c}3721\xydefcsname@{shape[u]}{\advance\U@p\D@c\centerobject@3722K\ifdim\D@c>\L@c3723 m\advance\U@c\D@c\D@c=.5\L@c\advance\D@c.5\R@c\advance\U@c-\D@c\fi3724K\advance\U@p-\D@c}3725\xydefcsname@{shape[d]}{\advance\U@p\D@c\centerobject@3726K\ifdim\D@c>\L@c3727 m\advance\D@c\U@c\U@c=.5\L@c\advance\U@c.5\R@c\advance\D@c-\U@c\fi3728K\advance\U@p-\D@c}3729\xydefcsname@{shape[c]}{\advance\U@p\D@c\centerobject@\advance\U@p-\D@c}P3731\xydef@\centerobject@{%3732K\advance\D@c\U@c\D@c=.5\D@c\U@c=\D@c\advance\L@c\R@c\L@c=.5\L@c\R@c=\L@c}ANote:ExtensionscanaddnewhshapMeiobjecthmodi eriswhic!harethencalledhstyleis.#0ThesewillZ;alw!aysbMeeitheroftheform[ hkeywordi]orZ;[hcharacteriZ;hargumenti].ySomeofthesehstyleisdofotherthingsthansettheedgeoftheobject.\SA\simpleDshapMe"isjustacon!trolsequence\shape[0hshapei]settingtheappropriateedge.}Whensuc!ha[ pdhshapMei]modi erisencoun!teredthenweexpandthiscontrolsequenceontothemoMdi erqueue,sunless acon!trolsequence\style[2[hshapMei] gexists:&thenthatisexpectedtodoit(andwhatev!erfelseisrequired).3749\xydef@\OBJECT@shape#1{\DN@{shape[#1]}%3750K\expandafter\let\expandafter\nextii@\csname\codeof\next@\endcsname3751K\ifx\nextii@\relax\DN@{style[#1]}%3752 m\expandafter\let\expandafter\nextii@\csname\codeof\next@\endcsname3753 m\ifx\nextii@\relax\DN@{\OBJECT@shapei[#1]}%3754 m\else\DN@{\nextii@\xyFN@\OBJECT@}\fi3755K\else\expandafter\addtotoks@\expandafter{\nextii@}%3756 m\DN@{\xyFN@\OBJECT@}%3757K\fi\next@}3759\xydefcsname@{shape[]}{\the\Edge@c5\relax}%3760\xydefcsname@{shape[Outer]}{\the\Edge@c5\relax}%3761\xydefcsname@{shape[Inner]}{\the\Edge@c4\relax}%3762\xydefcsname@{shape[o]}{\Edge@c={\circleEdge}\the\Edge@c5\relax3763K\Edge@c={\circleEdge}\def\prevEdge@@{\circleEdge}}3764\xydefcsname@{shape[.]}{\czeroEdge@}AAdd5moresimpleshapMesb!yde ningmorecommandsliketheseandproMceedwithcodingthe\Kù.3..EdgexAcommandfasdescribMedinx1.8.2.\SAlternativ!ely%itisa\complexshapMe"ofwhichnonearede nedinthekernelbutsomeoptionslikemorervdDariation.3..Itisc!haracterisedbyits rsttokenandtherestofthecontentsofthe[]sistheargumen!t(remembMer:tno{}[]characters!);bitissearchedforascontrolsequence\[q hshapMei...]o!verriddenfinthesamew!ayfby\*stylechar@H^hshapMei@.3779\def\OBJECT@shapei[#1#2]{\DN@{shape[#1...]}%3780K\expandafter\let\expandafter\next\csname\codeof\next@\endcsname3781K\ifx\next\relax\DN@{*stylechar@#1@}%8/*tj56+_%CHAPTERf1.CKERNEL:XY.DOC??hw3782 m\expandafter\let\expandafter\next\csname\codeof\next@\endcsname 3783 m\ifx\next\relax\DNii@{shape[#1#2]}%3784\xywarning@{illegal[]ignored:\codeof\nextii@\spacenotdefined}%3785\DN@{\xyFN@\OBJECT@}%3786 m\else%Deletethis:\expandafter\addtotoks@\expandafter{\next{#2}}%3787\DN@{\next{#2}\xyFN@\OBJECT@}%3788 m\fi3789K\elseP3791\expandafter\addtotoks@\expandafter{\next{#2}}\DN@{\next{#2}\xyFN@\OBJECT@}%3792K\fi\next@}TBug:ݹThefabMo!veismessy!e21.4k.\Whilet!ypMesettinganobject,and\postStyle@G]tempMorarilyholdst!ylehdatai.Themacro\preXYstyle@@R}}\xydef@\modifystyle@#1{\checkXyStyle@K\edef\prevstyle@{\thestyle@}\modifystyle@@{#1}%K\let\prestyle@=\prestyle@@\let\poststyle@=\poststyle@@K\applystyle@\prestyle@{\thestyle@}\poststyle@{\prevstyle@}}\xydef@\resetstyle@@#1{\def\thestyle@{#1}\outputstyle@{#1}}\xydef@\outputstyle@#1{\transformstyle@{#1}%K\expandafter\stylespecial@\expandafter{\next@}}\xylet@\transformstyle@@=\DN@\xylet@\transformstyle@=\transformstyle@@ In|theabMo!ve|themacros\modifystyle@@ZDand\stylespecial@areadaptedtotheparticularhst!yleiHtinformation,[>seebMelow.TypicallyhhowiisactualT,[wEB XcoMdeand\modifystyle@@W 4issimply\literal@-ĹtoαexecutethiscoMde.VT!ypesettingαisdoneby\stylespecial@#1cwhichistypicallyofthefform\special{7c`hk!eyi#1}d.22The\transformstyle@cjisrequiredincaseadvi-hdriv!erineedsinformationinaformthatisdif-feren!t tohowƵXY F-picmaintainsitin\thestyle@<[.iAhdriveri leshouldde ne\hdriveri@style@@0[topMerformnthetransformationandplaceitsresultin\next@$.v Installthismacrousing\let\transformstyle@=\hdriv!eri@style@@withinfthehdriv!eriinstallationmacro.cbNextnw!ediscuss\applystyle@Gj;whichuses\prestyle@;듹,:\prestyle@@A鈹,:\poststyle@DXwand\poststyle@@Gj.ThereDaret!woDstrategieshere,XUa ectingho!wmuchinformationisplacedintothedvi- le,XUindicatedb!ythealternativeexpansionsgivenabMove.TheappropriatenessforagivenstylemustbMedecidedb!yftheauthorofthestyle-option.=-*tj1.4.COBJECTSչ61??hwSuppMosesev!eralmodi cationsaremadetoaparticularst!yleparameter.Weemustbuildalistof commands>!\prestyle@{BzohvdDaluei},Rto>!bMeexecutedlater,whic!hwillrecovertherequiredvdDalue.Alsow!efbuildalistofcommands\poststyle@{H^hvdDaluei} ftoresettothepreviousvalue.InmostcasesitisonlytheresultofthemoMdi cationsthatneedbeplacedin!tothedvi- le.Sincew!edonotknowhowmanye,ifanye,moremoMdi cationsfollowwecouldstoreeachnewresultaftertheC"previous,Vsothatitse ectwillo!verrideC"thepreviousvdDalue.ThisisbuildingaFIF!OClistforthe\prestyle@2#commands,fwithaFILOlistforthe\poststyle@Fcommands:P4162\xydef@\applyFIFOstyle@#1#2#3#4{\bgroup4163 m\styletoks@={\egroup\gdef\preXY@style@}%4164 m\expandafter\toks@\expandafter{\preXY@style@}%4165 m\expandafter\addtotoks@\expandafter{\expandafter#1\expandafter{#2}}%4166 m\expandafter\addtostyletoks@\expandafter{\expandafter{\the\toks@}%4167\gdef\postXY@style@}%4168 m\expandafter\toks@\expandafter{\expandafter#3\expandafter{#4}}%4169 m\expandafter\addtotoks@\expandafter{\postXY@style@}%4170 m\expandafter\addtostyletoks@\expandafter{\expandafter{\the\toks@}}%4171K\the\styletoks@}GUsefthisvia:\applyLIFOstyle@\prestyle@{\thestyle@}\poststyle@{\prevstyle@}iI .With>thismethoMdeac!hmodi cationplacest!wo>entriesintothedvi- le;thereisnoneedforseparate\prestyle@2#andf\prestyle@@Fmacros.P!erhaps amoreecientstrategyistobuildaLIFOlistforthe\prestyle@Bcommands.Thisw!ayutherequiredvdDalueisencoun!tered rst. This rstinstanceshouldthencancelallsubsequentinstancesof\prestyle@<<.Thisiswheretheneedcomesfora\prestyle@@AM.Accompan!yingthisisaFIF!OPlistQforthe\poststyle@E\commands,bwithacorrespMonding\poststyle@@Ktokillsubsequentinstances:P4190\xydef@\applyLIFOstyle@#1#2#3#4{\bgroup4191 m\styletoks@={\egroup\gdef\preXY@style@}%4192 m\expandafter\toks@\expandafter{\expandafter#1\expandafter{#2}}%4193 m\expandafter\addtotoks@\expandafter{\preXY@style@}%4194 m\expandafter\addtostyletoks@\expandafter{\expandafter{\the\toks@}%4195\gdef\postXY@style@}%4196 m\expandafter\toks@\expandafter{\postXY@style@}%4197 m\expandafter\addtotoks@\expandafter{\expandafter#3\expandafter{#4}}%4198 m\expandafter\addtostyletoks@\expandafter{\expandafter{\the\toks@}}%4199K\the\styletoks@}GUsefthisvia:\applyLIFOstyle@\prestyle@{\thestyle@}\poststyle@{\prevstyle@}iI .The&advdDan!tagehereisthatonlytwopiecesofdataneedbMeoutputtothedvi- le,nomatterhowman!yfmoMdi cationsarerequested.֍1.4l.NSettingthecurren!tdirectionissimplypretendingforthetypMesettingoftheobject(andthefollo!winghmoMdi eris)thatsomeconnectionsetit{thehemptyicasejustinheritsthepreviousdirection.ThefcoMdejustcallsthegeneralhdirectioniparserbelo!w:P4223\xydef@\OBJECT@direction{\afterDIRECTIONorEMPTY{%4224 m\edef\next@{{\DirectionfromtheDirection@}}\expandafter\addtotoks@\next@4225 m\xyFN@\OBJECT@}%4226K{\xyFN@\OBJECT@}}>*tj62+_%CHAPTERf1.CKERNEL:XY.DOC??hwHere@isthehdirectioniparser:/ rstthepartsparsingthehdiagipartthenthepartsparsingthe htrailerifpart:P4233\xydef@\afterDIRECTIONorEMPTY#1#2{%4234K\DN@##1{\def\afterDIRECTION@{\def\afterDIRECTION@{##1}%4235 m\ifDIRECTIONempty@\DN@{#2}\else\DN@{#1}\fi\next@}}%4236K\expandafter\next@\expandafter{\afterDIRECTION@}%4237K\xyFN@\DIRECTION@}4239\xylet@\afterDIRECTION@=\empty4240\xynew@{if}\ifDIRECTIONempty@4242\xydef@\DIRECTION@{%4243K\ifx\space@\next\expandafter\DN@\space{\xyFN@\DIRECTION@}%gobblespaces4244K\else\ifxv\next\DN@v{\DIRECTION@v}%4245K\else\ifx\bgroup\next\let\next@=\DIRECTION@group4246K\else\ifx(\next\DN@({\xyFN@\DIRECTION@open}%))4247K\else4248 m\DN@{\count@=8%4249\afterDIAG{\ifnum\count@=8\DN@{\DIRECTIONempty@true\xyFN@\DIRECTION@i}%4250 \else\DN@{\xy@@{\dimen@=\xydashl@}\Directionfromdiag@}\fi\next@}}%4251K\fi\fi\fi\fi\next@}4253\xydef@\DIRECTION@open{%4254K\ifx*\next\DN@*##1*){\DIRECTION@group{##1}}%4255K\else\DN@{\xyerror@{(**)expected}{}\xyFN@\DIRECTION@i}%4256K\fi\next@}%lDiagonal2directions. 5Itfisparticularlyeasytosethdiagionaldirections:D|N=ps: SDict begin xyc end7h0" {12.0 0 360 o}xy"dl"= ldh0$h" {-19.11005 -19.11005 l}xy$" {0 10 /xy AB}xy490dh07)x" {0.0 -29.65417 l}xy7'" {1024 10 /xy AB}xyF"drUk۟"= rdSW " {19.11626 -19.11005 l}xySW " {2048 10 /xy AB}xyd9çra9h0" {30.12566 0.0 l}xya9h0" {3072 10 /xy AB}xyFҷurUk۟ҷ= ruh0TRj" {20.09859 20.09859 l}xyTRҷ" {-4096 10 /xy AB}xy49çuh07[w" {0.0 30.64272 l}xy7ç" {-3072 10 /xy AB}xyulɹ= lu#" {-19.11624 19.11003 l}xy#" {-2048 10 /xy AB}xy9l h0" {-30.12566 0.0 l}xy h0" {-1024 10 /xy AB}xyIdMoreftothepMoin!t,hdiagionalsarestoredinternallyas9y_vps: SDict begin xyc end)՟h0" {12.0 0 360 o}xy L5m0h0J" {-11.09624 -11.09624 l}xyJ" {0 10 /xy AB}xy'$1h0)՟x" {0.0 -17.65417 l}xy)՟" {1024 10 /xy AB}xy@t5m2=t" {11.09624 -11.10197 l}xy=t" {2048 10 /xy AB}xyK3Hh0" {18.12566 0.0 l}xyHh0" {3072 10 /xy AB}xy@tL4h0=tk!" {11.09624 11.09624 l}xy=tQ" {-4096 10 /xy AB}xy'5h0)՟X" {0.0 17.65416 l}xy)՟" {-3072 10 /xy AB}xy LL6J" {-11.09624 11.10197 l}xyJ" {-2048 10 /xy AB}xy7 h0" {-18.12566 0.0 l}xy h0" {-1024 10 /xy AB}xy9ZExpanding\afterDIAG{D,hstu i}hdiagiǹwillresultin\count@24bMeingsettothehdiagicode(notc!hangedfincasethehdiagiishemptyi)bMeforeexpandinghstu i.4297\def\afterDIAG#1{\def\afterDIAG@{#1}\xyFN@\DIAG@}4299\xydef@\DIAG@{%?X*tj1.4.COBJECTSչ63??hw4300K\ifxd\next\DN@d{\count@=1\xyFN@\DIAG@@}% 4301K\else\ifxr\next\DN@r{\count@=3\xyFN@\DIAG@@}%4302K\else\ifxu\next\DN@u{\count@=5\xyFN@\DIAG@@}%4303K\else\ifxl\next\DN@l{\count@=7\xyFN@\DIAG@@}%4304K\else\let\next@=\afterDIAG@4305K\fi\fi\fi\fi\next@}P4307\xydef@\DIAG@@{\ifcase\count@\or4308%\count@=1t35YE74309K\DIAG@@@l0r2\or\or\DIAG@@@d2u4\or\or\DIAG@@@r4l6\or\or\DIAG@@@u6d0%4310K\else\xybug@{impossiblenumber}\fi4311K\next@}4313\xydef@\DIAG@@@#1#2#3#4{%4314K\ifx#1\next\count@=#2\DN@#1{\afterDIAG@}%4315K\else\ifx#3\next\count@=#4\DN@#3{\afterDIAG@}%4316K\else\let\next@=\afterDIAG@\fi\fi}lTheactionincaseofahdiagiissimplytopic!ktherightdirectionsetuproutineaccordingtotheencoMding,fgettingthehdiagifrom\count@/randthelengthofthedv!ectorfrom\dimen@+ :4324\xydef@\Directionfromdiag@{\ifcase\count@4325Jk\xy@@{\dlDirection@\dimen@}%4326K\or\xy@@{\dDirection@\dimen@}%4327K\or\xy@@{\drDirection@\dimen@}%4328K\or\xy@@{\rDirection@\dimen@}%4329K\or\xy@@{\urDirection@\dimen@}%4330K\or\xy@@{\uDirection@\dimen@}%4331K\or\xy@@{\ulDirection@\dimen@}%4332K\or\xy@@{\lDirection@\dimen@}%4333K\or%8islegalandmeanschangenothing4334K\else\xybug@{impossible}\fi4335K\DIRECTIONempty@false\xyFN@\DIRECTION@i}7V\ectordirections. 5Alternativ!elyg6v &hvectorig6setsthedirectionasiftheconnectionfrom0 tothehv!ectorixhadbMeentypMesetexceptthattheoriginisassumedzerosuchthatdirectionsv(fx,yd) meanthefnaturalthing,i.e.,isthedirectionoftheconnectionfrom(0,0)$ to( fx,yd)$=.M~Theactionforav mfreadsahv!ectoriandsetsthedirectionaccordinglyusingsomeexpansionhackerytofpropagateitout.Theorigin}qisclearedloMcallytomak!ev(%x,yd) ʣbeha!vefasitshould.4356\xydef@\DIRECTION@v{%4357K\xy@{v}{\enter@{\cfromthec@\X@origin=\the\X@origin\Y@origin=\the\Y@origin4358\X@p=\the\X@p\Y@p=\the\Y@p}%4359 m\X@origin=\z@\Y@origin=\z@}%4360K\afterVECTORorEMPTY4361 m{\xy@@{\X@p=\z@\Y@p=\z@\setupDirection@\leave@}%4362\DIRECTIONempty@false\xyFN@\DIRECTION@i}%4363 m{\xy@@\leave@\xyerror@{expectedafterv}{}%4364\DIRECTIONempty@false\xyFN@\DIRECTION@i}}@*tj64+_%CHAPTERf1.CKERNEL:XY.DOC??hwComplexdirection. 5InqRcasethedirectionisnotassimple,{y!oucanconstruct{ NhpMosihdecori} thatlsetsuppandcsuc!hthatfe ?vpchasthedesireddirection.ʧNote: thatyoumustusethe(*.3..*)formfifthisistoappMearinanobjecthmodi eri!ʶThefcoMdeforthisisratherlik!etheoneforhvectoris.P4381\xydef@\DIRECTION@group#1{%4382K\xy@@{\begingroup}\xy@@ix@{#1}\xy@@{\plainxy@\expandafter\POS\the\toks9\relax4383 m\setupDirection@\edef\next@{\endgroup\DirectionfromtheDirection@}\next@}%4384K\DIRECTIONempty@false\xyFN@\DIRECTION@i}(uExercise21.12: 5Whatfe ectisac!hievedfbyusinghmoMdi erisv/1pc/)ȹandv/-1pc/+ ?ҍ1.4m.Once&theinitialdirectionisestablishedaseitherthelastoneoranabsoluteonethentheremainderfofthehdirectioniisin!terpreted.Addingasingle^or_denotestheresultofrotatingthedefaultdirectionarigh!tangleinthepMositiv!exandnegativedirection,i.e.,anti-/cloMckwise,respMectivelye.8Note:Doxnotbuse^ "^Dbutonly__ӹtofrev!ersethedirection!A8trailing8:ghv!ectori8islikevghvectoributusesthehdirectionitosetupastandardsquarebasesuchthatf:(0,1))ȹandf:(0,-1)/rmeanfthesameas:a(90)and:a(-90)/randas^ vand_ f,respMectiv!elye.P4414\xydef@\DIRECTION@i{%4415K\ifx^\next\DN@^{\xy@^{\aboveDirection@\xydashl@}%4416\DIRECTIONempty@false\xyFN@\DIRECTION@i}%4417K\else\ifx_\next\DN@_{\xy@_{\belowDirection@\xydashl@}%4418\DIRECTIONempty@false\xyFN@\DIRECTION@i}%4419K\else\ifx:\next\DN@:{%4420 m\xy@{:}{\enter@{\cfromthec@\basefromthebase@\X@p=\the\X@p\Y@p=\the\Y@p}%4421\X@origin=\z@\Y@origin=\z@4422\X@xbase=\cosDirection\xydashl@\Y@xbase=\sinDirection\xydashl@4423\X@ybase=-\Y@xbase\Y@ybase=\X@xbase}%4424 m\afterVECTORorEMPTY4425{\xy@@{\X@p=\z@\Y@p=\z@\setupDirection@\leave@}%4426 \DIRECTIONempty@false\xyFN@\DIRECTION@i}%4427{\xy@@\leave@\xyerror@{expectedafter:}{}%4428 \DIRECTIONempty@false\xyFN@\DIRECTION@i}}%4429K\else4430 m\let\next@=\afterDIRECTION@4431K\fi\fi\fi\next@}(uExercise21.13: 5Whatfe ectisac!hievedfbyusinghmoMdi erisv/1pc/:(1,0)LHĹandv/-1pc/__7c`?$zN1.5r|Decorations{4454\message{decorations;}hDecoriationspareactualT,[wEB Xmacrosthatdecoratethecurren!tpictureinmannersthatdepMendonthe8state.FTheyareallo!wed8afterfZthehpMosiitioneitheroftheouter\xy.3..\endxy8orinside{I.3..}ݹ.ThepMossibilitiesfaregiv!enin gure1.6withnotesbelo!w.AL*tj1.5.CDECORAeTIONSln65??]Nq ffffd {ySyn!tax "Actionwffd yhdecoriA:HdO!Xhcommandifhdecori "eitherfthereisacommand.3.. I jXhempt!yi ".3..orfthereisn't.yhcommandiA:HdO!X\savefhpMosi "sa!vefstate1.5aG ,thendohpMosiI jX\restore "restorefstate1.5a톹sa!vedbymatcing\saveI jX\POSfhpMosi "in!terpretfhpMosiI jX\afterPOSf{ vhdecorif}hpMosi "in!terpretfhpMosiandthenperformhdecoriI jX\dropfhobjecti "dropfhobjectiasthehpMosi* voperationI jX\connectfhobjecti "connectfwithhobjectiasthehpMosi** operationI jX\relax "dofnothingI jXhT,[wEB Xfcommandsi "an!yfT,[wEB Xcommands1.5b{anduser-de nedmacros "thatQneithergeneratesoutput(w!atchQoutforstra!y "spaces!),fnorc!hangesthegrouping,maybMeused)[ I jX\xyverbosefj Ww\xytracingfj\xyquiet"tracing1.5c_LcommandsI jX\xyignoref{ fhpMosifhdecori} "ignore1.5dciXY -coMdeI jX\xycompilef{ fhpMosifhdecori} "compile1.5e_Ltof lehpre xihnoi.xycI jX\xycompileto{hnamei}{ ThpMosihdecori}"compile1.5e_Ltof lehnamei.xyczffd ߹Figuref1.6:hdecoriations. wCMostoptionsaddtothea!vdDailablehdecori, inparticularthev2~noptionloadsmanymoresince7XY f-pic v!ersionsfpriorto2.7providedmostfeaturesashdecori.![Simpledecorations: U\POS@and@/\afterPOSha!vealreadybMeende ned;bAthefollowingarejustsimpleapplicationsfofpreviouslyde nedcommands:P4531\xydef@\drop#1#{\DN@##1{\xy@@ix@{{#1}{##1}}%4532K\xy@{\drop#1{##1}}{\expandafter\drop@\the\toks9}\ignorespaces}\next@}4534\xydef@\connect#1#{\DN@##1{\xy@@ix@{{#1}{##1}}%4535K\xy@{\connect#1{##1}}{\expandafter\connect@\the\toks9}\ignorespaces}\next@}4537\xydef@\preconnect#1#{\DN@##1{\xy@@ix@{{#1}{##1}}%4538K\xy@{\connect#1{##1}}{\expandafter\preconnect@\the\toks9}\ignorespaces}\next@}%INotes1.5a.=Sa!ving$andrestoringallows`excursions'wherelotsofthingsareaddedtothepicturewithouta ectingtheresultingăXYC-picstate,ui.e.,c,p,andbpaseҡ,andwithoutrequiringmatc!hing{}\-s.5TheindepMendence!of{}}isparticularlyusefulinconjunctionwiththe\afterPOS~ֹcommand,/forexample,thefde nition\def\ToPOS{\save\afterPOS{% m\POS**{}?>*@2{>}**@{-}\restore};p,}Gˍwill>causethecoMde\ToPOS&hpositoconstructadouble-shaftedarro!wfromthecurrentobjecttothe5hpMosi(computedrelativ!etoit)suchthat\xy*{A}\ToPOS+<10mm,2mm>\endxy5willtypMesetthefpictureps: SDict begin xyc endA O9" {3277 /XT tt}xy 1" {21.8892 4.40767 l}xy#.B+*tj66+_%CHAPTERf1.CKERNEL:XY.DOC??hwNote: 5Sa!vingnthiswayinfactusesthesamestateasthe{}]2`grouping',:sothecoMdepz1, {Gpz2\save}, .3..y{\restore}Bwillfha!vec =pz1fjbMothatthe.3..yandattheend!P4576\xydef@\save{\relax\saveC}4577\xydef@\saveC{\xy@\save\save@\POS}4579\xydef@\save@{\enter@{\cfromthec@\pfromthep@\basefromthebase@}}4581\xydef@\restore{\xy@\restore\leave@\ignorespaces}y"1.5b.Onedv!erytemptingkindofT,[wEB XcommandstopMerformashdecoriisarithmeticoperationsontheeXYv-picstate.Thiswillw!orkinsimpleeXY-picturesasdescribMedherebutbew!arned:itKisnotpportableFbMecause allOXYq-picexecutionisindirect,#andthisisusedb!yseveraloptionsinnontrivialw!ays.CheckftheT,[wEB X-nicaldoMcumen!tation[15 4]fordetailsaboutthis!獑Macrosfthatexpandtohdecoriwillalw!aysfdothesame,though.T,[wEB X5Ihac!kersliketheauthormayenjoychangingtheXY S-picstatedirectlyusinghdecorioftheform \xy@{Jkhidi}{ ThcoMdei}.3..41.5c.r\xyecho, willturnonec!hoingofallinterpretedXY-pichpMosicharacters.nBug:'Notcompletelyimplemen!teds+yet.\xyverbosewillswitchonatracingofallZXY 5-piccommandsexecuted,}jwithlinen!umbMers.S\xytracingtǹtracesev!enmore:theentire\qXY -picstateisprintedaftereachmoMdi cation.\xyquietfrestoresdefaultquietopMeration.獑The,tric!kistoreplacethe\xy@+commandsuchthatitcallsthe`normal'onebMetweenwritingoutaftracemessageandthestate.4619\xydef@\xyecho{%4620K\xy@\xyecho{\let\xy@=\xyecho@\message{\string\xyecho}}\POS}4622\xydef@\xyecho@#1#2{{\def\1{#1}\ifx\1\empty\else\message{\codeof\1}\fi}%4623K\oxy@{#1}{#2}}4625\xydef@\xyverbose{%4626K\xy@\xyverbose{\let\xy@=\xyverbose@4627K\W@{Xy:\string\xyverbose\xytracelineno@}}\POS}4629\xydef@\xyverbose@#1#2{%4630K{\def\1{#1}\ifx\1\empty\else\W@{Xy:\codeof\1\xytracelineno@}\fi}%4631K\oxy@{#1}{#2}}4633\xydef@\xytracing{%4634K\xy@\xytracing{\let\xy@=\xytracing@4635K\W@{XyTRACE:\string\xytracing\xytracelineno@}\xystatus@:}\POS}4637\xydef@\xytracing@#1#2{{\def\1{#1}\def\2{#2}%4638K\W@{XyTRACE:\codeof\1{\codeof\2}\xytracelineno@}}\oxy@{#1}{#2}\xystatus@:}4640\xydef@\xystatus@#1{\xystatus@cp{#1}%4641K\W@{#1d=<\the\d@X,\the\d@Y>4642#iDirection=\the\Direction=\string(\cosDirection,\sinDirection\string)}%4643K\W@{#1base=<\the\X@origin,\the\Y@origin>+%4644#i<\the\X@xbase,\the\Y@xbase>x+<\the\X@ybase,\the\Y@ybase>y}%4645K\W@{#1min/max=<\the\X@min,\the\Y@min>/<\the\X@max,\the\Y@max>4646#iS=\the\csp@}}4648\xydef@\xystatus@cp#1{%4649K\W@{#1c=<\the\X@c,\the\Y@c>\expandafter\string\the\Edge@cC:0*tj1.5.CDECORAeTIONSln67??hw4650#i\string[\the\L@c+\the\R@c,\the\D@c+\the\U@c\string] 4651#i\ifInvisible@I\fi\ifHidden@H\fi}%4652K\W@{#1p=<\the\X@p,\the\Y@p>\expandafter\string\the\Edge@p4653#i\string[\the\L@p+\the\R@p,\the\D@p+\the\U@p\string]}}P4655\xydef@\xystatus@c#1{%4656K\W@{#1<\the\X@c,\the\Y@c>\expandafter\string\the\Edge@c4657#i\string[\the\L@c+\the\R@c,\the\D@c+\the\U@c\string]}}4659\xydef@\xyquiet{\xy@\xyquiet{\let\xy@=\oxy@}}Bb1.5d.Ignoring:meansthatthehpMosihdecoriisstillparsedtheusualw!ay:butnothingist!ypesetandtheXY p-picfstateisnotc!hanged.Weefignoreinagrouptoensurethatnothingdoneinside`leaks'totheoutside.4675\xydef@\xyignore#1{\xy@\xyignore{\xyignore@{#1}}\ignorespaces}4677\xydef@\xyignore@#1{{\let\xy@=\xyeat@\change@oxy@\xy@\POS#1\relax}}4679\xydef@\xyeat@#1#2{}Bb1.5e.rIt~eispMossibletosa!ve~eanin!termediateformofcommandsthatgeneratepartsofanfXYo-picturetosa lesuc!hthatsubsequenttypMesettingofthosepartsissigni cantlyfaster:w1thisiscalledcpompiling.8^TheproMduced lecon!tainscodetoc!heckthatthecompiledcodestillcorrespondstothefsamehpMosihdecoriasw!ellasecientXY+p-coMdetoredoit;fifthehposihdecorihasc!hangedthenthefcompilationisredone.Therearet!wowaystousethis.Thedirectistoinventahnameiforeachdiagramandthenembraceitfin\xycompileto{Nbhnamei}| T{>.3..} 9C{fthisdumpsthecompiledcoMdein!tothe lehnamei.xyc.Whennman!ydiagramsarecompiledthenitiseasiertoadd\xycompile{.3..} ̹aroundnthehpMosihdecorito;bMecompiled.Thiswillassign lenamesn!umbered;consecutivelywithahpre xiwhichisinitiallythefexpansionof\jobname-; ƹbutma!ybMesetwith ㍑ffѲd ~ \CompilePrefix{hpre xi}sЍffѲdp8ThishasthedisadvdDan!tage,+xhowever,thatifadditionalcompiledXYw-picturesareinsertedthenallsubsequen!tpictureswillhavetobMerecompiled.Oneparticularsituationisprovided,though:jwhenusedwithinconstructionsthatt!ypMesettheircontentsmorethanonce(suchasmostA,[wM S-LAGT,[wEB Xequationfconstructs)thenthedeclaration ffѲd.\CompileFixPoint{hidi}sЍffѲdp8canfbMeusedinsidetheen!vironmentfto xthecoun!tertohavethesamevdDalueateverypassage.Itisdoneb!yjustwritingall\xy@y-commandstothe le.The leestablishesthecorrectinputmoMdefthroughuseoftheappropriatecommandsitself.P4731\xydef@\xycompile@@{\jobname-}4732\xydef@\xycompileno@@{0}4734\xydef@\CompilePrefix#1{%4735K\def\xycompile@@{#1}\xdef\xycompile@@{\codeof\xycompile@@}%4736K\xdef\xycompileno@@{0}}4738\xydef@\xycompile{%4739K\count@=\xycompileno@@\advance\count@\@neDHנ*tj68+_%CHAPTERf1.CKERNEL:XY.DOC??hw4740K\xdef\xycompileno@@{\ifnum10>\count@0\fi\the\count@}% 4741K\edef\next{\noexpand\xycompileto{\xycompile@@\xycompileno@@}}\next}P4743\xylet@\compilename@@=\empty4744\xylet@\xyrecompile@@=\relax4746\xydef@\xycompileto#1#2{%4747K\if\inxy@\DN@{\xy@@{\nter@{}}}%4748K\else\DN@{\xy\xy@@{\nter@{\endxy}}}\fi\next@4749K\ifxysaving@\xyerror@{Compilationscannotbenested}{}\fi4750K\DN@{#1}\edef\compilename@@{\codeof\next@}\DNii@{#2}%4751K\def\xyrecompile@@{recompilingTRUNCATED}%4752K\expandafter\xyinputorelse@@\expandafter{\compilename@@.xyc}%4753K{\def\xyrecompile@@{compilingto}}%4754K\ifx\xyrecompile@@\relax\else\expandafter\xyrecompile@\fi4755K\xy@@\leave@\ignorespaces}¹RecompilationDisdoneb!yjustwritingall\xy@-commandstothe le.wThe leestablishesthecorrectinputmoMdeandterminatesitself;safterithasbeen nisheditissimplyrereadtoactuallygetfthedra!wingdoneinthedoMcument.4764\xydef@\xyrecompile@{%4765K\message{(\xyrecompile@@\space\string`\compilename@@.xyc\string'}%4766K\DN@{\immediate\openout\xywrite@=}\expandafter\next@\compilename@@.xyc4767K\immediate\write\xywrite@{%4768 m\string\xycompiled{\compilename@@}%4769{\the\year/\the\month/\the\day\string:\the\time\xytracelineno@}%4770{Xy-pic\xyversion}\xycomment@}%4771K\immediate\write\xywrite@{{\codeof\nextii@}\relax}%4772K{\xysaving@\expandafter\POS\nextii@\relax}%4773K\immediate\write\xywrite@{\string\xyendcompiled}%4774K\immediate\closeout\xywrite@\message{done)}%4775K\expandafter\input\compilename@@.xyc4776K\outlines@@\writeoutline@\writeoutline@}4778\xydef@\xysaving@{\let\xy@=\xysave@\change@oxy@\xy@4779K\let\xy@@ix@=\xysave@@toksix@\xysaving@true}4781\xynew@{if}\ifxysaving@\xysaving@false4783\xydef@\xysave@#1#2{{\DN@{{#1}{#2}}%4784 m\immediate\write\xywrite@{\string\xy@\codeof\next@\xycomment@}}}4786\xydef@\xysave@@toksix@#1{{\DN@{{#1}}%4787 m\immediate\write\xywrite@{\string\xy@@ix@\codeof\next@\relax}}}4789\xywarnifdefined\xycomment@4790{\catcode`\%=12\catcode`\(=1\catcode`\)=2\gdef\xycomment@(%)}¹Hactk1:oThe/\ifxysaving@LLVcan/nev!erbMelocallyswitc!hedo !8Anywayitisusedtoallowagrosshac!kfavoidingbuildingaqueueinthematrixoptionthatwillgeneratetoMolonglines!! ˍHactk2:\xysave@@toksix@f uis)notdoingthecatcoMdejiv!ebecauseitcannev!erbein!voked)whileloadingfa le(knoMc!k,knoc!k 53^).Theinitialcommandinall.xycv lesc!heckthatthisistherigh!t leandthatneithertheversionofXY p-picfnortheuser'scoMdehasc!hanged:EW|*tj1.5.CDECORAeTIONSln69??hw4805\xydef@\xycompiled#1#2#3#4{\DN@{#1}\edef\next@{\codeof\next@}% 4806K\ifx\next@\compilename@@\else4807 m\xywarning@{Thisfiledoesnotcontaintheresultof4808#i\string\xycompileto{\compilename@@}{...}^^J%4809#ibutof\string\xycompileto{\next@}}\fi4810K\edef\next{Xy-pic\xyversion}\DN@{#3}\ifx\next\next@4811 m\DN@{#4}\ifx\next@\nextii@\xycatcodes\outlines@@\relax\readoutline@4812 m\else\def\xyrecompile@@{recompilingto}\endinput\fi4813K\else\def\xyrecompile@@{Xy-picversionchange-recompiling}\endinput\fi}P4815\xydef@\xyendcompiled{\let\xyrecompile@@=\relax\xyuncatcodes\endinput}Finallyfthe x-pMoin!tthing.4821\xydef@\CompileFixPoint#1{% 4822K\expandafter\ifx\csname#1FIX@@\endcsname\relax4823 m\expandafter\xdef\csname#1FIX@@\endcsname{\xycompileno@@}%4824K\else4825 m\xdef\xycompileno@@{\csname#1FIX@@\endcsname}\fi}Finallye,Jwhen)man!y`administrativetypMesettingruns'areneeded,Je.g.,readjusting)LAGT,[wEB XcrossreferencesCandsuc!h, thenitmaybMeanadvdDantagetonottypMesetanyXY+M-picturesatallduringthejin!termediateruns.ThisissuppMortedbythefollowingdeclarationswhichforeachcompilationcreatesfaspMecial lewiththeextension.xydcon!tainingjustthesizeofthepicture:,ffѲd Vz\MakeOutlinesz\OnlyOutlinesz\ShowOutlinesz\NoOutlinesffѲdYTheg rstdoMesnomore.!Thesecondusesthe letot!ypesetsadottedframeoftheappropriatesizeinsteadofthepicture(unlessthepicturehasc!hangedandisrecompiled,hthenitistypMesetasalw!aysjCandthe.xyd. leisrecreatedforsubsequen!truns).Thethirdshowstheoutlinesasdottedrectangles.Theflastswitc!hesoutlineproMcessingcompletelyo .TheYimplemen!tationisallhandledby\outlines@@I魯whichiscalledatstrategicplacesinthecompilation*macrosabMo!ve.(It*justexpandstonothingwhenthestateis`No',the rstargumen!twhenfitis`Mak!e',andthesecondwhenitis`Only'.P48604861\xydef@\outlines@no#1#2{}4862\xydef@\outlines@make#1#2{#1}4863\xydef@\outlines@only#1#2{#2}4865\xylet@\outlines@@=\outlines@no4866\xylet@\writeoutline@@=\relax4867\xylet@\readoutline@@=\relax4869\xydef@\MakeOutlines{\let\outlines@@=\outlines@make}4871\xydef@\OnlyOutlines{\xywarning@{Compiledpicturesonlyshownasoutlines}%4872K\let\outlines@@=\outlines@only}4874\xydef@\ShowOutlines{\let\readoutline@@=\typesetoutline@}4876\xydef@\NoOutlines{\let\outlines@@=\outlines@no}Fe2*tj70+_%CHAPTERf1.CKERNEL:XY.DOC??hw4878\xydef@\writeoutline@{% 4879K\DN@{\immediate\openout\xywrite@=}\expandafter\next@\compilename@@.xyd4880K\immediate\write\xywrite@{\xycomment@\space\compilename@@.xyd}4881K\immediate\write\xywrite@{%4882 m\string\X@min=\the\X@min\string\X@max=\the\X@max4883 m\string\Y@min=\the\Y@min\string\Y@max=\the\Y@max\string\relax}%4884K\writeoutline@@4885K\immediate\closeout\xywrite@}P4887\xynew@{if}\ifoutlineread@4889\xydef@\readoutline@{\outlineread@true 4890K\expandafter\xyinputorelse@@\expandafter{\compilename@@.xyd}%4891 m{\def\xyrecompile@@{outlinemissing-recompilingto}\outlineread@false}%4892K\ifoutlineread@\readoutline@@4893 m\writeoutline@\expandafter\xyendcompiled\fi}P4895\xydef@\typesetoutline@{%4896K\xy@@{\czeroEdge@\U@p=\z@\D@p=\z@\L@p=\z@\R@p=\z@\Edge@p={\zeroEdge}%4897 m\X@p=\X@min\Y@p=\Y@min\X@c=\X@min\Y@c=\Y@max\connect@\dir{.}%4898 m\X@p=\X@c\Y@p=\Y@c\X@c=\X@max\Y@c=\Y@max\connect@\dir{.}%4899 m\X@p=\X@c\Y@p=\Y@c\X@c=\X@max\Y@c=\Y@min\connect@\dir{.}%4900 m\X@p=\X@c\Y@p=\Y@c\X@c=\X@min\Y@c=\Y@min\connect@\dir{.}}}(1.6r|KernelffobfjectlibraryJ4915\message{kernelobjects:}tIn̬thissectionw!epresentthelibrpary objectsĹprovided̬withthekernellanguage|severaloptionsaddmore9libraryobjects.Theyfallin!tothreetypMes:GMostofthekernelobjects(includingallthoseusuallyusedwith**tobuildconnections)aredirpectionals,'describMedinx1.6.1.mTheremainingk!ernellibraryobjectsfarecirpcles~ofx1.6.2andtextPofx1.6.3.!s1.6.1 Directionals4933\message{directionals,}TheRk!ernelprovidesaselectionofdirpectionals:objectsRthatdepMendonthecurrentdirection.Theyalltak!eftheform ffd Rb\dirhdiriffdtoft!ypMesetaparticularhdiriectionalobject.Allhavethestructureԉffd?hdirif W{!hvdDarian!ti{hmaini}ffdwithfhvdDarian!tibMeinghemptyioroneofthecharacters^_23KtandhmainisomemnemoniccoMde. ЍWeewillclassifythedirectionalsprimarilyin!tendedforbuildingconnectionsascponnectorsand thosefprimarilyin!tendedforplacementatconnectionendsorasmarkersastips.Figure61.7sho!wsallthehdiriectionalsde nedbythekernelwithnotesbMelow;eachhmainitypMehas@alinesho!wingtheavdDailablehvarian!tis.&Noticethatonlysomevarian!tsexistforeachhdiri|whenaްnonexistingvdDarian!tofahdiriisrequestedthenthehemptyivdDariantisusedsilentlye.EachisshownGr,*tj1.6.CKERNELfOBJECTLIBRAReY*71??鞍.CE+Dumm!y1.6a&M\dir{}P̹Plainfconnectors1.6b*Z\dir{-}fB-ps: SDict begin xyc end" {5.0 0 360 o}xy20"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy20" {40.75183 12.7346 dt}xy20" {40.75183 12.7346 l}xyF\dir2{-}f!ps: SDict begin xyc end" {5.0 0 360 o}xy20"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy29џѺ" {40.75183 12.7346 dt}xy2ҏh" {40.75183 12.7346 dt}xy29џѺ" {40.75183 12.7346 l}xy2ҏh" {40.75183 12.7346 l}xy6\dir3{-}fz)ps: SDict begin xyc end" {5.0 0 360 o}xy20"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy1qb" {40.75183 12.7346 dt}xy3" {40.75183 12.7346 dt}xy20" {40.75183 12.7346 dt}xy1qb" {40.75183 12.7346 l}xy3" {40.75183 12.7346 l}xy20" {40.75183 12.7346 l}xyFZ\dir{.}fB-ps: SDict begin xyc end" {5.0 0 360 o}xy20"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy20" {40.75183 12.7346 dt}xy20" {40.75183 12.7346 dt}xyF\dir2{.}f!ps: SDict begin xyc end" {5.0 0 360 o}xy20"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy29џѺ" {40.75183 12.7346 dt}xy2ҏh" {40.75183 12.7346 dt}xy29џѺ" {40.75183 12.7346 dt}xy2ҏh" {40.75183 12.7346 dt}xy6\dir3{.}fz)ps: SDict begin xyc end" {5.0 0 360 o}xy20"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy1qb" {40.75183 12.7346 dt}xy3" {40.75183 12.7346 dt}xy20" {40.75183 12.7346 dt}xy1qb" {40.75183 12.7346 dt}xy3" {40.75183 12.7346 dt}xy20" {40.75183 12.7346 dt}xyZ\dir{~}fB-ps: SDict begin xyc end" {5.0 0 360 o}xy20"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy20" {40.75183 12.7346 dt}xy+~X " {3392 g}xy%8 " {3392 g}xy%$ " {3392 g}xyF2( " {3392 g}xyfn- " {3392 g}xyF\dir2{~}f!ps: SDict begin xyc end" {5.0 0 360 o}xy20"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy29џѺ" {40.75183 12.7346 dt}xy2ҏh" {40.75183 12.7346 dt}xy+gn " {3392 g}xy$ΟlN " {3392 g}xy q. " {3392 g}xyFv " {3392 g}xy.z " {3392 g}xy,jB " {3392 g}xy%=" " {3392 g}xy] " {3392 g}xy~ " {3392 g}xyZ " {3392 g}xy6\dir3{~}fz)ps: SDict begin xyc end" {5.0 0 360 o}xy20"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy1qb" {40.75183 12.7346 dt}xy3" {40.75183 12.7346 dt}xy20" {40.75183 12.7346 dt}xy+u " {3392 g}xy$c " {3392 g}xyC " {3392 g}xyY# " {3392 g}xy " {3392 g}xy,UW- " {3392 g}xy%u " {3392 g}xyϟ " {3392 g}xy " {3392 g}xyG " {3392 g}xy+~X " {3392 g}xy%8 " {3392 g}xy%$ " {3392 g}xyF2( " {3392 g}xyfn- " {3392 g}xy \dir{--}fB-ps: SDict begin xyc end" {5.0 0 360 o}xy20"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy20" {40.75183 12.7346 dt}xy20" {40.75183 12.7346 dd}xyϜ\dir2{--}f!ps: SDict begin xyc end" {5.0 0 360 o}xy20"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy29џѺ" {40.75183 12.7346 dt}xy2ҏh" {40.75183 12.7346 dt}xy29џѺ" {40.75183 12.7346 dd}xy2ҏh" {40.75183 12.7346 dd}xy0\dir3{--}fz)ps: SDict begin xyc end" {5.0 0 360 o}xy20"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy1qb" {40.75183 12.7346 dt}xy3" {40.75183 12.7346 dt}xy20" {40.75183 12.7346 dt}xy1qb" {40.75183 12.7346 dd}xy3" {40.75183 12.7346 dd}xy20" {40.75183 12.7346 dd}xy \dir{~~}fB-ps: SDict begin xyc end" {5.0 0 360 o}xy20"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy20" {40.75183 12.7346 dt}xy/ " {3392 g}xy%$ " {3392 g}xy ?4d9 " {3392 g}xyϜ\dir2{~~}f!ps: SDict begin xyc end" {5.0 0 360 o}xy20"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy29џѺ" {40.75183 12.7346 dt}xy2ҏh" {40.75183 12.7346 dt}xy.ȟ1 " {3392 g}xyq/ " {3392 g}xy HO " {3392 g}xy/D " {3392 g}xy] " {3392 g}xy w # " {3392 g}xy0\dir3{~~}fz)ps: SDict begin xyc end" {5.0 0 360 o}xy20"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy1qb" {40.75183 12.7346 dt}xy3" {40.75183 12.7346 dt}xy20" {40.75183 12.7346 dt}xy.۟~$ " {3392 g}xyD " {3392 g}xy [d " {3392 g}xy/|I " {3392 g}xy͟ " {3392 g}xy  " {3392 g}xy/ " {3392 g}xy%$ " {3392 g}xy ?4d9 " {3392 g}xy,ћOPlainftips1.6cB\dir{>}%ps: SDict begin xyc end" {3392 10 /xy AB}xy" {22.76208 7.11314 dt}xyL6r\dir^{>}pps: SDict begin xyc end" {3392 10 /xy A}xy" {22.76208 7.11314 dt}xy\dir_{>}$+ps: SDict begin xyc end" {3392 10 /xy B}xy" {22.76208 7.11314 dt}xy \dir2{>}Aps: SDict begin xyc end" {3392 /XT tt}xyݞʙ" {20.37592 6.3673 dt}xyG" {20.37592 6.3673 dt}xyjF\dir3{>}NR cps: SDict begin xyc end[}" {-704 F d}xy" {3392 /Xt tT}xys " {19.7078 6.15846 dt}xyM" {19.7078 6.15846 dt}xy2f" {19.7078 6.15846 dt}xy B\dir{<}%ps: SDict begin xyc end" {-704 10 /xy AB}xy" {22.76208 7.11314 dt}xyL6r\dir^{<}pps: SDict begin xyc end" {-704 10 /xy B}xy" {22.76208 7.11314 dt}xy\dir_{<}$+ps: SDict begin xyc end" {-704 10 /xy A}xy" {22.76208 7.11314 dt}xy \dir2{<}Aps: SDict begin xyc end" {-704 /XT tt}xyݞʙ" {20.37592 6.3673 dt}xyG" {20.37592 6.3673 dt}xyjF\dir3{<}NR cps: SDict begin xyc end" {3392 F d}xy" {-704 /Xt tT}xy&P" {19.56209 6.11316 dt}xy(" {19.56209 6.11316 dt}xy" {19.56209 6.11316 dt}xyB\dir{|}%ps: SDict begin xyc end " {3392 st}xy" {22.76208 7.11314 dt}xyL6r\dir^{|}pps: SDict begin xyc endEL:H" {-2752 F d}xy" {22.76208 7.11314 dt}xy\dir_{|}$+ps: SDict begin xyc end" {1344 F d}xy" {22.76208 7.11314 dt}xy \dir2{|}Aps: SDict begin xyc endv " {3392 st}xywW " {3392 st}xyv " {22.76208 7.11314 dt}xywW" {22.76208 7.11314 dt}xyjF\dir3{|} cps: SDict begin xyc end*YQ " {3392 st}xy[ן " {3392 st}xy*YQ" {22.76208 7.11314 dt}xy[ן" {22.76208 7.11314 dt}xy" {22.76208 7.11314 dt}xyB\dir{(}%ps: SDict begin xyc end " {3392 h}xy" {22.76208 7.11314 dt}xyL6r\dir^{(}pps: SDict begin xyc end " {3392 ha}xy" {22.76208 7.11314 dt}xy\dir_{(}$+ps: SDict begin xyc end " {3392 hb}xy" {22.76208 7.11314 dt}xyB\dir{)}%ps: SDict begin xyc end " {-704 h}xy" {22.76208 7.11314 dt}xyL6r\dir^{)}pps: SDict begin xyc end " {-704 hb}xy" {22.76208 7.11314 dt}xy\dir_{)}$+ps: SDict begin xyc end " {-704 ha}xy" {22.76208 7.11314 dt}xyL6r\dir^{`}pps: SDict begin xyc end " {3392 ta}xy" {22.76208 7.11314 dt}xy\dir_{`}$+ps: SDict begin xyc end " {3392 tb}xy" {22.76208 7.11314 dt}xyL6r\dir^{'}pps: SDict begin xyc end " {-704 tb}xy" {22.76208 7.11314 dt}xy\dir_{'}$+ps: SDict begin xyc end " {-704 ta}xy" {22.76208 7.11314 dt}xy%Constructedftips1.6d\dir{>>}&Bps: SDict begin xyc end " {3392 10 /xy AB}xy" {3392 10 /xy AB}xy" {22.76208 7.11314 dt}xyJL\dir^{>>}|#ps: SDict begin xyc end " {3392 10 /xy A}xy" {3392 10 /xy A}xy" {22.76208 7.11314 dt}xyX\dir_{>>}䵉ps: SDict begin xyc end " {3392 10 /xy B}xy" {3392 10 /xy B}xy" {22.76208 7.11314 dt}xy\dir2{>>}Cps: SDict begin xyc end " {3392 /XT tt}xy" {3392 /XT tt}xyө" {20.26208 6.3319 dt}xywW" {20.26208 6.3319 dt}xyjK~\dir3{>>}NRUps: SDict begin xyc end Sc" {-704 F d}xy " {3392 /Xt tT}xy[}" {-704 F d}xy" {3392 /Xt tT}xy&P" {19.56209 6.11316 dt}xy(" {19.56209 6.11316 dt}xy" {19.56209 6.11316 dt}xy\dir{<<}&Bps: SDict begin xyc end " {-704 10 /xy AB}xy" {-704 10 /xy AB}xy" {22.76208 7.11314 dt}xyJL\dir^{<<}|#ps: SDict begin xyc end " {-704 10 /xy B}xy" {-704 10 /xy B}xy" {22.76208 7.11314 dt}xyX\dir_{<<}䵉ps: SDict begin xyc end " {-704 10 /xy A}xy" {-704 10 /xy A}xy" {22.76208 7.11314 dt}xy\dir2{<<}Cps: SDict begin xyc end " {-704 /XT tt}xy" {-704 /XT tt}xyө" {20.26208 6.3319 dt}xywW" {20.26208 6.3319 dt}xyjK~\dir3{<<}NRUps: SDict begin xyc end " {3392 F d}xy " {-704 /Xt tT}xy" {3392 F d}xy" {-704 /Xt tT}xy&P" {19.56209 6.11316 dt}xy(" {19.56209 6.11316 dt}xy" {19.56209 6.11316 dt}xy\dir{||}&Bps: SDict begin xyc endi " {3392 st}xy " {3392 st}xy" {22.76208 7.11314 dt}xyJL\dir^{||}|#ps: SDict begin xyc end\" {-2752 F d}xyEL:H" {-2752 F d}xy" {22.76208 7.11314 dt}xyX\dir_{||}䵉ps: SDict begin xyc endi" {1344 F d}xy" {1344 F d}xy" {22.76208 7.11314 dt}xy\dir2{||}Cps: SDict begin xyc end h " {3392 st}xyv " {3392 st}xy&ȟ " {3392 st}xywW " {3392 st}xyv " {22.76208 7.11314 dt}xywW" {22.76208 7.11314 dt}xyjK~\dir3{||}Ups: SDict begin xyc endA " {3392 st}xy*YQ " {3392 st}xys(n " {3392 st}xy[ן " {3392 st}xy*YQ" {22.76208 7.11314 dt}xy[ן" {22.76208 7.11314 dt}xy" {22.76208 7.11314 dt}xy\dir{|-}&Bps: SDict begin xyc end " {3392 st}xy" {3392 F d}xy" {22.76208 7.11314 dt}xyJL\dir^{|-}|#ps: SDict begin xyc endEL:H" {-2752 F d}xy" {3392 F d}xy" {22.76208 7.11314 dt}xyX\dir_{|-}䵉ps: SDict begin xyc end" {1344 F d}xy" {3392 F d}xy" {22.76208 7.11314 dt}xy\dir2{|-}Cps: SDict begin xyc endv " {3392 st}xyv " {3392 F d}xywW " {3392 st}xywW" {3392 F d}xyv " {22.76208 7.11314 dt}xywW" {22.76208 7.11314 dt}xyjK~\dir3{|-}Ups: SDict begin xyc end*YQ " {3392 st}xy*YQ" {3392 F d}xy[ן " {3392 st}xy[ן" {3392 F d}xy " {3392 st}xy" {3392 F d}xy*YQ" {22.76208 7.11314 dt}xy[ן" {22.76208 7.11314 dt}xy" {22.76208 7.11314 dt}xy\dir{>|}&Bps: SDict begin xyc end " {3392 st}xy" {3392 10 /xy AB}xy" {22.76208 7.11314 dt}xyJL\dir{>>|}|#ps: SDict begin xyc end " {3392 st}xy " {3392 10 /xy AB}xy" {3392 10 /xy AB}xy" {22.76208 7.11314 dt}xy\\dir{|<}䵉ps: SDict begin xyc end " {-704 st}xy" {-704 10 /xy AB}xy" {22.76208 7.11314 dt}xy\dir{|<<}Cps: SDict begin xyc end " {-704 st}xy " {-704 10 /xy AB}xy" {-704 10 /xy AB}xy" {22.76208 7.11314 dt}xyu\dir{*}Ups: SDict begin xyc endK" {22.76208 7.11314 dt}xye:\dir{+}&Bps: SDict begin xyc end " {3392 st}xy`:" {3392 F d}xy" {22.76208 7.11314 dt}xyU\dir{x}|#ps: SDict begin xyc end" {-3608 st}xy՟5<" {-3608 F d}xy" {22.76208 7.11314 dt}xy\dir{/}䵉ps: SDict begin xyc end " {3084 st}xy" {22.76208 7.11314 dt}xyQ\dir{//}Cps: SDict begin xyc end " {3084 st}xy " {3084 st}xy" {22.76208 7.11314 dt}xyu\dir{o}Ups: SDict begin xyc endK" {22.76208 7.11314 dt}xy#vFFiguref1.7:KernellibraryhdiriectionalsH|*tj72+_%CHAPTERf1.CKERNEL:XY.DOC??hwinweitherofthet!wowformsa!vdDailableineachdirectionasapplicable:connectinga toa4ffffff33ff33ff S(typMesetby **\dir hdiri)andasatipattheendofadottedconnectionofthesamevdDarian!t(i.e.,stypMesetbythehpMosif**\dir&$bhvdDarian!ti{.}d?>$ *\dir@phdiri).As'aspMecialcaseanen!tirehobjectiisallowedasahdiribystartingitwitha*C:w\dir*$bisequivdDalenttof\object.Setup: U\dirt2startsanhobjectiandpassescon!troltoa` nisher'named\dirrhvdDarianti{hmaini} 3ܹoth-erwisetotheonecorrespMondingtoanhempt!yihvdDarianti.ThekernelonesdescribMedherehaveincommonfthattheymak!euseofthegeneric\straight@@pde nedinx1.8.3.P5035\xydef@\dir{\hbox\bgroup\xyFN@\dir@i}5037\xydef@\dir@i{\ifx*\next\DN@*{\resetStyle@\object@}% 5038 m\else\let\next@=\dir@ii\fi\next@}5040\xydef@\dir@ii#1#{\dir@{#1}}5042\xydef@\dir@#1#2{\DN@{dir#1{#2}}%5043K\expandafter\let\expandafter\next\csname\codeof\next@\endcsname5044K\ifx\next\relax\DN@{dir{#2}}%5045 m\expandafter\let\expandafter\next\csname\codeof\next@\endcsname5046 m\ifx\next\relax\DN@{\dir#1{#2}}%5047\xyerror@{illegal:\codeof\next@\spacenotdefined}{}%5048\let\next=\no@\fi\fi\next}!;Notes1.6a.=Yeoul;ma!yuse\dir{}+Vrfora\dummy"directionalobject(infactthisisusedautomaticallyby**{} ).үThisisusefulforauniformtreatmen!tofconnections,e.g.,makingthe? dhpMosiableto ndafpMoin!tonthestraightlinefromptocwithoutactuallytypMesettinganything.荑Usesanempt!ydroppping,the\no@@& ^connection.>AllthevdDariantsarede nedforoptimisationreasonsfanditisalsonamed\dir{}/rtoallo!wspuriousspaces:5070\xydefcsname@{dir{}}{\no@}5072\xyletcsnamecsname@{dir0{}}{dir{}}5073\xyletcsnamecsname@{dir1{}}{dir{}}5074\xyletcsnamecsname@{dir^{}}{dir{}}5075\xyletcsnamecsname@{dir_{}}{dir{}}5076\xyletcsnamecsname@{dir2{}}{dir{}}5077\xyletcsnamecsname@{dir3{}}{dir{}}5079\xyletcsnamecsname@{dir{}}{dir{}}5081\xydef@\no@{\egroup\czeroEdge@%\Invisible@false\Hidden@false%%%%HACK?5082K\def\Leftness@{.5}\def\Upness@{.5}%5083K\def\Drop@@{\setbox\z@=\copy\voidb@x}\def\Connect@@{\no@@}}u$1.6b.The6plain_cponnectorsNgroupcon!tainsbasicdirectionalsthatlendthemselftosimpleconnections.荑TheJ$bulkofthecoMdeisinfactinthedescriptionofthese.Firsteac!hofthethreetypMes|lines,dots,fandsquiggles|thenthecoMdefordoublingandtripling. Lines: 5AQsingleQ\dir{-}.&objectQisadashinthecurren!tdirection:buildbMoxwithcharacterCAofthesemidirectional\xydashfont; 0usethec!haractersnaturalwidthw andconstructaheight/depthI*tj1.6.CKERNELfOBJECTLIBRAReY*73??hwfromfd =jRsin(\Direction9|)jZeemi(where1emʹisthedashlength,cf.xydash10.mfBⴹ)asfollo!ws:0JQJC\LRY0DU ipif ,/01:::lŹ30|m0wK04&d dYy< 0ob311:::lŹ63|m0w/dPݹ0 dYy> 0ob641:::lŹ95|m0w/dPݹ0 ctdX< 0961:::lŹ127|m0wK04&d ctdX< 0wheren ipmeansshiftthebMo!xoppositev!erticallyandhorizontallye,:i.e.,(L;1R;DM;U1) :=(R;1L;U';DM޹), andfthenlo!werfthebMo!xDnU1.Prpocedureҡ:-(l.5132|)AComputed,8(l.5133)setDM;1U1,8and ipcondition,(l.5137|)buildbMo!xtogetwKn;1L;R,(l.5139|)!dumpbMo!xthatis ippedifconditionholds,;and(l.5148|) nallysetuptherequiredparameterspropMerlye.P5125\xydefcsname@{dir1{-}}{\line@}5126\xydefcsname@{dir2{-}}{\line@\double@\xydashh@}5127\xydefcsname@{dir3{-}}{\line@\triple@\xydashh@}5128\xyletcsnamecsname@{dir0{-}}{dir{}}5129\xyletcsnamecsname@{dir{-}}{dir1{-}}5130\xyletcsnamecsname@{dir{=}}{dir2{-}}5132\xydef@\line@{\dimen@=\sd@Y\sinDirection\xydashl@5133 m\ifnum\SemiDirectionChar<31\D@c=\z@\U@c=\dimen@\DN@{\d@Y<\z@}%5134 m\else\ifnum\SemiDirectionChar<64\D@c=\dimen@\U@c=\z@\DN@{\z@<\d@Y}%5135 m\else\ifnum\SemiDirectionChar<96\D@c=\dimen@\U@c=\z@\DN@{\d@X<\z@}%5136 m\else\D@c=\z@\U@c=\dimen@\DN@{\d@X<\z@}\fi\fi\fi5137 m\setboxz@h{\line@@}\ht\z@=\U@c\dp\z@=\D@c5138 m\L@c=\z@\R@c=\wdz@5139 m\ifdim\next@\dimen@=\R@c\R@c=\L@c\L@c=\dimen@5140\dimen@=\U@c\U@c=\D@c\D@c=\dimen@\advance\dimen@-\U@c5141\lower\dimen@\boxz@5142 m\else\boxz@\fi5143%5144%\ifnum\SemiDirectionChar=31\relax5145%\W@{LINE@(\the\SemiDirectionChar):WH=<\the\L@c+\the\R@c,\the\D@c+\the\U@c>;5146%#id=<\the\d@X,\the\d@Y>}\fi5147%5148 m\edef\tmp@{\egroup\U@c=\the\U@c\D@c=\the\D@c\L@c=\the\L@c\R@c=\the\R@c}%5149K\tmp@5150K\Edge@c={\rectangleEdge}%%%%%\Invisible@false\Hidden@false5151K\ifdim\z@<\U@c\def\Upness@{1}\else\def\Upness@{0}\fi5152K\ifdim\z@<\L@c\def\Leftness@{1}\else\def\Leftness@{0}\fi5153K\def\Drop@@{\styledboxz@}\def\Connect@@{\solid@}}5155\xydef@\line@@{{\xydashfont\SemiDirectionChar\/}}W{Bug:\line@.Y\shouldpallo!wthesizeoftheobjecttobMechangedaftertypMesetting|thisshouldmak!ef\Connect@@@pdofdashing.Hm.Asi[men!tionedabMoveadashwill`Connect'tomakelinesbyusingruleswhenstrictlyhorizontalorv!ertical.Thisfiscontrolledbyenablingordisablingthetest\ifjusthvtest@WdiscussedbMelow.5166\xydef@\solid@{%5167%J*tj74+_%CHAPTERf1.CKERNEL:XY.DOC??hw5168%\W@{SOLID}\xystatus@:% 5169%5170K\checkXy@rules@\solidhrule@\solidvrule@{\straight@\solidSpread@}}P5172\xydef@\checkXy@rules@#1#2#3{%5173K\dimen@=\Y@c\advance\dimen@-\Y@p5174K\ifjusthvtest@.05pt>\ifdim\dimen@<\z@-\fi\dimen@\DN@{#1}%5175K\else\dimen@=\X@c\advance\dimen@-\X@p5176 m\ifjusthvtest@.05pt>\ifdim\dimen@<\z@-\fi\dimen@\DN@{#2}%5177 m\else\DN@{#3}\fi\fi\next@}Finallye,pw!ecPgivethealgorithmfor`spreading'thedashesalongasolidline:Rjustaddanextradashsoftheyalw!aysfoverlap(seex1.8.3forapropMerde ntionoftherequirementstospreading).5186\xydef@\solidSpread@{\ifnum\z@<\count@@\advance\count@@\@ne\fi}BydefaultKXYj-picwillt!ypMesethorizontalandvertical\dir{-}0DconnectionsusingT,[wEB Xrules.Un-fortunatelyubrulesisthefeatureoftheD!VIuVformatmostcommonlyhandledwrongbyDVIuVdrivers.ThereforeXY p-picfpro!videsthehdecoriationsJffѲd 砍Ć\NoRulesĆ\UseRulesgffѲd6thatfwillswitc!htheuseofsucho andon.ޢTheyfsimplyrede netheconditionalusedtoselectt!ypMesettingwithrulesin\solid@/rabo!ve:5212\xylet@\ifjusthvtest@=\ifdim5214\xydef@\NoRules{\let\ifjusthvtest@=\iffalse}5215\xydef@\UseRules{\let\ifjusthvtest@=\ifdim}Theactualt!ypMesettingessentiallymeanscalling\drop@,K tobMoxwitharuleoftheappropriatelengthfandwithlinewidthsettothatof\xydashfont(asstoredin\xydashw@7c`).5223\xydef@\solidvrule@{\no@@\solidvrule@typeset\ifHidden@\else\noinsert@\fi5224K\solidvrule@pre}5226\xydef@\solidvrule@pre{%5227%5228%\W@{VRULESETUP}%5229%5230K\def\Cbreak@@{%5231%5232%\W@{VRULECbreak}%5233%5234 m\connectRestore@\swap@\lastbreak@@\swap@5235 m\solidvrule@typeset\edef\lastbreak@@{\cfromthec@}\Creset@@}%5236K\def\Clast@@{%5237%5238%\W@{VRULEClast}%5239%\let\Clast@@=\undefined5240%5241 m\connectRestore@\Creset@@\swap@\lastbreak@@\swap@5242 m\solidvrule@typeset\Creset@@\edef\lastbreak@@{\cfromthep@}}%Ko*tj1.6.CKERNELfOBJECTLIBRAReY*75??hw5243}P5245\xydef@\solidvrule@typeset{% 5246%5247%\W@{VRULETYPESET}\xystatus@cp:%5248%5249K\ifInvisible@\let\next@=\relax\else\let\next@=\solidvrule@typeset@\fi5250K\checkoverlap@@\next@}5252\xydef@\solidvrule@typeset@{{%5253%5254K\advance\X@c\X@p\X@c=.5\X@c\X@p=\X@c5255K\advance\X@c-.5\xydashw@\advance\X@p.5\xydashw@5256%5257K\ifdim\Y@c<\Y@p\advance\Y@c\U@c\advance\Y@p-\D@p5258K\else\swapdimen@\Y@c\Y@p\advance\Y@c\U@p\advance\Y@p-\D@c\fi5259%5260K\Droprule@}}5262\xydef@\solidhrule@{\no@@\solidhrule@typeset\ifHidden@\else\noinsert@\fi5263K\solidhrule@pre}5265\xydef@\solidhrule@pre{%5266%5267%\W@{HRULESETUP}%5268%5269K\def\Cbreak@@{%5270%5271%\W@{HRULECbreak}%5272%5273 m\connectRestore@\swap@\lastbreak@@\swap@5274 m\solidhrule@typeset\edef\lastbreak@@{\cfromthec@}\Creset@@}%5275K\def\Clast@@{%5276%5277%\W@{HRULEClast}%5278%\let\Clast@@=\undefined5279%5280 m\connectRestore@\Creset@@\swap@\lastbreak@@\swap@5281 m\solidhrule@typeset\Creset@@\edef\lastbreak@@{\cfromthep@}}%5282}5284\xydef@\solidhrule@typeset{%5285%5286%\W@{HRULETYPESET}\xystatus@cp:%5287%5288K\ifInvisible@\let\next@=\relax\else\let\next@=\solidhrule@typeset@\fi5289K\checkoverlap@@\next@}5291\xydef@\solidhrule@typeset@{{%5292K\ifdim\X@c<\X@p\advance\X@c\R@c\advance\X@p-\L@p5293K\else\swapdimen@\X@c\X@p\advance\X@c\R@p\advance\X@p-\L@c\fi5294K\advance\Y@c\Y@p\Y@c=.5\Y@c\Y@p=\Y@c5295K\advance\Y@c-.5\xydashw@\advance\Y@p.5\xydashw@L䯠*tj76+_%CHAPTERf1.CKERNEL:XY.DOC??hw5296K\Droprule@}} \Droprule@3/puts&\theactualinkonthepage:withlo!wer&\leftcorneratcanduppMerrigh!tcorner atfp.P5303\xydef@\Droprule@{\advance\X@p-\X@c5304%5305%\W@{:kern\the\X@c\spacewidth\the\X@p\spacedepth-\the\Y@c\space5306%#iheight\the\Y@p}%5307%5308K\setboxz@h{\kern\X@c\vrulewidth\X@pdepth-\Y@cheight\Y@p}%5309K\ht\z@=\z@\wd\z@=\z@\dp\z@=\z@\Drop@@}&Dots: 5\dir{.}6爹createsav!erybMoringdotwhenusedasanhobjecti,butinterestingdottedlineswhenãusedtoconnect.5\zerodotshouldexpandtoazero-sizedbMo!xwithadot(initialisedtouse\zeroJkdotbox@:);thed'hobjectiisbuiltusing\pointlike@Hhtextihspread-dimenithatw!ewilluseagainflater.5321\xydef@\zerodot{\copy\zerodotbox@}5323\xydefcsname@{dir1{.}}{\point@}5324\xydefcsname@{dir2{.}}{\point@\double@\xydashh@}5325\xydefcsname@{dir3{.}}{\point@\triple@\xydashh@}5326\xyletcsnamecsname@{dir0{.}}{dir{}}5327\xyletcsnamecsname@{dir{.}}{dir1{.}}5328\xyletcsnamecsname@{dir{:}}{dir2{.}}5330\xydef@\point@{\pointlike@\zerodot\p@}5332\xydef@\pointlike@#1#2{%5333K\setboxz@h{#1}\wdz@=\z@\ht\z@=\z@\dp\z@=\z@\boxz@\egroup5334%\Invisible@false\Hidden@false5335K\def\Leftness@{.5}\def\Upness@{.5}\ctipEdge@5336K\def\Drop@@{\styledboxz@}\def\Connect@@{\straight@{\dottedSpread@{#2}}}} ThisKisre ectedb!ytherathercomplicatedspreadingroutine:(s`Dotting'istheartofputtingzero-sizedobjectstogetherwithequaldistanceindepMenden!tofthechosendirection.fSowemustrecomputeSthen!umbMerSofsegmen!tsN2(likelytobMeverybigor 1)withtrigonometry;8ZusingrpadiusforftheindividualdotsthisbMecomesEލBl.5366C:A :=jRcos\DirectionPTjUnrpadius BK:= jRsinZ9\DirectionNݝjTPtnrpadiusBl.5369xpifAn+BK> jR\d@Xj"+jy\d@Yx?j$then=oN V:= 2n<.A,B>xFilFlerb$:= hbMo!xfwiththeoriginal llercentered...iBl.5377b<\d@X,\d@Y>:= <\d@X,\d@Y>D+n<\sd@X'[nA,\sd@Y$B>s c 9@:= <QX,Yn> +n<\sd@X'[nA=2,\sd@Y$B=2>Bl.5379_N jR\d@Yj%\dimen@ii\DN@{\count@@=\z@}\fi5372K\next@}P5374\xydef@\dottedSpread@i{%\setupDirection@5375K\global\setbox8=\hboxto\A@{\hss5376 m\kern.5\A@\box\lastobjectbox@\kern.5\A@\hss}\dp8=.5\B@\ht8=.5\B@5377K\advance\d@X\sd@X\A@\advance\d@Y\sd@Y\B@5378K\advance\X@c\sd@X.5\A@\advance\Y@c\sd@Y.5\B@5379K\ifdim\sd@Y\d@Y<\sd@X\d@X\dimen@=\sd@X\d@X5380 m\ifdim\zz@\A@\else\divide\dimen@\A@\fi\count@@=\dimen@5381K\else\dimen@=\sd@Y\d@Y5382 m\ifdim\zz@\B@\else\divide\dimen@\B@\fi\count@@=\dimen@5383K\fi\advance\count@@\@ne}aSAparticularaspMectofthisisthatw!ehavetoenlargeandrecentertheactualbMoxusedforthet!ypMesettingf(\lastobjectbox@V:). Squiggles: 5ThesenarejustalotofbMo!xmaneuveringusingthedirectionalcharactersof\xybsqlfont(seefxybsql10.mfFforfdetails):5396\xydefcsname@{dir1{~}}{\squiggle@}5397\xydefcsname@{dir2{~}}{\squiggle@\double@\xybsqlh@}5398\xydefcsname@{dir3{~}}{\squiggle@\triple@\xybsqlh@}5399\xyletcsnamecsname@{dir0{~}}{dir{}}5400\xyletcsnamecsname@{dir{~}}{dir1{~}}5402\xydef@\squiggle@{\xybsqlfont5403 m\dimen@=\sd@X\cosDirection\xybsqll@\advance\dimen@.1\p@5404 m\dimen@ii=\sd@Y\sinDirection\xybsqll@5405 m\kern\dimen@\squiggle@@5406K\edef\tmp@{\egroup\U@c=\the\dimen@ii\L@c=\the\dimen@}\tmp@5407K\wdz@=2\L@c\R@c=\L@c\ht\z@=\U@c T\D@c=\U@c\dp\z@=\U@c5408K\Edge@c={\rectangleEdge}%5409%\Invisible@false\Hidden@false5410K\def\Leftness@{.5}\def\Upness@{.5}%5411K\def\Drop@@{\styledboxz@}\def\Connect@@{\straight@\squiggledSpread@}}5413\xydef@\squiggle@@{\DirectionChar\count@=\DirectionChar5414K\advance\count@-64\ifnum\count@<\z@\advance\count@128\fi\char\count@}aSThein!terestingbitisthattheyspreadbynotspreading, i.e.,bycenteringbMetweentheendpMoints|thisfmeans*.3X柹:= XJnd=2;1dX:=dXJndd>where+d =\sd@X(j dXj%nNA+.1ptm) 3Yy:= Ynd=2;1dY:=dYndd>where+d =\sd@Y(j dYnj]nNB+.1ptm) *5429\xydef@\squiggledSpread@{%5430K\dimen@=\d@X\advance\dimen@-\sd@X\count@@\A@\advance\dimen@\sd@X.3\p@5431K\advance\X@c-.5\dimen@\advance\d@X-\dimen@5432K\dimen@=\d@Y\advance\dimen@-\sd@Y\count@@\B@\advance\dimen@\sd@Y.3\p@5433K\advance\Y@c-.5\dimen@\advance\d@Y-\dimen@}N*tj78+_%CHAPTERf1.CKERNEL:XY.DOC??hwDoubleAjandtripledirectionals: 5AsScanbMeseenb!ythelasttwocolumns,these(andmostof theKotherconnectors)alsoexistindoubleandtriplev!ersionswitha2 .@ora3prepMendedtothename.Feorscon!venience\dir{=}1#and\dir{:}aresynon!ymsfor\dir2{-}6Zand\dir2{.}2pU,-respMectively;similarlyf\dir{==}5Jisfasynon!ymfor\dir2{--}7c`. TThisΏisv!erysimple,really:q\double@5=ѹand\triple@3ndotheworkbyrede ningthe\Drop@@-ĹmethoMdtodoitsjobt!wiceandthrice.T\oDo:Rtshouldprobablyextendanyalreadyde ned\Drop@@methoMd?P5455%\xydef@\double@#1{\edef\Drop@@{\dimen@=#1\relax5456% T\dimen@=.5\dimen@\A@=-\sinDirection\dimen@\B@=\cosDirection\dimen@5457% T\setbox2=\hbox{\kern\A@\raise\B@\copy\z@}\dp2=\z@\ht2=\z@\wd2=\z@\box2%5458% T\setbox2=\hbox{\kern-\A@\raise-\B@\boxz@}\dp2=\z@\ht2=\z@\wd2=\z@\box2}}5460%\xydef@\triple@#1{\edef\Drop@@{\dimen@=#1\relax5461% T\A@=-\sinDirection\dimen@\B@=\cosDirection\dimen@5462% T\setbox2=\hbox{\kern\A@\raise\B@\copy\z@}\dp2=\z@\ht2=\z@\wd2=\z@\box2%5463% T\setbox2=\hbox{\kern-\A@\raise-\B@\copy\z@}\dp2=\z@\ht2=\z@\wd2=\z@\box25464% T\dp\z@=\z@\ht\z@=\z@\wdz@=\z@\boxz@}}5466\xydef@\double@#1{\edef\Drop@@{\dimen@=#1\relax5467 m\dimen@=.5\dimen@\A@=-\sinDirection\dimen@\B@=\cosDirection\dimen@5468 m\setboxz@h{\setbox2=\hbox{\kern\A@\raise\B@\copy\z@}%5469\dp2=\z@\ht2=\z@\wd2=\z@\box2%5470\setbox2=\hbox{\kern-\A@\raise-\B@\noexpand\boxz@}%5471\dp2=\z@\ht2=\z@\wd2=\z@\box2}%5472 m\ht\z@=\z@\dp\z@=\z@\wd\z@=\z@\noexpand\styledboxz@}}5474\xydef@\triple@#1{\edef\Drop@@{\dimen@=#1\relax5475 m\A@=-\sinDirection\dimen@\B@=\cosDirection\dimen@5476 m\setboxz@h{\setbox2=\hbox{\kern\A@\raise\B@\copy\z@}%5477\dp2=\z@\ht2=\z@\wd2=\z@\box2%5478\setbox2=\hbox{\kern-\A@\raise-\B@\copy\z@}%5479\dp2=\z@\ht2=\z@\wd2=\z@\box2%5480\dp\z@=\z@\ht\z@=\z@\wdz@=\z@\noexpand\boxz@}%5481 m\ht\z@=\z@\dp\z@=\z@\wd\z@=\z@\noexpand\styledboxz@}}U鈍Dashing2directionals: 5Firstftraditionaldashing:5491\xydefcsname@{dir1{--}}{\dash@}5492\xydefcsname@{dir2{--}}{\dash@\double@\xydashh@}5493\xydefcsname@{dir3{--}}{\dash@\triple@\xydashh@}5494\xyletcsnamecsname@{dir0{--}}{dir{}}5495\xyletcsnamecsname@{dir{--}}{dir1{--}}5496\xyletcsnamecsname@{dir{==}}{dir2{--}}5498\xydef@\dash@{\line@\wdz@=2\wdz@\ht\z@=2\ht\z@\dp\z@=2\dp\z@5499K\multiply\D@c\tw@\multiply\U@c\tw@\multiply\L@c\tw@\multiply\R@c\tw@5500K\def\Connect@@{\straight@\dashedSpread@}}O *tj1.6.CKERNELfOBJECTLIBRAReY*79??hwSincefthedashesshouldreac!htheendpMointswedothis:.8*QiflN 0fthenTN:=N+n1 dX柹:= dXJ+nd=2fwherpe# `d=\sd@XAdYy:= dY۹+nd=2fwherpe# `d=\sd@YBifldX> 0fthenTX:=XJ+nA=2Yy:= Y۹+n\sd@Y->A=225514\xydef@\dashedSpread@{\ifnum\z@<\count@@\advance\count@@\@ne\fi 5515K\advance\d@X\sd@X.5\A@\advance\d@Y\sd@Y.5\B@5516K\ifdim\z@<\d@X\advance\X@c.5\A@\fi\advance\Y@c\sd@Y.5\B@} @Dashedfdashingofsquiggledlinesaresimplersincesquigglesaresymmetric:P5523\xydefcsname@{dir1{~~}}{\dashsquiggle@}5524\xydefcsname@{dir2{~~}}{\dashsquiggle@\double@\xybsqlh@}5525\xydefcsname@{dir3{~~}}{\dashsquiggle@\triple@\xybsqlh@}5526\xyletcsnamecsname@{dir0{~~}}{dir{}}5527\xyletcsnamecsname@{dir{~~}}{dir1{~~}}5529\xydef@\dashsquiggle@{\squiggle@5530K\multiply\D@c\tw@\multiply\U@c\tw@\multiply\L@c\tw@\multiply\R@c\tw@5531K\dimen@=\L@c\advance\dimen@\R@c\wdz@=\dimen@\ht\z@=\U@c\dp\z@=\D@c5532K\def\Connect@@{\straight@\dashsquiggledSpread@}} @Thespreadingofsquigglesissimilarlysimpler:w!ejustshave1=4squigglesizeofeachendoftheconectionfinordertoeliminatetheblankspaceatbMothends:5540\xydef@\dashsquiggledSpread@{\ifnum\z@<\count@@\advance\count@@\@ne\fi5541K\advance\X@c.5\A@\advance\d@X.5\A@\advance\Y@c.25\B@\advance\d@Y.5\B@} @Finallyf\dasheddotting"synon!yms:5547\xyletcsnamecsname@{dir1{..}}{dir{.}}5548\xyletcsnamecsname@{dir2{..}}{dir2{.}}5549\xyletcsnamecsname@{dir3{..}}{dir3{.}}5550\xyletcsnamecsname@{dir{..}}{dir1{.}}5551\xyletcsnamecsname@{dir{::}}{dir2{.}}1.6c.rThe groupofplainWdtips$con!tainsbasicobjectsthatareusefulasmarkersandarrowheadsmakingconnections,fsoeac!hisshownattheendofadottedconnectionoftheappropriatekind.SRTheyfma!yalsobMeusedasconnectorsandwillbuilddottedconnections.e.g.,**@{>})ȹtypMesetsX+\ps: SDict begin xyc end"sޟի" {3379 10 /xy AB}xyq" {3379 10 /xy AB}xyRG7" {3379 10 /xy AB}xya" {3379 10 /xy AB}xy Ɵ" {3379 10 /xy AB}xyq" {3379 10 /xy AB}xy&E0Exercise21.14: 5T!ypMesetfthefollowingtwo+sandatiltedsquare:Q~ps: SDict begin xyc end$+R+Tu" {3584 F d}xyܟ)" {-2560 F d}xyf/" {-2560 F d}xyf/" {3584 F d}xy荑Hint :thefdashcreatedb!y\dir{-}/rhasthelength5ptʹ(here).5595\xylet@\ctipEdge@=\czeroEdge@ @T\oDo:Change tipstoha!ve atin!ysizeof2spwhichmaybMetakenasanindicationthatitisatipf(thiscanbMeusedb!ysomefeatures,e.g.,`arrow').PQ*tj80+_%CHAPTERf1.CKERNEL:XY.DOC??hwArrotwkkheads: 5Theonesin!tendedforsingleconnectionsarejustcharactersfrom\xyatipfont andf\xybtipfont.P5608\xydefcsname@{dir1{>}}{\tip@}5609\xydefcsname@{dir^{>}}{\atip@}5610\xydefcsname@{dir_{>}}{\btip@}5611\xyletcsnamecsname@{dir0{>}}{dir{}}5612\xyletcsnamecsname@{dir{>}}{dir1{>}}5614\xydefcsname@{dir1{<}}{\reverseDirection@\tip@}5615\xydefcsname@{dir^{<}}{\reverseDirection@\btip@}5616\xydefcsname@{dir_{<}}{\reverseDirection@\atip@}5617\xyletcsnamecsname@{dir0{<}}{dir{}}5618\xyletcsnamecsname@{dir{<}}{dir1{<}}5620\xydef@\tip@{\tip@x\tip@@}5621\xydef@\atip@{\tip@x\atip@@}5622\xydef@\btip@{\tip@x\btip@@}5624\xydef@\tip@x#1{#1\egroup5625K\ctipEdge@%\Invisible@false\Hidden@false5626K\def\Leftness@{.5}\def\Upness@{.5}%5627K\def\Drop@@{\styledboxz@}\def\Connect@@{\straight@{\dottedSpread@\jot}}}5629\xydef@\tip@@{\atip@@\btip@@}5630\xydef@\atip@@{\xyatipfont\DirectionChar}5631\xydef@\btip@@{\xybtipfont\DirectionChar}b_DoubleOandtripletipsarerealisedb!ytakingthetwohalfsand`wringingthemapart';asthenamingindicates#theyaremean!ttobMeputattheendof2 T͹-and3-connections.Thisiscurren!tlydonethesligh!tlyhacky(butecient)wayofaddingdirectlyto\DirectionChar;)maybMethisshouldbeusingf\vDirection@H^?5641\xydefcsname@{dir2{>}}{\Tip@}5642\xydefcsname@{dir2{<}}{\reverseDirection@\Tip@}5644\xydef@\Tip@{\kern2.5pt\vruleheight2.5ptdepth2.5ptwidth\z@5645K\Tip@@\kern2.5pt\egroup5646K\U@c=2.5pt\D@c=2.5pt\L@c=2.5pt\R@c=2.5pt\Edge@c={\circleEdge}%5647%\Invisible@false\Hidden@false5648K\def\Leftness@{.5}\def\Upness@{.5}%5649K\def\Drop@@{\styledboxz@}\def\Connect@@{\straight@{\dottedSpread@\jot}}}5651\xydef@\Tip@@{\count@=\DirectionChar5652K\advance\count@-4\ifnum\count@<\z@\advance\count@128\fi5653K\xyatipfont\char\count@5654K\advance\count@8\ifnum127<\count@\advance\count@-128\fi5655K\xybtipfont\char\count@}5657\xydefcsname@{dir3{>}}{\Ttip@}5658\xydefcsname@{dir3{<}}{\composite@{}{:(-1,0)\dir3{>}}}5660\xydef@\Ttip@{\kern3.2pt\vruleheight3.2ptdepth3.2ptwidth\z@5661K\Ttip@@\kern3.2pt\egroup5662K\U@c=3.2pt\D@c=3.2pt\L@c=3.2pt\R@c=3.2pt\Edge@c={\circleEdge}%5663%\Invisible@false\Hidden@falseQ%p*tj1.6.CKERNELfOBJECTLIBRAReY*81??hw5664K\def\Leftness@{.5}\def\Upness@{.5}% 5665K\def\Drop@@{\styledboxz@}\def\Connect@@{\straight@{\dottedSpread@\jot}}}P5667\xydef@\Ttip@@{%5668K\setboxz@h\bgroup\reverseDirection@\line@\wdz@=\z@\ht\z@=\z@\dp\z@=\z@5669K\kern-\L@c\boxz@\kern\L@c5670K{\vDirection@(1,-.31)\xydashl@\xyatipfont\char\DirectionChar}%5671K{\vDirection@(1,+.31)\xydashl@\xybtipfont\char\DirectionChar}}(΅StoppYer: 5\dir{'|-q1}6mak!es&a`stoppMer'usingjusttheappropriate\xydashfontcharacterrotated90 andGcen!tered;Gthe^Nand_vdDarian!tsarejustshiftedappropriatelyandtwoareusedtomakethef2 vandf3vdDarian!tsflonger.5682\xydefcsname@{dir1{|}}{\stopper@}5683\xydefcsname@{dir^{|}}{\aboveDirection@\xydashl@5684K\shiftdir@\line@\z@\pointlike@{}\xydashh@}5685\xydefcsname@{dir_{|}}{\belowDirection@\xydashl@5686K\shiftdir@\line@\z@\pointlike@{}\xydashh@}5687\xydefcsname@{dir2{|}}{\stopper@\double@\xydashh@}5688\xydefcsname@{dir3{|}}{\stopper@\double@{2\xydashh@}}5690\xyletcsnamecsname@{dir0{|}}{dir{}}5691\xyletcsnamecsname@{dir{|}}{dir1{|}}5693\xydef@\stopper@{\tip@x\stopper@@}5695\xydef@\stopper@@{\setboxz@h{\count@=\SemiDirectionChar\advance\count@64%5696 m\ifnum127<\count@\advance\count@-128\fi\xydashfont\char\count@\/}%5697K\setboxz@h{\kern-.5\wdz@\dimen@=\sd@Y\cosDirection\xydashl@5698 m\ifnum\SemiDirectionChar=95\dimen@=\sd@X\sd@Y\dimen@\fi5699 m\raise.5\dimen@\boxz@}%5700K\wdz@=\z@\ht\z@=\z@\dp\z@=\z@\boxz@}(΅HoYoks: 5ThesearehalfcirclesopMeningto!wardsoropposite\Directionandfastenedb!ytheircen!tert2oreitherendpMoint. GABuildbylotsofbMoxmanipulationwiththe\xybsqlfontquartercircles.3.. @ ^5710\xydefcsname@{dir1{(}}{\hook@}5711\xydefcsname@{dir^{(}}{\ahook@}5712\xydefcsname@{dir_{(}}{\bhook@}5713\xyletcsnamecsname@{dir0{(}}{dir{}}5714\xyletcsnamecsname@{dir{(}}{dir1{(}}5716\xydefcsname@{dir1{)}}{\reverseDirection@\hook@}5717\xydefcsname@{dir^{)}}{\reverseDirection@\bhook@}5718\xydefcsname@{dir_{)}}{\reverseDirection@\ahook@}5719\xyletcsnamecsname@{dir0{)}}{dir{}}5720\xyletcsnamecsname@{dir{)}}{dir1{)}}5722\xydef@\hook@{\tip@x\hook@@}5723\xydef@\hook@@{\setboxz@h{\xybsqlfont5724 m\vDirection@(1,-1){.707107\xybsqll@}%5725 m\hbox{\DirectionCharR1*tj82+_%CHAPTERf1.CKERNEL:XY.DOC??hw5726\kern-\d@Y\raise\d@X\hbox{\count@=\DirectionChar\advance\count@-32% 5727 \ifnum\count@<\z@\advance\count@128\fi\char\count@}}}%5728K\wdz@=\z@\ht\z@=\z@\dp\z@=\z@\boxz@}P5730\xydef@\ahook@{\tip@x\ahook@@}5731\xydef@\ahook@@{\setboxz@h{\xybsqlfont5732 m\vDirection@(1,-1){.707107\xybsqll@}\kern-\d@X5733 m\lower\d@Y\hbox{\DirectionChar5734\kern-\d@Y\raise\d@X\hbox{\count@=\DirectionChar\advance\count@-32%5735 \ifnum\count@<\z@\advance\count@128\fi\char\count@}}}%5736K\wdz@=\z@\ht\z@=\z@\dp\z@=\z@\boxz@}5738\xydef@\bhook@{\tip@x\bhook@@}5739\xydef@\bhook@@{\setboxz@h{\xybsqlfont5740 m\vDirection@(-1,-1){.707107\xybsqll@}\DirectionChar5741 m\kern\d@X\raise\d@Y\hbox{\count@=\DirectionChar\advance\count@-96%5742\ifnum\count@<\z@\advance\count@128\fi\char\count@}}%5743K\wdz@=\z@\ht\z@=\z@\dp\z@=\z@\boxz@}'+QuarterVturns: 5Thesearequartercirclesfastenedb!ytheirstartorendpMointin\Direction.Build6>b!ybMoxmanipulationofthe\xybsqlfontquartercircles. eTheintentionisthatthe`'directionalsfarehalfthecorrespMonding() directional.5754\xydefcsname@{dir^{'}}{\reverseDirection@\bturn@}5755\xydefcsname@{dir_{'}}{\reverseDirection@\aturn@}5757\xydefcsname@{dir^{`}}{\aturn@}5758\xydefcsname@{dir_{`}}{\bturn@}5760\xydef@\aturn@{\tip@x\aturn@@}5761\xydef@\aturn@@{\setboxz@h{\xybsqlfont5762 m\vDirection@(1,-1){.707107\xybsqll@}\kern-\d@X5763 m\lower\d@Y\hbox{\DirectionChar}}%5764K\wdz@=\z@\ht\z@=\z@\dp\z@=\z@\boxz@}5766\xydef@\bturn@{\tip@x\bturn@@}5767\xydef@\bturn@@{\setboxz@h{\xybsqlfont5768 m\vDirection@(-1,-1){.707107\xybsqll@}\DirectionChar}%5769K\wdz@=\z@\ht\z@=\z@\dp\z@=\z@\boxz@}21.6d.Thesetipsarecom!binationsoftheplaintipsprovidedforconvenience(andoptimisedfore-ciency).NewfonescanbMeconstructedusing\compositeandb!ydeclarationsoftheformrffѲd \newdirfhdiri{ fhcompMositei}NffѲdwhic!hfde nes\dirhdiriasthehcompMositei(seenote1.4dforthedetails).ho\newdirfissimple:5795\xydef@\newdir#1#{\newdir@{#1}}5797\xydef@\newdir@#1#2#3{\xydefcsname@{dir#1{#2}}{\composite@{}{#3}}}]ThenӠthesomewhatmoreecien!t\shiftdir@C#usedinternallyformovingatipinthecurrentdirection|itQ{doMessob!ymakingalocalh!boxQ{withinwhic!htheargumenttipisconstructedandS=*tj1.6.CKERNELfOBJECTLIBRAReY*83??hwsubsequen!tlyfshiftedandmadeofzerosize.Useas`\shiftdir@/htip@iGhdimeni [htip@iwherefhtip@imeansatipcommandwithouttheleading\hbox{&$b.P5810\xydef@\shiftdir@#1#2{% 5811K\setbox\z@=\hbox\bgroup#1\relax5812K\setboxz@h{\dimen@ii=#2\relax5813 m\dimen@=-\cosDirection\dimen@ii\advance\dimen@-\L@c5814 m\kern\dimen@\lower\sinDirection\dimen@ii\boxz@}%5815K\wdz@\z@\ht\z@=\z@\dp\z@=\z@\boxz@}0Thennthetips,yJwiththe\tipjot@4VhoMokallo!wingchangingthespacingoftipsusedforsinglelines.5822\xylet@\tipjot@=\jot5824\xydefcsname@{dir1{>>}}{\shiftdir@\tip@\tipjot@\tip@}5825\xydefcsname@{dir^{>>}}{\shiftdir@\atip@\tipjot@\atip@}5826\xydefcsname@{dir_{>>}}{\shiftdir@\btip@\tipjot@\btip@}5827\xydefcsname@{dir2{>>}}{\composite@{}{h!/\tipjot@/\dir2{>}*\dir2{>}}}5828\xydefcsname@{dir3{>>}}{\composite@{}{h!/\tipjot@/\dir3{>}*\dir3{>}}}5829\xyletcsnamecsname@{dir0{>>}}{dir{}}5830\xyletcsnamecsname@{dir{>>}}{dir1{>>}}5832\xydefcsname@{dir1{<<}}{\reverseDirection@\shiftdir@\tip@\tipjot@\tip@}5833\xydefcsname@{dir^{<<}}{\reverseDirection@\shiftdir@\btip@\tipjot@\btip@}5834\xydefcsname@{dir_{<<}}{\reverseDirection@\shiftdir@\atip@\tipjot@\atip@}5835\xydefcsname@{dir2{<<}}{\composite@{}{h!/-\tipjot@/\dir2{<}*\dir2{<}}}5836\xydefcsname@{dir3{<<}}{\composite@{}{h!/-\tipjot@/\dir3{<}*\dir3{<}}}5837\xyletcsnamecsname@{dir0{<<}}{dir{}}5838\xyletcsnamecsname@{dir{<<}}{dir1{<<}}5840\xydefcsname@{dir1{||}}{\shiftdir@\stopper@\xydashh@\shiftdir@\stopper@\z@5841K\pointlike@{}\jot}5842\xydefcsname@{dir^{||}}{\shiftdir@{\aboveDirection@\xydashl@\line@}\xydashh@5843K\shiftdir@{\aboveDirection@\xydashl@\line@}\z@\pointlike@{}\jot}5844\xydefcsname@{dir_{||}}{\shiftdir@{\belowDirection@\xydashl@\line@}\xydashh@5845K\shiftdir@{\belowDirection@\xydashl@\line@}\z@\pointlike@{}\jot}5846\xydefcsname@{dir2{||}}{\shiftdir@\stopper@\xydashh@\shiftdir@\stopper@\z@5847K\pointlike@{}\jot\double@\xydashh@}5848\xydefcsname@{dir3{||}}{\shiftdir@\stopper@\xydashh@\shiftdir@\stopper@\z@5849K\pointlike@{}\jot\double@{2\xydashh@}}5850\xyletcsnamecsname@{dir0{||}}{dir{}}5851\xyletcsnamecsname@{dir{||}}{dir1{||}}5853\xydefcsname@{dir1{>|}}{\shiftdir@\stopper@\z@\tip@}5854\xydefcsname@{dir2{>|}}{\composite@{}{\dir2{>}*\dir2{|}}}5855\xydefcsname@{dir3{>|}}{\composite@{}{\dir3{>}*\dir3{|}}}5856\xyletcsnamecsname@{dir0{>|}}{dir{}}5857\xyletcsnamecsname@{dir{>|}}{dir1{>|}}5859\xydefcsname@{dir1{>>|}}{\shiftdir@\stopper@\z@\shiftdir@\tip@\tipjot@\tip@}5860\xydefcsname@{dir2{>>|}}{\composite@{}{h!/\tipjot@/\dir2{>}*\dir2{>}*\dir2{|}}}5861\xydefcsname@{dir3{>>|}}{\composite@{}{h!/\tipjot@/\dir3{>}*\dir3{>}*\dir3{|}}}TJo*tj84+_%CHAPTERf1.CKERNEL:XY.DOC??hw5862\xyletcsnamecsname@{dir0{>>|}}{dir{}} 5863\xyletcsnamecsname@{dir{>>|}}{dir1{>>|}}P5865\xydefcsname@{dir1{|<}}{\reverseDirection@\shiftdir@\stopper@\z@\tip@}5866\xydefcsname@{dir2{|<}}{\reverseDirection@\shiftdir@\stopper@\z@\Tip@}5867\xydefcsname@{dir3{|<}}{\reverseDirection@\shiftdir@\stopper@\z@\Ttip@}5868\xyletcsnamecsname@{dir0{|<}}{dir{}}5869\xyletcsnamecsname@{dir{|<}}{dir1{|<}}5871\xydefcsname@{dir1{|<<}}{\reverseDirection@5872K\shiftdir@\stopper@\z@\shiftdir@\tip@\tipjot@\tip@}5873\xydefcsname@{dir2{|<<}}{%5874K\composite@{}{h!/-\tipjot@/\dir2{<}*\dir2{<}*\dir2{|}}}5875\xydefcsname@{dir3{|<<}}{%5876K\composite@{}{h!/-\tipjot@/\dir3{<}*\dir3{<}*\dir3{|}}}5877\xyletcsnamecsname@{dir0{|<<}}{dir{}}5878\xyletcsnamecsname@{dir{|<<}}{dir1{|<<}}5880\xydefcsname@{dir1{|-}}{\shiftdir@\stopper@\z@5881K\shiftdir@\line@\z@\pointlike@{}\jot}5882\xydefcsname@{dir^{|-}}{\shiftdir@{\aboveDirection@\xydashl@\line@}\z@5883K\shiftdir@\line@\z@\pointlike@{}\jot}5884\xydefcsname@{dir_{|-}}{\shiftdir@{\belowDirection@\xydashl@\line@}\z@5885K\shiftdir@\line@\z@\pointlike@{}\jot}5886\xydefcsname@{dir2{|-}}{\shiftdir@\stopper@\z@5887K\shiftdir@\line@\z@\pointlike@{}\jot\double@\xydashh@}5888\xydefcsname@{dir3{|-}}{\shiftdir@\stopper@\z@5889K\shiftdir@\line@\z@\pointlike@{}\jot\triple@\xydashh@}5890\xyletcsnamecsname@{dir0{|-}}{dir{}}5891\xyletcsnamecsname@{dir{|-}}{dir1{|-}}5892\xyletcsnamecsname@{dir{|=}}{dir2{|-}}5894\xydefcsname@{dir{+}}{%5895K\DN@##1{\composite@{}{##10\dir{|}*!C##10\dir{-}}}\addEQ@\next@}5896\xyletcsnamecsname@{dir0{+}}{dir{}}5898\xydefcsname@{dir{x}}{\vDirection@(1,1)\jot5899K\DN@##1{\composite@{}{##10\dir{|}*!C##10\dir{-}}}\addEQ@\next@}5900\xyletcsnamecsname@{dir0{x}}{dir{}}5902\xydefcsname@{dir{/}}{\vDirection@(1,-.3)\jot\stopper@}5903\xyletcsnamecsname@{dir0{/}}{dir{}}5905\xydefcsname@{dir{//}}{\vDirection@(1,-.3)\jot5906K\shiftdir@\stopper@\xydashh@\stopper@}5907\xyletcsnamecsname@{dir0{//}}{dir{}}5909\xydefcsname@{dir{*}}{\solidpoint@}5910\xydef@\solidpoint@{%5911K\pointlike@{\kern-1.8pt\lower1.8pt\hbox{$\scriptstyle\bullet$}}\jot}5912\xyletcsnamecsname@{dir0{*}}{dir{}}5914\xydefcsname@{dir{o}}{\hollowpoint@}5915\xydef@\hollowpoint@{%5916K\pointlike@{\kern-1.8pt\lower1.8pt\hbox{$\scriptstyle\circ$}}\jot}UX*tj1.6.CKERNELfOBJECTLIBRAReY*85??hw5917\xyletcsnamecsname@{dir0{o}}{dir{}}cƍB ffffd {heSyn!taxpActionwffd 6fhe\cir+ shradiusif{ vhcirif}phciriclefsegmen!twithhradiusi#2ffd hehradiusiFMP!hQhempt!yip͹usefRzc߹astheradius MrjhQhv!ectorip͹usefX^ofthehv!ectoriasradiushehciriFMP!hQhempt!yip͹fullfcircleofhradiusiMrjhQhdiagifhorien!tihdiagip͹partialcirclefrom rsthdiagionalthroughtothepsecondfhdiagionalinthehorien!tiationۂhehorien!tiFMP!hQ^p͹an!ticloMckwiseMrjhQ_p͹cloMc!kwisezffd 2iFiguref1.8:hciricles.(1.6.2 Circlesegmentsō5972\message{circles,}CircleNhobjectisareroundandt!ypMesetasegmentofthecirclecenteredatthereferencepMoint.'The syn!taxfofcirclesisdescribMedin gure1.8withexplanationsbelo!w. TheV\cir TcommandVistheh!ub:itparsestheoptionalhradiusi(to\R@7T,LdefaultfromRzc.y)and{Khciri},fbailingoutwitha\zerodot5Jiftheradiusistosmall:P5986\xydef@\cir#1#{\hbox\bgroup5987K\afterVECTORorEMPTY{\xy@@{\R@=\X@c}\cir@}{\xy@@{\R@=\R@c}\cir@}#1@}5989\xydef@\cir@#1@#2{%5990K\DN@{#1}\ifx\next@\empty\else\xyerror@{illegalcircle:mustbe5991#ior}{}\fi5992K\afterCIRorDIAG{\xyFN@\cir@cir}{\xyFN@\cir@diag}#2@}ThecoMdetoactuallyt!ypesetthehcirijustparsedstartsb!ycheckingthatthehciriwasimmediatelyfollo!wedfbythe@ vweputtherein\cir:6000\xydef@\cir@cir{%6001K\ifx\space@\next\expandafter\DN@\space{\xyFN@\cir@cir}%gobblespaces6002K\else\ifx@\next\DN@@{\cir@i}%6003K\else\xyerror@{illegal:musthaveformor6004#i}{}%6005K\fi\fi\next@}Similarlywhenanhempt!yionewasgiven|theparserwillrecognisethisasahdiagibutwehackthatfhere:6012\xydef@\cir@diag{%6013K\DN@{\xyerror@{illegal:musthaveformor6014#i}{}}%6015K\ifx@\next\ifnum\count@=8%6016\DN@@{\def\CIRin@@{0}\def\CIRorient@@{\CIRfull@}\def\CIRout@@{7}\cir@i}%Ve*tj86+_%CHAPTERf1.CKERNEL:XY.DOC??hw6017K\fi\fi\next@}P.3..andfthenusetheconstructedmethoMdstobuildit:6023\xydef@\cir@i{% 6024K\ifnum\CIRin@@=8\xyerror@{incompletespecification}{%6025Theyouspecifiedasisnotsufficientlyspecific.}%6026 m\def\CIRin@@{0}\fi6027K\ifdim\R@<.5\p@\R@=\z@\zerodot6028K\else\CIRorient@@\cirbuild@\fi6029K\L@c=\R@\R@c=\R@\D@c=\R@\U@c=\R@\def\Leftness@{.5}\def\Upness@{.5}%6030K\def\Drop@@{\styledboxz@}\def\Connect@@{\straight@\relax}%6031K\Edge@c={\circleEdge}\OBJECT@x}!'Ptarsing: 5Thef\afterCIRorDIAG]¹parserfhandlestheparsing:iteither parses+thehciriandsetsin ,orient ,and+out,and+passescon!troltothe rstargumentcontinuation,orparsesthesinglehdiagispMeci ed,=storeitin\count@0|ҹ(as8 ֹifanhempt!yionegiven),=andpasscon!trolftothesecondcontinuationargument,wherethehdiagiin!ternalrepresentationnumbMerofnote1.4lofisused. Anhemptyicircleistreatedasqanhempt!yidiagonal;=spMecifyinganhemptyi rsthdiagiofahciriisequivdDalenttousingthevdDalueofthefin}qmethoMdatcalltime.Theparserisv!erysimple, ZsettingmethoMdsstoredintheusual@@fk-terminatedcontrolsequences(T\oDo:[Rename?ballnon-methoMdcon!trolsequencesthatendin@@.3..to?buse@ hromannumeralisuxes.3..):P6064\xydef@\CIRin@@{3}6065\xydef@\CIRout@@{3}6066\xylet@\CIRorient@@=\empty6068\xydef@\afterCIRorDIAG#1#2{\def\afterCIR@{#1}\def\afterCIRDIAG@{#2}\xyFN@\CIR@}6070\xylet@\afterCIR@=\empty6071\xylet@\afterCIRDIAG@=\empty6073\xydef@\CIR@{\count@=8\afterDIAG{\edef\CIRin@@{\the\count@}\xyFN@\CIR@@}}6075\xydef@\CIR@@{%6076K\ifx\space@\next\expandafter\DN@\space{\xyFN@\CIR@@}%gobblespaces6077K\else\ifx^\next6078 m\DN@^{\def\CIRorient@@{\CIRacw@}%6079\afterDIAG{\edef\CIRout@@{\the\count@}\afterCIR@}}%6080K\else\ifx_\next6081 m\DN@_{\def\CIRorient@@{\CIRcw@}%6082\afterDIAG{\edef\CIRout@@{\the\count@}\afterCIR@}}%6083K\else6084 m\DN@{\def\CIRorient@@{\relax}\afterCIRDIAG@}%6085K\fi\fi\fi\next@}ThefdefaultistogenerateafulFlcirpcleywiththespMeci edradius,e.g.,e䍍.pF\xy*\cir<4pt>{}\endxy~t!ypMesets%G\C4ps: SDict begin xyc end" {4.0 0 360 o}xy" s&a\xy*{M}*\cir{}\endxy|#\C4ps: SDict begin xyc endM" {5.90843 0 360 o}xy "e卑Allftheothercirclesegmen!tsaresubsetsofthisandhavetheshapMethatthefullcircleoutlines.Wp*tj1.6.CKERNELfOBJECTLIBRAReY*87??hwFinally^w!epresenttheorienthmethoMds.Theyusethese`internalmethoMds'toactuallydrawthe circlesP6111\xylet@\CIRtest@@=\relax6112\xydef@\CIRlo@@{0}6113\xydef@\CIRhi@@{0}PōBelo!w wecallthemlo,qhi,andtest ;the rstt!woarecoMdedasdescribedinnote1.4landthelasttak!esQtwoarguments:aadimensionandsomethingtodoifthetestsucceeds.\count@@7@and\count@shouldfbMesettoin}qandoutPin!ternallyaswellincase\cirbuild@@pandfriendsbMelowshouldbMeused. ׍Thefdumm!yorientPusedforsimplecirclesisthesimplest:6125\xydef@\CIRfull@{\def\CIRtest@@##1##2{##2}}PōThe~k!ernel\cirbuild@?buildstheactualhobjectiusingcharactersfromthe\xycircfontassumedcoMdedzlik!exycirc10.mfB:\cirrestrict@@Xֹchosesagroupandadjuststheradius\R@4(to titexactlye.Thefgroupism!ultipliedby8togetthegroupcharactero set[\count@(=].6135\xydef@\cirbuild@{\cirrestrict@@\multiply\count@8%6136K\circhar@0\circhar@7\kern\dimen@6137K\circhar@1\circhar@6\kern\dimen@6138K\circhar@2\circhar@5\kern\dimen@6139K\circhar@3\circhar@4\kern\dimen@}6141\xydef@\circhar@#1{%6142K\setboxz@h{\circhar@@{#1}}\dimen@=\wdz@\wdz@=\z@\ht\z@=\R@\dp\z@=\R@6143K\CIRtest@@#1{\styledboxz@}\setbox\z@=\copy\voidb@x}6145\xydef@\circhar@@#1{{\xycircfont\advance\count@#1\relax\char\count@}}Pō\cirrestrict@@HScomputesLOthegroupg[\count@(=]ofcirclesegmen!tstousefromtheradiusr-[\R@>]usingftheform!ula(thereverseoftheoneinxycirc10.mfBⴹ)3kwIgo:=C 8  > > > > > <  > > > > > :6jK?rhfeXv-1pt([k0n1J}ifT1pt rX<8ptT6jK?rhfeXv-2pt([k0+n3J}ifT8pt rX<16pt6jK?rhfeXv-4pt([k0+n7J}ifT16pt rX<32pt615J}ifT32pt r4(whereR1w!eknowfrom\cir@i)"^thatrXK=1=ڟfe@PA2 pt0e),candthenadjuststheradiustobMeexactlytheonechosenthroughFtheuseofgroupgusingtheform!ulainxycirc10.mfDa.3..thisFisnecessarybMecauseoftherestriction%ontfm H lesthattheycanonlyha!ve%15di eren!tnonzeroheightsanddepths.Subsequentcallsfto\cirrestrict@@WshouldcomputethesamevdDalues.6168\xydef@\cirrestrict@@{\begingroup\dimen@=\R@6169K\setboxz@h{\xycircfont\char\z@\char\@ne}\A@=\wdz@6170K\ifdim\R@<8\A@\count@=\dimen@\divide\count@\A@\advance\count@\m@ne6171K\else\ifdim\R@<16\A@\count@=\dimen@6172 m\dimen@=2\A@\divide\count@\dimen@\advance\count@3%6173K\else\ifdim\R@<32\A@\count@=\dimen@6174 m\dimen@=4\A@\divide\count@\dimen@\advance\count@7%6175K\else\count@=15\fi\fi\fi6176K\R@=\A@6177K\ifnum\count@<8\multiply\R@\count@\advance\R@\A@6178K\else\ifnum\count@<12\multiply\R@\count@\multiply\R@\tw@\advance\R@-6\A@6179K\else\ifnum\count@<16\multiply\R@\count@\multiply\R@4\advance\R@-28\A@X~q*tj88+_%CHAPTERf1.CKERNEL:XY.DOC??hw6180K\else\multiply\R@32\fi\fi\fi 6181K\edef\@tmp{\endgroup\R@=\the\R@\count@=\the\count@}\@tmp}_PartialcirpclesegmentsBwith*horien!tiationarethepartofthefullcirclethatstartswithatangentv!ector{binthedirectionofthe rsthdiagional(seenote1.4l)andendswithatangentvectorinthedirectionfoftheotherhdiagionalafteracloMc!kwise(for_ f)oranticloMckwise(for^ f)turn,e.g.,35Qd \xy*\cir<4pt>{l^r}\endxy^t!ypMesets4p\C4ps: SDict begin xyc end" {4.0 90 270 o}xy" d \xy*\cir<4pt>{l_r}\endxy E*|4p\C4ps: SDict begin xyc end" {4.0 90 270 o}xy"a8\xy*\cir<4pt>{dl^u}\endxy E*|4p\C4ps: SDict begin xyc end" {4.0 135 360 o}xy"a8\xy*\cir<4pt>{dl_u}\endxy E*|4p\C4ps: SDict begin xyc end" {4.0 -180 -45 o}xy"^c\xy*+{M}*\cir{dr_ur}\endxy E*|/\C4ps: SDict begin xyc endM" {8.90843 135 405 o}xy"36Iffthesamehdiagiisgiv!entwicethennothingistypMeset,e.g.,8i\xy*\cir<4pt>{u^u}\endxyt!ypMesets.G\C4ps: SDict begin xyc end"SpMecialfcareistak!entosetupthehdiagionaldefaults:Afterf^ vthefdefaultisthediagonal90fjan!ticloMckwiseffromtheonebeforethe^ f.Afterf_ vthefdefaultisthediagonal90fjcloMc!kwisefromtheonebeforethe_ f.ThefhdiagibMefore^ vor_isrequiredfor\cirhobjectsi.?4Exercise21.15: 5T!ypMesetfthefollowingshadedcirclewithradius5ptd:8~ps: SDict begin xyc endh0" {5.0 0 360 o}xy33c" {5.0 -135 45 o}xyffΖ" {5.0 -135 45 o}xy" {5.0 -135 45 o}xy $Theset!womacrosimplementthedefaultsandsetupofloandhiUforanticloMckwiseandcloMckwise segmen!ts.Herefiswhattheyset:4 Zoڝ ff갟 k ͟}ffhciriLff^loohi}ff test(s),E}ffzff갟 ͤ} ff͟dz1^ dz2;1dz1ʫ dz2 ѡ ffRFdz1.z81~ dz2.z81͟} ff loA sa`^ns  dz2 ѡ ffRFdz2.z81~ dz1.z81͟} ff s \count@\let\CIRtest@@=\CIRtest@outside6279 m\edef\CIRlo@@{\the\count@}\edef\CIRhi@@{\the\count@@}%6280K\else\let\CIRtest@@=\CIRtest@inside6281 m\edef\CIRlo@@{\the\count@@}\edef\CIRhi@@{\the\count@}%6282K\fi}6284\xydef@\CIRcw@{\count@@=\CIRin@@\count@=\CIRout@@6285K\ifnum\count@=8\count@=\count@@Yz*tj1.6.CKERNELfOBJECTLIBRAReY*89??hw6286 m\ifnum\count@>\@ne\advance\count@-\tw@\else\advance\count@6\fi\fi 6287K\ifnum\count@@<5\advance\count@@\thr@@\else\advance\count@@-5\fi6288K\ifnum\count@<5\advance\count@\thr@@\else\advance\count@-5\fi6289K\ifnum\count@@<\count@\let\CIRtest@@=\CIRtest@outside6290 m\edef\CIRlo@@{\the\count@@}\edef\CIRhi@@{\the\count@}%6291K\else\let\CIRtest@@=\CIRtest@inside6292 m\edef\CIRlo@@{\the\count@}\edef\CIRhi@@{\the\count@@}%6293K\fi}P6295\xydef@\CIRtest@inside#1#2{\let\next@=\relax6296K\ifnum\CIRlo@@>#1\else\ifnum#1<\CIRhi@@\DN@{#2}\fi\fi\next@}6298\xydef@\CIRtest@outside#1#2{\let\next@=\relax6299K\ifnum\CIRlo@@>#1\DN@{#2}\else\ifnum#1<\CIRhi@@\else\DN@{#2}\fi\fi\next@}"T1.6.3 Text 6309\message{text;}vՍTeextfinpicturesissuppMortedthroughthehobjecticonstructionffd ie\txtfhwidthihst!ylei{ fhtexti}0ffdNthatJbuildsanobjectcon!taininghtextitypMesettohwidthiusinghstylei;ibinhtexti\\canbMeusedasanexplicitlinebreak;alllineswillbMecen!tered.hstyleishouldeitherbeafon!tcommandorsomeotherstu ftodoforeac!hlineofthehtextiandhwidthishouldbMeeither< fhdimeni>orfhemptyi. 獑ThefcoMdejustparsesthehwidthidefaultingitto<\maxdimen>Fwhic!hisrecognisedas`freeform'.6331\xydef@\txt{\hbox\bgroup\xyFN@\txt@}6333\xydef@\txt@{%6334\addLT@\ifx\next\addGT@{\addLT@\DN@##1}{\A@=##1\txt@i}%6335\else\DN@{\A@=\maxdimen\txt@i}\fi\next@}6337\xydef@\txt@i#1#{%6338\setboxz@h{#1\mathstrut}\dimen@=\ht\z@\advance\dimen@\dp\z@6339\baselineskip=1.1\dimen@\lineskip=.2\dimen@\lineskiplimit=\lineskip6340\def\txtline@@##1{\txtline@{#1}{##1}}\object@\txt@ii}6342\xylet@\txtline@@=\eat@6343\xydef@\txtline@#1#2{\relax\setboxz@h{#1{\ignorespaces#2\unskip}}%6344\ifdim\A@<\wdz@\setboxz@h{\hsize=\A@6345#>\leftskip=0ptplus4em\rightskip=\leftskip6346#>\parfillskip=0pt\parindent=0pt%6347#>\spaceskip=.3333em\xspaceskip=.5em%6348#>\pretolerance=9999\tolerance=9999%6349#>\hyphenpenalty=9999\exhyphenpenalty=9999%6350#>\vbox{#1\noindent\ignorespaces#2\unskip}}%6351\else\ifdim\A@<\maxdimen\setboxz@hto\A@{\hfil\boxz@\hfil}\fi\fi6352\boxz@}6354\xydef@\txt@ii#1{\vbox{%6355T\let\\=\cr6356T\tabskip=\z@skip\halign{\relax\hfil\txtline@@{##}\hfil\cr\leavevmode#1\crcr}}}Z;*tj90+_%CHAPTERf1.CKERNEL:XY.DOC??hw1.7ӾX#՟YY-picffoptionsmNote:ݹLAGT,[wEB Xv2z" Ausersfshouldalsoconsulttheparagraphon\xye.st!y"inx1.1.1.֍1.7.1 Loading(ፍsùXY#-pic ispro!videdwithagrowingnumbMerofoptionssupportingspecialiseddra!wingtasksaswellas exoticoutputdeviceswithspMecialgraphicfeatures.xTheseshouldallbeloadedusingthisuniformin!terfacefinordertoensurethattheXY p-picenvironmentispropMerlysetupwhilereadingtheoption.HLffd cj#\xyoptionf{ vhoptionif}j#\xyrequiref{ vhoptionif}*ffd[\xyoptionwillcausetheloadingofanrXY $-picoption lewhic!hcanhaveoneofseveralnames.oThesearetriedinsequence:xy~Qhoptioni.tex,xy:nhoptioni.doc,xyhshorti.tex,andxy6Jhshorti.doc,wherehshortiisfhoptionitruncatedto6(six)c!haracterstoconformwiththeTWG-TDS[18 4]. ፑ\xyrequire/isthesameexceptitisignoredifanoptionwiththesamenameisalreadypresen!t(th!usfdoMesnotchecktheversionetc.).P6400\message{options;}6402\xylet@\xyoption@@=\relax6404\xydef@\xyoption#1{\DN@{#1}\edef\next@{\codeof\next@}% 6405\csnamexyeveryrequest@\next@@\endcsname6406\xyinputorelse@{xy#1}{\xyoption@truncated#1@@@@@@@@@,#1@}%6407\def\xyoption@@{#1}\edef\xyoption@@{\codeof\xyoption@@}6408\expandafter\let\expandafter\next@\csnamexy\xyoption@@version\endcsname6409\expandafter\let\csnamexy\xyoption@@loaded\endcsname=\next@6410\runxywith@\ignorespaces}P6412\xydef@\xyoption@truncated#1#2#3#4#5#6#7@#8,#9@{%6413\DN@{#7}\ifx\next@\empty\DN@##1##2{##2}\else\let\next@=\xyinputorelse@\fi6414\next@{xy#1#2#3#4#5#6}%6415T{\DN@{#1#2#3#4#5#6}\edef\next@{\codeof\next@}%6416#>\xyerror@{No`\next@'option}{%6417Your\xyoption{#9}requestcouldnotbegranted:therequired^^J%6418file`xy#9.tex'couldnotbelocated.Pleasemakesurethatitis^^J%6419properlyinstalledbeforecontinuing.}}}6421\xydef@\xyrequire#1{\DN@{#1}\edef\next@{\codeof\next@}%6422\csnamexyeveryrequest@\next@@\endcsname6423\expandafter\let\expandafter\next@\csnamexy\codeof\next@loaded\endcsname6424\ifx\next@\relax\DN@{\xyoption{#1}}\else\DN@{\ignorespaces}\fi\next@}ύSometimes`somedeclarationsofanoptionorheader leorwhatev!eronlymakessenseaftersomeparticularfotheroptionisloaded.InthatcasethecoMdeshouldbewrappedinthespecialcommandHLffd c\xywithoptionf{ vhoptionif}{rhcoMdeif}*ffd;whic!hrindicatesthatifthehoptioniisalreadyloadedthenhcoMdeishouldbeexecutedno!w,otherwiseitzshouldbMesa!vedzandifhoptioniev!ergetsloadedthenhcodeishouldbeexecutedafterw!ards.Note:Thev hcoMdeishouldallo!wmorethanoneexecution;itissavedwiththecatcoMdesatthetimeofthe\xywithoptionfcommand.[*tj1.7.kXYM-PICfOPTIONSg291??hw6443\xylet@\xywith@@=\emptyP6445\xydef@\runxywith@{\let\xywithdo@@=\xywithtest@\xywith@@}6447\xydef@\xywithoption#1#2{\DN@{#1}\edef\next@{\codeof\next@}% 6448K\expandafter\let\expandafter\nextii@\csnamexy\next@loaded\endcsname6449K\ifx\nextii@\relax6450 m\expandafter\def\expandafter\xywith@@\expandafter{\xywith@@6451\xywithdo@@{#1}{#2}}%6452K\else\expandafter\xywithrun@\expandafter{\next@}{#2}\fi}P6454\xydef@\xywithtest@#1#2{\DN@{#1}\edef\next@{\codeof\next@}%6455K\ifx\next@\xyoption@@\expandafter\xywithrun@\expandafter{\next@}{#2}\fi}6457\xydef@\xywithrun@#1#2{\csnamexyeverywithoption@#1@\endcsname#2}Finallye,VitSispMossibletodeclarehcodeiassomecommandstobeexecutedbeforeev!eryactualexecu-tionnof\xywithoption{hoptioni}{ T.3..}ݹ,:andnsimilarlyhcoMdeitobeexecutedbeforeev!ery\xyoption{;hoptioni}andf\xyrequire{Bhoptioni} f(collectiv!elyfcalled`requests'):: sffd g#\xyeverywithoptionf{ vhoptionif}{rhcoMdeif}#\xyeveryrequestf{ vhoptionif}{rhcoMdeif}]ffdThisfismostoftenusedb!yanoptiontoactivdDatesomehoMokeverytimeitisrequesteditself.Theselastt!wousetheusualexpansiontric!kerytode neorappMendtothecon!trolsequencesnamed\xyevery-Prequest@[hoptioni@ fandf\xyevery1withoption@phoptioni@usedfinthede nitionsabMo!ve.6483\xydef@\xyevery@#1#2#3{\DN@{#2}\edef\next@{\codeof\next@}%6484\expandafter\ifx\csnamexyevery#1@\next@@\endcsname\relax6485T\expandafter\let\csnamexyevery#1@\next@@\endcsname=\empty\fi6486\DNii@##1{\expandafter\def\expandafter##1\expandafter{##1#3}}%6487\expandafter\nextii@\csnamexyevery#1@\next@@\endcsname}6489\xydef@\xyeveryrequest{\xyevery@{request}}6490\xydef@\xyeverywithoption{\xyevery@{withoption}}!č1.7.2)@Option leformatOptionf lesm!usthavethefollowingstructure:p`%%*hiden!ti cationi`%%*hcop!yright,fetc.i>`\ifx\xyloaded\undefined\inputxy\fi`\xyprovide{ZRhoptioni}{ Thnamei}{hv!ersioni}% G,{Lhauthori}{ Themaili}{haddressi}`hbModyfoftheoptioni`\xyendinputoThef6argumen!tsto\xyprovideshouldcontainthefollowing:̍hoptioni,hOptiondloadnameasusedinthe\xyoptioncommand.ThisshouldbMesafeanddistinguish-`ableforan!yopMeratingsystemandisthuslimitedtocharacterschosenamongthelowercase`letters(a{z), 4digits(0{9), 4anddash(-), 4andalloptionsshouldbMeuniquelyiden!ti ablebythe` rstf6(six)c!haractersonlye.\*tj92+_%CHAPTERf1.CKERNEL:XY.DOC??hwhnamei ȹDescriptiv!efnamefortheoption.썍hv!ersioniIden!ti cationfoftheversionoftheoption.hauthori3Thefname(s)oftheauthor(s).hemaili ȹThefelectronicmailaddress(es)oftheauthor(s)or!thealiationifnoemailisa!vdDailable.haddressisThefpMostaladdress(es)oftheauthor(s).퍑Thisainformationisusednotonlytoprin!tanicebannerbutalsoto(1)silentlyskiploadingifthe samefv!ersionwaspreloadedand(2)printanerrormessageifadi erentversionwaspreloaded. կThe\xyprovidecommandc!hecksthattheoptionisnotalreadyloadedandthattheloadedv!ersionisnthesameasthepreloadedoneb!ycheckingtheexistenceandcontentsofthemacro\xyhoptioniloaded"}.Finally-itcalls\xycatcodessuc!hthattheoptioninternalsareloadedin`T,[wEB XprogrammingmoMde'.\xyendinputfundoMesthis.P6558\xydef@\xyprovide#1#2#3#4#5#6{%6559K\def\xyoption@@{#1}\edef\xyoption@@{\codeof\xyoption@@}\edef\next@{#3}%6560K\message{Xy-picoption:#2v.\next@}%6561K\expandafter\let\expandafter\nextii@\csnamexy\xyoption@@loaded\endcsname6562K\ifx\next@\nextii@\message{notreloaded}\endinput6563K\else6564 m\ifx\nextii@\relax\else\xyerror@{Option`\xyoption@@'versionmismatch}{%6565Youpreviouslyloaded,ortheformathaspreloaded,adifferentversion^^J%6566ofthisoption.WFcJustcontinuetotrytoloadthisversioninstead(and^^J%6567bepreparedforalotofwarningsaboutredefinitions).}%6568 m\fi6569 m\expandafter\let\csnamexy\xyoption@@version\endcsname=\next@6570 m\expandafter\let\expandafter\xyenddocmode@\csnameDOCMODE\endcsname6571 m\expandafter\let\csnameDOCMODE\endcsname\xyprovidedocmode@6572 m\xycatcodes6573K\fi\ignorespaces}6575\xydef@\xyendinput{\expandafter\let\csnameDOCMODE\endcsname=\xyenddocmode@6576K\message{loaded}\xyuncatcodes\endinput}ThewabMo!veisfuthercomplicatedbMecauseanoptionmayloadedinitsDOCMODE1jform(endingin.doc).uSoCw!emakesurethatthemoMdethatskipsdocumen!tation,de nedinthexy.tex*N leheader,isfactiv!enow.6585\expandafter\xylet@\expandafter\xyprovidedocmode@\csnameDOCMODE\endcsname6586\xylet@\xyenddocmode@=\relaxThe0`dumm!y'optiondescribMedinx3.2isaminimaloptionusingtheabo!ve0features.|nItusesthespMecialUDOCMODE1~PformatUtoincludeitso!wndocumen!tationforthisdocumen!t(likeallocialXY_-picoptions)fbutthisisnotarequiremen!t.ۍ1.7.3 Driveroptions The hdriv!erioptionsdescribMedinchapter??ùrequirespMecialattentionbMecauseeachdrivercansuppMortsev!eralT.extensionoptions,anditissometimesdesirabletochangehdriveriorevenmixthesuppMortpro!videdfbyseveral.6 wʉffy̟ L͍ {-=6aTheTk9ernelsuppAortdescribedhereisbasedonthe(no9wdefunct)xydriver+Xinclude lebyRossMoAore.]7*tj1.7.kXYM-PICfOPTIONSg293??hwAphdriv!erisoptionisloadedasotheroptionswith\xyoption{=.hdriveri} q(orthroughLAGT,[wEB Xv2z" Lclass orJpac!kdDageoptionsasdescribMedinx1.1.1).Thespecialthingaboutahdriv!eriisthatloadingitsimplydeclareshthenameofit,establisheswhatextensionsitwillsuppMort,andselectsittempMorarilye.Th!ustheRspMecialcapabilitiesofthedriv!erwillonlybeexploitedintheproducedD!VI9 leifsomeoftheseextensions\arealsoloadedandifthedriv!erisstillselectedwhenoutputisproMduced.Generallye,theorder minwhic!htheoptionsareloadedisimmaterial.(Knownexceptionsa ectonlyinternalproMcessingand1xarenotvisibletotheuserintermsoflanguageandexpMectedoutput.)Inparticularonedriv!ercanfbMepreloadedinaformatandadi eren!toneusedforaparticulardocumen!t.Theffollo!wingdeclarationscontrolthis: Dffd >H2|\UseSingleDriverforcesfonedriv!eronlyH2|\MultipleDriversallo!wsfmultipledriversH2|\xyReloadDriversresetsfdriv!erinformationzffd13The rstcommandrestoresthedefaultbMeha!viour:thatonyonehdriveriisallowed,i.e.,eachloadingofzahdriv!erioptioncancelstheprevious.Thesecondallowsconsecutiveloadingofdriverssuchthatwhenloadingahdriv!erionlytheextensionsactuallysuppMortedareselected, leavingotherextensionssuppMortedab!ypreviouslyselecteddriversuntouched.BewarethatthiscanbMeusedtocreateDVI] lesthatfcannotbMeprocessedb!yanyactualDVIdriverprogram!TheqlastcommandissometimesrequiredtoresettheXYL{-pichdriv!eriinformationtoasanestate,for@example,g$afterha!vingappliedoneoftheothertwointhemiddleofadoMcument,g$orwhenusingsimplefformatslik!eplainT,[wEB Xthatdonothaveaclearlydistinguishedpreamble.NDrivterݸdatabase. 5The\mainstructure,kbthelistof`loaded'and`selected'hdriv!eris(orderedbyage),isfimplemen!tedastraditionalT,[wEB X`\do>-lists'(applicationsof\do{hdriveri} ftoeachelement).P6655\xydef@\xydriversloaded@@{\do{unload}}6656\xylet@\xydriversselected@@=\emptyThisݘisusedtopro!videentrypMointsintoasecondarystructurethatlistsforeachhdriveritheextensionse suppMortedb!ythatdriver.AsshouldbMeapparentfromtheabMove,ronlytheunload)Hhdriveriisgpresen!tinitially:^itrepresentstheimplementationtechniqueusedfortheextensionwhennohdriveriisselected.Ev!eryextensionmustaddanentrywhichreestablishesthedefaultimplementationoftheextension:6668\xylet@\xydriver@unload@support@@=\emptyAll)hdriv!eriswillhaveasimilarstructurenamed\xydriver@=w!erunthroughthelistofpresentlyselecteddriverstoactivdDatefan!ysuppMortforit,usingthefollowing:6721\xydef@\xyselectoptionsupport@{\let\do=\activatedriver@\xydriversselected@@}AsHtheabMo!veHsuggestsitsometimesmak!essensetoloadhdriverisintheactualtextualpartofa doMcumen!t,$however,it isrecommendedthatonlydriv!ersalsoloadedinthepreamblearereloadedlater,andthat\xyReloadDriversisusedwhenthereisdoubtabMoutthestateofa airs.eIncaseofconfusionthespMecialcommand\xyShowDriverswilllistallthepresen!tlysupportedandselecteddriv!er-extensionfpairstotheT,[wEB Xlog.6735\xydef@\xyShowDrivers{{\W@{Loaded:}\let\do=\doShow\xydriversloaded@@6736 m\let\next@=\empty6737 m\def\do##1{\ifx\next@\empty\DN@{##1}%6738 \else\expandafter\DN@\expandafter{\next@,##1}\fi}%6739 m\xydriversselected@@\W@{Selected:\next@.}}}6741\def\doShow#1{\let\next@=\empty6742K\def\doii##1##2{\ifx\next@\empty\DN@{##1}%6743 m\else\expandafter\DN@\expandafter{\next@,##1}\fi}%6744K\csnamexydriver@#1@support@@\endcsname6745K\W@{#1supports\next@.}}!"Drivter2internals. 5Afhdriv!erioption lesmusthavethefollowingstructure:%%hiden!ti cationi%%hcop!yright,fetc.i\ifx\xyloaded\undefined\inputxy\fi\xyprovide{>(khoptioni}{ Thnamei}{hv!ersioni}% *{0xhauthori}{ Themaili}{haddressi}\newdriver{%\xyaddsupport{Ogihextensioni}hcsi䰍...}_*tj1.7.kXYM-PICfOPTIONSg295??hwhbModyfofthehdriv!erioptioni3\xyendinputThereshouldbMean\xyaddsupportcommandforeac!hsupportedhextensioniwhic!hspecici esthe hcsif(con!trolsequence)withwhichtheindicatedsuppMortisactivatepd!. 獑The>\newdrivercommand rstestablishesthe`suppMort'listforthehdriv!eri(runningtheargu-men!t),thenEaddsthehdriveritothe`loaded'list,and nallyselectsitnowandforeverysubsequentrequestfofthishdriv!erioption.ItkiisimpMortan!tthatthehcsithatactivatesQeachdriver/extensioncombinationonlydoMesrpebindingofhopoks.InfordertoseewhathoMoksarea!vdDailableforanextension,lookfordeclarationsoftheform*]ffd i֙\xyaddunsupportf{ fhextensioni}hcsi0ffdLand seewhatrebindingsthathcsidoMes:thosearethehokks.bpecauseߡthey aretheonesthatwillbesafelyreestablished!ThisshouldbMeadheredetobecausebothactivdDationanddeactivationhcsisma!ybMefexecutedman!ytimes.TheOproMcedureisasfollo!ws:(l.6809|)addthedriverandclearitssuppMortcontrolsequenceunlessitisfalreadyde ned,(l.6815|)executethesuppMortcommands,and(l.6816)setuptoselectitafterloading.P6808\xydef@\newdriver#1{%6809\def\nextiii@##1{6810T\expandafter\def\expandafter\xydriversloaded@@6811#>\expandafter{\xydriversloaded@@\do{##1}}%6812#>\expandafter\let\csnamexydriver@\xyoption@@@support@@\endcsname=\empty}%6813\def\do##1{\DNii@{##1}\ifx\xyoption@@\nextii@\let\nextiii@=\eat@\fi}%6814\xydriversloaded@@\expandafter\nextiii@\expandafter{\xyoption@@}%6815#1\relax6816\DN@##1{\xywithoption{##1}{6817#>\selectdriver@{##1}\xyeveryrequest{##1}{\selectdriver@{##1}}}}%6818\expandafter\next@\expandafter{\xyoption@@}\ignorespaces}ՍThensuppMortcommandsmerelyaddtothesupport\do-listswhic!hinturn(l.6845|)adds\doii{$hextensioni}{ T.3..}towthe\xydriver@=bhdriv!eri@support@@controlwsequenceandaddsacheckforwhentoapplyiteverytimefthathextensioniisrequested!6828\xydef@\xyaddsupport{\expandafter\xyadddriversupport@\expandafter{\xyoption@@}}6829\xydef@\xyaddunsupport{\xyadddriversupport@{unload}}6831\xydef@\xyadddriversupport@#1#2#3{%6832\DNii@{#1}\edef\nextii@{\codeof\nextii@}%6833\def\nextiii@{#2}\edef\nextiii@{\codeof\nextiii@}%6834%6835%CHECKthattheisloaded!6836\def\next{\xybug@{\nextii@\spacenotloaded}}%6837\def\do##1{\DN@{##1}\edef\next@{\codeof\next@}%6838\ifx\next@\nextii@\let\next=\relax\fi}\xydriversloaded@@\next6839%6840%CHECKthatthespecifiedisnotalreadysupported!6841\def\next{\xybug@{\nextii@\spacealreadysupports\nextiii@}}%6842\def\doii##1##2{\DN@{##1}\edef\next@{\codeof\next@}%6843\ifx\next@\nextiii@\let\next=\relax\fi}\xydriversloaded@@\next6844%` *tj96+_%CHAPTERf1.CKERNEL:XY.DOC??hw6845K\DN@##1##2{\ifx##1\relax\let##1=\empty\fi 6846 m\expandafter\def\expandafter##1\expandafter{##1\doii{##2}{#3}}}%6847K\expandafter\expandafter\expandafter\next@6848 m\expandafter\expandafter\csnamexydriver@\nextii@@support@@\endcsname6849\expandafter{\nextiii@}%6850K\DN@##1{\expandafter\xyeverywithoption\expandafter{\nextiii@}{%6851 m\xytestforsupport@{##1}}}%6852K\expandafter\next@\expandafter{\nextii@}\xydriversloaded@@6853K\ignorespaces}P6855\xydef@\xytestforsupport@#1{\def\do##1{\DN@{##1}\DNii@{#1}%6856K\ifx\next@\nextii@\expandafter\xyselectoptionsupport@\fi}}!]Drivter'relatedmessages. 5Most&extensionswillprin!tawarningwhenacapabilityisusedwhichisnotsuppMortedb!ythepresentlyloadedhdriveri.CSuchmessagesareonlyprintedonce,'however,(forsome> formatstheyarerepMeatedattheend).Similarlye,Rwhenthesupportofanextensionthatexploitsafparticularhdriv!eriisusedawarningmessagewillbMeissuedthattheDVI leisnotpMortable.This+disimplemen!tedbyde ningacontrolsequenceforeachsuchwarningandrepMeatitattheend.WearningsfshouldbMeissuedusingoneof =ffd xqV\xyununsupportwarning@u{5dhextensioni} f{%hmessagei}qV\xyunsupportwarning@f{hdriv!eri} f{%hextensioni}n~ffd 6882\xynew@{if}\ifunsupportwarnings@6884\xydef@\xyunsupportwarning@#1#2{{%6885\DN@{#1}\edef\next@{\codeof\next@}6886\expandafter\ifx\csnamexywarn@unload@\next@@\endcsname\relax6887T\expandafter\gdef\csnamexywarn@unload@\next@@\endcsname{}%6888T\ifunsupportwarnings@\xyclosedown@@\xyunsupportwarnings@@\fi6889T\global\unsupportwarnings@true6890T\expandafter\gdef\expandafter\xyunsupportwarnings@@\expandafter{%6891#>\xyunsupportwarnings@@\W@{#2.}}%6892T\W@{}%6893T\W@{Xy-picWarning:`\next@'reproductionisNOTEXACT\xytracelineno@:}%6894T\W@{#2.}%6895T\W@{}%6896\fi}}6898\xydef@\xyunsupportwarnings@@{\W@{}%6899\W@{Xy-picWarning:TheproducedDVIfileisNOTEXACT:}}6901\xynew@{if}\ifsupportwarnings@6903\xydef@\xysupportwarning@#1#2{{%6904\DN@{#1}\edef\next@{\codeof\next@}\DNii@{#2}\edef\nextii@{\codeof\nextii@}%6905\expandafter\ifx\csnamexywarn@\next@@\nextii@@\endcsname\relax6906T\expandafter\gdef\csnamexywarn@\next@@\nextii@@\endcsname{}%6907T\ifsupportwarnings@\xyclosedown@@\xysupportwarnings@@\fi6908T\global\supportwarnings@true6909T\expandafter\gdef\expandafter\xysupportwarnings@@\expandafter{%6910#>\xysupportwarnings@@\driverextensioncomplain@{#1}{#2}}%a**tj1.8.CALGORITHMSr[97??hw6911 m\W@{}% 6912 m\W@{Xy-picWarning:TheproducedDVIfileisNOTPORTABLE\xytracelineno@:}%6913 m\driverextensioncomplain@{#1}{#2}%6914 m\W@{}%6915K\fi}}P6917\xydef@\xysupportwarnings@@{%6918K\W@{Xy-picWarning:TheproducedDVIfileisNOTPORTABLE:}}6920\xydef@\driverextensioncomplain@#1#2{%6921K\DN@{#1}\edef\next@{\codeof\next@}\DNii@{#2}\edef\nextii@{\codeof\nextii@}%6922K\W@{Itcontains`\next@'\string\specialsforthe`\nextii@'6923#iextension.}}ҍBac!kwardsfcompatibility.3..6929\xydef@\dvimessage@#1#2{\xysupportwarning@{#1}{#2}}6931\xynew@{if}\ifxydrivernoloads@6932\xydef@\xydrivernoload@#1{\xyerror@{Couldnotloadxy#1.tex}{}%6933K\xydrivernoloads@true}6935\xydef@\xydriverfail@#1{\xyerror@{Sorry,#1notsupported.}{}}6937\xydef@\xyunload@#1{\xywarning@{Unloading#1.}})1.8r|AlgorithmsEፑThisfsectionpresen!tsthemorecomplicatedalgorithmsusedinXY p-pic.1.8.1 Directions6957\message{algorithms:directions,}ҍThefdirpectionstateyisdescribMedb!ythefollowingparameters:Tffd f$$Dirpectionʹ`angle'ofthedirectionon]4K:1::5F4Kȁ]unitsquare$$dX,dYʹthefv!ectorcnp$$sdX,sdYʹsignfofdXauanddYk$$\K@dXdYLb;,\K@dYdXʹquotien!tsfKK#dXfe SGPAdY(andKKdYfe SGPA'SdX(asdimensionsinsp)$$DirpectionChar-,SemiDirectionCharʹ\chardefs3\fordirectionalandsemidirectionalfon!ts$$cposDirection ,sinDirectionʹfactorsD!intherange]c11:::lŹ1]D!correspMondingtocosʹandfsinofDirectionmJffd~Cfwherethe\]n4K:1::5F4Kȁ]funitsquare"hasthefollo!wingangles:IOps: SDict begin xyc endh0" {0.0 -41.25876 l}xyL:= KKhn<.dX,edY-A>32.3..P7068\xydef@\dlDirection@{\Direction=\z@7069K\def\cosDirection{-.7071}\def\sinDirection{-.7071}\def\sd@X{-}\def\sd@Y{-}%7070K\chardef\DirectionChar=127\relax\chardef\SemiDirectionChar=127\relax7071K\K@dXdY=1\K@\K@dYdX=1\K@\fixedDirection@}7073\xydef@\dDirection@{\Direction=\K@7074K\def\cosDirection{0}\def\sinDirection{-1}\def\sd@Y{-}%\def\sd@X{+}7075K\edef\sd@X{\ifdim\X@c<\X@p-\else+\fi}%7076K\chardef\DirectionChar=15\relax\chardef\SemiDirectionChar=31\relax7077K\K@dXdY=\z@\K@dYdX=\KK@\K@\fixedDirection@}7079\xydef@\drDirection@{\dimen@ii=2\K@\Direction=\dimen@ii7080K\def\cosDirection{+.7071}\def\sinDirection{-.7071}\def\sd@X{+}\def\sd@Y{-}%7081K\chardef\DirectionChar=31\relax\chardef\SemiDirectionChar=63\relax7082K\K@dXdY=-1\K@\K@dYdX=-1\K@\fixedDirection@}7084\xydef@\rDirection@{\dimen@ii=3\K@\Direction=\dimen@ii7085K\def\cosDirection{+1}\def\sinDirection{0}\def\sd@X{+}%\def\sd@Y{+}%7086K\edef\sd@Y{\ifdim\Y@c<\Y@p-\else+\fi}%7087K\chardef\DirectionChar=47\relax\chardef\SemiDirectionChar=95\relax7088K\K@dXdY=\KK@\K@\K@dYdX=\z@\fixedDirection@}7090\xydef@\urDirection@{\dimen@ii=4\K@\Direction=\dimen@ii7091K\def\cosDirection{+.7071}\def\sinDirection{+.7071}\def\sd@X{+}\def\sd@Y{+}%7092K\chardef\DirectionChar=63\relax\chardef\SemiDirectionChar=127\relax7093K\K@dXdY=1\K@\K@dYdX=1\K@\fixedDirection@}7095\xydef@\uDirection@{\dimen@ii=-3\K@\Direction=\dimen@ii7096K\def\cosDirection{0}\def\sinDirection{+1}\def\sd@Y{+}%\def\sd@X{+}7097K\edef\sd@X{\ifdim\X@c<\X@p-\else+\fi}%7098K\chardef\DirectionChar=79\relax\chardef\SemiDirectionChar=31\relax7099K\K@dXdY=\z@\K@dYdX=\KK@\K@\fixedDirection@}7101\xydef@\ulDirection@{\dimen@ii=-2\K@\Direction=\dimen@ii7102K\def\cosDirection{-.7071}\def\sinDirection{+.7071}\def\sd@X{-}\def\sd@Y{+}%7103K\chardef\DirectionChar=95\relax\chardef\SemiDirectionChar=63\relax7104K\K@dXdY=-1\K@\K@dYdX=-1\K@\fixedDirection@}7106\xydef@\lDirection@{\Direction=-\K@d*k*tj100%CHAPTERf1.CKERNEL:XY.DOC??hw7107K\def\cosDirection{-1}\def\sinDirection{0}\def\sd@X{-}%\def\sd@Y{+}% 7108K\edef\sd@Y{\ifdim\Y@c<\Y@p-\else+\fi}%7109K\chardef\DirectionChar=111\relax\chardef\SemiDirectionChar=95\relax7110K\K@dXdY=\KK@\K@\K@dYdX=\z@\fixedDirection@}P7112\xydef@\fixedDirection@#1{\dimen@ii=#1\relax7113K\d@X=\cosDirection\dimen@ii\d@Y=\sinDirection\dimen@ii7114K\resetupDirection@}HerefistheproMcedureforthegenericcode.Vl.7171Mak!e|6signvdDariablesandslopMes:~sdX/:=osignMZ(dXw),sdYv:=osign(dYɹ),KK#dXfe SGPAdY/:=osdX^'vsdYPbjԦKK{ndXkj:=1jdY=KKmj/ӝctS,and~KKdYfe SGPA'SdXչ:= sdXX sdY bߝj KK_ndYJj>6=1jdXU[=KKmj/Gcx17,wherethesome-whatpexoticcomputationmethoMdisusedtoensurethatthe`nativ!e' oorfunctionpro!videdbyT,[wEB X\divide-canbMeused(itonlyactspredictablyforpositiv!enumbMers),wthatover owisavoidedev!enDforlargedX;1dY,andthatitisreasonabletousetheconventionof\quotient@@,thatdivi-sion'Qb!yzeroislikemultiplyingwithone.3..Also'QtakescarenottomultiplytoMobigdimensionswithfeac!hother.RLl.7188IfK@ KK#dXfe SGPAdYKe thenthedirectionismostlyupordo!wn:XifdY< 0[down,ѵl.71891]:XDirpection4,:=KK#dXfe SGPAdY+n1Kȁ;felse[up,l.7191]:Dirpection4:= KK#dXfe SGPAdYn3Kȁ.]Hl.7194If2K<kKKdYfe SGPA'SdXv#127:DirpectionCharG%:=128. [l.7226|]:SemiDirpectionChar_չ:=(8K+Dirpection2+K,=64)fdiv4F(K=32)1;whileDSemiDirpectionChareY>127:SemiDirpectionChar`0:=128.InbMothcasesthe8Kg@areaddedtoensurethatT,[wEB Xwillroundfdo!wn.Hactk:The16%,\KK@,and64 intheselinesarereallyK,=64,K=32,andK=16.3..RLl.7229BuildcposDirection*andsinDirection*fromappropriatec!haractersinthe\xydashfontCm.[l.7229|]:cposDirection>i:='^wd(T(\xydashfont?4096\advance\count@@-8192\repeat@7212K\loop@\ifnum\count@@<-4096\advance\count@@8192\repeat@7213K\def\sd@X{+}\ifnum\count@@<\K@\relax7214K\ifnum\count@@>-3072\def\sd@X{-}\fi\fi7215K\def\sd@Y{+}\ifnum\count@@<3072\relax7216 m\ifnum\count@@>-\K@\relax\def\sd@Y{-}\fi\fi7217K\imposeDirection@i7218K\d@X=\cosDirection\xydashl@\d@Y=\sinDirection\xydashl@7219K\resetupDirection@}7221\xydef@\imposeDirection@i{%7222K\count@@=\K@\multiply\count@@by8\advance\count@@\Direction7223K\count@=\count@@\advance\count@\KK@\divide\count@64\advance\count@\m@ne7224K\loop@\ifnum127<\count@\advance\count@-128\repeat@7225K\chardef\DirectionChar\count@7226K\advance\count@@16\divide\count@@\KK@\advance\count@@\m@ne7227K\loop@\ifnum127<\count@@\advance\count@@-128\repeat@7228K\chardef\SemiDirectionChar\count@@7229K\setbox8=\hbox{\xydashfont\SemiDirectionChar\/}%7230K\quotient@@\cosDirection{\sd@X\wd8}\xydashl@7231K\setbox8=\hbox{\xydashfont\count@=\SemiDirectionChar\advance\count@-647232 m\ifnum\count@<\z@\advance\count@128\fi\char\count@\/}%7233K\quotient@@\sinDirection{\sd@Y\wd8}\xydashl@}7235\xydef@\getxyDirection@#1{\xy@@\bgroup\xy@@ix@{#1}%7236K\xy@@{\expandafter\POS\the\toks9\relax\setupDirection@fT*tj102%CHAPTERf1.CKERNEL:XY.DOC??hw7237 m\edef\next@{\egroup\Direction=\the\Direction}\next@\imposeDirection@}}PFinallygsomespMecialcasesusedb!ythehdirectionisanddirectionallibraryobjects.Allmanipulate theDirectiondepMenden!tparametersandthencall\resetupDirection@jչ:U\reverseDirectionhFreversesit;\above&-Fand\belowDirection@c,arefor^ 6and_ ,and\vDirection@(Nx,yd){ L}isfor:(dx,yd)$=,i.e.,computesfanewdirectionasthev!ector , <&XJnxcosJ yLLy( Wwsin^ `)L,Yxsin LycosJ L>wheref ƹisthepreviousdirectionangle.7253\xydef@\reverseDirection@{% 7254K\d@X=-\d@X\d@Y=-\d@Y7255K\ifdim\d@X<\z@\def\sd@X{-}\else\def\sd@X{+}\fi7256K\ifdim\d@Y<\z@\def\sd@Y{-}\else\def\sd@Y{+}\fi7257K\dimen@=4\K@\ifnum\Direction<\z@\advance\Direction\dimen@7258 m\else\advance\Direction-\dimen@\fi7259K\count@=\DirectionChar\ifnum\count@<64\advance\count@64%7260 m\else\advance\count@-64\fi\chardef\DirectionChar=\count@7261K\edef\cosDirection{\if-\cosDirection\else-\cosDirection\fi}%7262K\edef\sinDirection{\if-\sinDirection\else-\sinDirection\fi}%7263K\resetupDirection@}7265\xydef@\aboveDirection@#1{%7266K\dimen@=\d@X\d@X=-\d@Y\d@Y=\dimen@7267K\dimen@=\K@dXdY\K@dXdY=-\K@dYdX\K@dYdX=-\dimen@7268K\ifdim\d@X<\z@\def\sd@X{-}\else\def\sd@X{+}\fi7269K\ifdim\d@Y<\z@\def\sd@Y{-}\else\def\sd@Y{+}\fi7270K\dimen@=2\K@\ifdim1\Direction<\dimen@\else\dimen@=-6\K@\fi7271 m\advance\Direction\dimen@7272K\count@=\DirectionChar\ifnum\count@<96\advance\count@32%7273 m\else\advance\count@-96\fi\chardef\DirectionChar=\count@7274K\count@=\SemiDirectionChar\ifnum\count@<64\advance\count@64%7275 m\else\advance\count@-64\fi\chardef\SemiDirectionChar=\count@7276K\let\tmp@=\cosDirection7277K\edef\cosDirection{\if-\sinDirection\else-\sinDirection\fi}%7278K\let\sinDirection=\tmp@7279K\dimen@=#1\relax\d@X=\cosDirection\dimen@\d@Y=\sinDirection\dimen@7280K\resetupDirection@}7282\xydef@\belowDirection@#1{%7283K\dimen@=\d@X\d@X=\d@Y\d@Y=-\dimen@7284K\dimen@=\K@dXdY\K@dXdY=-\K@dYdX\K@dYdX=-\dimen@7285K\ifdim\d@X<\z@\def\sd@X{-}\else\def\sd@X{+}\fi7286K\ifdim\d@Y<\z@\def\sd@Y{-}\else\def\sd@Y{+}\fi7287K\dimen@=-2\K@\ifdim1\Direction<\dimen@\dimen@=6\K@\fi7288 m\advance\Direction\dimen@7289K\count@=\DirectionChar\ifnum\count@<32\advance\count@96%7290 m\else\advance\count@-32\fi\chardef\DirectionChar=\count@7291K\count@=\SemiDirectionChar\ifnum\count@<64\advance\count@64%7292 m\else\advance\count@-64\fi\chardef\SemiDirectionChar=\count@7293K\let\tmp@=\sinDirection7294K\edef\sinDirection{\if-\cosDirection\else-\cosDirection\fi}%g`z*tj1.8.CALGORITHMSmL103??hw7295K\let\cosDirection=\tmp@ 7296K\dimen@=#1\relax\d@X=\cosDirection\dimen@\d@Y=\sinDirection\dimen@7297K\resetupDirection@}P7299\xydef@\vDirection@(#1,#2)#3{\dimen@ii=#3\relax7300K\dimen@=#1\dimen@ii\dimen@ii=#2\dimen@ii7301K\d@X=\cosDirection\dimen@\advance\d@X-\sinDirection\dimen@ii7302K\d@Y=\sinDirection\dimen@\advance\d@Y\cosDirection\dimen@ii7303K\X@p=\X@c\advance\X@p-\d@X\Y@p=\Y@c\advance\Y@p-\d@Y7304K\setupDirection@\ignorespaces}The?abMo!veallmakeuseofthefollowing;ثusethemalsowhenthedirectionstateisknowntobMeˡcorrect: (R\resetDirection@jshouldbecalledwhenpand/orcaremo!vedˡalongthelineV~pc ,\resetupDirerectionTlwhenftheen!tiredirectionstateischangedinaconsistentmanner.7314\xydef@\resetDirection@{%7315K\d@X=\X@c\advance\d@X-\X@p\d@Y=\Y@c\advance\d@Y-\Y@p7316K\let\next@=\resetupDirection@7317K\ifdim\sd@X\d@X<\z@\let\next@=\setupDirection@i\fi7318K\ifdim\sd@Y\d@Y<\z@\let\next@=\setupDirection@i\fi7319K\next@}7321\xydef@\resetupDirection@{%7322K\edef\Directiontest@@##1##2{\noexpand\DN@{##2}%7323 m\noexpand\ifdim\noexpand\d@X=\the\d@X\relax7324\noexpand\ifdim\noexpand\d@Y=\the\d@Y\relax\noexpand\DN@{##1}%7325 m\noexpand\fi\noexpand\fi\noexpand\next@}}7327\xydef@\unsetupDirection@{\def\Directiontest@@##1##2{##2}}Finallyftheinitialdirection:up!7333\uDirection@\xydashl@!1.8.2 EdgesAnWEdgeisatok!enlistdescribingtheedgeofanobject.7Itmusthavetheform{ hexpandabletokenihunexpandable[tok!ensi}.؄Teo ndtheedgeofanobjectthen rstmakeitthecurrentobjectandthendo\the\Edge@c hcoMdei獑wherefhcoMdeidetermineswhatshouldbedone:0cֹisc!hangedtobMeequaltothepoin!tontheedgeintersectingwiththelinesegmentfromp(forEfhcorneri,alsothisw!asthev2.6bMehaviour).Note:ݹThisfshouldnotc!hangeanyofA,B,oranycompMonentofthestateexceptXzc߹andYzc.y!΍1Teest8whetherthecen!terofp,]Si.e.,< Xzp], Yzp]>,]Sis8`inside'thecobject(orontheedge).Setsthetestf\ifInside@@paccordinglye.2Setf\dimen@/rtofthedistancefromthecen!tertotheedgetowardsp(assetwithcoMde0).Note:ӹThis$RisonlypMositiv!einthedirectiontowardsp(thusnegative-sizedcirclesandrectanglesmak!efitnegative).3c5isc!hangedtobMeequaltothepoin!tontheedgefurthestinthedirectiontowardsp(forPhcorneri).ho*tj104%CHAPTERf1.CKERNEL:XY.DOC??hwNote:ݹThisfshouldnotc!hangeanyofA,B,oranycompMonentofthestateexceptXzc߹andYzc.y!ª4Replacecwithrectanglewithcornerswherethelinefrompin!tersectswiththeedgeofc(thus thisfistheinnerrectanglewithcornersasthecurren!tdirectiondictates).5Replacefcwithsmallestrectanglethatenclosesthecurren!tobjectcompletelye.«(if,thisremindsthereaderofa`dictionary'asusedb!yobject-orientedprogramminglanguagesthentheyfprobablysharethisauthor'sregretthatT,[wEB Xisnotobject-orien!ted:-)P7396\message{edges,}7398\xynew@{if}\ifInside@!ݸPtoints: 5ThefsimplestshapMeisnoneatall{apoin!t.7406\xydef@\zeroEdge#1{%7407K\ifcase#1\relax\or\Inside@false\or\dimen@=\z@7408K\or\else\Edge@c={\rectangleEdge}\fi}!ݸCircles9andEllipses: 5Nextw!ede neroundthings,üwithseveralspMecialcasesfortheindividualvdDarian!ts`describMedbelo!w:Rcentered`circular,centeredelliptical,andgeneralelliptical. Theonly`in-telligen!t'wchoiceisforthe`Under'methoMdwheretheobjectisforcedtobeacen!teredvdDariantbMeforeapplyingfeitherthecircularorellipticalv!ersion.7420\xydef@\circleEdge#1{\ifcase#1\expandafter\circleEdge@7421K\or\expandafter\circleUnder@\or\dimen@=\R@c7422K\or\expandafter\circleProp@\or\expandafter\circleInner@7423K\else\expandafter\circleOuter@\fi}7425\xydef@\circleEdge@{\DN@{\ellipseEdge@}%7426K\ifdim\R@c=\L@c\relax\ifdim\U@c=\D@c\relax7427 m\ifdim\R@c=\U@c\DN@{\circlecentredEdge@}%7428 m\else\DN@{\ellipsecentredEdge@}\fi7429K\fi\fi\next@}7431\xydef@\circleProp@{\DN@{\reverseDirection@\ellipseEdge@}%7432K\ifdim\R@c=\L@c\relax\ifdim\U@c=\D@c\relax7433 m\ifdim\R@c=\U@c\DN@{\reverseDirection@\circlecentredEdge@}%7434 m\else\DN@{\reverseDirection@\ellipsecentredEdge@}\fi7435K\fi\fi\next@}7437\xydef@\circleUnder@{\Inside@false7438K\ifdim\X@p=\X@c\relax\ifdim\Y@p=\Y@c\Inside@true\fi\fi7439K\ifInside@\else\expandafter\circleCentre@\fi}7441\xydef@\circleCentre@{{%7442K\ifdim\L@c=\R@c\relax\else7443 m\dimen@=\R@c\advance\dimen@-\L@c\divide\dimen@\tw@7444 m\advance\X@c\dimen@\advance\R@c-\dimen@\fi7445K\d@X=\X@c\advance\d@X-\X@p\d@X=\ifdim\d@X<\z@-\fi\d@X7446K\ifdim\U@c=\D@c\relax\else7447 m\dimen@=\U@c\advance\dimen@-\D@c\divide\dimen@\tw@7448 m\advance\Y@c\dimen@\advance\U@c-\dimen@\fi7449K\d@Y=\Y@c\advance\d@Y-\Y@p\d@Y=\ifdim\d@Y<\z@-\fi\d@Yi|U*tj1.8.CALGORITHMSmL105??hw7450K\DN@{}\ifdim\d@X>\R@c\relax\else\ifdim\d@Y>\U@c\relax 7451 m\else\ifdim\U@c=\R@c\DN@{\circlecentredUnder@}%7452 m\else\DN@{\ellipsecentredUnder@}\fi7453K\fi\fi\next@}}P7455\xydef@\circleInner@{\DN@{\ellipseInner@}%7456K\ifdim\R@c=\L@c\relax\ifdim\U@c=\D@c\relax7457 m\ifdim\R@c=\U@c\DN@{\circlecentredInner@}%7458 m\else\DN@{\ellipsecentredInner@}\fi7459K\fi\fi\next@}7461\xydef@\circleOuter@{\DN@{\ellipseOuter@}%7462K\ifdim\R@c=\L@c\relax\ifdim\U@c=\D@c\relax7463 m\ifdim\R@c=\U@c\DN@{\circlecentredOuter@}%7464 m\else\DN@{\ellipsecentredOuter@}\fi7465K\fi\fi\next@}"T\rueGcircles,centtered: 5CoMde^0mo!ves^< Xzc.y, #Yzc.y> Lto^thepoin!t< XzcPRzccos\5 `, YzcRzcsin$ `>where /isthecurren!tdirectionangle,icoMde1testswhetherthepcenterisloMcatedbet!weenthoset!wo1pMoints.,գcode12justreturnstheradius,գcode3isascode0andcode4istheonlynon!trivialone,replacingfwiththeinnersymmetricrectanglewithcorneratthepMoin!tofcode0.7477\xydef@\circlecentredEdge@{%7478K\dimen@=-\cosDirection\R@c\advance\X@c\dimen@7479K\dimen@=-\sinDirection\R@c\advance\Y@c\dimen@}7481\xydef@\circlecentredUnder@{%7482K\loop\ifdim\R@c>100\p@\circlescale@\repeat7483K\edef\tmp@{\expandafter\removePT@\the\R@c}\dimen@=\tmp@\R@c7484K\edef\tmp@{\expandafter\removePT@\the\d@X}\advance\dimen@-\tmp@\d@X7485K\edef\tmp@{\expandafter\removePT@\the\d@Y}\advance\dimen@-\tmp@\d@Y7486K\ifdim\dimen@>\z@\aftergroup\Inside@true\fi}7488%%\xydef@\circlescale@{\divide\R@c\KK@\divide\d@X\KK@\divide\d@Y\KK@}7489\xydef@\circlescale@{\divide\R@c\KK@\divide\d@X\KK@\divide\d@Y\KK@}7491\xydef@\circlecentredInner@{%7492K\L@c=\sd@X\cosDirection\R@c\D@c=\sd@Y\sinDirection\R@c7493K\R@c=\L@c\U@c=\D@c\Edge@c={\rectangleEdge}}7495\xydef@\circlecentredOuter@{%7496K\L@c=\R@c\D@c=\R@c\U@c=\D@c\Edge@c={\rectangleEdge}}"Ellipsis,1centtered: 5WhenUcisatthecen!treofanellipticalobject,e rstrescaletheaxestomaketheNobjectcircular.חRescaledX*anddYappropriatelye,yresetthedirectionandmo!veNtotheedgeaspreviouslye.Thenfscalebac!ktotheoriginalshapMe,adjustingXzc߹andYzcappropriatelye.7506\xydef@\ellipsecentredEdge@{\bgroup\X@p=\X@c\Y@p=\Y@c7507K\ifdim\U@c>\R@c7508 m\X@c=\cosDirection\U@c\Y@c=\sinDirection\U@c7509 m\quotient@\tmp@\U@c\R@c\X@c=\tmp@\X@c\R@c=\U@c7510K\else7511 m\X@c=\cosDirection\R@c\Y@c=\sinDirection\R@c7512 m\quotient@\tmp@\R@c\U@c\Y@c=\tmp@\Y@cjb*tj106%CHAPTERf1.CKERNEL:XY.DOC??hw7513K\fi 7514K\advance\X@c\X@p\advance\Y@c\Y@p7515K\setupDirection@\X@c=\X@p\Y@c=\Y@p\circlecentredEdge@7516K\d@X=\X@c\advance\d@X-\X@p\d@Y=\Y@c\advance\d@Y-\Y@p7517K\ifdim\U@c>\L@c\quotient@\tmp@\L@c\U@c\d@X=\tmp@\d@X7518K\else\quotient@\tmp@\U@c\R@c\d@Y=\tmp@\d@Y\fi7519K\X@c=\X@p\advance\X@c\d@X\Y@c=\Y@p\advance\Y@c\d@Y7520K\edef\next@{\egroup\X@c=\the\X@c\Y@c=\the\Y@c}\next@}%P7522\xydef@\ellipsecentredUnder@{%7523K\ifdim\R@c>64\p@\circlescale@\divide\U@c\KK@7524K\else\ifdim\U@c>64\p@\circlescale@\divide\U@c\KK@\fi\fi7525K\edef\tmp@{\expandafter\removePT@\the\R@c}\d@Y=\tmp@\d@Y7526K\edef\tmp@{\expandafter\removePT@\the\U@c}\d@X=\tmp@\d@X7527K\R@c=\tmp@\R@c\circlecentredUnder@}эFeorfellipticalobjectstheOuter-rectangleretainsalltheexten!ts,sojustchangetheedge-typMe.7534\xydef@\ellipsecentredOuter@{\Edge@c={\rectangleEdge}}FeorWellipticalobjectstheInner-rectangleneedstobMecalculatedforeac!hdirection.ðThisisdoneby  rstf ndingtheedge,using\ellipseEdge@Rnor\ellipsecentredEdge@zFwhenappropriate.7543\xydef@\ellipsecentredInner@{%7544K\bgroup\X@p=\X@c\Y@p=\Y@c\ellipsecentredEdge@7545%\advance\X@c-\X@p\L@c=\ifdim\X@c<\z@-\fi\L@c7546 m\advance\X@c-\X@p\L@c=\ifdim\X@c<\z@-\fi\X@c7547%\advance\Y@c-\Y@p\D@c=\ifdim\Y@c<\z@-\fi\D@c7548 m\advance\Y@c-\Y@p\D@c=\ifdim\Y@c<\z@-\fi\Y@c7549K\edef\next@{\egroup\L@c=\the\L@c\D@c=\the\D@c}\next@7550K\R@c=\L@c\U@c=\D@c\Edge@c={\rectangleEdge}}&⍑Non-centtered/vLariants: 5ThecoMdeforthemoregeneral\ellipseEdge@PE:usesaNewtoniterationtofsolv!eaquadraticequation.`㍑First|*loMcatetheactualcen!treoftheellipseandthelengthsofthemajoraxisaandminoraxisb.=Let(x;1yd)denotethedisplacemen!toftherequirededgepMointfromthecentreoftheellipse, soR thatK-x-:2-՟fe^"a2+cFyI{-:2F[fe^mb2L7= 1.ڐNo!wlet(dx;1dyd)bMethedisplacementfromthecentretothereferencepMoint;$thenx:d=dx+s1cosOand y=:ddy旹+s1sinwhere sisthedistanceto(x;1yd)intherequireddirectionM޹.3Weem!ustf ndthevdDalueofs,presumedtosatisfys 0.Iffa 0.Iffa>bthenw!esolveasimilarquadraticinKٙsٙfe<PA%b .(,T\oDo:mThe.caseofa=0.orb=0, so.thattheellipsedegeneratestoalinesegmen!t,shouldbMetrappMedfearlier.Suc!hanobjectwouldbMemoreeasilyhandledasadegeneratecaseofarectangle.T\o+Do:InkthecasewhenthereferencepMoin!tliesoutsidetheellipsetheNewtoniterationisnotguaran!teedtoconverge.״Asimpletest|sgrowingratherthandecreasinginsize|detectspMossiblek9*tj1.8.CALGORITHMSmL107??hwcon!vergefproblemsandexitstheiteration.Thefollo!wingmessageisissued.3..NčvXy-picwarning:poorconvergence.Often,cparticularly^dwhenthereferencepMoin!tisonorneartheedgeoftheellipse,anacceptable appro!ximationftotheedgehasbMeenfoundanywaye.P7603\xydef@\ellipseEdge@{\bgroup7604K\A@=\R@c\B@=\U@c7605K\ifdim\R@c=\L@c\d@X=\z@7606K\else\d@X=.5\R@c\advance\d@X-.5\L@c7607 m\advance\A@\L@c\divide\A@\tw@\fi7608K\ifdim\U@c=\D@c\d@Y=\z@7609K\else\d@Y=.5\U@c\advance\d@Y-.5\D@c7610 m\advance\B@\D@c\divide\B@\tw@\fi7611K\bgroup7612 m\L@c=\A@\U@c=\B@7613 m\R@p=\U@c\advance\R@p\L@c\multiply\R@p\tw@7614 m\ifdim\B@<\A@WFc\quotient@\tmp@\U@c\L@c\R@c=\tmp@\p@\D@c=\p@7615 \quotient@\tmp@\R@p\L@c\R@p=\tmp@\p@7616 m\else7617\ifdim\A@<\B@\quotient@\tmp@\L@c\U@c\D@c=\tmp@\p@\R@c=\p@7618 \quotient@\tmp@\R@p\U@c\R@p=\tmp@\p@7619 m\else7620\R@c=\p@\D@c=\p@\quotient@\tmp@\R@p\U@c\R@p=\tmp@\p@7621 m\fi\fi7622 m\quotient@\sd@X\d@X\L@c\d@X=\sd@X\p@7623 m\quotient@\sd@Y\d@Y\U@c\d@Y=\sd@Y\p@7624K\loop7625 m\bgroup\U@p=-\p@\D@p=\z@7626\ifdim\R@c<\p@7627 \edef\tmp@{\expandafter\removePT@\the\R@c}\dimen@=\tmp@\R@p7628 \advance\d@X\cosDirection\dimen@7629\else\advance\d@X\cosDirection\R@p\fi7630\edef\sd@X{\expandafter\removePT@\the\d@X}%7631\advance\U@p\sd@X\d@X7632\ifdim\R@c<\p@7633 \edef\tmp@{\expandafter\removePT@\the\R@c}\dimen@=\tmp@\d@X7634 \advance\D@p\cosDirection\dimen@7635\else\advance\D@p\cosDirection\d@X\fi7636%7637\ifdim\D@c<\p@7638 \edef\tmp@{\expandafter\removePT@\the\D@c}\dimen@=\tmp@\R@p7639 \advance\d@Y\sinDirection\dimen@7640\else\advance\d@Y\sinDirection\R@p\fi7641\edef\sd@Y{\expandafter\removePT@\the\d@Y}%7642\advance\U@p\sd@Y\d@Y7643\ifdim\D@c<\p@7644 \edef\tmp@{\expandafter\removePT@\the\D@c}\dimen@=\tmp@\d@Y7645 \advance\D@p\sinDirection\dimen@7646\else\advance\D@p\sinDirection\d@Y\filM*tj108%CHAPTERf1.CKERNEL:XY.DOC??hw7647\multiply\D@p\tw@ 7648\dimen@=\ifdim\U@p<\z@-\fi\U@p7649 \ifdim\dimen@<.01\p@\U@p=\z@7650 \else7651Jk\quotient@\tmp@\U@p\D@p\U@p=\tmp@\p@7652Jk\ifdim\U@p<\z@\xywarning@{poorconvergence}\U@p=\z@7653Jk\else\advance\R@p-\U@p\U@p=\ifdim\U@p<\z@-\fi\U@p7654 \fi\fi7655 \edef\next@{\egroup\R@p=\the\R@p\U@p=\the\U@p\D@p=\the\D@p}\next@7656\ifdim\U@p>\z@\repeat7657 m\edef\next@{\egroup\dimen@=\the\R@p}\next@7658 m\edef\tmp@{\expandafter\removePT@\the\dimen@}%7659 m\ifdim\B@<\A@\dimen@=\tmp@\B@\else\dimen@=\tmp@\A@\fi7660 m\dimen@=-\dimen@7661 m\advance\X@c\cosDirection\dimen@7662 m\advance\Y@c\sinDirection\dimen@7663K\edef\next@{\egroup\X@c=\the\X@c\Y@c=\the\Y@c}\next@}%ӍThef`Under'proMcedureisiden!ticaltothecenteredversion.P7669\xydef@\ellipseOuter@{\Edge@c={\rectangleEdge}}7671\xydef@\ellipseInner@{% 7672K\bgroup\X@p=\X@c\Y@p=\Y@c\ellipseEdge@7673K\d@X=\X@c\advance\d@X-\X@p7674K\ifdim\d@X>\z@\R@p=\d@X\L@p=\R@p7675 m\ifdim\L@c=\R@c\else\advance\L@p\L@c\advance\L@p-\R@c\fi7676K\else\L@p=-\d@X\R@p=\L@p7677 m\ifdim\L@c=\R@c\else\advance\R@p\R@c\advance\R@p-\L@c\fi7678K\fi7679K\d@Y=\Y@c\advance\d@Y-\Y@p7680K\ifdim\d@Y>\z@\U@p=\d@Y\D@p=\U@p7681 m\ifdim\D@c=\U@c\else\advance\D@p\D@c\advance\D@p-\U@c\fi7682%\else\D@p=-\d@X\R@p=\D@p7683K\else\D@p=-\d@Y\U@p=\D@px%<<<<<<========7684 m\ifdim\D@c=\U@c\else\advance\U@p\U@c\advance\U@p-\D@c\fi7685K\fi7686K\edef\next@{\egroup7687 m\L@c=\the\L@p\D@c=\the\D@p\R@c=\the\R@p\U@c=\the\U@p}%7688K\next@\Edge@c={\rectangleEdge}}#Rectangles: 卑RectanglesMin!tersectionisslightlymorecomplicatedandhandledseparatelyforthehorizontalandv!erticalfcase.P7697\xydef@\rectangleEdge#1{\ifcase#1\expandafter\rectangleEdge@7698K\or\expandafter\rectangleUnder@\or\expandafter\rectangleDist@7699K\or\expandafter\rectangleProp@%%%\or\expandafter\rectangleInner@BUG!7700K\else\relax\fi}Bug:ݹnof`Inner'forrectangles!P7706%\rectangleEdge@mR*tj1.8.CALGORITHMSmL109??hw7707%#iSetstotheintersectionofalinefromto 7708%#iandtherectanglefromto:7709%7710%#i%1aQdY<0,dX<0:YX:=X+min{R,U*|dX/dY|},7711%YY:=Y+min{U,R*|dY/dX|};7712%/bQdY<0,dX=0:YY:=Y+U;7713%/cQdY<0,dX>0:YX:=X-min{L,U*|dX/dY|},7714%YY:=Y+min{U,L*|dY/dX|};7715%7716%#i%2aQdY=0,dX<0:YX:=X+R;7717%/bQdY=0,dX=0:Y;7718%/cQdY=0,dX>0:YX:=X-L;7719%7720%#i%3aQdY>0,dX<0:YX:=X+min{R,D*|dX/dY|},7721%YY:=Y-min{D,R*|dY/dX|};7722%/bQdY>0,dX=0:YY:=Y-D;7723%/cQdY>0,dX>0:YX:=X-min{L,D*|dX/dY|},7724%YY:=Y-min{D,L*|dY/dX|};7725%7726%#i%4\resetupDirection@toregisterthateventhoughdX,dYchangedall7727%4gDirectionparametersareisstillvalid!7728%7729%#iNOTE:d=0reallymeans|d|<.05pt.7730%7731\xydef@\rectangleEdge@{%7732K\ifdim\d@Y<-.05\p@\rectangleEdge@i3%17733K\else\ifdim\d@Y<.05\p@\rectangleEdge@ii3%27734K\else\rectangleEdge@iii\fi\fi7735K\resetupDirection@}P7737\xydef@\rectangleEdge@i{%7738K\ifdim\d@X<-.05\p@7739 m\settomin@\X@c+\R@c\U@c\d@X\d@Y\settomin@\Y@c+\U@c\R@c\d@Y\d@X%1a7740K\else\ifdim\d@X<.05\p@\advance\Y@c\U@c3%1b7741K\else\settomin@\X@c-\L@c\U@c\d@X\d@Y\settomin@\Y@c+\U@c\L@c\d@Y\d@X3%1c7742K\fi\fi}7744\xydef@\rectangleEdge@ii{%7745K\ifdim\d@X<-.05\p@\advance\X@c\R@c3%2a7746K\else\ifdim\d@X<.05\p@3%2b7747K\else\advance\X@c-\L@c3%2c7748K\fi\fi}7750\xydef@\rectangleEdge@iii{%7751K\ifdim\d@X<-.05\p@7752 m\settomin@\X@c+\R@c\D@c\d@X\d@Y\settomin@\Y@c-\D@c\R@c\d@Y\d@X%3a7753K\else\ifdim\d@X<.05\p@\advance\Y@c-\D@c3%3b7754K\else\settomin@\X@c-\L@c\D@c\d@X\d@Y\settomin@\Y@c-\D@c\L@c\d@Y\d@X3%3c7755K\fi\fi}7757\xydef@\settomin@#1#2#3#4#5#6{%7758K%Performd:=#2min{#3,#4*|#5/#6|};#1:=#1+d...n*tj110%CHAPTERf1.CKERNEL:XY.DOC??hw7759K\edef\nextii@{\A@=\the\A@\B@=\the\B@}\quotient@\next@{#5}{#6}\nextii@ 7760K\dimen@=\sd@X\sd@Y\next@#4\relax7761K\ifdim#3<\dimen@\dimen@=#3\fi\advance#1#2\dimen@}Chec!king thatpisunderissimpler:RNormallyitisnotbutifc=p or(LzcK<Xzp=pvXzc-\L@c\relax\ifdim\dimen@<\R@c7774\dimen@=\Y@p\advance\dimen@-\Y@c7775\ifdim\dimen@>-\D@c\relax\ifdim\dimen@<\U@c7776 \Inside@true7777K\fi\fi\fi\fi\fi}Calculating)thewidthislik!ecomputingtheedgepMoint,65justsimpler:(l.7787|)SetAtothehorizontalandBttothev!erticaldistanceapplicable;8ifeitheriszero(orclose)usetheotherunmoMdi ed.(l.7796|)IfbMothfnonzerouseminh(A=1cosO `;1B=sin )fwhere ƹisthecurren!tangle.P7787\xydef@\rectangleDist@{\let\next@=\rectangleDist@i7788K\ifdim\d@X<-.05\p@\dimen@=\R@c7789K\else\ifdim\d@X<.05\p@\dimen@=\z@\DN@{\dimen@=\dimen@ii}%7790K\else\dimen@=\L@c\fi\fi7791K\ifdim\d@Y<-.05\p@\dimen@ii=\U@c7792K\else\ifdim\d@Y<.05\p@\DN@{}%7793K\else\dimen@ii=\D@c\fi\fi7794K\next@}7796\xydef@\rectangleDist@i{7797K\begingroup\quotient@\next\p@{\sd@X\cosDirection\p@}%7798 m\edef\next{\endgroup\dimen@=\next\dimen@}\next7799K\begingroup\quotient@\next\p@{\sd@Y\sinDirection\p@}%7800 m\edef\next{\endgroup\dimen@ii=\the\dimen@ii}\next7801K\ifdim\dimen@ii<\dimen@\dimen@=\dimen@ii\fi}Settingfctothe`propMortionaledgepoin!t'isstraightoutofv2.6's\setlabel@@Fmacro.3..7808%Firstrotatetooppositedirection.7810%ThencomputeLeftf,Upf[\next@,\nextii@]:7811%Q0,(D-2K)/2KYfor T2K0to7817%#i<X-L+Leftf*(R+L),Y+U-Upf*(D+U)>7819\xydef@\rectangleProp@{%7820K\enter@{\A@=\the\A@\B@=\the\B@\DirectionfromtheDirection@}%7821K\reverseDirection@7822K\dimen@=1\Direction\count@=\K@\multiply\count@\tw@7823K\ifnum\Direction>\count@7824 m\DN@{0}%oB*tj1.8.CALGORITHMSmL111??hw7825 m\advance\dimen@-2\K@\quotient@\nextii@{\dimen@}{2\K@}% 7826K\else\ifnum\Direction>\z@7827 m\dimen@=-\dimen@\advance\dimen@2\K@\quotient@\next@{\dimen@}{2\K@}%7828 m\DNii@{0}%7829K\else\ifnum\Direction>-\count@7830 m\DN@{1}%7831 m\quotient@\nextii@{-\dimen@}{2\K@}%7832K\else7833 m\advance\dimen@4\K@\quotient@\next@{\dimen@}{2\K@}%7834 m\DNii@{1}%7835K\fi\fi\fi7836K\advance\X@c-\L@c\dimen@=\L@c\advance\dimen@\R@c7837 m\ifdim\dimen@=\z@\advance\X@c2\L@c\else\advance\X@c\next@\dimen@\fi7838K\advance\Y@c+\U@c\dimen@=\D@c\advance\dimen@\U@c7839 m\ifdim\dimen@=\z@\advance\Y@c-2\U@c\advance\Y@c\Upness@\U@c7840 m\else\advance\Y@c-\nextii@\dimen@\fi7841K\leave@}"퍍1.8.3 Connections7851\message{connections;}wЍConnectionsdescribMeho!waparticularhobjectimaybMeusedtoconnectptoc.Thefollowingparam-etersfandmethoMdsarede nedb!yanyconnection;theyshouldbMeusedintheindicatedsequence:6\Invisible@@(,2\Hidden@@7,2and\Drop@@,p3:/:asfforhobjecti.\Creset@@I: B#(Re)setmitheconnectionparameterstoallo!wuseofthefollowingtomovetoapMointon the|connection(thisiswhatthein!terpretationofhpMosi? does rst). Alle ectsobtainedb!ythefollo!wingmethoMdsareundone:\Creset@@=A6reestablishesthestatetowhatitwasjustafterthe\Connect@@<'ev!eryftime.6\Cshavep@@!;Jor2\Cshavec@@=1:s^ChangeVporctoazero-sizedobjectatthestartor nishoftheconnec-tionf(the rst< vand>hplaceicompMonen!ts).\Calong@@{hfactori}:OgMo!venqctopMoin!tthehfactorialongtheconnectionandsetthedirectionparam-etersfasatangen!ttoitinthispMoint(the( fhfactori)hplaceifcompMonent).\Cslidep@@{"ghdimeni} 7or2\Cslidec@@{Cnhdimeni}:̞Mo!veporcthehdimenisionfurtherinthecurren!tdirection.Can߱bMeusedbothbeforeandafterthe\Calong@@;|\method(thesehandlesubsequen!t<R-andf> vasfw!ellasthe/ fhslidei/hplaceifcompMonent).\Cintercept@@.G:7@˹SetctoazerosizedobjectatthepMoin!twheretheconnectioncrossesthestraightlinefromfptoc(the!{%.3..} 9ChplaceifcompMonen!t).\Cbreak@@{and2\Clast@@2/:jsTheseAdsuppMortt!ypesettingoftheconnectioninsev!eral`subsegments'asused"b!ythearrowoption.Theideaisthefollowing,usingtheinternallastbrpeakݹand"nextbreakpMositions: J1.)\Connect@@T&3setsflastbrpeak0:= pfandnextbrpeak3y:=c* J2.)The>]commands\Cslidec@@=,d[\Cslidep@@=,d[and\Cintercept@@N,setnextbrpeakllogically>]to)thefpMositionthatisobtainedb!ythemanipulation.pَ*tj112%CHAPTERf1.CKERNEL:XY.DOC??hw J3.)\Cbreak@@Nquret!ypMesetsRtheconnectionexceptonlythepiecefromlastbrpeak toRthecurrentc )object,iwhic!hB"mustL bMeatontopofnextbrpeak-,isB"t!ypMeset.Afterwordsitsetslastbrpeak257:=)nextbrpeakGandfnextbrpeak3y:= cf(wherecistheoriginalcoftheconnection). J4.)ThetCcommand\Clast@@4ֹt!ypMesetsfromlastbrpeakandtCtheremainderoftheconnection,~Jand)resetsflastbrpeak0:= pfandnextbrpeak3y:=c.Noticethatitisnotnecessaryfornextbrpeak2ιtoactuallyexist,infactinthek!ernelitisjustanaliasforfcatthetime\Cbreak@@; ƹiscalled. These,"arethedefaultsforbasicXY,-picturesthatonlyhasstraigh!tconnectionshencethemacrosallyOstartingwith\noM.3..areyOrathersimple{inparticulartheyjustmergewithzerosizedobjectsattheloMcationsfcuto locations(thisw!asinheritedfromthebrokenarrow$ coMde 53^).P7925\xydef@\Creset@@{}7926\xydef@\Cshavep@@{\noCshavep@@}7927\xydef@\Cshavec@@{\noCshavec@@}7928\xydef@\Cslidep@@{\noCslidep@@}7929\xydef@\Cslidec@@{\noCslidec@@}7930\xydef@\Calong@@{\noCalong@@}7931\xydef@\Cintercept@@{\noCintercept@@}7932\xydef@\Cbreak@@{\noCbreak@@}7933\xydef@\Clast@@{\noClast@@}7935\xylet@\lastbreak@@=\empty7937\xydef@\noCshavep@@{\setupDirection@7938K\enter@{\cfromthec@\DirectionfromtheDirection@}%7939K\reverseDirection@\cfromp@\the\Edge@c\z@7940K\pfromc@\leave@\resetDirection@}7942\xydef@\noCshavec@@{\setupDirection@\the\Edge@c\z@\resetDirection@}7944\xydef@\noCslidep@@#1{\dimen@=#1\relax7945K\advance\X@p\cosDirection\dimen@\advance\Y@p\sinDirection\dimen@7946K\resetDirection@}7948\xydef@\noCslidec@@#1{\dimen@=#1\relax7949K\advance\X@c\cosDirection\dimen@\advance\Y@c\sinDirection\dimen@7950K\resetDirection@}7952\xydef@\noCalong@@#1{%7953K\d@X=#1\d@X\d@Y=#1\d@Y\X@c=\X@p\Y@c=\Y@p\advance\X@c\d@X\advance\Y@c\d@Y7954K\resetupDirection@}RNextfthein!terceptmethoMdthatjustuses\intersect@Bⴹ.7960\xydef@\noCintercept@@{\enter@{\pfromthep@}%7961K\begingroup\Creset@@\edef\tmp@{\endgroup7962 m\X@origin=\the\X@p\Y@origin=\the\Y@p\R@c=\the\d@X\U@c=\the\d@Y}\tmp@7963K\loop@\dimen@=\ifdim\R@c<\z@-\fi\R@c\advance\dimen@\ifdim\U@c<\z@-\fi\U@c7964 m\ifdim\dimen@>10\p@\advance\R@c\ifdim\R@c<\z@-\fi16sp\divide\R@c\KK@7965\advance\U@c\ifdim\U@c<\z@-\fi16sp\divide\U@c\KK@\repeat@7966K\intersect@\leave@}RAnda nallythedumm!y`break'methoMdwhichofcoursedoMesnothingexcepttherequiredshifting.7973\xydef@\noCbreak@@{\edef\lastbreak@@{\cfromthec@}}7974\xydef@\noClast@@{\Creset@@\edef\lastbreak@@{\cfromthep@}}q*tj1.8.CALGORITHMSmL113??hwThe-Dk!ernelonlyde nesonekindofconnectionwhichisusedbydefault:` lling'manycopiesof thefconnectobjectonthestraigh!tlinefromptoc.Firstthe`dumm!y'connectiontypMeno잹usedforhobjectiswhereitdoesn'treallymak!esenseto`connect',fandusedtopro!videdefaultsforeasyopMerations:P7986\xydef@\no@@{\setupDirection@\edef\lastbreak@@{\cfromthep@}%7987K\enter@{\cfromthec@\pfromthep@\DirectionfromtheDirection@}%7988 m\edef\Creset@@{\cfromthec@\pfromthep@\DirectionfromtheDirection@}%7989 m\edef\next@{{\sd@X}{\sd@Y}}\expandafter\straightcheckoverlap@\next@7990 m\setupDirection@\the\Edge@c\z@7991 m\swap@\reverseDirection@\the\Edge@c\z@\swap@\reverseDirection@7992 m\resetDirection@7993 m\edef\Cshavep@@{\DirectionfromtheDirection@7994\pfromthep@\noexpand\resetDirection@}%7995 m\edef\Cshavec@@{\DirectionfromtheDirection@7996\cfromthec@\noexpand\resetDirection@}%7997K\leave@7998K\def\Cslidep@@{\noCslidep@@}\def\Cslidec@@{\noCslidec@@}%7999K\def\Calong@@{\noCalong@@}\def\Cintercept@@{\noCintercept@@}%8000K\def\Cbreak@@{\noCbreak@@}\def\Clast@@{\noClast@@}\noinsert@}8002\xydef@\noinsert@{\ifHidden@\else8003 m\ifdim\Y@c>\Y@max\Y@max=\Y@c\fi T\ifdim\Y@p>\Y@max\Y@max=\Y@p\fi8004 m\ifdim\Y@c<\Y@min\Y@min=\Y@c\fi T\ifdim\Y@p<\Y@min\Y@min=\Y@p\fi8005 m\ifdim\X@c>\X@max\X@max=\X@c\fi T\ifdim\X@p>\X@max\X@max=\X@p\fi8006 m\ifdim\X@c<\X@min\X@min=\X@c\fi T\ifdim\X@p<\X@min\X@min=\X@p\fi8007K\fi}˗Nextv`straigh!t'connectionsthatusethefollowingspMecialparameterstocustomiseshowtorepMeataf` ller'objectasman!ytimesasneededtodrawtheconnection:؍\lastobjectbox@9:BbMo!x.to llwith;,assumedtobe`trimmed'toha!ve.onlythesizeneededforthe ller;sizefiswZn(h+d)).׍ThemethoMdiscalledas\straight@{B[Vhspreadi}޲wherehspreadiisamacrotoexpandafterLùthen!umberof? llersNq3(in\count@@1<)iskno!wnandwithA =wand?BK=dI+hbutbpefore5an!y llingisdone.Mayc!hangefNaswellasdX;1dY;1X@<;Y;wKn;d;hfinordertoa ectthe lling.[ProYcedure: 5[l.8046|]Msetupdirectionparameters, clearthebreakstate,andde nethe\Creset@@macroNtoreestablishthisinitialstate;k[l.8049|]buildmacrotodisco!verNiftheedgesoftheobjectso!verlap(itedgesw!ereremoved);[??H]movebMothp;1ctotheedgesoftheobjects.3..andde nethe\Cshave*@@macrosaaccordingly;?<[l.8058|]c!hoMoseeithertoignoretheconnectionifrequestedorthereisoverlapbMet!weenQtheobjectsofc!hooseeithervbo!xorhbMoxversion(seebMelow).3..;mandQ[l.8063|]build\Calong@@7,\Cbreak@@I,fand\Clast@@5Jmacros,andresetpc.Note:ݹAssumesfthatthedirectionisnottampMeredwithbet!weenfCresetisde nedandused.3..8043\xydef@\Spread@@{}8044\xydef@\checkoverlap@@{}8046\xydef@\straight@#1{\setupDirection@\def\Spread@@{#1}%8047K\edef\Creset@@{\cfromthec@\pfromthep@>S\DirectionfromtheDirection@}%8048K\edef\lastbreak@@{\cfromthep@}%8049K\edef\next@{{\sd@X}{\sd@Y}}\expandafter\straightcheckoverlap@\next@rN*tj114%CHAPTERf1.CKERNEL:XY.DOC??hw8050K\setupDirection@\the\Edge@c\z@ 8051K\swap@\reverseDirection@\the\Edge@c\z@\swap@\reverseDirection@8052K\resetDirection@8053K\edef\Cshavep@@{\DirectionfromtheDirection@8054 m\pfromthep@\noexpand\resetDirection@}%8055K\edef\Cshavec@@{\DirectionfromtheDirection@8056 m\cfromthec@\noexpand\resetDirection@}%8057K\noinsert@8058K\straight@typeset8059K\def\Cbreak@@{\straightCbreak@}\def\Clast@@{\straightClast@}%8060%\DN@{\solidSpread@}\ifx\next@\Spread@@8061% T\checkXy@rules@\solidhrule@pre\solidvrule@pre\relax8062%\fi8063K\def\Cslidep@@{\noCslidep@@}\def\Cslidec@@{\noCslidec@@}8064K\def\Calong@@{\noCalong@@}\def\Cintercept@@{\noCintercept@@}%8065K\Creset@@}P8067\xydef@\straightcheckoverlap@#1#2{\def\checkoverlap@@{%8068 m\ifdim#1\X@p>#1\X@c\let\next@=\relax\fi8069 m\ifdim#2\Y@p>#2\Y@c\let\next@=\relax\fi}}8071\xydef@\straight@typeset{%8072K\ifInvisible@\let\next@=\relax8073K\else\ifdim1\Direction<-2\K@\DN@{\straightv@}%8074K\else\ifdim1\Direction<\z@>\DN@{\straighth@}%8075K\else\ifdim1\Direction<2\K@ T\DN@{\straightv@}%8076K\else\DN@{\straighth@}%8077K\fi\fi\fi\fi\checkoverlap@@\next@}эThenmethoMds\straightCbreak@`~and\straightClast@[Թimplemen!tthebreakmethodparametrisedonnthe`t!ypMeset'primitivewhichisusually\straight@typesetf(whichisasimpli edversionof\straight@thatdoMesnotinitialise.pThisreliesontheconnectionbeingstraigh!t:?MtheCbreak@@5methodexecutesp;1c :=p.lastbrpeak/;c.nextbrpeak7K and?Clast@@0executes?p;c:=p.lastbrpeak/;c,f[where?inbMothcasesthe[Inner]#ѹmoMdi erZisappliedjustbeforethemergingtomak!esuretheedgeisrespectedb!ythemergedobject.8091\xylet@\nextbreak@@=\empty8093\xydef@\straightCbreak@{\connectRestore@8094K\edef\nextbreak@@{\cfromthec@}%8095K\Creset@@\swap@\the\Edge@c4\enter@{\cmergethec@}\lastbreak@@\leave@8096K\swap@\the\Edge@c4\enter@{\cmergethec@}\nextbreak@@\leave@8097K\setupDirection@8098K\the\Edge@c\z@8099K\swap@\reverseDirection@\the\Edge@c\z@\swap@\reverseDirection@8100K\resetDirection@\noinsert@\straight@typeset8101K\Creset@@\let\lastbreak@@=\nextbreak@@}8103\xydef@\straightClast@{\connectRestore@8104K\Creset@@\swap@\the\Edge@c4\enter@{\cmergethec@}\lastbreak@@\leave@8105K\swap@8106K\setupDirection@8107K\the\Edge@c\z@s*tj1.8.CALGORITHMSmL115??hw8108K\swap@\reverseDirection@\the\Edge@c\z@\swap@\reverseDirection@ 8109K\resetDirection@\noinsert@\straight@typeset8110K\Creset@@\edef\lastbreak@@{\cfromthep@}}덑No!wKforthetypMesetting{tosummarise:theseareparametrisedondirectionparametersanduseX@<;1Yn:-endpMoin!tGofconnection(`Directionend').UdX;dY:-connectiondistance(`Directionv!ector').\Leftness@"2ȹof* hobjecti. h\lastobjectbox@dιto llwith;assumedtobMe`trimmed'. h\Spread@@BOҹtoexpandtomoMdifythedefaultspreadingused.\Drop@@55toexpandtoactuallyt!ypesetthe nishedconnectionfwhenitisinbMo!x0!Note:MustfmakebMox0voidtoavoid`bMoxleaks'.Tw!o~vdDariantsexist:oneformostlyhorisontalandoneformostlyvertical lling.dWeedetailthe`mostlyfhorison!tal'one:[??H]nstartbMo!x;q[l.8151|]computeinitialadjustment(XxfrightandY ]up)andA:=wKn,B1V:=h+d,N=Qb |/(coajz dX'j,g=dDA),'and24runusersuppliedSpread;.8155|]adjust rst llerpMositionhorizon!tally:yifdX> 0TRthenX:= XwKn;o[l.8156|]adjust rst llerv!ertically:Yy:=Y9sdX8L(dY=dXw)wwhereL =if mdX>0thenJ(1DLef-tness)elseLeftness;W[l.8160|]Orecomputethemo!veOdimensions(Arigh!tandBup):J'Ad:=sdX(j dXjIwKn)=(NĤ1),B:=dsdYjsdX0j(w)ndYJ=dXkdYnj=(NĤ1),and܋setthe llerbMo!x6tohavewFd:=A;~[l.8166|]output rst lleradjustedX@<;1YandthefollowingN 1eachAfurtherrigh!tfandraisedB3 morethantheprevious;and nallyendobjectwithusualbravour!P8149\xydef@\straighth@{\setbox\z@=\hbox{%8150 m\setbox8=\copy\lastobjectbox@8151 m\A@=\wd8\relax\B@=\dp8\relax\advance\B@\ht8\relax8152 m\ifdim\A@=\z@\count@@=\m@ne8153 m\else\dimen@=\sd@X\d@X\divide\dimen@\A@\count@@=\dimen@\fi8154 m\Spread@@8155 m\ifdim\d@X>\z@\advance\X@c-\wd8\relax\fi8156 m\dimen@=-\sd@X\wd8\relax8157 m\multiply\dimen@\K@dYdX\divide\dimen@\K@8158 m\ifdim\d@X>\z@\advance\Y@c\dimen@\advance\Y@c-\Leftness@\dimen@8159 m\else\advance\Y@c\Leftness@\dimen@\fi8160 m\dimen@=\wd8\relax\A@=\sd@X\d@X\advance\A@-\dimen@8161 m\B@=\sd@X\dimen@\multiply\B@\K@dYdX\divide\B@\K@8162 m\advance\B@-\d@Y\B@=\sd@Y\B@8163 m\count@=\count@@\advance\count@\m@ne8164 m\ifnum\z@<\count@\divide\A@\count@\divide\B@\count@\fi8165 m\A@=-\sd@X\A@\B@=\sd@Y\B@\wd8=\A@8166 m\kern\X@c\count@=\z@8167 m\loop@\ifnum\count@<\count@@\advance\count@\@ne8168\raise\Y@c\copy8\relax\advance\Y@c\B@\repeat@}%8169K\ht\z@=\z@\wd\z@=\z@\dp\z@=\z@{\Drop@@}}덑TheSmoslyv!erticalisanalogous.,Bug:\dimen@/͹holdstheunadjustedhVǹ+dSthroughout{somehowitfw!orksanyway!8176\xydef@\straightv@{\setbox\z@=\vtop{%8177 m\setbox8=\copy\lastobjectbox@8178 m\A@=\wd8\relax\B@=\dp8\relax\advance\B@\ht8\relax8179 m\ifdim\B@=\z@\count@@=\m@ne8180 m\else\dimen@=\sd@Y\d@Y\divide\dimen@\B@\count@@=\dimen@\fi8181 m\Spread@@8182 m\dimen@=\dp8\relax\advance\dimen@\ht8\relax8183 m\B@=\sd@Y\d@Y\advance\B@-\dimen@t*tj116%CHAPTERf1.CKERNEL:XY.DOC??hw8184 m\A@=\sd@Y\dimen@\multiply\A@\K@dXdY\divide\A@\K@\advance\A@-\d@X 8185 m\A@=\sd@X\A@\count@=\count@@\advance\count@\m@ne8186 m\ifnum\z@<\count@\divide\B@\count@\divide\A@\count@\fi8187 m\B@=\sd@Y\B@\A@=\sd@X\A@\ht8=\B@\dp8=\z@8188 m\ifdim\d@Y<\z@8189\advance\Y@c\dimen@\advance\Y@c\Upness@\B@8190 m\else8191\advance\dimen@\Upness@\B@\advance\Y@c-\dimen@\advance\Y@c\B@8192 m\fi8193 m\advance\Y@c\B@8194 m\ifdim\d@X<\z@\else\advance\X@c-\wd8\relax\fi8195 m\null\kern-\Y@c\count@=\z@8196 m\loop@\ifnum\count@<\count@@\advance\count@\@ne8197\nointerlineskip\moveright\X@c\copy8\relax\advance\X@c\A@8198 m\repeat@}%8199K\ht\z@=\z@\wd\z@=\z@\dp\z@=\z@{\Drop@@}}'Endff&logRsùXY#-picfendswithamessagesa!yingso.P8211\message{Xy-picloaded}\xyuncatcodes\endinputf sùXY#-pic#ismain!tainedusingtheRCS\RevisionControlSystem"byWealtherF.Tichye.Thefollowingisftherevisionhistorysincethe rstreleasetoUsenet.8219%$Log:xy.doc,v$8220%Revision3.7 T1999/02/1615:12:50krisrose8221%Interimrelease(Y&Yfontsnowfree).8222%8223%Revision3.6 T1998/03/0601:28:05krisrose8224%Releasing(withY&Yfonts).8225%8226%Revision3.5 T1997/05/2813:05:01krisrose8227%Fixedmissingbreaksbug.8228%8229%Revision3.4 T1997/05/1801:14:25krisrose8230%Essentialbugfixes.8231%8232%Revision3.3 T1996/12/1903:31:56krisrose8233%Maintenancerelease8234%8235%Revision3.2Q1995/09/19 T18:22:27kris8236%Bugfixrelease.8237%8238%Revision3.1Q1995/09/05 T20:31:32kris8239%Releasing!8240%8241%Revision3.0Q1995/07/07 T20:14:21kris8242%Majorreleasew/newUser'sGuide!8243%u$*tj1.8.CALGORITHMSmL117??hw8244%Revision2.14WFc1995/07/05 T22:20:09kris 8245%Buglets...8246%8247%Revision2.13WFc1995/07/04 T15:11:17kris8248%Readytoreleasev3?8249%8250%Revision2.12WFc1994/10/25 T11:55:12kris8251%Interimreleasejustbeforev3[workswithAMS-LaTeX1.2]...8252%8253%Revision2.11WFc1994/07/05 T10:37:32kris8254%Third3betarelease[bugfixes].8255%Experimentalgraphfeatureincluded(forECCT-94presentation).8256%8257%Revision2.10WFc1994/06/15 T12:55:07kris8258%Second3betarelease:bugfixes.8259%8260%Revision2.9Q1994/06/09 T14:59:19kris8261%Release3beta.8262%8263%Revision2.8Q1994/04/11 T09:31:09kris8264%Second(bugfix)3alpharelease[corrected].8265%8266%Revision2.7Q1994/03/08 T02:06:01kris8267%Release3alpha.8268%8269%Revision2.6.9.1 T1994/03/07Y04:22:46 Tkris8270%Lastinternal3alphaandpre-2.7release.8271%8272%MAJORREWRITEandREORGANISATION:8273%Filexypic.docsplitintoseparatefiles:xy.docfor`kernel'andother8274%fileswiththe`extensions'and`features'.8275%DocumentedinspecialDOCMODELaTeX-basedformatsupportedbyxydoc.sty.8276%8277%Revision2.6.1.1 T1992/07/01Y07:08:24 {kris8278%SendtoEuroTeX'92...8279%8280%Revision2.6Q1992/06/24 T01:23:34kris8281%Addedhooksusingfontxyqc10.8282%AddednewPOSitions:*and!.8283%Addedtriplelines\Ssolidand\Ddashed.8284%8285%Revision2.5Q1992/02/24 T03:30:54kris8286%Fixedbugsin\Directioncalculationlogic...8287%Added(FACTOR)to\rotatetoallowarbitraryrotation.8288%`intermediatepointsnowacceptanoptional/RADIUSargument.8289%Added\Tipwithwidetip.8290%[SeeChangeLogforfurtherdetails].8291%8292%Revision2.4Q1992/01/22 T02:15:10krisv/*tj118%CHAPTERf1.CKERNEL:XY.DOC??hw8293%Fixedbugs[withthanks]: 8294%NospuriousarrowheadswithLaTeX:\pitnowundefined[WernerStruckmann]8295%\Solidworks:sets\Density[DaveBowen]8296%Shortdiagonallineswork...majorrewriteof\connectv@[EricDomenjoud]8297%8298%Revision2.3Q1992/01/13 T23:28:12kris8299%Swappeddefinitionsof\ddtoXand\uutoX[foundbyNicoVerwer].8300%Diagonallineswerewrong[EricDomenjoud].8301%8302%Revision2.2Q1992/01/09 T04:05:40kris8303%Stillproblemswithrulesinframesandhorizontal/vertical\solids.Grrr.8304%8305%Revision2.1Q1992/01/02 T14:54:07kris8306%Releaseversion.8307%8308%Revision1.40WFc1991/12/1704:53:23kris8309%Versiondistributedas`finaldraft'onUsenet.w:*tj??>Chapter 22;ǍExtensions5aThis/c!hapterdescribMestheoptionsthatprovideextensionstothekernel,Qi.e.,suppMort/facilitiesthat are=notobtainablyusingthek!ernel.Mostsuchfeaturesareonlyapproximated,R(relyingonadriverforthefimplemen!tation.#ݍ2.1r|CurveffandSplineextension寍;"V cmbx10V ers.p3.7Tb9yRossMoQorehross@mpGce.mq.edu.aui #Thisoptionpro!vides4XY -picwiththeabilitytotypMesetsplinecurvesbyconstructingcurvedconnectionsusingarbitrarydirectionalobjectsandb!yencirclingobjectssimilarlye.AWarning:sUsingcurv!escanbMequite:astrainonT,[wEB X'smemory;y!oushouldthereforelimitthelengthandnumbMerofcurvesusedona1singlepage.Memoryuseislesswhencom!binedwithabackendcapableofproMducingitsowncurves;e.g.,fthePostScriptbac!kend).AHeader:P1%%$Id:xycurve.doc,v3.71999/02/1615:12:50krisroseExp$2%%3%%Xy-pic``CurvesandSplines''extension.4%%Copyright(c)1993-1997RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997KristofferH.Rose T9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,LW.119x>*tj120?KlCHAPTERf2.CEXTENSIONS??hw22%%675MassAve,Cambridge,MA02139,USA. 23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{curve}{CurveandSplineextension}{\stripRCS$Revision:3.7$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia},)g2.1.1 Curvedconnectionsb퍍49\message{curve,}Simplefw!aystospMecifycurvesinXY p-picareasfollows: Sffd QύK)**\crv{shpMoslisti}V curv!edfconnectionK)**\crvs{yyhdiri}V getfhpMoslistifromthestac!kK)\curve{shpMoslisti}V asfahdecoriationGffdinW|whic!hhpMoslistiisalistofvdDalidhposiitions.Thedecorationform\curve+,isjustanabbreviationfor>\connect\crvI6.!eAs>usual,-4thecurren!tpandcareusedasthestartand nishoftheconnection,respMectiv!elye.tKWithin؋hposlistithehposiitionsareseparatedb!y& 5.tKA~fulldescriptionofthesyntaxfor\crvisfgiv!enin gure2.1.ugH9Fps: SDict begin xyc end>6Ad%Bd" {156.6018 -52.14154 l}xyBꜟQ03h0I" {mark 170.71564 0.0 85.35782 85.35782 0.0 56.90521 0.03958 0.95947 q}xyYt13h0_" {mark 0.0 56.90521 56.90521 113.81042 113.81042 113.81042 170.71564 0.0 0.02908 0.97986 bz}xyY23h0[" {mark 0.0 56.90521 28.4526 56.90521 56.90521 56.90521 80.61572 37.93681 0.08327 1.0 bz}xya" {mark 80.61572 37.93681 104.32622 18.9684 123.29463 -18.96841 139.89198 -30.82367 0.0 1.0 bz}xya" {mark 139.89198 -30.82367 156.48933 -42.67891 170.71564 -28.4526 170.71564 0.0 0.0 0.9176 bz}xyor41EWeeneedacoun!tertotrackthenumbMerofcontrolpMoints,(i.e.FthenumbMerofhposisinhposlisti)andpro!videamacrotoreadit.`fAlsoatokenlistwhichwillstorethevitalinformationforlateruse,tofallo!wcurvedconnectionstoworkpropMerlye.84\xynew@{count}\crv@cnt@85\xydef@\xynumctrlpts@{\the\crv@cnt@}86\xynew@{toks}\crvpts@IfUhpMoslistiisempt!yastraightconnectioniscomputed.ȩWhenthelengthofhpMoslistiisoneort!wothenthecurv!eisuniquelydeterminedasasingle-segmentB"Dezierquadraticorcubicspline.x>Thetangen!tsatpandcarealongthelinesconnectingwiththeadjacentcontrolpMoint.WiththreeormorehpMosiitionsy acubicB-splineconstructionisused.οB"Deziercubicsegmen!tsarecalculatedfromthegivencon!trolfpMoints.102\xydef@\setcurve@{%103T\edef\xysplineparams@{%104#>\expandafter\noexpand\csnameparams@\endcsname}%105T\edef\xysplineedges@{%yI *tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй121??hw106\expandafter\noexpand\csnameedges@\endcsname}% 107 m\edef\xycrvcnt@{%108\expandafter\noexpand\csnamecrvcnt@\endcsname}%109 m\expandafter\edef\xycrvcnt@{\number\crv@cnt@}%110K\ifcase\crv@cnt@111 m\expandafter\xycvxhull@\or112 m\expandafter\xyquadbezier@\or113 m\expandafter\xycubicbezier@\or114 m\expandafter\xybspline@iii\or115 m\expandafter\xybspline@iv\else116 m\expandafter\xybspline@117K\fi}gThefpreviouspicturew!astypMesetusing:P\xy(0,20)*+{A};(60,0)*+{B}**\crv{}**\crv{(30,30)}**\crv{(20,40)&(40,40)}**\crv{(10,20)&(30,20)&(50,-20)&(60,-10)}\endxyexceptuforthelabMels,whic!hdenotethenumbMerofentriesinthehpMoslisti.I(ExtendingthiscodetoincludefthelabMelsissetbelo!wasanexercise).=yThe1?t-opMerator1ofx1.3(note1.3h)isusedto ndarbitraryhplaceisalongacurv!eintheusualwaye. Exercisek<2.1: 5ExtendױthecoMdegiv!enforthecurvesinthepreviouspicturesoastoaddthelabMelsgivingfthen!umbMerfofcon!trolpoin!ts.UsingO? _willOsetthecurren!tdirectiontobMetangentialatthathplacei,a:andonecanhslideispMeci eddistancesfalongthecurv!efromafoundhplaceiusingthe? f.3../hdimeni/notation:M򍍑x_ps: SDict begin xyc end>6Ad%B3h0[" {mark 0.0 56.90521 28.4526 56.90521 56.90521 56.90521 80.61572 37.93681 0.08327 1.0 bz}xya" {mark 80.61572 37.93681 104.32622 18.9684 123.29463 -18.96841 139.89198 -30.82367 0.0 1.0 bz}xya" {mark 139.89198 -30.82367 156.48933 -42.67891 170.71564 -28.4526 170.71564 0.0 0.0 0.9176 bz}xy5ă=" {-1028 10 /xy AB}xy$" {-3158 10 /xy AB}xy:ԟrǟ]xE"؟ x0G|C $X0Q|֟P0" {-73.71414 39.15547 l}xyGExercise[2.2: 5SuggestcoMdetoproducesomethinglik!etheabo!vepicture;*Rthesplinecurv!eisthesameasinthepreviouspicture.UHints:Thelineis140ptlongandtouc!hes0:28ofthewayfromAtoB3 andfthexis0.65ofthew!ayffromAtoB.ThekpMositionsinhposlistispecifycpontroljpointswhic!hkdeterminetheinitialand naldirectionsofthe}curv!e|leavingpandarrivingatc|andhowthecurvebMehavesinbMetween,usingstandardsplineconstructions.Infgeneral,con!trolpMointsneednotlieupMontheactualcurve.A{natural{splineparametervdDariesinthein!terval[0;11]monotonicallyalongthecurv!efromptoc.?ThiscisusedtospMecifyhplaceisalongthecurv!e,howevercthereisnoeasyrelationtoarc-length.GenerallytheparametervdDariesmorerapidlywherethecurvatureisgreatest.~Thefollo!wingdiagramillustratesfthise ectforacubicsplineoft!wofsegments(3controlpMoints).zU*tj122?KlCHAPTERf2.CEXTENSIONS??hwM,Ssps: SDict begin xyc endʟ%A[%BX%d" {70.82404 -23.62695 l}xy h0V" {mark 0.0 0.0 14.2263 56.90521 35.56577 64.01837 56.90523 64.01837 0.04092 1.0 bz}xya" {mark 56.90523 64.01837 78.24467 64.01837 99.58412 56.90521 85.35782 -28.4526 0.0 0.97302 bz}xy 1=" {738 10 /xy AB}xya3" {869 10 /xy AB}xy}0" {579 10 /xy AB}xydy4" {999 10 /xy AB}xyqK" {223 10 /xy AB}xybgq" {1282 10 /xy AB}xy*RÇ" {-392 10 /xy AB}xy[WY" {1967 10 /xy AB}xy6]8" {-805 10 /xy AB}xyP0矾t" {2781 10 /xy AB}xyCc| " {3072 st}xyu(<)vDcT֟u(>)a3" {84.64636 -28.46759 dt}xy 'ޠ:1f'D:9dy4" {80.58003 -14.57037 l}xyٯ:2d"=W:8bgq" {67.61139 -6.14874 l}xy#@:3]!% :7[WY" {48.47273 -1.81963 l}xy/N:4P0矼X:6P0矾t" {25.25992 -0.22748 l}xy@3ٟ`:5@ፑExercise9K2.3: 5WeriteCcoMdetoproduceapicturesuc!hastheoneabo!ve.u(Hint :SaveCthelocationsof placesfalongthecurv!eforlaterusewithstraightconnections.) 7Teoha!vethesamehpMosioccuringasam!ultiplecontrolpMointsimplyuseadelimiter,SwhichleavesthehpMosiunc!hanged.dThus\curve{+ܟhposi&}Musesacubicspline,vwhereas\curve{+ܟhposi} ^isquadratic.RepMeatingthesamecon!trolpoin!tthreetimesinsuccessionresultsinstraightsegmentstothatcon!trol%pMoint.UsingthedefaultstylesthisisanexpMensivewaytogetstraightlines,butitallowsforextrafe ectswithotherst!yles.Curvte"Objects: 5A!tιist!ypicallya;hplaceialongthecurv!ewhichiswithinthehpMosiatp.]Itisusedtohelplocatetheedgeofthishposiwheret!ypMesettingshouldcommence.Similarly\bendPLACE@Histypicallyahplaceialongthecurvewhic!hfiswithinthehpMosiatc.P314\xywarnifdefined\crv@normaltemplate315\xywarnifdefined\crv@othertemplate316\xywarnifdefined\crv@specialtemplate@@317{\xyuncatcodes\catcode`\@=11\catcode`\#=6318K\gdef\crv@normaltemplate#1{{}{~**#1\xy@@crvaddstack@}}319K\gdef\crv@othertemplate#1{{}{~*=<2\jot>{}~**#1\xy@@crvaddstack@}}320K\gdef\crv@specialtemplate@@#1{{}{~**\dir{#1}\xy@@crvaddstack@}}321}323\xydef@\crvs#1#{\hbox\bgroup\def\pure@crv{\relax}\crvs@{#1}}%324\xydef@\crvi#1#{\hbox\bgroup\def\pure@crv{\relax}\invisbreaks@\crvs@{#1}}%326\xydef@\crvs@#1{\DN@{\initshape@\@crv@{#1}}%327K\def\crv@defaultshape{-}%328K\ifx\bstartPLACE@\relax\else329K\ifx\bstartPLACE@\empty\Invisible@true\else330\splinetrace@{bstartPLACE@=\bstartPLACE@,bendPLACE@=\bendPLACE@}%331 m\DN@{\let\xy@@crvaddstack@=\xy@@samecurve@332\let\saveshape@=\savesame@333\let\savectrlptsnum@=\relax334\let\startxycurve@=\recovercurve@335\crv@cnt@=\xycrvptsnum@\relax\@crv@{#1}}%336K\fi\fi\next@}d340\xydef@\xy@@samecurve@{\xyFN@\checkendcurve@}341\xydef@\savesame@{\egroup}342\xydef@\recovercurve@{%343K\crv@cnt@=\xycrvptsnum@\splinereset@\recovercv@end344K\ifx\bendPLACE@\relax\def\bendPLACE@{1}\fi345K\ifdim\zz@\R@c\ifdim\zz@\L@c\ifdim\zz@\D@c\ifdim\zz@\U@c346Jk\Edge@c={\zeroEdge}\fi\fi\fi\fi347K\edef\cv@end{\cfromthec@}\edef\cv@start{\cfromthep@}}349\xydef@\recovercv@end{\count@=\ptsnum@\relax\advance\count@\@ne350K\edef\tmp@{\the\count@}\csnamecv@\tmp@\endcsname}%352\xydef@\crvSTYLE@@{}353\expandafter\xydef@\expandafter\crv@defaultshape\expandafter{\addDASH@{}}354\xydef@\crv@noobject{\Invisible@true}356\xydef@\@crv@#1#2{\DN@{#1#2}%357K\ifx\next@\empty\edef\next@{\crv@defaultshape}%358 m\ifx\bstartPLACE@\empty\xdef\crvSTYLE@@{{\crv@defaultshape}}\fi359K\else360 m\ifx\bstartPLACE@\empty\gdef\crvSTYLE@@{#1{#2}}\fi361K\fi|vs*tj124?KlCHAPTERf2.CEXTENSIONS??hw362K\ifx\next@\empty\crv@noobject\DN@{\crv@{}{\xy@@crvaddstack@}}% 363K\else\def\tmp@{-}\ifx\next@\tmp@\DN@{\crv@{}{\xy@@crvaddstack@}}%364K\else\def\tmp@{=}\ifx\next@\tmp@365 m\DN@{\expandafter\crv@\crv@normaltemplate{\dir{=}}}%366K\else\def\tmp@{2-}\ifx\next@\tmp@367 m\DN@{\expandafter\crv@\crv@normaltemplate{\dir{2.}}}%368K\else\def\tmp@{3-}\ifx\next@\tmp@369 m\DN@{\expandafter\crv@\crv@normaltemplate{\dir{3.}}}%370K\else\def\tmp@{--}\ifx\next@\tmp@371 m\DN@{\expandafter\crv@\crv@specialtemplate@{--}}%372K\else\def\tmp@{==}\ifx\next@\tmp@373 m\DN@{\expandafter\crv@\crv@normaltemplate{\dir2{--}}}%374K\else\def\tmp@{2--}\ifx\next@\tmp@375 m\DN@{\expandafter\crv@\crv@normaltemplate{\dir2{--}}}%376K\else\def\tmp@{3--}\ifx\next@\tmp@377 m\DN@{\expandafter\crv@\crv@normaltemplate{\dir3{--}}}%378K\else\def\tmp@{.}\ifx\next@\tmp@379 m\DN@{\expandafter\crv@\crv@specialtemplate@{.}}%380K\else\def\tmp@{:}\ifx\next@\tmp@381 m\DN@{\expandafter\crv@\crv@normaltemplate{\dir{:}}}%382K\else\def\tmp@{2.}\ifx\next@\tmp@383 m\DN@{\expandafter\crv@\crv@normaltemplate{\dir{:}}}%384K\else\def\tmp@{..}\ifx\next@\tmp@385 m\DN@{\expandafter\crv@\crv@specialtemplate@{.}}%386K\else387 m\DN@{\expandafter\crv@\crv@othertemplate{\dir#1{#2}}}%388K\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\next@}P390\xylet@\crv@specialtemplate@=\crv@specialtemplate@@391\xydef@\crv@special#1{}*MBug:this shouldusea\Step@@.Y methoMdtogetthespacingfordotting;@thiswilleliminatetheneedforftemplates.3..!ȗPtarsing: 5Tw!o separateparsersarerequired:onefor\curve...6,!Ntheotherforthecontentsof{...}[.s_Set"\curveSTYLE@KAxto"bMethedefaultof\xycurve@@?$thenexaminethefollo!wingtokenstoseeifthism!ustfbMechanged.Set"\curveSTYLE@KAxto"bMethedefaultof\xycurve@@?$thenexaminethefollo!wingtokenstoseeifthism!ustfbMechanged.Prpocedureҡ:"IfĈthe rsttok!enof#1d(from\crv@ ڹ)is~ Hthenalettershouldfollow,determininghowto%setthest!yle.Ifinsteaditisanactivecontrolsequencethenissueawarningmessage,ebutletitdoitsthingan!ywaye.However\parsecurve@Lǀisanormalthingtoencoun!ter,sonowarningisrequired.Curren!tly:asingleletterwithoutthe~ willbMerecognised,buttwo-lettercombinationsde nitelyneedthef~ f.P498\xydef@\parseCURVE@{\def\curveSTYLE@{\xycurve@@}\def\afterCURVEaction@{}%499 m\xyFN@\parseCURVE@@}500\xydef@\parseCURVE@@{%501K\ifx\space@\next\expandafter\DN@\space{\xyFN@\parseCURVE@@}%gobblespaces502K\else\ifx~\next\DN@~{\xy@~{}\xyFN@\setcurveSTYLE@@}%503K\else\ifx\parsecurve@\next\DN@{}%}*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй125??Vҝ! ffffd {ySyn!tax|Actionwffd 6fy\curvehmoMdi eri{hcurv!e-objectihposlisti}|constructfcurv!edconnection#2ffd yhmoMdi eriO&U;!f; hempt!yi|zeroformoremoMdi erspossible;defaultis~C Vijf; ~khcurv!e-optionifhmoMdi eri|setfhcurv!e-optioniyhcurv!e-optioniO&U;!f; pojvR+P;jiLl\jmL}jcjC|sho!w,only2.1d[controlpMoints(p=pMoints),joinedby|linesf(l=lines),orcurv!eonly(c=curv!e)AoVijf; pcu`j|pC7jPcZjkPC|sho!wfcontrolpMoints2.1fandcurve2.1eVijf; lcu`j|lC7jLcZjkLC|sho!wflinesjoining2.1g톹controlpMointsandcurve2.1eVijf; cC|plot&curv!etwice,withandwithoutspMeci edfor-|matting?Ǎyhcurv!e-objectiO&U;!f; hempt!yi|useftheappropriatedefaultst!yleVijf; ~*q^hobjectifhcurv!e-objecti|spMecifyfthe\drop"object2.1a톹andma!ybemore2.1cVijf; ~**wzhobjectifhcurv!e-objecti|spMecifyf\connect"object2.1b{andma!ybemore2.1cyhpMoslistiO&U;!f; hempt!yiLjChpMosifhdelimihposlisti|listfofpMositionsforcon!trolpoin!tsVijf; ~@y*j^~@[hdelimifhpMoslisti|addfthecurren!tstack2.1h{tothecontrolpMointsyhdelimiO&U;!f; &|allo!wablefdelimiterzffd ^Figuref2.1:Syn!taxforcurves.$$504K\else\ifcat\active\noexpand\next\DN@{\xyactive@Warning}% 505K\else\ifcata\noexpand\next\DN@##1{\xytilde@Warning\setcurveSTYLE@{##1}%506 m\xyFN@\parseCURVE@@}%507K\else\DN@{}\fi\fi\fi\fi\fi\next@}%ύOptionsrMarenormallyspMeci edusing~ 1.ASometimesthiscanbesafelyomitted;Aifsuc!hacaseisencoun!teredthenawarningmessageisissuedadvisingtouse~h.PThisnicetymaybMeremovedinfuturev!ersions.P516\xydef@\xyactive@Warning{\xywarning@{expandablecontrolsequencesshould517Knotbehere,resultsareunpredictableindiagrams.}}%R(2)518\xydef@\xytilde@Warning{Pleaseuse~tosetcurvestyle.}% T(3a)Examine.thenexttok!entoseeifitdeterminesacurvestyle. w Currentlyonlyp t,lVandc>arerecognised,.Salong$withtheuppMercasevdDarian!tsP ι,L!andC ι.$Whenoneoftheselettersisencoun!tered,setf\curveSTYLE@LHĹandfk!eepexaminingtokenswith\setafterCURVEaction@|_X.P528\xydef@\setcurveSTYLE@#1{\xyFN@\setcurveSTYLE@@#1}529\xydef@\setcurveSTYLE@@{%530K\ifx\nextp\def\curveSTYLE@{\xyc@trlpts@@}%531\DN@p{\xyFN@\setafterCURVEaction@}%532K\else\ifx\nextP\def\curveSTYLE@{\xyc@trlpts@}%533\DN@P{\xyFN@\setafterCURVEaction@}%534K\else\ifx\nextl\def\curveSTYLE@{\xyc@vxhull@@}%535\DN@l{\xyFN@\setafterCURVEaction@}%536K\else\ifx\nextL\def\curveSTYLE@{\xyc@vxhull@}%537\DN@L{\xyFN@\setafterCURVEaction@}%538K\else\ifx\nextc\def\curveSTYLE@{\xycurve@@}%~{*tj126?KlCHAPTERf2.CEXTENSIONS??hw539\DN@c{\xyFN@\setafterCURVEaction@}% 540K\else\ifx\nextC\def\curveSTYLE@{\xycurve@@}%541\DN@C{\xyFN@\setafterCURVEaction@}%542K\else\DN@##1{\xywarning@{unknowncurvestyle##1}\xyFN@\parseCURVE@@}%543K\fi\fi\fi\fi\fi\fi\next@}5\setafterCURVEaction@qcexaminestok!enstoseeifa2-lettercombinationisbMeingspeci ed;[2e.g.pc m,flC%,fetc.Alternativ!elyanother~ vcansetanewspMeci cation.P551\xydef@\setafterCURVEaction@{%552K\ifx\next~\DN@~{\xyFN@\setcurveSTYLE@@}%553K\else\ifcata\noexpand\next\DN@{\setafterCURVEaction@@}%554K\else\DN@{\xyFN@\parseCURVE@@}%555K\fi\fi\next@}Curren!tlyftheonly2-letterspMeci cationshaveeitherc vorCasthe2ndletter.P562\xydef@\setafterCURVEaction@@{%563K\ifx\nextc\DN@c{%564 m\def\afterCURVEaction@{\noexpand\endcurve\noexpand\xy@curve@}%565\xyFN@\parseCURVE@@}%566K\else\ifx\nextC\DN@C{%567 m\def\afterCURVEaction@{\noexpand\endcurve\noexpand\xy@curve@@}%568\xyFN@\parseCURVE@@}%569K\else\DN@##1{\xywarning@{unknownafter-curveaction##1}%570 m\xyFN@\parseCURVE@@}%571K\fi\fi\next@}WhenD\parsecurve@M,isDencoun!tered,l'thissigni estheendofthispartoftheparsing.yTheonlyactiv!eKDcontrolsequencethatshouldbMeencounteredlegitimatelyhereis\@endcurve=,t{whichsigni esthatvthehpMoslistiisempt!yanddefaultstylesarerequired. 1 Otherwiseassumewethesubsequenttok!ensarefrom#2i of\crv@ 8.^Controlpassesto\xycurve@@Afptoprepareforreadingthehcrv-objectisandfhpMoslisti.P586\xydef@\parsecurve@{\xyFN@\parsecurve@@}587\xydef@\parsecurve@@{%588K\ifx\space@\next\expandafter\DN@\space{\xyFN@\parsecurve@@}%589K\else\ifx\next\@endcurve\DN@\@endcurve{\checkafterCURVE@}%590K\else\ifcat\active\noexpand\next\DN@{\relax}%591K\else\DN@{\xycurve@@}\fi\fi\fi\next@}%v595\xydef@\xycurve@{\begingroup\afterCURVE{\setcurve@\endgroup}\crvobjects@596K\startxycurve@\xycrvmods@}597\xydef@\xycurve@@{\afterCURVE{\setcurve@}\crvobjects@\startxycurve@598K\xycrvmods@}599\xydef@\xy@curve@{\xy@curve@@@{\splinedefaulttol@\crvobjects@}}600\xydef@\xy@curve@@{\xy@curve@@@{\resetcrvobjects@}}601\xydef@\xy@curve@@@#1{\ifx\cv@start\relax602 m\DN@{\xywarning@{Thereisnocurvetoplot}}.603K\else\DN@{\begingroup\afterCURVE{\setcurve@\endgroup}#1\cv@end}%604K\fi\next@}605\xydef@\crvobjects@{\def\xycrvdrop@{}\def\xycrvconn@{}}606\xydef@\resetcrvobjects@{\crvobjects@}ߠ*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй127??hwThese]w!ereoriginallyprovidedforsophisticated-useraccess.TheyareotherwiseundoMcumented andfma!ybMeremoved.P613\xylet@\savecurve=\xycurve@@614\xylet@\samecurve=\xy@curve@\xy@crvmods@<($handlesreadingthehcurv!e-objectis,Ԋi.e.the\drop"objectandthe\connect"object.CҍPrpocedureҡ:l.635|Getnexttok!en.l.639Isita~ oQ?l.640Ifnot,exit.l.645Ifso,isitfollo!wedbya* oQ?l.647Ifnot,8issuewamessageandgobac!ktol.635._Otherwise,l.6521isthereasecond* 7?_l.653 Ifnotthenreadandstorethe\drop"object,l.661else,readandstorethe\connect"object. When nished,ineithercase,l.659cloMokuforfurtherspeci cations. l.657TAnempt!y\drop"objectisnotallowed,sothisactuallygivesthefdefaultof\zerodot1.635\xydef@\xycrvmods@{\xyFN@\xy@crvmods@}637\xydef@\xy@crvmods@{%638K\ifx\space@\next\expandafter\DN@\space{\xyFN@\xy@crvmods@}%gobblespaces639K\else\ifx\next~\DN@~{\xyFN@\xy@crvmods@@}640K\else\DN@{\xy@crvmods@@@@}\fi\fi\next@}641\xydef@\xy@crvmods@@@@{\xyFN@\checkendcurve@}%643\xydef@\xy@crvmods@@{%644K\ifx\space@\next\expandafter\DN@\space{\xyFN@\xy@crvmods@@}%gobblespaces645K\else\ifx\next*\DN@*{\xyFN@\xy@@crvmods@}646K\else\addAT@\ifx\next\addAT@\DN@{\xyFN@\xy@@crvaddstack}%647K\else\DN@{\xywarning@{badly-formedcurveoption}\xyFN@\xy@crvmods@}648K\fi\fi\fi\next@}%650\xydef@\xy@@crvmods@{%651K\ifx\space@\next\expandafter\DN@\space{\xyFN@\xy@@crvmods@}%gobblespaces652K\else\ifx\next*\DN@*{\xyFN@\xy@@crvmods@@}653K\else\DN@{\xy@crv@mods@@}\fi\fi\next@}655\xydef@\xy@crv@mods@@#1#{\DN@##1{\xy@crvmods@@@{#1}{##1}}\next@}%656\xydef@\xy@crvmods@@@#1#2{%657K\DN@{#1#2}\ifx\next@\empty\def\xycrvdrop@{#1{\zerodot}}658K\else\def\xycrvdrop@{#1{#2}}\fi659K\xyFN@\xy@crvmods@}661\xydef@\xy@@crvmods@@#1#{\DN@##1{\xy@@crvmods@@@{#1}{##1}}\next@}662\xydef@\xy@@crvmods@@@#1#2{\def\xycrvconn@{#1{#2}}\xyFN@\xy@crvmods@}%P!arsingfofthehpMoslistiisquitesimple,recognisingfewspecialtok!ens:B\endcurve6O}andf\endxy)ȹterminatefreadingofcon!trolpMoints.Cҍ&ǹ,f\\ andf\relax)ȹdelimitfhpMosiY/itionsan!ythingfelseistreatedasahpMosiY/,bMeinghandledbythe\POS@$ parser.O0680\xydef@\checkendcurve@{% 681K\ifx\space@\next\expandafter\DN@\space{\xyFN@\checkendcurve@}%gobblespaces682K\else\ifx\next\endcurve\DN@\endcurve{\clearsearchflag@\endxycurve@}%683K\else\ifx\next\@endcurve\DN@\@endcurve{\checkafterCURVE@}%684K\else\ifx\next\xy@@crvaddstack@\DN@{}%685K\else\ifx\next\endxy\DN@{\clearsearchflag@\sloppyendcrv@}%*tj128?KlCHAPTERf2.CEXTENSIONS??hw686%\else\addAND@\ifx\next\addAND@\DN@{\clearsearchflag@\searchnextpt@}% 687K\else\testAND@\iffalse\DN@##1{\clearsearchflag@\searchnextpt@}%688K\else\ifx~\next\DN@~{\xyFN@\checkcrvtilde@}%689K\else\ifx\next\relax\DN@\relax{\clearsearchflag@\searchnextpt@}%690K\else\ifx\next\\\DN@\\{\clearsearchflag@\searchnextpt@}%691K\else\ifx\searchflag@\relax692\DN@{\setsearchflag@\searchnextpt@}%693\else\DN@##1{\flagwarn@{##1}}\fi694K\fi\fi\fi\fi\fi\fi\fi\fi\fi\next@}695\xydef@\searchnextpt@{\afterPOS{\xy@@\addtocrv@\xyFN@\checkendcurve@}}ThereocouldbMeaprobleminthatanin!vdDalidtokenwouldcauseanin niteloMop,LpassingbackandforthbMet!ween\checkendcurve@]and\POS@ G.KThisisa!voidedbysettinga ag\setsearchflag@whenthe\POS@#bparseriscalled,notfollo!wingavdDaliddelimiter.EncounteringavdDaliddelimiterclearsthe( ag.eIf\checkendcurve@^iscalledwiththe agset,Igaw!arningmessageisissuedandthetokenissHskippMed;ٹthe agremainsset.DProcessingcon!tinues,butsHitispossiblethatthewrongn!umbersHofpMositionsfwillberead;presumablythereissomekindoferrorthatneedstobe xedan!ywaye.P710\xydef@\checkafterCURVE@{%711K\edef\tmp@{\noexpand\xyFN@\noexpand\checkendcurve@%712 m\afterCURVEaction@\noexpand\endcurve}\tmp@}714\xylet@\searchflag@=\relax715\xydef@\setsearchflag@{\let\searchflag@=@}716\xydef@\clearsearchflag@{\let\searchflag@=\relax}717\xydef@\flagwarn@#1{%718K\ifx\next\@endcurve\DN@{\xyFN@\checkendcurve@\endcurve}%719K\else\setsearchflag@\DN@{\xyFN@\checkendcurve@}%720 m\xywarning@{skippinginvalidtoken\string#1\spaceincurve}%721K\fi\next@}ItTispMossibleforthe nal\endcurve;ɢtobeomitted,Pbutonlywhenthenexttok!enis\endxy&P.Aw!arningfmessageiswrittentothelog le,protestingagainstthissloppyT,[wEB X-ing. lL^729\xydef@\sloppyendcrv@{%730\xywarning@{Pleaseuse\string\endcurve\spacetoendthecurve.}\endxycurve@}Creationofthe\crvиiscompletedwhen\endcrv@5`isencoun!tered.AtthispMoin!ttheusualmeth-oMds[\Drop@@1\and[\Connect@@C3Zare[de ned.|Extrainformationisretained,(using\saveshape@Hand\savecrvparams@=muforfthebMene tofmethodswhic!htreatthecurveasaconnection.742\xydef@\endcrv@{\saveshape@%\def\Upness@{0}%743K\Edge@c={\splineEdge}\Invisible@false\Hidden@false744K\edef\Drop@@{\noexpand\ifInvisible@\setbox\z@=\copy\voidb@x745 m\noexpand\else746 m\noexpand\wdz@=\z@747 m\noexpand\ht\z@=\z@\noexpand\dp\z@=\z@748 m\noexpand\splineDrop@749K\noexpand\fi}%750%751K\edef\Connect@@{%752 m\noexpand\setbox\z@=\noexpand\box\lastobjectbox@753 m\noexpand\wdz@=\z@754 m\noexpand\ht\z@=\z@\noexpand\dp\z@=\z@?*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй129??hw755 m\expandafter\noexpand\pure@crv 756 m\noexpand\ifInvisible@\noexpand\crv@saveStyles@\noexpand\else757 m\noexpand\crv@getStyles@\noexpand\styledboxz@\noexpand\fi758%759 m\noexpand\ifHidden@\noexpand\else760 m\noexpand\ifx\noexpand\COORD@\noexpand\xymatrixCOORD@\noexpand\else761\noexpand\X@min=\the\X@min\noexpand\X@max=\the\X@max762\noexpand\Y@min=\the\Y@min\noexpand\Y@max=\the\Y@max763 m\noexpand\fi\noexpand\fi764 m\savecrvparams@\noexpand\crvconnect@%\noexpand\initbreaks@765K}%766K\wdz@=\z@767K\ht\z@=\z@\dp\z@=\z@}PThecon!trolnames\crvXY@pre@F{xand\crvXY@post@L;"areusedtotransferstyleinformationpassedwithf\preconnect@LHĹtofsubsegmen!ts.P774\xydef@\crvXY@pre@{}775\xydef@\crvXY@post@{}777\xydef@\crv@saveStyles@{\def\xy@style@{}%778K\expandafter\def\expandafter\crvXY@pre@\expandafter{\preXY@style@}%779K\expandafter\def\expandafter\crvXY@post@\expandafter{\postXY@style@}}781\xydef@\crv@getStyles@{\def\xy@style@{}%782K\gdef\preXY@style@{\crvXY@pre@}\gdef\postXY@style@{\crvXY@post@}}PTheW vdDaluesof\X@min%,f\X@max%,fetc.areusedtocomputetheexten!ts\L@cU,\R@ce,etc.oftheobject.Thisinformationm!ustbMemaintainedafterthegroupisclosed,unlessthe\hidden"attributeisrequiredorfw!eareinsideamatrixconstruction.EbIn-calculatingthesizeofthebMo!xcontainingthecurve\X@min',_\X@max( [,_etc.areinitialisedtodescribMeftheminim!umrectangleenclosingpandc.AtthesametimewesavethecurrentscopMe.795\xydef@\initshape@{\savescope@796K\ifdim\X@c>\X@p\X@min=\X@p\X@max=\X@c\else\X@max=\X@p\X@min=\X@c\fi797K\ifdim\Y@c>\Y@p\Y@min=\Y@p\Y@max=\Y@c\else\Y@max=\Y@p\Y@min=\Y@c\fi}P\saveshape1#isfusedtopassnecessaryinformationuponelev!elofgrouping.804\xydef@\saveshape@{\savectrlptsnum@805K\R@c=\X@max\advance\R@c-\X@c\L@c=\X@c\advance\L@c-\X@min806K\U@c=\Y@max\advance\U@c-\Y@c\D@c=\Y@c\advance\D@c-\Y@min807K\edef\tmp@{\egroup\U@c=\the\U@c\D@c=\the\D@c\L@c=\the\L@c\R@c=\the\R@c808K\noexpand\ifdim\noexpand\X@min>\the\X@min\noexpand\X@min=\the\X@min\noexpand\fi809K\noexpand\ifdim\noexpand\Y@min>\the\Y@min\noexpand\Y@min=\the\Y@min\noexpand\fi810K\noexpand\ifdim\noexpand\X@max<\the\X@max\noexpand\X@max=\the\X@max\noexpand\fi811K\noexpand\ifdim\noexpand\Y@max<\the\Y@max\noexpand\Y@max=\the\Y@max\noexpand\fi812K\savecrvparams@\def\noexpand\pure@crv{\expandafter\noexpand\pure@crv}}%813K\tmp@}815\xydef@\savecrvparams@{\crvpts@={\the\crvpts@}%816K\noexpand\def\noexpand\crvconnect@{\expandafter\noexpand\crvconnect@}}%v822\xydef@\splineEdge{\rectangleEdge}PT\onNDo:EɹThis\canbMeimpro!ved.yFeor\example,Ytracealongthesplineun!tilanappropriatepoin!tis*tj130?KlCHAPTERf2.CEXTENSIONS??hwfound.Therefma!ybMemorethanonesuchpMoint,soextracriteriamaybMerequired.&KNotes۝2.1a.=TheAr\drop"objectissetonce,Uthen\droppMed"man!ytimesatappropriatelyspacedplacesalong the`curv!e. Ifdirectional,^thedirectionfromptocisused.DefaultbMeha!viouristohavetinydotsspacedGsucien!tlycloselyastogivetheappMearanceofasmoothcurv!e.NSpecifyingalargersizeforthef\drop"objectisaw!ayfofgettingadottedcurv!e(seetheexampleinthenextnote).(ʍ2.1b.The\connect"objectisalsodroppMedateac!hplacealongthecurve.mHowever,9Zifnon-emptye,9Zthisobject*usesthetangen!tdirectionateachplace.jdThisallowsadirectionalobjecttobMespeci ed,whoseBdorien!tationwillalwaysmatchthetangent.Teoadjustthespacingofsuchobjects,icuseanempt!yf\drop"objectofnon-zerosizeasshownhere:5Nps: SDict begin xyc end%AB ::G2::@:D:>: ݟ:$%:(C:+䰟:/x:3+:6yz::5칿:=䭟:AJ:E3:E3:IğZ:M@:RO z:VԺI:[y:`{.}(10,10)&(20,0)&(40,15)}**\crv{~*=<8pt>{}~**!/-5pt/\dir{>}(10,-20)K&(40,-15)}\endxy Whenthereisno\connect"objectthenthetangen!tcalculationsarenotcarriedout,Eresultinginafsa!vingoftimeandmemory;thisisthedefaultbMehaviour.2.1c.rThe\drop"and\connect"objectscanbMespeci edasman!ytimesasdesired.OnlythelastspMeci cationPofeac!htypMewillactuallyhaveanye ect.q(ThismakesiteasytoexpMerimentwithdi eren!tfstyles.)2.1d.ComplicatedROdiagramsha!vingseveralsplinecurvescantakequitealongtimetoproMcessandma!y'usealotofT,[wEB X'smemorye.v!Aconvenientdevice,espMeciallywhiledevelopingapicture,istosho!wonlytheloMcationofthecontrolpMointsortojointhecontrolpMointswithlines, asastylizedappro!ximationtothesplinecurve.qThehcurve-optionis~p@and~larepro!videdforthispurpMose.UppMercase'v!ersions~Paand~Ldothesamethingbutusean!yhcurve-objectisthatmaybMespeci ed,whereas&thelo!wercase&versionsuseplaindefaults:smallcrossfor~p,@Pstraightlinefor~l.TSimilarly~Cӹandf~c setfthesplinecurv!eusinganyspMeci edhcurve-optionisorasa(default)plaincurve.2.1e.rUseof~pn,~lԹ,etc.isextendedtoenablebMoththecurv!eandthecontrolpMointstobMeeasilyshowninzXthesamepicture..MixinguppMer-andlo!wer-casezXspeci eswhetherthehcurv!e-optionisaretobeappliedtothesplinecurv!eorthe(linesjoining)controlpMoints.Seetheexamplesaccompanyingthefnextt!wofnotes.2.1f.,Bydefaultthecon!trolpMointsaremarkedwithasmallcross,spMeci edby*\dir{x}18.xcThe\con-nect"fobjectisignoredcompletelye.C*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй131??hw.ENps: SDict begin xyc end%AB# " {3773 st}xy!F" {3773 F d}xy@Һc " {3773 st}xy=$" {3773 F d}xyx꫟Һc " {3773 st}xyvI$" {3773 F d}xy :]:GD:I:::pHR:D\:>fv: ݟL:"-s:$%k :&jɟ8:(C :*d:+䰞D:-:/xHs:1@h:3yG:4ٟ~E:6y{n:8eǟt::5m:< `j;:=䭟nd:?Ŧ}:AJ蜎:C::E:E:Gy:Iğ:KɈ:M[:PBR:ROP+:T܇:VԺg:Y#}:[yAZ:]׾8:`{.}(10,-10)&(20,15)K&(40,15)}\endxy02.1g.=Withr_linesconnectingcon!trolpMointsthedefault\drop"objectisemptye,]whilethe\connect"objectis\dir{-}1forsimplestraigh!tlines.yIfnon-emptye,.Qthe\drop"objectisplacedateachcon!trolfpMoint.The\connect"objectmaybMeusedtospecifyafancylinest!yle.n@%򍍒Nps: SDict begin xyc end%AB;̟=Ah0<\ʾ" {46.51396 46.51396 dd}xyfnw0fnPn" {34.16222 -11.39851 dd}xyh0Uq" {36.45837 -60.74026 dd}xy3h0\" {mark 0.0 0.0 56.90521 56.90521 99.58412 42.67891 142.26303 -28.4526 0.04166 0.96759 bz}xyw!asftypMesetby.3..P\xy(0,0)*+{A};(50,-10)*+{B}**\crv~Lc{~**\dir{--}~*{\oplus}K(20,20)&(35,15)}\endxy02.1h.Whenastac!kofhpMosiitionshasbeenestablishedusingthe@ixXand@+commands,}thesepMositionscanfbMeusedandareappendedtothehposlisti.940\xydef@\xy@@crvaddstack{%941K\ifx\next~\xywarning@{thereshouldbeaposlisthere,\string~@ignored}%942 m\DN@{\xy@crvmods@}%943K\else\DN@{\xy@@crvaddstack@}\fi\next@}945\xydef@\xy@@crvaddstack@{\smapxy@@\addtocrv@\xyFN@\checkendcurve@}947\xydef@\checkcrvtilde@{%948K\addAT@\ifx\next\addAT@\DN@{\xy@@crvaddstack@}%949K\else\xywarning@{invalidtokenafter~,ignored}%950 m\DN@##1{\xyFN@\checkendcurve@}%951K\fi\next@}![;Spline^MethoYds 5Eac!hn\curve'[ڹhasntosettheslidingabilities.v Thisisdonebyacallto\crvconnect@@whic!h givesvdDaluestothemethoMds\Creset@@7,%m\Cshavep@7g,%metc.ThesevaluesdepMendonthest!yleofthefcurv!eitself.968\xydef@\crvconnect@@{%969 m\def\Creset@@{\crvreset@}%970 m\def\Cshavep@@{\crvshavep@}%*tj132?KlCHAPTERf2.CEXTENSIONS??hw971 m\def\Cshavec@@{\crvshavec@}% 972 m\def\Cslidep@@{\crvslidep@}%973 m\def\Cslidec@@{\crvslidec@}%974 m\def\Calong@@{\crvalong@}%975 m\def\Cintercept@@{\crvintercept@}%976 m\def\Cbreak@@{\crvbreak@}%977 m\def\Clast@@{\crvlast@}%978}Whenfstraigh!tlinesarerequired.3..P984\xydef@\straitconnect@{\crvconnect@@985 m\let\crvreset@=\straitreset@986 m\let\crvshavep@=\straitshavep@987 m\let\crvshavec@=\straitshavec@988 m\let\crvslidep@=\straitslidep@989 m\let\crvslidec@=\straitslidec@990 m\let\crvalong@=\straitalong@991 m\let\crvintercept@=\straitintercept@992 m\let\crvbreak@=\straitbreak@993 m\let\crvlast@=\straitlast@994}ThesefaretheactualmethoMdsusedforasequenceofstraigh!tsegments.P1000\xydef@\straitreset@{\the\crvpts@1001K\edef\xycrvptsnum@{\csnameptsnum@\endcsname}%1002K\def\segmentnum@{0}}1003\xydef@\straitslidep@{\setupDirection@ii\noCslidep@@}1004\xydef@\straitslidec@{\setupDirection@ii\noCslidec@@}1006\xydef@\straitshavep@{%1007K\expandafter\ifnum\xycrvptsnum@>\z@1008 m\def\segmentnum@{0}%1009 m\csnamecv@1\endcsname1010 m\resetDirection@\setupDirection@ii1011K\fi\noCshavep@@}1013\xydef@\straitshavec@{%1014K\expandafter\ifnum\xycrvptsnum@>\z@1015 m\expandafter\count@@\xycrvptsnum@\relax1016 m\bgroup\csnamecv@\number\count@@\endcsname1017 m\edef\tmp@{\egroup\X@p=\the\X@c\Y@p=\the\Y@c}\tmp@1018 m\edef\segmentnum@{\xycrvptsnum@}%1019 m\resetDirection@\setupDirection@ii1020K\fi\noCshavec@@}1022\xydef@\straitalong@#1{%1023K\ifdim#1\p@<\z@1024 m\xywarning@{parametervalue#1isnegative,using0}%1025 m\cfromp@\def\PLACEf@{{0}}%1026K\else1027 m\dimen@=#1\p@\count@=\dimen@\divide\count@\p@1028 m\expandafter\count@@\xycrvptsnum@\relax\advance\count@@\@ne\*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй133??hw1029 m\advance\dimen@\segmentnum@\p@ 1030 m\advance\count@\segmentnum@\relax1031\def\segmentnum@{0}%1032 m\ifnum\count@@<\count@1033\xywarning@{parametervalue#1toolarge,using\the\count@@}%1034\count@=\count@@\advance\count@\m@ne\edef\PLACEf@{{1}}%1035 m\else1036\advance\dimen@-\count@\p@1037\ifdim\zz@\dimen@\ifnum\count@>\z@1038 \advance\count@\m@ne\advance\dimen@\p@\fi\fi1039\edef\PLACEf@{{\expandafter\removePT@\the\dimen@}}%1040 m\fi1041 m\ifnum\count@=\z@\else\bgroup1042\csnamecv@\number\count@\endcsname1043\edef\tmp@{\egroup\X@p=\the\X@c\Y@p=\the\Y@c}\tmp@1044 m\fi1045 m\advance\count@\@ne1046 m\ifnum\count@<\count@@1047\splinetrace@{findplace\the\dimen@\spacealongstraightsegment1048K\the\count@}%1049\csnamecv@\number\count@\endcsname1050 m\fi1051 m\d@X=\X@c\advance\d@X-\X@p\d@Y=\Y@c\advance\d@Y-\Y@p1052K\fi\expandafter\noCalong@@\PLACEf@\czeroEdge@}v1056\xydef@\straitintercept@{\noCintercept@@}1057\xydef@\straitbreak@{\straightCbreak@@}1058\xydef@\straitlast@{\straightClast@@}]tWhenfcurv!edsegmentsarerequired.3..P1064\xydef@\splineconnect@{%1065 m\let\crvreset@=\splinereset@1066 m\let\crvshavep@=\splineshavep@1067 m\let\crvshavec@=\splineshavec@1068 m\let\crvslidep@=\splineslidep@1069 m\let\crvslidec@=\splineslidec@1070 m\let\crvalong@=\splinealong@1071 m\let\crvintercept@=\splineintercept@1072 m\let\crvbreak@=\splinebreak@1073 m\let\crvlast@=\splinelast@1074}ThesefaretheactualmethoMds. Rpesetfthesplineparameters:J\xycrvptsnum@.G:7@˹expandsIQtoacon!trolsequence,r whosenameincorpMoratesthecorrectscopinglevel,givingfthen!umbMerfofcon!trolpoin!ts.\the\crvpts@(:1!readsfthecon!trolpMointloMcationsandotherinformationfromatokenlist.\xysplineparams@?:Hɹsettoacon!trolsequencename,ЦincorpMoratingthecorrectscopinglevel,Цwhichwillfallo!waccesstotheBe"DziercontrolpMointsforeachsplinesegment,whenrequired. *tj134?KlCHAPTERf2.CEXTENSIONS??hw\xysplineedges@9:Bsettoacon!trolsequencename,|incorpMoratingthecorrectscopinglevel,|whichgives thefsplineparametersoftheedgesofobjectsatpandc;\segmentnum@(:1!resetfto0.\splinecorrect@pCFand2\splinecorrect@c`--:ireset]to0un!tilchangedbya\Cshavep@:x̹or\Cshavec@7.\splinelength@4e:=uresetMto0un!tilchangedbya\Cshavep@6G,7\Cshavec@:for\Calong@1;Ithisisneededby\Cshavep@6 andw\Cshavec@:towquic!klyloMcatewheretoslidefrom,especiallywhenitisnecessarytofslideacrossmorethanasinglesplinesegmen!t.\splineplace@.G:7@˹resetfto:5.؍1110\xydef@\splinereset@{\the\crvpts@1111K\edef\xycrvptsnum@{\csnameptsnum@\endcsname}%1112K\edef\xysplineparams@{%1113 m\expandafter\noexpand\csnameparams@\endcsname}%1114K\edef\xysplineedges@{%1115 m\expandafter\noexpand\csnameedges@\endcsname}%1116K\def\segmentnum@{1}\def\splinecorrect@p{0}\def\splinecorrect@c{0}%1117K\splinelength@=\z@\def\splineplace@f{.5}%1118}Shaving)totheappropriateedge.%ThisissimplyamatterofreadingthestorededgeinformationandstoringtheappropriatevdDaluein\splinecorrect@pcor\splinecorrect@c_W.ThedicultpartistoVconstructthecorrectcon!trolsequencenameandthentoextractthecorrectpartofthetextinitsexpansion.P1129\xydef@\splineshavep@{\begingroup1130 m\edef\xysplineedges@{%1131\expandafter\noexpand\csnameedges@\endcsname}%1132K\expandafter\expandafter\expandafter\getsplineedges@safe\xysplineedges@@@%1133K\edef\tmp@{\noexpand\removePT@\the\dimen5}%1134K\edef\tmp@{\endgroup1135K\noexpand\def\noexpand\splinecorrect@p{\tmp@}}\tmp@1136K\setupDirection@ii}1138\xydef@\splineshavec@{\begingroup1139K\edef\xysplineedges@{%1140 m\expandafter\noexpand\csnameedges@\endcsname}%1141K\expandafter\expandafter\expandafter\getsplineedges@safe\xysplineedges@@@%1142K\dimen@=-\dimen7\relax\advance\dimen@\p@1143%%\getcrvsegsnum@\advance\dimen@\count@\p@1144K\edef\tmp@{\noexpand\removePT@\the\dimen@}%\W@{**shave**<\tmp@>***}%1145K\edef\tmp@{\endgroup1146 m\noexpand\def\noexpand\splinecorrect@c{\tmp@}}\tmp@1147K\setupDirection@ii}1149\xydef@\splineslidep@#1{\enter@{\pfromthep@}%1150K\begingroup\splinealong@@{0}{#1}+\splineslidep@@@1151 m\setupDirection@ii\leave@}%1153\xydef@\splineslidep@@@{%1154K\d@X=\dimen5\d@Y=\dimen7\edef\tmp@{\postfind@}\tmp@\dimen@=\splineval@ *tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй135??hw1155K\expandafter\count@\xycrvptsnum@\relax 1156K\ifnum\count@>\tw@\advance\count@\m@ne1157 m\advance\dimen@\segmentnum@\p@\advance\dimen@-\p@1158K\fi1159K\edef\tmp@{\endgroup\endgroup1160 m\noexpand\def\noexpand\xysplineval@{\the\splineval@}%1161 m\noexpand\def\noexpand\splinecorrect@p{\expandafter\removePT@\the\dimen@}%1162\splinetrace@{slide=\the\splinelength@}%1163 m\X@c=\dimen@i\Y@c=\dimen3 T%somethingmaybewronghere!!1164 m\d@X=\the\d@X\d@Y=\the\d@Y%1165 m\noexpand\def\noexpand\segmentnum@{\segmentnum@}}\tmp@}P1167\xydef@\splineslidec@#1{\enter@{\pfromthep@}%1168K\begingroup1169 m\expandafter\splinealong@@\PLACEf@{#1}+\splineslidec@@@1170 m\setupDirection@ii\leave@}1172\xydef@\splineslidec@@@{%1173K\d@X=\dimen5\d@Y=\dimen7\edef\tmp@{\postfind@}\tmp@\dimen@=\splineval@1174K\expandafter\count@\xycrvptsnum@\relax1175K\ifnum\count@>\tw@\advance\count@\m@ne1176 m\advance\dimen@\segmentnum@\p@\advance\dimen@-\p@1177 m\dimen@=-\dimen@\advance\dimen@\count@\p@1178K\else\dimen@=-\dimen@\advance\dimen@\p@\fi%\W@{**slide**<\the\dimen@>***}%1179%% Tsplinecorrect@cisprobablywronghere!!1180K\edef\tmp@{\endgroup\endgroup1181 m\noexpand\def\noexpand\xysplineval@{\the\splineval@}%1182 m\noexpand\def\noexpand\splinecorrect@c{\expandafter\removePT@\the\dimen@}%1183\splinetrace@{slide=\the\splinelength@;correct@c=\noexpand\splinecorrect@c}%1184 m\X@c=\dimen@i\Y@c=\dimen3 T%1185 m\d@X=\the\d@X\d@Y=\the\d@Y%1186 m\noexpand\def\noexpand\segmentnum@{\segmentnum@}}\tmp@}1188\xydef@\checkslidemore@#1{%1189K\dimen@ii=-#1\relax\ifdim\dimen@ii<\z@\multiply\dimen@ii\m@ne\fi1190K\dimen@=-\splinelength@\advance\dimen@\dimen@ii\relax1191K\ifdim\dimen@<\z@\dimen@ii=-\dimen@\else\dimen@ii=\dimen@\fi1192K\ifdim\dimen@ii<.2\p@\DN@{\splineslidec@@\leave@}%%%%?1193K\else\splinetrace@{notfoundyet,\the\dimen@ii\spacestilltogo}%1194K\dimen@ii=#1\relax\ifdim\dimen@ii<\z@\multiply\dimen@\m@ne\fi1195K\DN@{\expandafter\splineslidemore@\expandafter{\the\dimen@}}\fi1196K\next@}%1198\xydef@\splineslidemore@#1{%1199K\expandafter\count@\segmentnum@\relax1200K\ifdim#1<\z@\advance\count@\m@ne\dimen@=\p@1201K\else\advance\count@\@ne\dimen@=\z@\fi1202K\ifnum\count@<\@ne1203\expandafter\splinesegment@\expandafter{\segmentnum@}%1204 m\DN@{\xywarning@{cannotslidebeyondstartofcurve}%1205\spline@find{\z@}{\z@}{}\splineslidec@@\leave@}%%%%?1206K\else\expandafter\count@@\xycrvptsnum@\relax\advance\count@@\m@ne *tj136?KlCHAPTERf2.CEXTENSIONS??hw1207 m\expandafter\ifnum\count@@<\count@\relax 1208\expandafter\splinesegment@\expandafter{\segmentnum@}%1209 m\DN@{\xywarning@{cannotslidebeyondendofcurve}%1210 m\spline@find{\p@}{\z@}{}\splineslidec@@\leave@}%%%%%?1211K\else1212 m\edef\segmentnum@{\the\count@}%1213\expandafter\splinesegment@\expandafter{\segmentnum@}%1214\splinetrace@{slidingontosegment\segmentnum@}%1215 m\expandafter\spline@find\expandafter{\the\dimen@}{#1}{}%1216 m\DN@{\checkslidemore@{#1}}%1217K\fi\fi T\next@}P1219\xydef@\splineslidec@@{%1220K\dimen@=\splineval@\advance\dimen@\segmentnum@\p@\advance\dimen@-\p@1221K\edef\tmp@{\endgroup1222 m\noexpand\def\noexpand\xysplineval@{\the\dimen@}%1223\splinetrace@{slide=\the\splinelength@}%1224 m\X@c=\the\dimen@i\Y@c=\the\dimen3\d@X=\the\dimen5\d@Y=\the\dimen7\postfind@1225 m\noexpand\def\noexpand\segmentnum@{\segmentnum@}}\tmp@1226 m\setupDirection@ii}t/The+umethoMd\splinealong@#1\ ndsplacesalongthecurv!e,D when#1>isgivenasafactor,D normallybMet!weenli0and1.ʉThelocationoftheedgesoftheobjectsatpandcarestoredin\splinecorrect@pand\splinecorrect@c_ ".\@ne\advance\count@\m@ne\fi1242K\ifnum\count@>\@ne\dimen@nth\count@\dimen@1243K\fi\edef\bthisPLACE@{\expandafter\removePT@\the\dimen@}%1244\splinetrace@{bthisPLACE@=\bthisPLACE@}}%t/Theparameter#2in\splinealong@@#1#2#3xallo!wsforasubsequentslidethroughagivenhdimenialongfthecurv!e,fromtheplacespMecifedbythefactorin#1%. ATheoinformationsuppliedin#1^m!ustbMeconvertedtothesegmentnumbMerandparametervdDalueofthespMeci edpoin!t.Thesewillbecalculatedandstoredtemporarilyin\count@.?xanddimen@(ιbeforethevdDalues`arepassedrespMectiv!elyto\splinesegment@\whichchoMosesthesegment,n!and\spline@findKtoloMcatefthepoin!tonthissegment.Teodothecalculation, rstw!ecorrectfortheparametervdDaluesoftheedgesoftheobjectsattheend-pMoin!ts,whicharestoredin\splinecorrect@pc٨and\splinecorrect@c_$.8Iftheresultingn!umberxGisnotanin!tegerthen\count@0issetto1z+bXxc whileG\dimen@bMecomesG(xbXxcQ)\p@>.Ifxisanin!teger:x =0fgives\count@=1; ƹand\dimen@=\z@Bⴹ,otherwise\count@.= xand\dimen@=\p@.P1265\xydef@\splinealong@@#1#2#3{%1266K\edef\tmp@{#1}\relax\dimen@ii\tmp@\p@1267%%\getcrvsegsnum@1268%%\dimen@=-\count@\p@1269K\dimen@=-\p@1270K\expandafter\advance\expandafter\dimen@\splinecorrect@p\p@1271K\expandafter\advance\expandafter\dimen@\splinecorrect@c\p@ .*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй137??hw1272K\edef\tmp@{#1}\relax\dimen@=-\tmp@\dimen@\relax 1273K\expandafter\advance\expandafter\dimen@\splinecorrect@p\p@1274K\getcrvsegsnum@\multiply\dimen@by\count@\relax1275\splinetrace@{actual:\the\dimen@;f:\the\dimen@ii;p:\splinecorrect@p,c:\splinecorrect@c}%1276K\count@=\dimen@\divide\count@\p@\DN@{\relax}%1277K\def\tmp@{\relax}\ifx\next@\tmp@1278 m\expandafter\ifnum\xycrvptsnum@<\count@1279\xywarning@{parametervalue#1toolarge}%1280\DNii@{\relax}\DN@{\begingroup}%1281 m\else1282\edef\xysplineval@{\the\dimen@}%1283\advance\dimen@-\count@\p@1284\ifdim\dimen@=\z@1285\splinetrace@{findknotpoint\the\count@}%1286 \ifnum\count@=\z@\count@=\@ne\else\dimen@=\p@\fi1287\else\advance\count@\@ne1288\splinetrace@{findpoint\the\dimen@\spaceonsplinesegment\the\count@}%1289 m\fi1290 m\edef\segmentnum@{\the\count@}%1291 m\edef\next@{\begingroup\noexpand\splinesegment@{\the\count@}}%1292K\edef\nextii@{%1293\noexpand\spline@find{\the\dimen@}{#2}{}\noexpand\checksplinefind@{#2}}%1294K\ifx>#3\relax1295 m\edef\nextii@{%1296\noexpand\spline@find{\the\dimen@}{#2}#3\noexpand\checksplinefind@{#2}}%1297K\else\ifx-#3\relax\ifdim\dimen@>\z@\relax\ifdim\dimen@<\p@1298 m\dimen@=-\dimen@\advance\dimen@\p@1299 m\edef\nextii@{\noexpand\splinereverse@1300\noexpand\spline@find{\the\dimen@}{#2}{}\noexpand\checksplinefind@{#2}}%1301 m\fi\fi1302K\else\ifx<#3\relax\ifdim\dimen@>\z@\relax\ifdim\dimen@<\p@1303 m\dimen@=-\dimen@\advance\dimen@\p@1304 m\edef\nextii@{\noexpand\splinereverse@1305\noexpand\spline@find{\the\dimen@}{#2}#3\noexpand\checksplinefind@{#2}}%1306 m\fi\fi1307K\fi\fi\fi1308K\fi\fi T\expandafter\next@\nextii@}jUThiskzmacroc!heckskzwhethertherequiredslidinghasbMeencarriedout,wCorwhetheritisnecessarytocon!tinuefslidingalongthenextsegmen!t.P1315\xydef@\checksplinefind@#1{%1316K\dimen@ii=#1\relax\dimen@=\splinelength@1317K\ifdim\dimen@ii=\z@\DN@{}%1318K\else1319 m\ifdim\dimen@ii<\z@\advance\dimen@\dimen@ii1320 m\else\advance\dimen@-\dimen@ii\fi1321 m\ifdim\dimen@<\z@\multiply\dimen@\m@ne\fi1322K\ifdim\dimen@<.2\p@\DN@{}%1323K\else1324 m\count@=\segmentnum@\relax =̠*tj138?KlCHAPTERf2.CEXTENSIONS??hw1325\ifdim\dimen@ii<\z@\advance\dimen@ii\splinelength@ 1326 \ifnum\count@>\@ne\advance\count@\m@ne1327 \edef\next@{\noexpand\splinesegment@{\the\count@}%1328Jk\noexpand\spline@find\p@{\the\dimen@ii}{}%1329 \noexpand\checksplinefind@{\the\dimen@ii}}%1330 \else1331Jk\xywarning@{cannotslide\the\dimen@ii\spacebeforestart}%1332Jk\DN@{\splinesegment@\@ne\spline@find\z@\z@{}}\fi1333\else\advance\dimen@ii-\splinelength@1334 \count@@=\numcontrolpts1335 \ifnum\count@<\count@@\advance\count@\@ne1336Jk\edef\next@{\noexpand\splinesegment@{\the\count@}%1337 \noexpand\spline@find\z@{\the\dimen@ii}{}%1338ɿ\noexpand\checksplinefind@{\the\dimen@ii}}%1339 \else1340Jk\xywarning@{cannotslide\the\dimen@ii\spacebeyondend}%1341Jk\DN@{\splinesegment@{\the\count@@}\spline@find\p@\z@{}}\fi1342\fi1343K\fi\fi\next@}+͍Breaks 5T!ypMesettingbreaksincurvesisquiteinvolved.#The\bstartPLACE@RHand\bendPLACE@G-areusedtoholdparametervdDaluesforthepMositionsofthebeginningandendofasegmen!t,respectivelye,whenkno!wn.ThedefaultvdDaluesof\relax)LindicatethatthesevaluesneedtobMefound,usuallyfromtheustart-andend-edgesofthecurv!e. ThevdDalueof\empty*Lfor\bstartPLACE@Risusedinitiallywithanewcurv!edconnection,Utosetupallitsparameters|notypMesettingtakesplace.Thisisusedbycurv!edfarrowstosetuptheconnectionbMeforeplacescanbefoundforan!ybreaks.P1361\xydef@\resetbreaks@{%1362 m\let\bstartPLACE@=\relax\let\bthisPLACE@=\empty1363 m\let\bendPLACE@=\relax\let\bprevPLACE@=\relax}1365\xydef@\invisbreaks@{\resetbreaks@\let\bstartPLACE@=\empty}1366\xydef@\crvresetbreaks@{\resetbreaks@\let\bstartPLACE@=\relax}1368\xydef@\initbreaks@{\xy@@{\ifx\bstartPLACE@\relax1369 m\def\bstartPLACE@{0}\def\bendPLACE@{1}\else1370 m\ifx\bstartPLACE@\empty\def\bstartPLACE@{0}\def\bendPLACE@{1}%1371K\fi\fi}}1373\xydef@\lastbreaks@{\ifx\bprevPLACE@\relax\def\bstartPLACE@{0}%1374K\else\expandafter\bprevPLACE@\fi1375K\let\bprevPLACE@\relax\let\bendPLACE@\relax}1377\xylet@\bstartPLACE@\relax1378\xylet@\bendPLACE@\relax1379\xylet@\bprevPLACE@\relax1380\xydef@\bthisPLACE@{1}䍑Thesefarecalledintheactualsettingofcurv!edsub-segments.1386\xydef@\splinebreak@{%1387\splinetrace@{***newbreak***this:\bthisPLACE@}%1388K\ifx\bthisPLACE@\empty\def\bendPLACE@{1}% I۠*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй139??hw1389K\else\edef\bendPLACE@{\bthisPLACE@}\let\bthisPLACE@\empty\fi 1390%\xystatus@{BR1}%1391K\ifx\bprevPLACE@\relax\def\bstartPLACE@{0}\else\expandafter\bprevPLACE@\fi1392K\edef\bprevPLACE@{\def\noexpand\bstartPLACE@{\bendPLACE@}\pfromthec@}%1393\splinetrace@{splineBREAK:\bstartPLACE@<>\bendPLACE@}%1394%\xystatus@{BR}%1395K\edef\cv@brend{\cfromthec@}%1396K\edef\cv@brstart{\cfromthep@}%1397K\expandafter\connect\expandafter\crvs\crvSTYLE@@{}%?optimise1398K\let\cv@brend=\relax1399K\let\cv@brstart=\relax1400\splinetrace@{**breakdone**}%1401}P1403\xydef@\splinelast@{\splinereset@\lastbreaks@%\splinetracing1404\splinetrace@{splineLAST}%1405%\xystatus@{LA}%1406K\edef\cv@brend{\cfromthec@}%1407K\edef\cv@brstart{\cfromthep@}%1408K\expandafter\connect\expandafter\crvs\crvSTYLE@@{}%?optimise1409K\let\cv@brend=\relax1410K\let\cv@brstart=\relax1411\splinetrace@{**lastdone**}%1412K\resetbreaks@}!Inttersectionwithacurvedconnection 5Justhasthein!tersectionoftwolines(1.3j)canbMefound,socanthein!tersectionofastraightlinewithacurvedconnection,ortheintersectionofacurvewithafstraigh!tconnection. y5/c ps: SDict begin xyc end%A>x%B2%C2kܟ %D3h0?" {mark 12.0 36.0 39.60059 19.19824 48.0 -12.0 1.0 0.11084 q}xyi[" {-1829 10 /xy AB}xy3h0C" {mark 12.0 36.0 39.60059 19.19824 48.0 -12.0 0.11084 0.86096 q}xy3h0?" {mark 12.0 36.0 39.60059 19.19824 48.0 -12.0 1.0 0.86096 q}xy;2" {45.46622 32.34631 l}xy!ݟps: SDict begin xyc end%A>x%B2%C2kܟ %D;2" {45.46622 32.34631 l}xy3h0?" {mark 12.0 36.0 39.60059 19.19824 48.0 -12.0 1.0 0.11084 q}xyi[" {-1829 10 /xy AB}xy3h0C" {mark 12.0 36.0 39.60059 19.19824 48.0 -12.0 0.11084 0.86096 q}xy3h0?" {mark 12.0 36.0 39.60059 19.19824 48.0 -12.0 1.0 0.86096 q}xy!ݟ$+\xy*+{A}="A";p+/r5pc/+(0,15)*+{B}="B"K,p+<1pc,3pc>*+{C}="C"K,"A"+<4pc,-1pc>*+{D}="D",{\ar@/_/"C"}K,?!{"A";"B"**@{-}}*++{\oplus}\endxy\quad\xyK*+{A}="A";p+/r5pc/+(0,15)*+{B}="B",K,p+<1pc,3pc>*+{C}="C"K,"A"+<4pc,-1pc>*+{D}="D","A";"B"**@{-}K,?!{"D",{\ar@/_/"C"}}*++{\oplus}\endxy_gWhenthelineseparatestheend-pMoin!tsofacurveanintersectioncanalwaysbMefound.رIfthereismorefthanonethenthatoMccurringearliestalongthecurv!eistheonefound.PresumenWtheend-pMoin!tsofthesplinesegmentareat(Xzp];1Yzp)nWand(Xzc.y;Yzc)nWwith(Lzp];Uzp)nWand(Rzp];1Dzp)ڄast!woڄpMointsontheline.z6Thenthemacro\xysidesofinterval@treturns3piecesofinfor-mation. V*tj140?KlCHAPTERf2.CEXTENSIONS??hw\nextSSexpandsto2c!haracters,eachfromf+;1;0gindicatingwhic!hsideof,oron,thelinelies eitherfend-pMoin!t;\this@&expands-toeither+orindicatingwhic!hendisclosertotheline,returning+ifequi-distan!t;\howclose@<'con!tainsfanon-negativehnumiindicatingthedistancetothenearestend-pMoint.d1456\xydef@\splineNointercept@{\enter@{\pfromthep@}%1457K\begingroup\splinereset@\csnamecv@0\endcsname\swap@1458 m\count@=\ptsnum@\advance\count@\@ne\csnamecv@\the\count@\endcsname1459 m\edef\tmp@{\endgroup\X@origin=\the\X@p\Y@origin=\the\Y@p1460\R@c=\the\d@X\U@c=\the\d@Y}\tmp@1461K\loop@1462 m\dimen@=\ifdim\R@c<\z@-\fi\R@c1463 m\advance\dimen@\ifdim\U@c<\z@-\fi\U@c1464 m\ifdim\dimen@>10\p@1465\advance\R@c\ifdim\R@c<\z@-\fi16sp\divide\R@c\KK@1466\advance\U@c\ifdim\U@c<\z@-\fi16sp\divide\U@c\KK@1467K\repeat@1468K\intersect@\leave@}P1470\xydef@\splineintercept@{\Hidden@true\Invisible@true\splineintercept@i}1472\xydef@\splineintercept@i{\enter@{\pfromthep@}\begingroup 1473K\R@p=\X@c\L@p=\X@p\d@X=\R@p\advance\d@X-\L@p1474K\D@p=\Y@c\U@p=\Y@p\d@Y=\D@p\advance\d@Y-\U@p1475K\dimen@nth\KK@\d@X\edef\sd@X{\expandafter\removePT@\the\d@X}%1476K\dimen@nth\KK@\d@Y\edef\sd@Y{\expandafter\removePT@\the\d@Y}%1477K\dimen@=\sd@Y\L@p\advance\dimen@-\sd@X\U@p1478K\edef\sideOffset@{\the\dimen@}\def\closestseg@{1}%1479K\let\crvconnect@@=\relax\crvconnect@1480K\let\spline@end=\splinef@end1481K\def\spline@start{\bgroup\def\prevnext@{+-}%1482 m\def\splinerec@{\let\splinerec@=\splineIrec@\splineinterceptTest@}%1483 m\def\splinedecast@{\let\splinedecast@=\splinedecast@@1484\def\splineadvance@{\splineIadvance@@}\splinedecast@@}%1485 m\def\splineadvance@{\intercepthull@}%1486% T\def\splinepoint@{\splineIpt@@}%1487 m\global\let\splinepoint=\splineIpt@@1488 m\global\let\splinegoal@=\splinef@pt1489 m\global\let\splinefinish@=\splinefinish@@}%1490K\begingroup\splineIsegment@1491 m\splinesetparams@\splined@@\def\postfind@{}\splineIplace@1492K\setupDirection@ii\leave@}v1495\xydef@\splineIplace@{%1496K\d@X=\dimen5\d@Y=\dimen7\dimen@=\splineval@1497K\expandafter\count@\xycrvptsnum@\relax1498K\ifnum\count@>\tw@\advance\count@\m@ne%\advance\count@\m@ne1499 m\advance\dimen@\segmentnum@\p@\advance\dimen@-\p@1500 m\dimen@nth\count@\dimen@ T%\divide\dimen@\count@ d*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй141??hw1501K\fi\edef\tmp@{\endgroup\endgroup 1502 m\def\noexpand\PLACEf@{{\expandafter\removePT@\the\dimen@}}%1503 m\X@c=\dimen@i\Y@c=\dimen3%1504 m\d@X=\the\d@X\d@Y=\the\d@Y}\tmp@1505\splinetrace@{PLACE=\PLACEf@:(\the\X@c,\the\Y@c)}%1506K\expandafter\edef\expandafter\bthisPLACE@\PLACEf@1507K}P1509\xydef@\splineIrec@{\splineinterceptTest@}1511\xydef@\squineIpt@{\edef\tmp@{\endgroup 1512K\def\noexpand\prevnext@{\next}\begingroup}\tmp@}1513\xydef@\squineIadvance@{\edef\tmp@{\endgroup1514 m\def\noexpand\prevnext@{\next}\def\noexpand\howclose@{\howclose@}}%1515K\tmp@\splineadvance@@\begingroup}P1517\xydef@\cubicIpt@{\edef\tmp@{\endgroup1518K\def\noexpand\prevnext@{\next}\begingroup}\tmp@}1519\xydef@\cubicIadvance@{\edef\tmp@{\egroup1520 m\def\noexpand\prevnext@{\next}\def\noexpand\howclose@{\howclose@}}%1521K\tmp@\splineadvance@@\bgroup}1523\xydef@\splineIsegment@{\DN@{\splinesegment@\@ne}%1524K\ifx\splinesegment@\squinesegment@\else1525K\ifx\splinesegment@\cubicsegment@\else\DN@{\findIsegment@}%1526K\fi\fi\next@}1528\xydef@\findIsegment@{\expandafter\count@\xycrvptsnum@\count@@\z@1529K\loop@\advance\count@@\@ne\bgroup1530 m\expandafter\splinesegment@\expandafter{\the\count@@}%1531 m\xysidesofinterval@1532 m\findIsegment@i\repeat@1533 m\expandafter\dimen@\prevhowclose@\relax1534 m\ifdim\dimen@=\z@\edef\closestseg@{\the\count@@}\fi1535 m\expandafter\splinesegment@\expandafter{\closestseg@}}1537\xydef@\findIsegment@i{%1538K\expandafter\ifx\next\expandafter\findIsegment@ii1539K\else\expandafter\findIsegment@x\fi\next@}1541\xydef@\findIsegment@ii{\expandafter\count@\xycrvptsnum@\relax1542K\advance\count@\m@ne\ifnum\count@>\segmentnum@\relax1543K\expandafter\findIsegment@y\else\expandafter\findIsegment@x\fi}1545\xydef@\findIsegment@x{%1546K\edef\next@{\egroup\def\noexpand\next{\next}%1547 m\def\noexpand\prevhowclose@{\prevhowclose@}%1548 m\def\noexpand\closestseg@{\closestseg@}\noexpand\iffalse}}1550\xydef@\findIsegment@y{%1551K\edef\next@{\egroup\def\noexpand\next{\next}%1552 m\def\noexpand\prevhowclose@{\prevhowclose@}%1553 m\def\noexpand\closestseg@{\closestseg@}\noexpand\iftrue}}1555\xydef@\xysidesofinterval@{\bgroup1556 m\L@p=\sd@X\Y@p\advance\L@p-\sd@Y\X@p\advance\L@p\sideOffset@ qv*tj142?KlCHAPTERf2.CEXTENSIONS??hw1557 m\U@p=\sd@X\Y@c\advance\U@p-\sd@Y\X@c\advance\U@p\sideOffset@ 1558K\def\this@{}\ifdim\L@p>\almostz@\ifdim\U@p>\almostz@\def\next{++}\else1559 m\ifdim\U@p<-\almostz@\def\next{+-}\else\def\next{+0}\def\this@{-}\fi\fi1560K\else\ifdim\L@p<-\almostz@\ifdim\U@p>\almostz@\def\next{-+}\else1561 m\ifdim\U@p<-\almostz@\def\next{--}\else\def\next{-0}\def\this@{+}\fi\fi1562K\else\ifdim\U@p>\almostz@\def\next{0+}\else1563 m\ifdim\U@p<-\almostz@\def\next{0-}\else\def\next{00}\def\this@{+}\fi\fi1564K\fi\fi1565K\ifx\this@\empty1566 m\L@p=\ifdim\L@p<\z@-\fi\L@p\U@p=\ifdim\U@p<\z@-\fi\U@p1567 m\ifdim\L@p<\U@p\edef\howclose@{\the\L@p}\def\this@{-}%1568 m\else\edef\howclose@{\the\U@p}\def\this@{+}\fi1569K\else\def\howclose@{0.0pt}\fi1570\splinetrace@{\next:\this@:\howclose@;\the\splineval@:%1571K(\the\X@p,\the\Y@p);(\the\X@c,\the\Y@c)}%1572K\ifdim\howclose@<\prevhowclose@\relax1573 m\edef\tmp@{\egroup\def\noexpand\this@{\this@}\def\noexpand\next{\next}%1574\def\noexpand\howclose@{\howclose@}\def\noexpand\prevhowclose@{\howclose@}%1575\def\noexpand\closestseg@{\segmentnum@}}%1576\splinetrace@{closestyet:\howclose@,insegment\segmentnum@}%1577K\else1578 m\edef\tmp@{\egroup\def\noexpand\this@{\this@}\def\noexpand\next{\next}%1579\def\noexpand\howclose@{\howclose@}}%1580K\fi\tmp@}P1582\xydef@\splineinterceptTest@{%1583K\xysidesofinterval@\DN@{\splineadvance@}%1584K\DNii@{0.0pt}\ifx\howclose@\nextii@\DN@{\splineclosest@}%1585K\else\expandafter\ifx\next\expandafter\ifx\prevnext@1586 m\ifx\next\prevnext@\else\DN@{\X@c=\X@p\Y@c=\Y@p1587\splinefinishf@}\fi\fi1588K\else\DN@{\splinedecast@}\fi\fi1589K{\splinefar@false\splinenear@\X@p\X@c\Y@p\Y@c1590 m\ifsplinefar@\aftergroup\next@1591 m\else\aftergroup\splineclosest@1592\splinetrace@{tooclose:(\the\X@p,\the\Y@p)::(\the\X@c,\the\Y@c)}%1593K\fi}}1595\xydef@\splineclosest@{%\global\advance\splineval@-.5\splinedepth@1596K\expandafter\ifx\this@-\relax1597 m\X@c=\X@p\Y@c=\Y@p\global\advance\splineval@-\splinedepth@1598K\fi\splinefinishf@}%When*thelinemissesthecon!vex*hullofthecurve'scontrolpMointsitisstillpMossibletogetthepMoin!tfofclosestapproach.1605\xydef@\squinetestcvxhull@{\begingroup1606\splinetrace@{hull:closestinsegment\closestseg@}%1607K\expandafter\splinesegment@\ifx\undefined\closestseg@\@ne\else\closestseg@\fi1608K\X@c=\L@c\Y@c=\U@c\xysidesofinterval@1609K\expandafter\ifx\next\expandafter\splineoutsidehull@@1610K\else\expandafter\splineinsidehull@\fi} }Ϡ*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй143??hw1612\xydef@\cubictestcvxhull@{\begingroup 1613K\expandafter\splinesegment@\ifx\undefined\closestseg@\@ne\else\closestseg@\fi1614K\X@c=\L@c\Y@c=\U@c\xysidesofinterval@1615K\expandafter\ifx\next\expandafter\cubictestcvxhull@i1616K\else\expandafter\splineinsidehull@\fi}P1618\xydef@\cubictestcvxhull@i{%\begingroup1619K\X@c=\R@c\Y@c=\D@c\xysidesofinterval@1620K\expandafter\ifx\next\expandafter\splineoutsidehull@@1621K\else\expandafter\splineinsidehull@\fi}v1624\xydef@\xysidesofhull@{\bgroup1625K\L@p=\sd@X\Y@p\advance\L@p-\sd@Y\X@p\advance\L@p\sideOffset@1626K\U@p=\sd@X\Y@c\advance\U@p-\sd@Y\X@c\advance\U@p\sideOffset@1627K\L@p=\ifdim\L@p<\z@-\fi\L@p\U@p=\ifdim\U@p<\z@-\fi\U@p1628K\ifdim\L@p<\U@p\edef\howclose@{\the\L@p}\def\this@{-}%1629K\else\edef\howclose@{\the\U@p}\def\this@{+}\fi1630K\ifx\splinedecast@\squinedecast@\D@c=\U@c\R@c=\L@c\fi1631K\L@p=\sd@X\U@c\advance\L@p-\sd@Y\L@c\advance\L@p\sideOffset@1632K\L@p=\ifdim\L@p<\z@-\fi\L@p1633K\expandafter\if\this@-%1634 m\ifdim\L@p<\prevhowclose@\def\next{-+}\else\def\next{--}\fi1635K\else1636 m\ifdim\L@p<\howclose@\def\next{-+}\else1637\U@p=\sd@X\D@c\advance\U@p-\sd@Y\R@c\advance\U@p\sideOffset@1638\U@p=\ifdim\U@p<\z@-\fi\U@p1639\ifdim\U@p<\howclose@\def\next{+-}\else\def\next{++}\fi1640K\fi\fi1641K\edef\tmp@{\egroup\def\noexpand\this@{\this@}\def\noexpand\next{\next}%1642 m\def\noexpand\howclose@{\howclose@}}\tmp@}эThisnisforstraigh!tconnectionsinterceptingwithacurve.v Itrequiresarede nitionof\PLACE@intercept@tofrecognisethatthein!terceptiswithacurvedconnection.1650\def\PLACE@intercept@#1{%1651K\xy@@{\enter@{\pfromthep@\basefromthebase@}\begingroup}%1652K\xy@@ix@{#1}\xy@@{\plainxy@\def\Creset@@{}%1653 m\expandafter\POS\the\toks9\relax1654 m\DNii@{\crvreset@}\ifx\nextii@\Creset@@\edef\next@{\endgroup1655\def\noexpand\xyinterceptpts@{\the\crvpts@}%1656\X@c=\the\X@c\Y@c=\the\Y@c\X@p=\the\X@p\Y@p=\the\Y@p1657\noexpand\CCintercept@@}%1658 m\else\edef\next@{\endgroup1659\X@c=\the\X@c\Y@c=\the\Y@c\X@p=\the\X@p\Y@p=\the\Y@p1660\noexpand\Cintercept@@}%1661 m\fi\next@\leave@}%1662K\PLACE@@}1664\xydef@\CCintercept@@{\splineSintercept@}1665\xydef@\splineSintercept@{\enter@{\pfromthep@}\begingroup1666 m\Creset@@\edef\connect@pts{\cfromthec@\pfromthep@}%1667\xyinterceptpts@\splinereset@\connect@pts\splineintercept@ O*tj144?KlCHAPTERf2.CEXTENSIONS??hw1668 m\edef\next@{\endgroup\cfromthec@\DirectionfromtheDirection@}% 1669K\next@\let\xyinterceptpts@=\empty\leave@}T\oDo::Ifg bMothconnectionsarecurv!es,sonlythelinejoiningtheend-poin!tsofthe rstconnectionisfused.Findaw!ayftodobMetterthanthis. IfthelinedoMesnotseparatetheend-poin!tsthentheremaybMenointersectionwiththecurve.Ifthereisonetheneitherthelineistangen!tialornecessarilytherewillalsobMeatleastoneotherin!tersection.AfmessageE̍eKperhapsnocurveintersection,ormany.isbOwrittentothelog- le,obutasearc!hforanintersectionwillstillbMeperformedanda\sensible"place foundGDonthecurv!e.wIntheusualcaseofasinglequadraticorcubicsegment,o{theplacenearestthelinefisfoundandthetangen!tdirectionisestablished.Then)follo!wingexamplesshowthis,yiandshowhowtogettheplaceonthelinenearesttothecurve.5gtps: SDict begin xyc end 2Ο%ADx%B%CP%D Nh0A" {mark 60.0 42.67891 59.18091 -19.26114 0.0 0.0 1.0 0.06201 q}xyIןt" {-3146 10 /xy AB}xy Nh0D" {mark 60.0 42.67891 59.18091 -19.26114 0.0 0.0 0.06201 0.9436 q}xy Nh0A" {mark 60.0 42.67891 59.18091 -19.26114 0.0 0.0 1.0 0.94354 q}xyM-" {63.01038 14.54536 l}xy/fj2" {-3728 st}xy.7" {-3728 F d}xyh0/fj" {-5.12988 23.44629 l}xy-y^Z} Xps: SDict begin xyc end 2Ο%ADx%B%C\%D Nh0@" {mark 60.0 42.67891 76.68945 -43.62149 0.0 0.0 1.0 0.0476 q}xyJqxZ" {-2909 10 /xy AB}xy Nh0D" {mark 60.0 42.67891 76.68945 -43.62149 0.0 0.0 0.0476 0.95972 q}xy Nh0A" {mark 60.0 42.67891 76.68945 -43.62149 0.0 0.0 1.0 0.95978 q}xyYS" {75.01038 25.00836 l}xy% 0n\xy*+{A}="A";p+/r5pc/+(0,15)*+{B}="B",K,p-<.5pc,2pc>*+{C}="C","A"+<6pc,-.5pc>K,*+{D}="D","A",{\ar@/_25pt/"B"}K,?!{"C";"D"**@{-}}*\dir{x}="E"K,+/_2pc/="F";"E"**@{-},?!{"C";"D"}K,*{\otimes}\endxy\qquad\xyK*+{A}="A";p+/r5pc/+(0,15)*+{B}="B",K,p-<.5pc,2pc>*+{C}="C"K,"A"+<7pc,.5pc>*+{D}="D","A"K,{\ar@/_40pt/"B"},?!{"C";"D"**@{-}}K,*{\otimes}\endxyThebw!arningmessage,thatnointersectionmayexist,alwaysoMccursinsideagroupingsoitcansafelyfswitc!hitselfo fordeepMerlevels.P1712\xydef@\nointerceptwarning@{\let\nointerceptwarning@=\relax1713K\xywarning@{perhapsnocurveintersection,ormany.}}1715\xydef@\intercepthull@{\nointerceptwarning@1716K\expandafter\def\expandafter\prevnext@\expandafter{\next}%1717K\splinetestcvxhull@}WhenVlthelinemeetsthecon!vexVlhullofthecurrentcontrolpMoints,fjthenacloserpMointexistsinsidethe#curren!tpMortionofthecurve.!Weemust\decast"to ndit,-afterstoringtheclosestvdDalueknownsoffar,within\prevhowclose@T!.1726\xydef@\splinetestcvxhull@{\begingroup1727K\X@c=\L@c\Y@c=\U@c\splinetrace@{hull:}\xysidesofinterval@1728K\expandafter\ifx\next\expandafter\splineoutsidehull@@1729K\else\expandafter\splineinsidehull@\fi}1731\xydef@\splineinsidehull@{\edef\tmp@{\endgroup U*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй145??hw1732K\def\noexpand\howcvxclose@{\howclose@}% 1733 m\noexpand\interceptinsidehull@}\tmp@}P1735\xydef@\interceptinsidehull@{\edef\prevhowclose@{\howclose@}%1736K\splinedecast@@}R?IfCthelinedoMesnotcrossin!totheconvexhull,jthenweusethedistancefromthecontrolpMointstodeterminewhetherornottherecanbMeacloserpoin!t.kThevdDalueof\prevhowclose@W"indicatesthebMestsofar, while\howcvxclose@Rtemporarilyholdsthedistancetotheclosestcon!trolpoin!t.YWhenthisfisnearerthentherewillbMeacloserpoin!tonthecurve.1747{\xdef\next{\the\maxdimen}}1748\xylet@\prevhowclose@=\next1750\xydef@\splineoutsidehull@{\edef\tmp@{\endgroup1751 m\def\noexpand\howcvxclose@{\howclose@}%1752\noexpand\interceptoutsidehull@}\tmp@}1753\xylet@\splineoutsidehull@@=\splineoutsidehull@1755%\xydef@\interceptoutsidehull@{\dimen@=\howcvxclose@\relax1756%\ifdim\dimen@<\howclose@\relax1757% T\ifdim\howclose@<\prevhowclose@\relax\edef\prevhowclose@{\howclose@}\fi1758%>\DN@{\begingroup\splinedecast@@\endgroup}%1759%\else\ifdim\howclose@>\prevhowclose@\relax\DN@{\splineHadvance@}%1760%\else\DN@{\splineHadvance@}\fi\fi\next@}1761\xydef@\interceptoutsidehull@{\dimen@=\howcvxclose@\relax1762%\global\splineval@=\z@1763\splinetrace@{OUTSIDEHULL:\the\dimen@:(\howclose@)(\prevhowclose@)}%1764K\let\splinedecast@=\splinedecast@@1765K\let\splinerec@\splineHnear@test1766K\let\splineadvance@\splineIadvance@@1767K\splinedecast@@}1769\xydef@\splineHnear@test{%1770K\xysidesofhull@\DN@{\splinedecast@}%1771K\ifdim\howclose@<\prevhowclose@\edef\howclose@{\prevhowclose@}\fi1772K\expandafter\if\this@-%1773 m\expandafter\ifx\next\DN@{\splineclosest@}\fi1774K\else1775 m\expandafter\ifx\next\DN@{\splineadvance@}\fi1776K\fi1777K{\splinefar@false\splinenear@\X@p\X@c\Y@p\Y@c1778 m\ifsplinefar@\aftergroup\next@1779 m\else\aftergroup\splineclosest@1780\splinetrace@{tooclose:(\the\X@p,\the\Y@p)::(\the\X@c,\the\Y@c)}%1781K\fi}}R?Feorcubicsegmen!tsitisnecessarytoloMokatbothcon!trol-pointso thecurv!eandcomparetheirdistances;fhencetheuseof\prevhowcvxclose@e`,initiallysetto\maxdimen7c`.1789\xydef@\cubicoutsidehull@{\edef\tmp@{\endgroup1790 m\def\noexpand\howcvxclose@{\howclose@}}\tmp@1791 m\edef\prevhowcvxclose@{\howcvxclose@}\begingroup1792K\X@p=\R@c\Y@p=\D@c\splinetrace@{hullii:}\xysidesofinterval@1793K\expandafter\ifx\next\expandafter\cubicoutsidehull@i *tj146?KlCHAPTERf2.CEXTENSIONS??hw1794K\else\expandafter\cubicinsidehull@\fi}P1796\xydef@\cubicinsidehull@{\edef\tmp@{\endgroup 1797K\def\noexpand\howclose@{\howclose@}}\tmp@1798K\cubicoutsidehull@ii}1800\xydef@\cubicoutsidehull@i{\edef\tmp@{\endgroup1801K\def\noexpand\howcvxclose@{\howclose@}}\tmp@1802K\dimen@=\prevhowcvxclose@\relax1803K\ifdim\dimen@<\howcvxclose@\relax1804 m\edef\howcvxclose@{\the\dimen@}\expandafter\interceptoutsidehull@1805K\else\expandafter\cubicoutsidehull@ii\fi}1807\xydef@\cubicoutsidehull@ii{%1808K\def\splineadvance@{\splineadvance@@}%1809K\def\splinepoint\endgroup{\endgroup1810% T\global\let\splinepoint=\splinepoint@1811 m\global\let\splinepoint=\relax1812 m\def\splineadvance@{\intercepthull@}}%1813K\splinedecast@@}%aiThis5macro\splineHadvance@a+ isusedattheendofa\splinedecast@Uinordertopassinformationfromfoutofasubsegmen!t,tohelpdecidewhetherthereisanypMointinfurthersearching.1821\xydef@\splineHadvance@{\futurelet\next@\splineHadvance@i}1822\xydef@\splineHadvance@i{\ifx\next@\endgroup1823K\expandafter\splineHadvance@x\else\expandafter\splineclosest@\fi}1825\xydef@\splineHadvance@x{\edef\tmp@{\endgroup1826 m\def\noexpand\prevhowclose@{\prevhowclose@}%1827 m\def\noexpand\prevnext@{\next}\def\noexpand\howcvxclose@{\howclose@}}%1828K\tmp@\dimen@=\prevhowclose@\relax1829K\ifdim\dimen@<\howclose@\relax\DN@{\splineclosest@\begingroup}%1830K\else\ifdim\howcvxclose@=\dimen@\DN@{\splineclosest@\begingroup}%1831K\else\DN@{\splineadvance@@\begingroup}\fi\fi\next@}JMiscellaneous(features 5Thecommand\clearcurveFx:w!asoriginallyprovidedtodiscardthecurveinformation,qandereturntothegraphicsstatebMeforethecurv!ewasread,qifthisiseverfoundtobMenecessarye.ThisfwillprobablybMeremo!ved.1843\xydef@\xyclearcrv@{\cv@end\cv@restore\loop@1844K\expandafter\let\csnamecv@\number\crv@cnt@\endcsname\relax1845K\ifnum\crv@cnt@>0\advance\crv@cnt@\m@ne\repeat@1846K\let\cv@start=\relax\let\cv@end=\relax\let\cv@restore=\relax\POS}1847\xylet@\clearcurve=\xyclearcrv@aiT\o9vDo:qDe nean\extendcurveJasahpMostcurv!eiwhichallowsthecurvetobMecontinuedsmoMothlypastftheendpMoin!tc.{A]macro]6canbMeusedwithinthemodi er,topro!videdi erentlabMelsateachcontrolpMoint.NFeorexample.3.. *tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй147??hw2捍Nps: SDict begin xyc end%AB DcO1=F"A2Y+>3v-ޟA43h0U" {mark 0.0 0.0 28.4526 -28.4526 42.67891 7.11316 54.53416 10.66974 0.08693 1.0 bz}xy\" {mark 54.53416 10.66974 66.38942 14.2263 75.87363 -14.2263 87.72888 -7.11314 0.0 1.0 bz}xy^" {mark 87.72888 -7.11314 99.58412 0.0 113.81042 42.67891 142.26303 -28.4526 0.0 0.96667 bz}xy@M\newcount\cptlabel\global\cptlabel=0 \def\nextcptlabel{\global\advance\cptlabel1%K\number\cptlabel}\xy(0,0)*+{A};(50,-10)*+{B}**\crv~Pc{~*{\nextcptlabel}(10,-10)K&(20,15)&(30,-15)&(40,15)}\endxy6Tw!ocontrolsequencesareprovidedtoaccessthecontrolpMoints.Firstly\numcontrolptsWbreturnsthen!umbMerofthem,while\xycontrolptHhnumisetsctobMetheparticularcontrolpMoint.Herehnumim!ustbMeasingledigit,-groupedin!tegere.g.{-15}$orcountregistercontaininganumericalvdDalue.#1Iflargerthan\numcontrolptsX ԹthencbMecomestheend-poin!tofthecurve,whileifzeroitbMecomesthestartingXpMoin!t.AXnegativevdDaluesetsbMothpandctobethestartingpoin!t,hcwhereasothervdDaluesleavepfunc!hanged.P1881\xylet@\numcontrolpts=\xynumctrlpts@1883\xydef@\xycontrolpt@#1{{% 1884K\ifnum#1<\z@\aftergroup\cv@restore\aftergroup\cv@start1885K\else1886 m\expandafter\count@\xycrvptsnum@\relax\advance\count@\@ne1887 m\ifnum#1>\count@\ifx\cv@end\relax1888\expandafter\aftergroup\csnamecv@\number#1\endcsname1889\else\aftergroup\cv@end\fi1890 m\else1891\expandafter\ifx\csnamecv@\number#1\endcsname\relax1892 \ifnum#1=\z@\aftergroup\cv@start\else\aftergroup\cv@end\fi1893\else\expandafter\aftergroup\csnamecv@\number#1\endcsname1894K\fi\fi\fi}}%1895\xylet@\xycontrolpt=\xycontrolpt@#Storing conttrolpYointloYcations: 5UpMon startingtoreadthecon!trolpoin!tsforacurve,* rstsetthecoun!terU\crv@cnt@:hvtoUbMezero.Storethepositionofpandcandthecurren!tbaseincontrolsequences\cv@startI,\cv@end/ӵand\cv@restoreF:forlaterretrievdDalandtoreinstatethecurren!tgraphicsstate.\cv@startyisfalittlemorecomplicatedinordertoretaintheexistingvdDalueofp.P1910\xydef@\startxycurve@@{\crv@cnt@=\z@1911K\edef\cv@start{\cfromthep@}%1912K\ifdim\zz@\R@c\ifdim\zz@\L@c\ifdim\zz@\D@c\ifdim\zz@\U@c1913Jk\Edge@c={\zeroEdge}\fi\fi\fi\fi1914K\edef\cv@end{\cfromthec@}%1915K\edef\cv@restore{\pfromthep@\basefromthebase@}}1916\xylet@\startxycurve@=\startxycurve@@1918\xylet@\cv@start=\relax =*tj148?KlCHAPTERf2.CEXTENSIONS??hw1919\xylet@\cv@end=\relax 1920\xylet@\cv@restore=\relax1921\xydef@\readxycurve@{\startxycurve@\xycrvmods@}1922\xylet@\readxycurve=\readxycurve@ TheXpMositionofeac!hcontrolpMointisstoredastheexpansionofacontrolsequencewhosenameencoMdes'itsplacewithinthehposlisti+ɹ.b Expandingthiscon!trolsequencesetsctobetheappropriatepMosition.P1931\xydef@\addtocrv@{\advance\crv@cnt@\@ne1932K\edef\tmp@{%1933\expandafter\noexpand\csnamecv@\number\crv@cnt@\endcsname}%1934K\expandafter\edef\tmp@{\cfromthec@}%1935K\edef\tmp@{\noexpand\addtocrvpts@{\noexpand\def1936 m\expandafter\noexpand\tmp@{\X@c=\the\X@c\Y@c=\the\Y@c}}}\tmp@1937K\edef\xycrvptsnum@{\the\crv@cnt@}%1938}-P1947\xydef@\xycrvdrop@{{\zerodot}}1948\xydef@\xycrvconn@{}1950\xydef@\xyc@trlpts@{\def\xycrvdrop@{\dir{x}}\def\xycrvconn@{}%1951K\afterCURVE{\savecrvobjects@\xyctrlpts@}\readxycurve@}1952\xydef@\xyc@trlpts@@{%1953K\afterCURVE{\savecrvobjects@\def\xycrvdrop@{\dir{x}}%1954 m\def\xycrvconn@{}\xyctrlpts@}\readxycurve@}1955\xydef@\xyc@vxhull@{\def\xycrvdrop@{{}}%1956K\edef\xycrvconn@{\noexpand\dir{\addDASH@{}}}%1957K\afterCURVE{\savecrvobjects@\xycvxhull@}\readxycurve@}1958\xydef@\xyc@vxhull@@{%1959K\afterCURVE{\savecrvobjects@\def\xycrvdrop@{{}}%1960 m\edef\xycrvconn@{\noexpand\dir{\addDASH@{}}}\xycvxhull@}\readxycurve@}1961\xylet@\controlpts=\xyc@trlpts@1962\xylet@\convexhull=\xyc@vxhull@1963\xydef@\savecrvobjects@{\bgroup1964 m\expandafter\toks@\expandafter{\xycrvdrop@}%1965 m\expandafter\toks@ii\expandafter{\xycrvconn@}%1966 m\edef\tmp@{\egroup\noexpand\def\noexpand\resetcrvobjects@{%1967\noexpand\def\noexpand\xycrvdrop@{\the\toks@}%1968\noexpand\def\noexpand\xycrvconn@{\the\toks@ii}%1969 m}}\tmp@} Alternate>curvtestyles: 5TherewisthepMoten!tialtodomanyotherthingshere,byusing\afterCURVEAӹ,oncefthelistofcon!trolpMointshasbMeenread.1978\xydef@\afterCURVE#1{\def\afterCURVE@{#1}}1979\xydef@\endxycurve@{\cv@end\savectrlptsnum@1980K\expandafter\def\csnameparams@\endcsname{\the\crvpts@}%1981K\cv@restore\afterCURVE@\POS}1982\xylet@\endcurve=\endxycurve@ InRfactthisisessen!tiallyhow\controlptsH\and\convexhullw!ereinterfacedbMeforeextensions q*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй149??hww!erefaddedtochangestyles.P\def\controlpts{\afterCURVE{\xyctrlpts}% K\readxycurve}\def\convexhull{\afterCURVE{\xycvxhull}%K\readxycurve}LThe#realw!orkisdoneby\xyctrlpts?̹and\xycvxhull<8.BAtthepMointwhenthesemacrosareexpandedthefgraphicsstatehastherestoredpandctotheiroriginalvdDalues,i.e.theend-pMoin!tsofthecurve.\controlpts"g: 5Thismacrovisitsinordereac!hofthecontrolpMointsdroppingtherequisiteobject.Theconnection[st!yleisnotusedandthedirectiondoMesnotchange. FeoraloMop-counterweuse\count@@@7.2011\xydef@\xyctrlpts@{\cv@end\cv@restore2012K\def\crvconnect@{\straitconnect@}%2013K\ifnum\crv@cnt@>\z@2014 m\count@@@=\@ne\DN@{\loop@\xycontrolpt@{\count@@@}\relax2015 m\expandafter\xycvxhulldrop@\xycrvdrop@2016 m\ifnum\crv@cnt@>\count@@@\advance\count@@@\@ne\repeat@2017 m\cv@end\cv@restore}%2018K\else\DN@{\relax}\fi\next@}2019\xylet@\xyctrlpts=\xyctrlpts@LThetok!enlist\crvpts@7|storesthefollowinginformation:O=currentscopMe,-Alocationofpandc,n!umbMerqofcon!trolpoin!ts\crv@cnt@=#ܹandtheirlocations.Itdoesthisb!ystoring\defsforcontrolsequence\"names,ɑdepMendingonthescope,ɑwhic!hexpandtothisinformation. Thusbyexecuting\the\crvpts@+/attherigh!tlevel,theinformationisconvenientlyrecoveredviacontrolsequenceswhichdofnotcon ictwithan!ythingelse,andwhosenamescanbMereconstructed.2032\xydef@\addtocrvpts@#1{\crvpts@=\expandafter{\the\crvpts@#1}}v2036\xydef@\savescope@{\crvpts@={}%2037K\edef\tmp@{\expandafter\noexpand\csnamecv@0\endcsname}%2038K\edef\tmp@{\noexpand\addtocrvpts@{\noexpand\def2039 m\expandafter\noexpand\tmp@{\X@c=\the\X@p\Y@c=\the\Y@p}}}%2040K\tmp@}2042\xydef@\savectrlptsnum@{%2043K\advance\crv@cnt@\@ne\edef\tmp@{%2044\expandafter\noexpand\csnamecv@\number\crv@cnt@\endcsname}%2045 m\edef\tmp@{\noexpand\addtocrvpts@{\noexpand\def2046\expandafter\noexpand\tmp@{\X@c=\the\X@c\Y@c=\the\Y@c}}}\tmp@2047K\advance\crv@cnt@\m@ne2048K\edef\tmp@{\expandafter\noexpand\csnameptsnum@\endcsname}%2049K\edef\tmp@{\noexpand\addtocrvpts@{%2050 m\noexpand\def\expandafter\noexpand\tmp@{\number\crv@cnt@}}}%2051K\tmp@}#ContvexHull: 5Thismacrovisitsinordereac!hofthecontrolpMointsdroppingtherequisiteobject.Withthepreviousaspandthecurren!toneasc,aconnectionissetintherequisitestyle.'GFeoraloMop-coun!terfweuse\count@@@7c`. ^Useagroup{\expandafter\POS\xycrvconn@}笹elsethe\loop@*fgetsupset.4ThisdoMesnota ectthefsizeoftheXY p-picture,sincethedroppMedobjectsarenotsimilarlyshrouded. ژ*tj150?KlCHAPTERf2.CEXTENSIONS??hwAlsoKNusedforthetrivialcasewheretherearenocon!trolpMoints,thenceastraightlinebMetweenp andfciswhatisrequested.P2070\xydef@\xycvxhull@{\cv@end\cv@restore2071 m\addtocrvpts@{\def\crvconnect@{\straitconnect@}}%2072K\def\crvconnect@{\straitconnect@}%2073K\ifnum\crv@cnt@>\z@2074 m\count@@@=\@ne\relax\DN@{\loop@\xycontrolpt@{\count@@@}\relax2075\expandafter\xycvxhulldrop@\xycrvdrop@2076{\expandafter\connect\xycrvconn@{}}\pfromc@2077\ifnum\crv@cnt@>\count@@@\relax\advance\count@@@\@ne\repeat@2078 m\cv@end}%2079K\else2080 m\ifx\empty\xycrvconn@2081\edef\xycrvconn@{\noexpand!C\noexpand\dir{\addDASH@{}}}\fi2082 m\DN@{\relax}\fi\next@2083K{{\expandafter\connect\xycrvconn@{}}}%2084K\cv@end\cv@restore}2085\xylet@\xycvxhull=\xycvxhull@2087\xydef@\xycvxhulldrop@#1#{\drop@{#1}}/Spline Bconstructions 5Thecon!trolsequence\xysplineparams@cprovidesawaytoaccessacontrolsequencenamethatisuniquetothecurren!twYXY -picscopMe.KThiscontrolsequencewillbMeusedtostorethe9parameterswhic!hdeterminethesplinecurve..Similarly\xysplineedges@^willbMeusedtostoretheKparametervdDaluesandlengths(alongthesquine)totheloMcationswherethesplinecrossestheedgeofftheobjectsattheendspandc.2106\xydef@\savespline@{%2107\splinetrace@{savespline@:}%2108%\edef\endspline@{\endgroup2109K\edef\endspline@{\endgroup2110K\savesplineparams@\savesplinerefs@2111K\X@min=\the\X@min\relax\X@max=\the\X@max\relax2112K\Y@min=\the\Y@min\relax\Y@max=\the\Y@max\relax2113 m\ifInvisible@\noexpand\Invisible@true2114 m\else\noexpand\Invisible@false\fi2115K}\endspline@2116K\edef\tmp@{\noexpand\addtocrvpts@{\savesplineparams@}}\tmp@2117K\xycontrolpt@\z@\cv@end}2119\xydef@\savesplineparams@{%2120K\noexpand\def\expandafter\noexpand\xysplineedges@{\xysplineedges@}}2122\xydef@\savesplinerefs@{%2123K\noexpand\def\noexpand\xysplineparams@{%2124 m\expandafter\noexpand\xysplineparams@}%2125K\noexpand\def\noexpand\xysplineedges@{%2126 m\expandafter\noexpand\xysplineedges@}%2127}ɣOnefnewbMo!xregisterisrequired,fortheobjectusedtoactuallysetthecurve,.3.. 袠*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй151??hw2136\xynew@{box}\splinebox@n .3..yandf4dimenregisters...P2142\xynew@{dimen}\splineval@.3..ywhic!hfisfortrackingthenaturalsplineparametrization;2147\xynew@{dimen}\splinedepth@.3..ywhic!hfisfortrackinghedepthoftherecursivealgorithms;2152\xynew@{dimen}\splinetol@.3..Vwhic!h#containsthetoleranceforthespline,(thiscanprobablybMeshiftedtoanordinarymacro);2158\xynew@{dimen}\splinelength@.3..whic!heaccumulatesameasureofthelengthalongasplinecurve.(CurrentlythisisnotbMeing used,fasmostthingscanbMedonesatisfactorilyusingthesplineparametrizationonlye.) Some/^newconditionalsarealsorequired.xThesearefortestingwhethersuccessiv!eplacesonthesquinefaresucien!tlyclosetogether,andwhethertheobjectsshouldbMeplacedornot.2170\xynew@{if}\ifsplinefar@2171\xynew@{if}\ifsplineplot@%toplotpointsornotn Pro!videfsometracingabilitye,fordebugging.2177\xydef@\splinetracing{\let\splinetrace@=\W@}2178\xydef@\splineignore@#1{}2179\xylet@\splinetrace@=\splineignore@ The,Bparametersforthecurren!tsectionofthesplinearestoredindirectlyin\xysplineparams@`&,while*informationconcerningtheplaceswherethesplinecrossestheedgesofobjectsatpandcisstored1indirectlyin\xysplineedgesS1.A1con!trolsequence\readsplineparams@mݾisusedtoextractthisinformation.Eac!h:splinetypMemustprovidea\getsplineparams@j.Lwhichputstheinformationintoeasilyfusableform.2193\xydef@\readsplineparams@{%2194K\expandafter\expandafter\expandafter\getsplineparams@\xysplineparams@2195K\expandafter\expandafter\expandafter\getsplineedges@safe\xysplineedges@@@}2197\xydef@\getsplineedges@safe#1@@{\DN@{#1}%2198K\ifx\next@\empty\DN@{\getsplineedges@.0pt;0.0pt,0.0pt;0.0pt,}%2199K\else\DN@{\getsplineedges@safe@#1@@}\fi\next@}2201\xydef@\getsplineedges@safe@#1;#2,#3@@{\DN@{#3}%2202\splinetrace@{getsplineedges@safe}%2203K\ifx\next@\empty\DN@{\getsplineedges@#1;#2,0.0pt;0.0pt,}%2204K\else\DN@{\getsplineedges@#1;#2,#3}\fi\next@}n TheedgeloMcationsarestoredasx:yGvwherexA+1=spline-segmen!tnumbMerandyGvor1Ay=parameterfvdDalueofthestart,resp. nish,inthesegmen!txn+1.2213\xydef@\getsplineedges@#1;#2,#3;#4,{%2214K\global\dimen@i=#1\global\dimen5=#2\relax2215K\dimen@=#3\multiply\dimen@\m@ne\advance\dimen@\splinelength@2216K\global\dimen3=\dimen@2217K\dimen@=#4\relax2218K\ifdim\dimen@>\p@\xywarning@{edgeout-of-range:\the\dimen@}%2219 m\count@=\dimen@\divide\count@\p@ }*tj152?KlCHAPTERf2.CEXTENSIONS??hw2220 m\advance\dimen@-\count@\p@\multiply\dimen@\m@ne 2221 m\advance\dimen@\count@\p@\advance\dimen@\p@2222\splinetrace@{\the\dimen@}%2223K\else2224 m\multiply\dimen@\m@ne\advance\dimen@\p@2225K\fi2226K\global\dimen7=\dimen@}PSometimestrT,[wEB Xwillrunshortofmemorywhenman!ycurvesareusedwithoutabackendwithspMecialsuppMortforcurv!es.Inthatcasethefollowingcommands,JthatobMeynormalT,[wEB Xgroupings,ma!ybMehelpful: @ffd N@z\SloppyCurves@z\splinetolerance{ hdimeni}DnffdS덹allo!wadjustmentofthetoleranceusedtotypMesetcurves.ܹThe rstsetstoleranceto.8pt,afterwhich\splinetolerance{0pt}|_Xresetsftotheoriginaldefaultof necurv!es.SomefusefulmethoMdsforaccuratedivisionb!yintegers.2251\xydef@\dimen@half{%2252T\advance\dimen@\ifdim\dimen@<\z@-\fi1sp\divide\dimen@\tw@}2254\xydef@\halve@dimen#1{\dimen@=#1\relax\dimen@half#1=\dimen@}2256\xydef@\dimen@nth#1#2{\dimen@=#2\relax\dimen@ii=#1sp%2257T\advance\dimen@\ifdim\dimen@<\z@-\fi.5\dimen@ii2258T\divide\dimen@by#1\relax#2=\dimen@}Before\constructingthecurv!ewe rstexaminethe\drop"object, settingitinan\xybox&ځ.:Thesizeofthisobjectdeterminesthespacingofobjectsplacedalongthecurv!e,'viathetolerpanceࡹofthespline.TThis,determinesthemaxim!umseparationofplacesatwhichobjectswillbMedropped;USi.e.whent!woSCadjacentplaceswouldbMeseparatedbymorethanthisamount,~zthesplinealgorithmconstructsanotherfplaceonthecurv!eintermediatebMetweenthesetwo.Note: ֹAlterÆthesplinetoleranceb!yadjustingthesizeofthe\drop"object.5=Inparticular,adottedline_1canbMeac!hieved_1bysettinganemptyobjectwithnon-zerosize.!Ifthesizeiszerothenthedefaulttoleranceisused.PInitiallythisis.4pt;_itma!ybMealteredusing\splinetolerance``hdimeni,Vwherehdimenifm!ustbMegreaterthanzero,elsetheinitialtoleranceisreset.2279\xydef@\splinetolerance@#1{\dimen@=#1\relax2280\ifdim\dimen@>\z@\splinetol@=\dimen@2281\else\splinetol@=.4\p@\fi}2283\xylet@\splinedefaulttol@=\relax2285\xydef@\splinetolerance#1{\splinetolerance@{#1}%2286\edef\splinedefaulttol@{\splinetol@=\the\splinetol@}}2288\splinetolerance\z@2290\xydef@\SloppyCurves{\splinetolerance{.8\p@}}2292\xydef@\xylowtolerance@{\splinedefaulttol@2293\ifdim\splinetol@<\p@\divide\splinetol@\tw@\fi}Similarlyexaminethe\connect"object.IfnonehasbMeenspeci edthenthereisnoneedtocalculatetheDtangen!tdirectionateachplacealongthecurve.'ThissavesonbMothtimeandmemoryrequirement.Prpocedureҡ:(1)If\xycrvdrop@Fisempt!ye,de ne\splinedrop@LItoexpandto\copy\zerodotbox@ea",th!uscreatingacurveconstructedfromsmalldots.Otherwise(2a)setthe\splinebox@Eh~withthespMec- *tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй153??hwi ed>objectand(2b)use\copy\splinebox@bwastheexpansionof\splinedrop@H:x.;(3)Set\splinetol@ tofbMe7p g7p y ɍ2@maxim!umofwidthandheight+depthofthebMox.If]\xycrvconn@E^is]empt!y(4)then\splineconn@Kissetto\relax%ۄ.œ(5)Otherwiseitisnecessarytoreset,thedirectionateac!hplacealongthecurvebMeforedroppingtheobjectspeci edb!y\xycrvconn@Bhc.P2316\xywarnifdefined\splinedrop@2317\xydef@\setstdsplinedrop@{%2318K\setbox\splinebox@=\hbox\bgroup2319 m\setboxz@h{\expandafter\object\xycrvdrop@{}}%2320 m\splinedefaulttol@\dimen@=\wd\z@\dimen@ii=\ht\z@\advance\dimen@ii\dp\z@2321 m\ifdim\dimen@ii>\dimen@\dimen@=\dimen@ii\fi\dimen@=1.4142\dimen@2322 m\ifdim\dimen@>\splinetol@\splinetol@=\dimen@\else\dimen@=\splinetol@\fi2323 m\dimen@=.5\wd\z@2324 m\ht\z@=\z@\dp\z@=\z@\wd\z@=\z@\kern-\dimen@\Drop@@\kern\dimen@2325 m\edef\tmp@{\egroup\splinetol@=\the\splinetol@2326\ifInvisible@\noexpand\Invisible@true2327\else\noexpand\Invisible@false\fi}\tmp@2328K\edef\splinedefaulttol@{\splinetol@=\the\splinetol@}%2329K\def\splinedrop@{\copy\splinebox@\splineextra@@}}2331\xywarnifdefined\splineconn@2332\xydef@\stdsplineconn@{{\setsplinedir@% T%(5)2333 m\setboxz@h\bgroup\expandafter\object\xycrvconn@{}%2334\edef\tmp@{\egroup\L@c=\the\L@c\R@c=\the\R@c\D@c=\the\D@c\U@c=\the\U@c2335 \noexpand\def\noexpand\Drop@@}\expandafter\tmp@\expandafter{\Drop@@}%2336 m\setboxz@h{\kern-\L@c\boxz@}%2337 m\ht\z@=\z@\dp\z@=\z@\wd\z@=\z@\Drop@@}}2339\xydef@\setcrvobjects@{\setstdsplinedrop@\def\splineconn@{\stdsplineconn@}}2340\xylet@\splineextra@@=\relaxv2344\xydef@\splinenear@#1#2#3#4{{\d@X=#1\advance\d@X-#2%2345K\ifdim\d@X<\z@\d@X=-\d@X\fi2346K\ifdim\splinetol@<\d@X\aftergroup\splinefar@true2347K\else\d@Y=#3\advance\d@Y-#4\ifdim\d@Y<\z@\d@Y=-\d@Y\fi2348 m\ifdim\splinetol@<\d@Y\aftergroup\splinefar@true2349 m\else\xydist@\d@X\d@Y2350\ifdim\splinetol@<\dimen@\aftergroup\splinefar@true2351\else2352 \ifdim\dimen@<.1\splinetol@\aftergroup\splinetooclose@\fi2353K\fi\fi\fi}}2355\xydef@\splineadvance@@{\global\advance\splineval@\splinedepth@}G捑ThisstopsobjectsbMeingplacedtooclosetogetheralongthespline.GItisnecessaryatthebeginningofasegmen!twithanon-zeroedge.߶Otherwise,+withalarge\splinetolerance@eaN,theaccuracyoftheplace- ndingmec!hanismresultsinbMeingsodeepinthetreethatobjectsplacedateverylevelonthew!ayfupw!ouldbMemuchtoMoclose.2365\xydef@\splinetooclose@{\aftergroup\aftergroup\aftergroup\splinetooclose@@}2366\xydef@\splinetooclose@@{\def\splineplotpt@{\relax}}G捑Eac!hTplacealongthecurveistestedaccordingtoa\splinetest@HL.Normallythisisforvisibilityaccordingtotheexten!toftheobjectsattheend-pMointsofthecurve.Whenanedgeiscrossedthen C*tj154?KlCHAPTERf2.CEXTENSIONS??hwthe\splinecontinue_routineiscalledtodecideho!wthebMehaviourmaychangee.g.!whetherthe recursionfshouldcon!tinueforexittothetopoftheexistingtree.P2377\xydef@\splinepoint@@{%2378\splinetrace@{P@:(\the\X@c,\the\Y@c)::\the\splineval@;\the\splinedepth@}%2379K{\splinetest@\ifsplineplot@\relax\else\aftergroup\splinecontinue\fi}}2381\xydef@\splinepoint@{%2382K{\splinetest@\ifsplineplot@\aftergroup\splinecontinue\fi}}2383\xylet@\splinepoint=\splinepoint@2385\xydef@\splinecontinue@{%2386K\global\let\splinepoint=\splinepoint@@2387K\global\let\splinecontinue=\splinecontinue@@}2388\xydef@\splinecontinue@@{%2389K\global\let\splinepoint=\splinepoint@2390K\global\let\splinecontinue=\relax}2391\xylet@\splinecontinue=\splinecontinue@bP!oints>wheresegmen!tsjoinlieatthetopoftherecursivetree.TheyaretesteddirectlyagainstthefobjectsattheendpMoin!ts,inordertodecidewhetherornottheyarevisible.2400\xydef@\splineknotpoint@{{\X@p=\X@c\Y@p=\Y@c\cv@start2401K\the\Edge@c\@ne\ifInside@\else\aftergroup\splineknotpoint@@\fi}}%2402\xydef@\splineknotpoint@@{{\X@p=\X@c\Y@p=\Y@c\cv@end2403K\the\Edge@c\@ne\ifInside@\else\aftergroup\splinepoint\fi}}%2405\xylet@\firstsplinepoint@=\splineknotpoint@2406\xylet@\lastsplinepoint@=\splineknotpoint@tThisroutineisusedto ndwherethesplinecrossestheedgesoftheobjectsatpandc.First(1)5w!esetupthetestswhichwilldeterminewhentheedgehasbMeencrossed.:VThencommencethescan.f(2)2417\xydef@\splined@@@{%2418\splinetrace@{findingendtypes}%2419\splinetrace@{bstartPLACE@:\bstartPLACE@;bendPLACE@:\bendPLACE@}%2420K\DN@{\splinescan@}\ifx\bstartPLACE@\empty2421\ifx\bendPLACE@\relax\def\bendPLACE@{1}\fi2422 m\else\ifx\bstartPLACE@\relax2423 m\else\ifx\bstartPLACE@\undefined2424 m\else2425\DN@{\splinescanbreak@}\ifx\bendPLACE@\relax\def\bendPLACE@{1}\fi2426\DNii@{0}\ifx\bstartPLACE@\nextii@2427 \DNii@{1}\ifx\bendPLACE@\nextii@\DN@{}%2428%\else\DNii@{0.0}\ifx\bendPLACE@\nextii@\DN@{}\fi2429\fi\fi T%usethesavedvalues2430 m\fi\fi\fi\next@}% T%(2)2432\xydef@\splineStarttest@{{\X@p=\X@c\Y@p=\Y@c\cv@start\the\Edge@c\@ne2433 m\ifInside@\aftergroup\splineplot@false\else\aftergroup\splineplot@true\fi}}%2434\xydef@\splineEndtest@{{\X@p=\X@c\Y@p=\Y@c\cv@end\the\Edge@c\@ne2435 m\ifInside@\aftergroup\splineplot@false\else\aftergroup\splineplot@true\fi}}%2437\xydef@\splineBreakStarttest@{{\X@p=\X@c\Y@p=\Y@c\cv@brstart\the\Edge@c\@ne "*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй155??hw2438 m\ifInside@\aftergroup\splineplot@false\else\aftergroup\splineplot@true\fi}}%P2440\xydef@\splineBreakEndtest@{{\X@p=\X@c\Y@p=\Y@c\cv@brend\the\Edge@c\@ne 2441 m\ifInside@\aftergroup\splineplot@false\else\aftergroup\splineplot@true\fi}}%2442% T\ifInside@\aftergroup\splineplot@true\else\aftergroup\splineplot@false\fi}}%2444\xylet@\splineStarttest=\splineStarttest@2445\xylet@\splineEndtest=\splineEndtest@2447\xydef@\splineSlowStarttest{{\X@p=\X@c\Y@p=\Y@c\cv@start\the\Edge@c\@ne2448 m\ifInside@\aftergroup\splineplot@maybe@@\else\aftergroup\splineplot@true\fi}}%2449\xydef@\splineSlowEndtest{{\X@p=\X@c\Y@p=\Y@c\cv@end\the\Edge@c\@ne2450 m\ifInside@\aftergroup\splineplot@maybe@@\else\aftergroup\splineplot@true\fi}}%2451\xydef@\splineplot@maybe{\splineplot@false}%2452\xylet@\splineplot@maybe@@=\splineplot@maybe ㍑(3)+Startanewgroupandbindsomemacrosappropriateto ndingthestartingedge.n'(4)starttheGsplinealgorithm,usingasmalltolerance.}(5)Closethegroup,th!usremovingthebindingsof(3).(6)Recordtheinformation,whic!hhasbMeenstoredgloballye.(7)Dothesamefortheendingedge.(8)fCleartheglobalinformation.Afterthis,setthecurv!easusual.(9)2465\xydef@\splinescan@{\bgroup%2466K\expandafter\def\xysplineedges@{\z@;\z@,\z@;\z@,}%2467K\bgroup\cv@start2468 m\expandafter\DN@\expandafter{\the\Edge@c}\DNii@{\zeroEdge}%2469 m\ifx\next@\nextii@\gdef\splineedges@{\z@;\z@,}%2470 m\else\aftergroup\splinestartScan@\fi2471K\egroup\relax2472K\bgroup\cv@end2473 m\expandafter\DN@\expandafter{\the\Edge@c}\DNii@{\zeroEdge}%2474 m\ifx\next@\nextii@2475\getcrvsegsnum@\edef\segmentnum@{\the\count@}%2476\splineval@=\z@\splineRecordEndValue@2477 m\else\aftergroup\splineendScan@\fi2478K\egroup\egroup2479K\expandafter\testsplineedges@\splineedges@;,@@%2480K\expandafter\edef\xysplineedges@{\splineedges@}% T%(6)2481K\global\let\splineedges@=\relax% T%(8)2482\splinetrace@{edgeparams:\xysplineedges@}}%2484\xydef@\testsplineedges@#1;#2,#3;#4,#5@@{%2485K\DN@{#5}\ifx\next@\empty2486 m\DNii@{#4}\ifx\nextii@\empty2487\xynoedgespline@{end}\def\splineedges@{#1;#2,\z@;\z@,}\fi2488 m\DNii@{#2}\ifx\nextii@\empty2489\xynoedgespline@{start}\def\splineedges@{\z@;\z@,\z@;\z@,}\fi2490K\fi}2491\xydef@\xynoedgespline@#1{\xywarning@{#1edgeofsplinenotfound}}%2493\xydef@\splinestartScan@{\bgroup%%(3)2494\splinetrace@{scanforstart}%2495K\global\let\splineadvance@=\splineadvance@@ T%(3)2496K\let\spline@start=\splinefindStart@>%(3)2497K\let\spline@end=\spline@end@@>%(3) ,M*tj156?KlCHAPTERf2.CEXTENSIONS??hw2498K\let\splinefinish@=\splinefinish@@ 2499K\let\splinewhich=\relax2500K\global\splinelength@=\z@2501%\let\splinerec@=\splineSrec@2502K\def\splinerec@{\let\splinerec@=\splineSrec@\splinedecast@@}%2503K\edef\splineedges@{}%2504K\expandafter\let\xysplineedges@\relax2505%\bgroup2506 m\xylowtolerance@\splined@@2507 m\ifx\splineedges@\empty\expandafter\splineslowScan@\fi2508 m\ifx\splineedges@\relax\expandafter\splinenostart@\fi2509K\egroup}% T%(4)P2511\xydef@\splineslowScan@{%2512K\let\splineStarttest=\splineSlowStarttest2513K\let\splinescanStarttest=\relax2514K\def\splinerec@{\let\splinerec@=\splineSrec@\splinedecast@@}%2515K\splined@@}2517\xydef@\splineslowEnd@{%2518K\global\let\splineEndtest=\splineSlowEndtest2519K\let\splinescanEndtest=\relax2520K\def\splinerec@{\let\splinerec@=\splineErec@\splinedecast@@}%2521K\splined@@}2523\xydef@\splinenostart@{%2524K\def\segmentnum@{1}\splinelength@=\z@\splineval@=\z@2525K\xynoedgespline@{start}\splineRecordValue@}2527\xydef@\splineendScan@{\bgroup%%(3)<-----------2528K\bgroup% T%(7)2529\splinetrace@{scanforend}%2530K\global\let\splineadvance@=\splineadvance@@2531K\let\spline@start=\splinefindEnd@2532K\let\spline@end=\spline@end@@2533K\let\splinefinish@=\splinefinish@@2534K\let\splinewhich=\relax2535K\global\splinelength@=\z@2536%\let\splinerec@=\splineErec@2537K\global\let\splineEndtest=\splineEndtest@2538K\def\splinerec@{\let\splinerec@=\splineErec@\splinedecast@@}%2539K\expandafter\def\expandafter\prevedges@\expandafter{\splineedges@}%2540K\xylowtolerance@\splined@@2541K\ifx\splineedges@\prevedges@\expandafter\splineslowScan@\fi2542K\egroup\egroup}2544\xydef@\splinescanbreak@{%2545\splinetrace@{SCANBREAK}%2546K\gdef\breakedges@{}%2547K\DN@{0}\ifx\next@\bstartPLACE@2548 m\DN@{\bgroup\def\tmp@####1;####2,####3;####4,{%2549 \global\splineval@=####2\relax}%2550\expandafter\expandafter\expandafter\tmp@\xysplineedges@ 9*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй157??hw2551\def\segmentnum@{1}\splineRecordBreakValue@\egroup}% 2552K\else2553 m\bgroup\cv@start2554\expandafter\DN@\expandafter{\the\Edge@c}\DNii@{\zeroEdge}%2555\ifx\next@\nextii@\aftergroup\splinezerostart2556\else\aftergroup\splinewidestart\fi2557 m\egroup2558K\fi\next@2559K\DN@{1}\ifx\next@\bendPLACE@2560 m\DN@{\bgroup\def\tmp@####1;####2,####3;####4,{%2561 \global\splineval@=####4\relax}%2562\expandafter\expandafter\expandafter\tmp@\xysplineedges@2563%%>\multiply\splineval@\m@ne\advance\splineval@\p@2564%%>\def\segmentnum@{1}2565 m\getcrvsegsnum@\edef\segmentnum@{\the\count@}%2566 m\global\multiply\splineval@\count@2567 m\splineRecordEndBreakValue@\egroup}%2568K\else2569 m\bgroup\cv@end2570\expandafter\DN@\expandafter{\the\Edge@c}\DNii@{\zeroEdge}%2571\ifx\next@\nextii@\aftergroup\splinezeroend2572\else\aftergroup\splinewideend\fi2573 m\egroup2574K\fi\next@2575K\expandafter\def\expandafter2576 m\xybreakedges@\expandafter{\breakedges@}% T%(6)2577K\global\let\breakedges@=\relax% T%(8)2578\splinetrace@{breakparams:\xybreakedges@::\bstartPLACE@--\bendPLACE@}%2579K\expandafter\let\xysplineedges@\xybreakedges@}P2581\xydef@\getcrvsegsnum@{%sets\count@2582 m\count@=\ptsnum@\relax\ifnum\count@>\@ne\advance\count@\m@ne\fi}2584\xydef@\splinezerostart{\DN@{\bgroup2585\splinetrace@{splinezerostart:}%2586 m\dimen@=\bstartPLACE@\p@2587 m\global\splineval@=\dimen@2588 m\splineRecordBreakValue@\egroup}}2590\xydef@\splinezeroend{\DN@{\bgroup2591\splinetrace@{splinezeroend:}%2592 m\dimen@=\bendPLACE@\p@2593 m\multiply\dimen@\m@ne\advance\dimen@\p@2594 m\def\segmentnum@{0}\global\splineval@=\dimen@2595 m\splineRecordEndBreakValue@\egroup}}2597\xydef@\splinewidestart{\DN@{\bgroup2598K\splinetrace@{scanforstart}%2599 m\let\splinefbcontinue@=\breakstartcontinue@2600 m\let\splinef@pt=\splinef@breakpt2601 m\let\splinef@end=\break@start2602 m\edef\tmp@{{\bstartPLACE@}}% E*tj158?KlCHAPTERf2.CEXTENSIONS??hw2603 m\expandafter\splinealong@@\tmp@\z@>\endgroup\egroup}}P2605\xydef@\splinewideend{\DN@{\bgroup 2606K\splinetrace@{scanforwideend}%2607 m\let\splinefbcontinue@=\breakendcontinue@2608 m\let\splinef@pt=\splinef@breakpt2609 m\let\splinef@end=\break@end2610 m\edef\tmp@{{\bendPLACE@}}%2611 m\expandafter\splinealong@@\tmp@\z@<\endgroup\egroup}}v2614\xydef@\splineSrec@{{%2615\splinetrace@{v=\the\splineval@+d=\the\splinedepth@:2616K(\the\X@p,\the\Y@p);(\the\X@c,\the\Y@c):Srec}%2617K\splineStarttest2618K\ifsplineplot@2619 m\ifdim\splinedepth@<.0001\p@\aftergroup\splinefinish@2620\global\advance\splineval@.5\splinedepth@2621 m\else\aftergroup\splinedecast@@\fi2622K\else\aftergroup\splineadvance@\fi}}2624\xydef@\splinefindStart@@{\bgroup\bgroup2625K\expandafter\expandafter\expandafter\getsplineparams@\xysplineparams@2626K\global\let\splineadvance@=\splineadvance@@2627K\global\let\splinepoint=\relax2628K\let\splinegoal@=\splineRecordValue@\global\dimen5=\z@2629K{\X@c=\X@p\Y@c=\Y@p\splinescanStarttest}%%firsttestinitialpoint.2630}2632\xydef@\splinefindStart@{%2633K\expandafter\crv@cnt@\xycrvptsnum@\relax2634K\ifnum\crv@cnt@>\tw@2635 m\crv@cnt@=\@ne\splineplot@false\splinesegment@{\crv@cnt@}%2636 m{\splineStarttest%%testendofsegment.2637 m\ifsplineplot@\aftergroup\splineplot@true\fi}%2638 m\ifsplineplot@\else\searchforStartsegment@\fi2639 m\splinesegment@{\crv@cnt@}%2640\splinetrace@{startisinsegment\segmentnum@}%2641K\else\splinesegment@\@ne\fi2642K\splineplot@false T\splinefindStart@@2643} ㍑Thisf ndsthe rstsplinesegmen!twhoseendpMointisbMeyondtheedgeoftheobject.2650\xydef@\searchforStartsegment@{\splineplot@true\loop@2651\advance\crv@cnt@\@ne2652\expandafter\count@\xycrvptsnum@\relax2653\ifnum\count@=\crv@cnt@\expandafter\splineplot@false2654\else2655 \splinesegment@{\crv@cnt@}{\splineStarttest2656 \ifsplineplot@\aftergroup\splineplot@false2657 \else\aftergroup\splineplot@true\fi}%2658\fi\ifsplineplot@\repeat@2659} PE*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй159??hwFindingftheendissimilar,butthesplineissearc!hedinreverseorder.P2665\xydef@\splinefindEnd@@{\bgroup\bgroup 2666K\expandafter\expandafter\expandafter\getsplineparams@\xysplineparams@2667\splinetrace@{params:\xysplineparams@}%2668K\splinereverse@@2669\splinetrace@{params:\xysplineparams@}%2670K\global\let\splineadvance@=\splineadvance@@2671K\global\let\splinepoint=\splinescanEndtest2672K\let\splinegoal@=\splineRecordEndValue@\global\dimen5=\z@2673K{\X@c=\X@p\Y@c=\Y@p\splinescanEndtest}%%firsttestinitialpoint.2674}2676\xydef@\splinereverse@@{\splinereverse@@@}2677\xydef@\splinereverse@@@{%2678K\def\postspline@{\d@X=-\d@X\d@Y=-\d@Y}%2679K\dimen@ii=\X@c\X@c=\X@p\X@p=\dimen@ii2680K\dimen@ii=\Y@c\Y@c=\Y@p\Y@p=\dimen@ii2681K\global\dimen5=-\dimen5\relax2682K\global\advance\dimen5\splinelength@}2683\xydef@\postspline@{}2685\xydef@\splineErec@{{%2686K\dimen@=\splineval@\advance\dimen@\splinedepth@%2687\splinetrace@{ER(\the\X@p,\the\Y@p);(\the\X@c,\the\Y@c);;;2688\the\dimen@,\the\splinedepth@}%2689K\splineEndtest2690K\ifsplineplot@2691 m\ifdim\splinedepth@<.0001\p@\aftergroup\splinefinish@2692%>\global\advance\splineval@.5\splinedepth@2693 m\else\aftergroup\splinedecast@@\fi2694K\else\aftergroup\splineadvance@\fi}}2696\xydef@\splinefindEnd@{%2697K\expandafter\crv@cnt@\xycrvptsnum@\relax2698K\ifnum\crv@cnt@>\tw@2699 m\advance\crv@cnt@\m@ne2700 m\splineplot@false\splinesegment@{\crv@cnt@}%2701 m{\X@c=\X@p\Y@c=\Y@p\splineEndtest%%testendofsegment.2702 m\ifsplineplot@\aftergroup\splineplot@true\fi}%2703 m\ifsplineplot@2704 m\else\searchforEndsegment@\fi2705 m\splinesegment@{\crv@cnt@}%2706\splinetrace@{endisinsegment:\segmentnum@}%2707K\else\splinesegment@\@ne\fi2708K\splineplot@false\splinefindEnd@@2709}2710\xydef@\searchforEndsegment@{\splineplot@true\loop@2711\advance\crv@cnt@\m@ne2712\ifnum\crv@cnt@=\z@\expandafter\splineplot@false2713\else2714 \splinesegment@{\crv@cnt@}{\X@c=\X@p\Y@c=\Y@p\splineEndtest [*tj160?KlCHAPTERf2.CEXTENSIONS??hw2715 \ifsplineplot@\aftergroup\splineplot@false 2716 \else\aftergroup\splineplot@true\fi}%2717\fi\ifsplineplot@\repeat@2718} ㍑Thesefarethetests,todeterminewhentheedge-pMoin!thasbeenfound.P2724\xydef@\splinescanStarttest{%2725\splinetrace@{SST(\the\X@c,\the\Y@c);\the\splinelength@,\the\splineval@}%2726K{\splineplot@false\splineStarttest2727\ifsplineplot@\expandafter\splinefinish@\fi}}2729\xydef@\splinescanEndtest{%2730\splinetrace@{SET(\the\X@c,\the\Y@c);\the\splinelength@,\the\splineval@}%2731K{\splineplot@false\splineEndtest2732\ifsplineplot@\expandafter\splinefinish@\fi}}v2736\xydef@\splineBrec@{{%2737K\dimen@=\splineval@\advance\dimen@\splinedepth@%2738\splinetrace@{BR(\the\X@p,\the\Y@p);(\the\X@c,\the\Y@c);;;2739\the\dimen@,\the\splinedepth@}%2740K\splineEndtest2741K\ifsplineplot@\aftergroup\splineadvance@\else2742 m\ifdim\splinedepth@<.0001\p@\aftergroup\splinefinish@2743%>\global\advance\splineval@.5\splinedepth@2744 m\else\aftergroup\splinedecast@@\fi\fi}}2746\xydef@\splineBSrec@{{%2747\splinetrace@{SR(\the\X@p,\the\Y@p);(\the\X@c,\the\Y@c);;;2748\the\dimen@,\the\splinedepth@:SR}%2749K\splineStarttest2750K\ifsplineplot@2751 m\ifdim\splinedepth@<.0001\p@\aftergroup\splinefinish@2752\global\advance\splineval@.5\splinedepth@2753 m\else\advance\splineval@\splinedepth@2754\splinetest@\advance\splineval@-\splinedepth@2755\ifsplineplot@\aftergroup\splineadvance@2756\else\aftergroup\splinedecast@@\fi2757 m\fi2758K\else2759 m\global\advance\splineval@\splinedepth@2760 m\aftergroup\splinefinish@\fi}}2762\xydef@\splineBErec@{{%2763K\dimen@=\splineval@\advance\dimen@\splinedepth@%2764\splinetrace@{BE(\the\X@p,\the\Y@p);(\the\X@c,\the\Y@c);;;2765K\the\dimen@,\the\splinedepth@}%2766 m\splineEndtest2767K\ifsplineplot@2768 m\ifdim\splinedepth@<.0001\p@\aftergroup\splinefinish@2769\global\advance\splineval@.5\splinedepth@2770 m\else\advance\splineval@\splinedepth@2771\splinetest@\advance\splineval@-\splinedepth@ g?*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй161??hw2772\ifsplineplot@\aftergroup\splineadvance@ 2773\else\aftergroup\splinedecast@@\fi2774 m\fi2775K\else2776 m\ifdim\splinedepth@<\p@\global\advance\splineval@\splinedepth@\fi2777 m\aftergroup\splinefinish@\fi}}P2779\xydef@\splinef@breakpt#1{%gobbles|\splinecancel|2780 m\ifdim\splineval@>\z@2781\splinetrace@{found:val=\the\splineval@;(\the\X@c,\the\Y@c)}%2782 m\else2783\splinetrace@{found:val=\the\splineval@;(\the\X@p,\the\Y@p)}%2784 m\fi T\splinefbcontinue@}2786\xydef@\splinef@pt@@{%2787 m\ifdim\splineval@>\z@2788\splinetrace@{found:val=\the\splineval@;c:(\the\X@c,\the\Y@c)}%2789\global\dimen@i=\X@c\global\dimen3=\Y@c2790 m\else2791\splinetrace@{found:val=\the\splineval@;p:(\the\X@p,\the\Y@p)}%2792 m\fi2793K\setsplinedir@\global\dimen5=\d@X\global\dimen7=\d@Y2794 m\global\splineval@=\splineval@2795 m\aftergroup\splinefocus@}2797\xydef@\findbreakwarning@#1{%2798K\xywarning@{#1ofbreaknotfound:bSTART=\bstartPLACE@,bEND=\bendPLACE@}%2799K\DN@{#1}\def\DNii@{start}\ifx\next@\nextii@\splineRecordBreakValue@2800K\else\splineRecordEndBreakValue@\fi\egroup}%2802\xydef@\breakstartcontinue@{\bgroup\cv@start2803%\xystatus@{SS}%2804 m\expandafter\DN@\expandafter{\the\Edge@c}\DNii@{\zeroEdge}%2805 m\ifx\next@\nextii@\aftergroup\breakstartfound@2806 m\else\aftergroup\breakstartcontinue@i\fi\egroup}%2808\xydef@\breakstartcontinue@i{%2809\splinetrace@{movetostartedge,from(\the\X@c,\the\Y@c):val=\the\splineval@}%2810%\global\let\splinetest@=\splineStarttest2811K\global\let\splineEndtest=\splineBreakStarttest@2812K\global\let\splinetest@=\splineBreakStarttest@2813%\global\let\splinerec@=\splineSrec@2814K\gdef\splinerec@{\global\let\splinerec@=\splineSrec@\splinedecast@@}%2815K\global\let\splinepoint=\relax2816K\global\let\spline@end=\checkfoundSbreak@2817%\global\let\splinegoal@=\splineRecordBreakValue@2818K\global\let\splinegoal@=\splineRecordSBreakValue@2819K\global\let\splinefinish@=\splinefinish@@ T}2821\xydef@\breakstartfound@{%2822\splinetrace@{foundstartedge,at(\the\X@c,\the\Y@c):val=\the\splineval@}%2823K\global\let\splinetest@=\splineStarttest2824K\gdef\splinerec@{\splinegoal@\global\let\splinerec@=\splinefinish@}% r*tj162?KlCHAPTERf2.CEXTENSIONS??hw2825K\global\let\splinepoint=\relax 2826K\global\let\spline@end=\relax%\checkfoundSbreak@2827K\global\let\splinegoal@=\splineRecordBreakValue@2828K\global\let\splinefinish@=\splinefinish@@2829K}P2831\xydef@\checkfoundSbreak@{%2832 m\ifnum\xycrvptsnum@<\thr@@\DN@{\findbreakwarning@{start}}%2833 m\else\DN@{\searchBreakSsegment@}\fi\next@}%2835\xydef@\searchBreakSsegment@{%2836K\crv@cnt@=\segmentnum@\DN@{}\count@=\crv@cnt@2837K\DNii@{}\ifnum\splineval@=\z@\ifnum\crv@cnt@=\@ne2838\ifnum\xycrvptsnum@=\@ne\count@=\z@\DNii@{\egroup}\fi2839 m\else\DN@{\egroup}\fi2840K\else\ifnum\splineval@=\m@ne2841K\else\advance\crv@cnt@\@ne\fi\fi2842K\ifnum\crv@cnt@=\xycrvptsnum@\relax2843 m\ifnum\xycrvptsnum@>\tw@\DNii@{\egroup}\fi2844 m\DN@{\expandafter\splineRecordBreakValue@\nextii@}%2845K\else2846 m\DN@{\splinesegment@{\crv@cnt@}\splinesetparams@2847\splined@@\egroup}%2848K\fi\next@}2850\xydef@\checkfoundEbreak@{%2851 m\ifnum\xycrvptsnum@<\thr@@\DN@{\findbreakwarning@{end}}%2852 m\else\DN@{\searchBreakEsegment@}\fi\next@}%2854\xydef@\searchBreakEsegment@{%2855K\crv@cnt@=\segmentnum@\DN@{}\count@=\crv@cnt@2856K\DNii@{}\ifnum\splineval@=\z@\ifnum\crv@cnt@=\@ne2857\ifnum\xycrvptsnum@=\@ne\count@=\z@\DNii@{\egroup}\fi2858 m\else\DN@{\egroup}\fi2859K\else\advance\crv@cnt@\m@ne\fi2860K\ifnum\count@=\z@2861%\ifnum\crv@cnt@=\z@2862 m\ifnum\xycrvptsnum@>\tw@\splineval@=\m@ne\p@2863\DNii@{\egroup}\fi2864 m\DN@{\expandafter\splineRecordEndBreakValue@\nextii@}\else2865 m\DN@{\splinesegment@{\crv@cnt@}\splinereverse@2866\readsplineparams@\splined@@\egroup}%2867K\fi\next@}2869\xydef@\break@start{\egroup\egroup2870\splinetrace@{scanforstart}%2871K\global\let\splineadvance@=\splineadvance@@ T%(3)2872K\let\spline@start=\splinefindBStart@>%(3)2873K\let\spline@end=\egroup2874K\let\splinefinish@=\splinefinish@@2875K\let\splinewhich=\relax2876K\global\let\splineadvance@=\splineadvance@@2877K\global\let\splinepoint=\relax ~*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй163??hw2878K\let\splinegoal@=\splineRecordBreakValue@ 2879K\global\dimen5=\z@ T\global\splinelength@=\z@2880K\let\splinerec@=\splineSrec@2881K\def\breakedges@{}%2882K\bgroup\bgroup\splined@@}P2884\xydef@\splinefindBStart@{\bgroup2885%\global\splineval@=\z@\global\splinedepth@=.5\p@}2886K\global\splineval@=\z@\splinedepth@=.5\p@}2888\xydef@\breakendcontinue@{\bgroup2889K\edef\tmp@{\X@p=\the\X@c\Y@p=\the\Y@c}\cv@end\tmp@%<---irrelevant?2890K\expandafter\DN@\expandafter{\the\Edge@c}\DNii@{\zeroEdge}%2891%\xystatus@{EE}%2892K\ifx\next@\nextii@\aftergroup\breakendfound@2893K\else\aftergroup\breakendcontinue@i\fi\egroup}%2895\xydef@\breakendcontinue@i{%2896\splinetrace@{movetoendedge,from(\the\X@c,\the\Y@c):val=\the\splineval@}%2897%\global\let\splinetest@=\splineEndtest2898K\global\let\splineEndtest=\splineBreakEndtest@2899K\global\let\splinetest@=\splineBreakEndtest@2900K\gdef\splinerec@{\global\let\splinerec@=\splineErec@\splinedecast@@}%2901K\global\let\splinepoint=\relax2902K\global\let\spline@end=\checkfoundEbreak@2903%\global\let\splinegoal@=\splineRecordEndBreakValue@2904K\global\let\splinegoal@=\splineRecordEBreakValue@2905K\global\let\splinefinish@=\splinefinish@@2906K\splinerec@}2908\xydef@\splineRecordEBreakValue@{%\getcrvsegsnum@2909\splinetrace@{\the\count@\spacesegments,\the\splineval@}%2910% T\ifnum\segmentnum@>\z@\dimen@=\segmentnum@\p@\else\dimen@=\p@\fi2911% T\advance\dimen@-\splineval@\relax2912% T\ifnum\count@>\@ne\divide\dimen@\count@\fi2913% T\global\splineval@=\dimen@2914 m\splineRecordEndBreakValue@}2916\xydef@\splineRecordSBreakValue@{\getcrvsegsnum@2917 m\dimen@=\splineval@2918 m\advance\dimen@\segmentnum@\p@\advance\dimen@-\p@2919 m\dimen@nth\count@\dimen@2920 m\global\splineval@=\dimen@\def\segmentnum@{1}%2921 m\splineRecordBreakValue@}2923\xydef@\breakendfound@{%2924\splinetrace@{foundendedge,at(\the\X@c,\the\Y@c):val=\the\splineval@}%2925K\global\let\splinetest@=\splineEndtest2926K\gdef\splinerec@{\splinegoal@\global\let\splinerec@=\splinefinish@}%2927K\global\let\splinepoint=\relax2928K\global\let\spline@end=\relax T%\checkfoundEbreak@2929K\global\let\splinegoal@=\splineRecordEndBreakValue@2930K\global\let\splinefinish@=\splinefinish@@ T} E*tj164?KlCHAPTERf2.CEXTENSIONS??hw2933\xydef@\break@end{\egroup\egroup 2934K\global\let\splineadvance@=\splineadvance@@2935K\let\spline@start=\splinefindBEnd@2936K\let\spline@end=\egroup2937K\let\splinefinish@=\splinefinish@@2938K\let\splinewhich=\relax2939K\global\let\splineadvance@=\splineadvance@@2940K\global\let\splinegoal@=\splineRecordEndBreakValue@2941K\global\splinelength@=\z@2942K\let\splinerec@=\splineErec@2943K\global\let\splineEndtest=\splineEndtest@2944K\bgroup\splined@@}P2946\xydef@\splinefindBEnd@{\bgroup\bgroup2947K\splinereverse@\readsplineparams@2948K\global\splineval@=\z@}%ThisFappMendsthenewinformationtothatcurren!tlystoredinthecontrolsequencereferencedby\xysplineparams@?.It4&istempMorarilystoredgloballyin\splineparams@Tr,Wtobelatertransferredto(thefc.s.referencedb!y)\xysplineparams@cGlwhenattheappropriatelevelofgroupingl.2958\xydef@\splineRecordValue@{%2959K\ifx\unknown\segmentnum@\relax2960K\else2961 m\getcrvsegsnum@2962 m\dimen@=\splineval@\advance\dimen@\segmentnum@\p@2963 m\advance\dimen@-\p@\dimen@nth\count@\dimen@2964 m\global\splineval@=\dimen@2965K\fi2966K\xdef\splineedges@{\splineedges@\the\splinelength@;\the\splineval@,}%2967\splinetrace@{foundedge:\splineedges@}}2969\xydef@\splineRecordEndValue@{%2970K\ifx\unknown\segmentnum@\relax2971K\else2972 m\getcrvsegsnum@2973 m\dimen@=\splineval@\advance\dimen@\count@\p@2974 m\advance\dimen@-\segmentnum@\p@\dimen@nth\count@\dimen@2975 m\global\splineval@=\dimen@2976K\fi2977K\xdef\splineedges@{\splineedges@\the\splinelength@;\the\splineval@,}%2978\splinetrace@{foundedge:\splineedges@}}2980\xydef@\splineRecordBreakValue@{%2981K\ifx\unknown\segmentnum@\relax2982K\else\expandafter\advance\expandafter\splineval@\segmentnum@\p@2983 m\count@=\segmentnum@\relax2984 m\ifnum\count@>0\advance\splineval@-\p@\fi\fi2985%\ifx\breakedges@\relax\relax\else\ifx\breakedges@\empty\else2986% T\ifdim\splineval@<\p@\ifdim\splineval@>\z@2987%#i\expandafter\testbreakedges@\breakedges@@%2988% T\fi\fi\fi\fi2989K\xdef\breakedges@{\breakedges@\the\splinelength@;\the\splineval@,}% ɠ*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй165??hw2990K\global\let\spline@end=\egroup 2991\splinetrace@{foundbreakedge:\breakedges@}}P2993\xydef@\splineRecordEndBreakValue@{%2994K\ifx\unknown\segmentnum@\relax2995K\else\count@=\segmentnum@\relax\ifnum\count@=\z@2996 m\else\getcrvsegsnum@2997\count@@=\count@\advance\count@@-\segmentnum@\relax2998\dimen@=\splineval@\advance\dimen@\count@@\p@2999\dimen@nth\count@\dimen@3000\global\splineval@=\dimen@3001K\fi\fi3002%\multiply\splineval@\m@ne\advance\splineval@\p@%<---------- T!!!3003K\ifdim\splineval@<\z@\relax\splineval@=\z@\fi3004K\ifx\breakedges@\relax\relax\else\ifx\breakedges@\empty\else3005 m\ifdim\splineval@<\p@\relax\ifdim\splineval@>\z@3006#i\expandafter\testbreakedges@\breakedges@@%3007 m\fi\fi\fi\fi3008K\xdef\breakedges@{\breakedges@\the\splinelength@;\the\splineval@,}%3009K\global\let\spline@end=\egroup3010\splinetrace@{foundbreakedge:\breakedges@}}3012\xydef@\testbreakedges@#1;#2,#3@{\bgroup\dimen@=#2\relax3013K\advance\dimen@\splineval@\advance\dimen@-\p@3014\splinetrace@{testbreak:#1;#2,#3@ T\the\splineval@::\the\dimen@}%3015K\DN@{\egroup}\ifdim\dimen@>\z@3016 m\edef\next@{\egroup\def\noexpand\breakedges@{#1;1pt,#3}}%3017K\else\ifdim\zz@\dimen@3018 m\edef\next@{\egroup\def\noexpand\breakedges@{#1;1pt,#3}}%3019K\fi\fi\next@}3021\xydef@\splineRecordBreakEValue{%3022K\ifdim\splineval@>\z@3023 m\splineval@=-\splineval@\advance\splineval@\p@\fi3024K\splineRecordBreakValue@}%?Usefthefollo!wingdistanceapproximation:(*l:dist =( dXJ+n:5dY7w=dXdY iffdY7w=dXdYy< (7p 7p y ɍ2n1)dXoYF3Z,p\Z,\)@ԍ2F͉fedPA4dXJ+Z,p {Z,\)@ԍ2͉fe U`PA4*dY7w=dXdY iff(7p 7p y ɍ2n1)dX< dY7w=dXdYy dX.7p7p y ɍ20[ 1:41422,f(7p 7p y ɍ2)=20:70711,(7p 7p y ɍ2)=40:353555,3(7p 7p y ɍ2)=41:0606653045\xydef@\xydist@#1#2{\ifdim#1>#2\relax 3046 m\quotient@@\tmp@#2#1\expandafter\dimen@ii\tmp@#2\relax3047 m\ifdim\dimen@ii>.41422#1\relax3048\dimen@=1.060665#1\advance\dimen@.353555\dimen@ii\relax3049 m\else\dimen@=#1\advance\dimen@.5\dimen@ii\fi3050K\else3051 m\quotient@@\tmp@#1#2\expandafter\dimen@ii\tmp@#1\relax3052 m\ifdim\dimen@ii>.41422#2\relax3053\dimen@=1.060665#2\advance\dimen@.353555\dimen@ii\relax *tj166?KlCHAPTERf2.CEXTENSIONS??hw3054 m\else\dimen@=#2\advance\dimen@.5\dimen@ii\fi 3055K\fi}v3059\xydef@\splineDadvance@{\splineadvance@@3060 m\expandafter\splineDadvance@@\splineDadvance@@@}3061\xydef@\splineDadvance@@#1#2#3#4{%3062K{\d@X=#1\advance\d@X-#2\ifdim\d@X<\z@\d@X=-\d@X\fi3063 m\d@Y=#3\advance\d@Y-#4\ifdim\d@Y<\z@\d@Y=-\d@Y\fi3064K\xydist@\d@X\d@Y3065K\global\advance\splinelength@\dimen@3066\splinetrace@{d=(\the\d@X,\the\d@Y):v=\the\splineval@:l=\the\splinelength@}%3067}}3071\xydef@\spline@end@{\lastsplinepoint@\egroup\egroup3072K\ht\z@=\z@\dp\z@=\z@\wdz@=\z@\boxz@}%3073\gdef\splinetest@{\splineplot@true}3074\xydef@\spline@end@@{\egroup\egroup}G捑...vdDalueffor\splinerec@Fforthefast nd...P3081\xydef@\splinefrec@{{%3082K\advance\splineval@\splinedepth@3083\splinetrace@{F:(\the\X@p,\the\Y@p);(\the\X@c,\the\Y@c);;3084\the\splineval@;\the\splinedepth@}%3085K\ifdim\dimen5=\splineval@\aftergroup\splinefinishf@3086K\else\dimen@=\dimen5\advance\dimen@-\splineval@3087 m\ifdim\dimen@<\z@\dimen@=-\dimen@\fi3088 m\ifdim\dimen@<.0001\p@\aftergroup\splinefinishf@3089 m\else3090\ifdim\dimen5<\splineval@\aftergroup\splinedecast@@3091\else\aftergroup\splineadvance@3092K\fi\fi\fi}}3094\xydef@\splinefinishf@{\global\advance\splineval@\splinedepth@3095K\splinefinish@}%G捑The1macro\spline@find#1#2c#attemptsto ndsaspMeci cpoin!tonasinglesplinesegment.#1PistheparametervdDalue,intherange[0,1]onthatsegmen!t; #2visahdimenidenotinghowmuchfurthertoeslidealongthesegmen!t.Itreallyonlycheckswhether#2hasanegativevdDaluebMeforepassingtheinformationfto\spline@@find#1#2e`,whic!hdoMestheactualsearch.If#2isnegativ!ethenthesplinesegmentissearchedinthereversedirection,startingatitsendpMoint.This"isdoneb!yreversingtheorderofthecontrolpMoints,{#1}{}%3157 {{\ifdim\splineval@=\dimen5\aftergroup\splineplot@false\fi}}%3158 \else\DNii@{>}\ifx\next@\nextii@3159Jk\setsplineundertest@\splineval@>{#1}{}{}%3160Jk\let\splinerec@=\splineBSrec@3161 \else\DNii@{<}\ifx\next@\nextii@3162Jk\setsplineundertest@\splineval@>{#1}{}{}%3163Jk\let\splinerec@=\splineBErec@3164 \else\xywarning@{unknownfind-mode:#3}\fi\fi\fi3165\fi\fi3166 m\else3167\global\splineval@=\z@3168\def\splineslidetest@@{%3169 \setsplinetest@\splinelength@<{#2}{}{}}%3170\let\splinefinish@=\splinefcontinue@3171 m\fi3172 m\let\spline@end=\splinef@end3173 m\let\splinepoint@=\relax3174 m\splinelength@=\z@3175 m\def\spline@start{\bgroup\xylowtolerance@}% C*tj168?KlCHAPTERf2.CEXTENSIONS??hw3176 m\splined@@}P3178\xydef@\spline@@knot{% 3179K\let\setsplinedir@=\setsplineknotdir@3180K\splinesetparams@\spline@start3181%\global\splinedepth@=\p@3182K\splinedepth@=\p@3183K\global\dimen@i=\X@p\global\dimen3=\Y@p3184K\splinefinishf@\spline@end\egroup}3186\xydef@\splinefcontinue@{%3187\splinetrace@{sliding...from(\the\X@c,\the\Y@c):val=\the\splineval@}%3188K\global\let\splinerec@=\splinerec@@3189K\global\splinelength@=\z@3190K\global\splineval@=\splineval@3191K\global\let\splinepoint=\splinefindtest@3192K\global\let\splinegoal@=\splinef@pt3193K\global\let\splineadvance@=\splineDadvance@3194K\global\let\splinefinish@=\splinefinish@@3195K\splineslidetest@@3196K}3198\xydef@\splinefindtest@{%3199\splinetrace@{SFT(\the\X@c,\the\Y@c);\the\splinelength@,\the\splineval@}%3200K{\splineplot@false\splinetest@3201 m\ifsplineplot@\expandafter\splinefinishf@\fi}}3203\def\setsplineundertest@#1#2#3#4#5{%3204\splinetrace@{setsplineundertest@:#1,#2,#3,#4,#5,}%3205K\DNii@{\gdef\splinetest@}%3206K\DN@##1\next{\def\tmp@{{\splineplot@false3207 m\ifdim#1#2##1\relax#4\else\splineplot@true#5\fi}}}%3208K\next@#3\relax\next3209K\expandafter\nextii@\tmp@}3211\xydef@\splinef@end{\edef\tmp@{\egroup\splinelength@=\the\splinelength@}\tmp@}3212\xydef@\splinef@pt{%3213 m\ifdim\splineval@>\z@3214\splinetrace@{found:val=\the\splineval@;c:(\the\X@c,\the\Y@c)}%3215\global\dimen@i=\X@c\global\dimen3=\Y@c3216 m\else3217\splinetrace@{found:val=\the\splineval@;p:(\the\X@p,\the\Y@p)}%3218 m\fi3219 m\setsplinedir@\global\dimen5=\d@X\global\dimen7=\d@Y3220 m\global\splineval@=\splineval@3221 m\aftergroup\splinefocus@}v3225\def\setsplinetest@#1#2#3#4#5{%3226K\DNii@{\gdef\splinetest@}%3227K\DN@##1\next{\def\tmp@{{\splineplot@false\ifdim#1#2##1\relax3228 m#4\else\splineplot@true#5\fi}}}%3229K\next@#3\relax\next3230K\expandafter\nextii@\tmp@}% "*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй169??hw3236\xydef@\splinefocus@{% 3237K\d@X=\dimen5\relax\d@Y=\dimen7\relax\setsplinedir@}P3239\xydef@\splinesegment@#1{}ЍTherefaresomeextrahoMoks.3247\xydef@\xyprecurve@{}3248\xydef@\xypostcurve@{}v3252\xydef@\splineset@{%3253\splinetrace@{splineset@:}%3254K\ifx\bstartPLACE@\empty%\splinetrace@{invisiblecurve}%3255 m\DN@{\xyprecurve@3256\edef\tmp@{\egroup\X@max=\the\X@max\X@min=\the\X@min3257 \Y@max=\the\Y@max\Y@min=\the\Y@min}\tmp@\xypostcurve@}%3258K\else3259 m\DN@{\xyprecurve@\xysplinespecialcases@3260\edef\tmp@{\egroup\X@max=\the\X@max\X@min=\the\X@min3261 \Y@max=\the\Y@max\Y@min=\the\Y@min}\tmp@\xypostcurve@}%3262K\fi3263K\next@}ЍFeortheactualsetting,=?pro!videhoMokswhichwillallowalternativeback-endstobMeusedinthespMecialfcases.3270\xydef@\xysplinespecialcases@{%3271K\ifx\empty\xycrvdrop@3272 m\ifx\empty\xycrvconn@\DN@{\splinesolid@}%3273 m\else\DN@{\dir{-}}\ifx\next@\xycrvconn@\DN@{\splinesolid@}%3274 m\else\DN@{\dir2{-}}\ifx\next@\xycrvconn@\DN@{\splinedoubled@}%3275 m\else\DN@{\dir{=}}\ifx\next@\xycrvconn@\DN@{\splineribboned@}%3276 m\else\DN@{\dir{2.}}\ifx\next@\xycrvconn@\DN@{\splinedoubled@}%3277 m\else\DN@{\dir3{-}}\ifx\next@\xycrvconn@\DN@{\splinetrebled@}%3278 m\else\DN@{\dir{3.}}\ifx\next@\xycrvconn@\DN@{\splinetrebled@}%3279 m\else\DN@{\dir{--}}\ifx\next@\xycrvconn@\DN@{\splinedashed@}%3280 m\else\DN@{\dir{.}}\ifx\next@\xycrvconn@\DN@{\splinedotted@}%3281 m\else\DN@{\dir{:}}\ifx\next@\xycrvconn@\DN@{\splinedbldotted@}%3282 m\else\ifdim\splinetol@>\z@\else\splinedefaulttol@\fi3283\DN@{\splineset@@}\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi3284K\else3285 m\DN@{\splineset@@}%3286K\fi\ifInvisible@\DN@{}\fi\next@}ЍThe ~spMecialcasesarehandledjustlik!ethenormalcaseexceptHoweverthecontrolsequencenamespro!videfaplaceforrebindingtoaccomoMdatealternativeback-ends.3294\xydef@\splinesolid@{\setbox\splinebox@=\zerodot\def\xycrvdrop@{}%3295K\def\xycrvconn@{}\splineset@@}3297\xydef@\splinedoubled@{\splinedefaulttol@\def\xycrvdrop@{}\def\splinedrop@{}%3298K\def\xycrvconn@{!C\dir2{.}}\splineset@@}3300\xydef@\splineribboned@{\splinedefaulttol@\def\xycrvdrop@{}\def\splinedrop@{}%3301K\def\xycrvconn@{!C\dir{:}}\splineset@@} *tj170?KlCHAPTERf2.CEXTENSIONS??hw3303\xydef@\splinetrebled@{\splinedefaulttol@\def\xycrvdrop@{}\def\splinedrop@{}% 3304K\def\xycrvconn@{!C\dir3{.}}\splineset@@}P3306\xydef@\splinedashed@{\splinetol@=1.5pc\def\xycrvdrop@{}%+=<10pt>[o]{}}%3307K\def\splinedrop@{}\edef\xycrvconn@{\noexpand!C\noexpand\dir{\addDASH@{}}}%3308K\splineset@@}3310\xydef@\splinedotted@{\setbox\splinebox@=\zerodot\def\xycrvdrop@{}%3311K\splinetol@=1.5\jot\def\xycrvconn@{}\splineset@@}3313\xydef@\splinedbldotted@{\def\xycrvdrop@{}\def\splinedrop@{}%3314K\splinetol@=1.5\jot\def\xycrvconn@{!C\dir{:}}\splineset@@}This\establishesthetestappropriatetoactuallysettingthesplinecurv!e.eGlobalde nitionsareused.Thisfma!ynotalwaysbMenecessary!!R?Bug:ݹthef7.5pt$ bMelo!wfshouldbethe\Step@@/rmethodtobeincluded.3325\xydef@\splineset@@{%3326K\readsplineparams@3327K\ifx\xycrvdrop@\empty\splinetol@=7.5\p@3328 m\def\splinedefaulttol@{\splinetol@=7.5\p@}\def\splinedrop@{}%3329K\else\edef\splinedefaulttol@{\splinetol@=\the\splinetol@}\fi3330K\ifx\xycrvconn@\empty\def\splineconn@{}\fi3331\splinetrace@{setthecurve:>\the\dimen5,<\the\dimen7}%3332K\global\let\splineadvance@=\splineadvance@@3333K\let\splinerec@=\splineTrec@3334K\def\splineStarttest{\splinetest@}%3335K\global\let\splinepoint=\relax%63336K\let\spline@start=\spline@start@3337K\let\spline@end=\spline@end@%53338K\ifdim\dimen7=\p@3339 m\gdef\splinecontinue{\splinesetting@3340 \global\let\splinetest@=\splineplot@true}%3341K\else3342 m\ifdim\dimen7=\tw@\p@3343%%>\ifdim\bendPLACE@\p@=\z@\emptyspline@\else3344 \ifdim\bendPLACE@\p@=\p@%\emptyspline@3345\fi%%\fi3346K\else3347 m\xdef\splinecontinue{\noexpand\setsplinetest@3348\splineval@>{\the\dimen7}{\noexpand\splinebreakcancel@}{}%3349\noexpand\splinesetting@}%3350K\fi\fi3351K\ifdim\dimen7>\z@\DN@{\splinesetting@\splinecontinue}%3352 m\ifdim\zz@{\dimen5}%3353 m\else3354\edef\next@{\noexpand\setsplinetest@3355Jk\splineval@<{\the\dimen5}{}%3356 {\noexpand\expandafter\noexpand\splinecontinue}%3357Jk\noexpand\splinesetting@}%3358 m\fi3359K\else\DN@{\dimen5=\p@}\fi T%ifdim\dimen7=\z@ _*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй171??hw3360K\next@ 3361%3362K\ifdim\dimen5=\p@\DN@{}\else\DN@{\splined@@}\fi\next@3363K}P3365\xydef@\emptyspline@{\xywarning@{emptycurvesubsegment}%3366\splinetrace@{bstartPLACE@=\bstartPLACE@,bendPLACE@=\bendPLACE@,3367 memptysegment}%3368\gdef\splinecontinue{\splinesetting@3369 \global\let\splinetest@=\splineplot@false3370 \global\dimen5=\z@}}5\splineTrec@<裹is`theinitialvdDaluefor\splinerec@ErwhenasplineisbMeingset.ƖItdescendsthetreeofVplacesonthespline(1)un!tiltherequiredparametervdDalueisfound(2a)orissucientlyclose(2b).A!tthispMointcall\splinesetting@_Zand\splinecontinuetosetup,andproMceedwith,theactualt!ypMe-setting.3380\xydef@\splineTrec@{{%3381K\advance\splineval@\splinedepth@%(1)3382K\ifdim\dimen5=\splineval@5%(2a)3383 m\aftergroup\splinecontinue T%(3)3384K\else\dimen@=\dimen5\advance\dimen@-\splineval@3385 m\ifdim\dimen@<\z@\dimen@=-\dimen@\fi3386 m\ifdim\dimen@<.001\p@ T%possiblytoohigh??\splineEndtest@\ifsplineplot@3421\DN@{\dosplineplotpt@}%3422% T\fi\fi3423K\fi\next@\global\dimen@i=\X@c\global\dimen3=\Y@c}} :*tj172?KlCHAPTERf2.CEXTENSIONS??hw3425\xydef@\splineglue@{\hglue-\dimen@i 3426\splinetrace@{N:(\the\X@c,\the\Y@c);;\the\dimen@i;\the\dimen3%3427,\the\splinelength@,\the\splineval@,\the\splinedepth@}}P3429\xydef@\dosplineplotpt@{\ifdim\dimen@i<\z@3430\raise\Y@c\hboxto-\dimen@i{\hfill\splinedrop@}%3431 m\else\kern-\dimen@i\raise\Y@c\hbox{\splinedrop@}\fi3432\ifx\splineconn@\relax\else\raise\Y@c\hbox{%3433 \setboxz@h{\splineconn@}\Drop@@}\fi3434\splinetrace@{P:(\the\X@c,\the\Y@c);;\the\dimen@i;\the\dimen33435,\the\splinelength@,\the\splineval@,\the\splinedepth@}}3捑Thesefhandlethe\cleaningup"afterapMoin!tonthecurvehasbMeenlocated.3441\xydef@\splinefinish@@{\postspline@\splinegoal@\splinecancel@}3443\xydef@\splinecancel@{%3444K\global\let\splinerec@=\relax3445K\global\let\splinepoint=\relax3446K\global\let\splinecontinue=\relax3447%\global\let\splinedecast@@=\relax3448K\global\let\splinedecast@=\relax3449K}3451\xydef@\splinebreakcancel@{\bsplinecancel@\splinecancel@}3452\xydef@\bsplinecancel@{\gdef\lastbspline@{\leave@\leave@}%3453K\global\let\middlebspline@=\lastbspline@}3455\xydef@\splinegoal@{\ifdim\splineval@>\z@3456 m\global\dimen@i=\X@c\global\dimen3=\Y@c\fi3457K\global\splineval@=\splineval@\global\splinelength@=\splinelength@3458%\setsplineTangent@}3459K\splinesetdir@}3461\xylet@\splinefinish@\splinefinish@@3462\xylet@\splinewhich\splineDwhich@3464\xydef@\squinewhich@{%3465K\ifdim\dimen5>\squinelength%\X@c=\L@c\Y@c=\D@c3466K\d@X=\X@c\d@Y=\Y@c\advance\d@X-\L@c\advance\d@Y-\U@c3467K\advance\squineval-\squinedepth3468K\else\X@c=\X@p\Y@c=\Y@p\advance\squineval-\squinedepth3469K\d@X=\L@c\d@Y=\U@c\advance\d@X-\X@p\advance\d@Y-\Y@p\fi3470K\d@X=-\d@X\d@Y=-\d@Y%%%hackwhichworks.3471K\squinefinish}3472\xydef@\squineDwhich@{%3473K\ifdim\dimen5>\squinelength%\X@c=\L@c\Y@c=\D@c3474K\d@X=\X@c\d@Y=\Y@c\advance\d@X-\L@c\advance\d@Y-\U@c3475K\else\X@c=\X@p\Y@c=\Y@p\advance\squineval-\squinedepth3476K\d@X=\L@c\d@Y=\U@c\advance\d@X-\X@p\advance\d@Y-\Y@p\fi3477K\d@X=-\d@X\d@Y=-\d@Y%%%hackwhichworks.3478K\squinefinish} *tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй173??hwBUezier2quadraticsplines|squinesZ3488\xydef@\xyquadbezier@{% 3489K\global\let\splinerec@=\relax3490 m\addtocrvpts@{\def\crvconnect@{\squineconnect@}}%3491 m\xyquadmethods@\let\splinesegment@=\squinesegment@3492 m\begingroup\setcrvobjects@\xysplineparams@\splined@@@3493 m\bgroup\setupsquine@\squined@\splineset@\savespline@}P3495\xydef@\xyquadmethods@{%3496 m\def\crvconnect@{\squineconnect@}%3497 m\def\splinereverse@@{\splinereverse@@@}%3498 m\let\getsplineparams@=\getsquineparams@3499 m\let\spline@start@=\squine@start@3500 m\let\splinedecast@@=\squinedecast@3501 m\let\splinerec@@=\squinerec@3502 m\let\splined@@=\squined@@3503 m\let\splineIpt@@=\squineIpt@3504 m\let\splineIadvance@@=\squineIadvance@3505 m\let\splineinfo@=\squineinfo@3506 m\let\setsplinedir@=\setsquinedir@3507 m\let\splinetestcvxhull@=\squinetestcvxhull@3508 m\let\setsplineknotdir@=\setsquineknotdir@3509 m\let\splinereverse@=\squinereverse@3510 m\let\splineDadvance@@@=\squineDadvance@@@3511 m\let\splinesetparams@=\squinesetparams@3512 m\let\splineplot@maybe@@=\squineplot@maybe3513}3515\xydef@\squineconnect@{\splineconnect@\crvconnect@@3516 m\let\splinesegment@=\squinesegment@}%3518\xydef@\squinesegment@#1{\xyquadmethods@\def\segmentnum@{1}%3519 m\setupsquine@\squined@}ҙUse%theregisters\A@.and\B@tostorethecoMordinatesofthesinglecon!trolpoin!t.[rThewholecurvelieswithinthecon!vexpMolygonwithv!erticesatp,(p)+a)=2,(c+a)=2andcwhereadenotesthecon!trol\ pMoint.Set\X@max%,j\X@min%,j\Y@max)Dand\Y@min)6tobMetheextremesofthecoordinatesofthese4pMoin!ts.TheremaynotactuallybMeanypMointonthecurveachievingtheseextremes,butcertainlyw!efgetprettyclose.3534\xydef@\setupsquine@{%3535K\xycontrolpt@\z@\X@p=\X@c\Y@p=\Y@c3536K\xycontrolpt@\@ne\A@=\X@c\B@=\Y@c3537K\xycontrolpt@\tw@3538K\ifdim\A@>\X@max3539 m\dimen@=\X@p\advance\dimen@\A@\dimen@half3540\ifdim\dimen@>\X@max\X@max=\dimen@\fi3541 m\dimen@=\X@c\advance\dimen@\A@\dimen@half3542\ifdim\dimen@>\X@max\X@max=\dimen@\fi3543K\else\ifdim\A@<\X@min3544 m\dimen@=\X@p\advance\dimen@\A@\dimen@half |*tj174?KlCHAPTERf2.CEXTENSIONS??hw3545\ifdim\dimen@<\X@min\X@min=\dimen@\fi 3546 m\dimen@=\X@c\advance\dimen@\A@\dimen@half3547\ifdim\dimen@>\X@min\X@min=\dimen@\fi3548K\fi\fi3549K\ifdim\B@>\Y@max3550 m\dimen@=\Y@p\advance\dimen@\B@\dimen@half3551\ifdim\dimen@>\Y@max\Y@max=\dimen@\fi3552 m\dimen@=\Y@c\advance\dimen@\B@\dimen@half3553\ifdim\dimen@>\Y@max\Y@max=\dimen@\fi3554K\else\ifdim\B@<\Y@min3555 m\dimen@=\Y@p\advance\dimen@\B@\dimen@half3556\ifdim\dimen@<\Y@min\Y@min=\dimen@\fi3557 m\dimen@=\Y@c\advance\dimen@\B@\dimen@half3558\ifdim\dimen@>\Y@min\Y@min=\dimen@\fi3559K\fi\fi}ThealgorithmusedforcomputingcoMordinatesofpoin!tsonquadraticB"Deziersplinesisessentiallythatusedb!yD.E.Knuthinpicmac.tex%(1)3660K\global\splinelength@=\z@\global\dimen@i=\z@\global\dimen3=\z@% T%(2)3661K\kern\X@p T%%(3)3662K{\squinesetparams@\X@c=\X@p\Y@c=\Y@p\firstsplinepoint@>% T%(4)3663K}\bgroup}3665\xydef@\squinesetparams@{%3666K\global\dimen@i=\X@p\global\dimen3=\Y@p3667K\L@c=\A@\U@c=\B@\R@c=\L@c\D@c=\U@c}%3669\xydef@\squined@{%3670K\expandafter\edef\xysplineparams@{%3671 m\the\z@,\the\X@p,\the\Y@p,\the\A@,\the\B@,\the\X@c,\the\Y@c,}}3673\xydef@\squined@@{%3674%\global\splinedepth@=\p@3675K\splinedepth@=\p@3676K\global\splineval@=\z@3677K\global\dimen@i=\X@p\global\dimen3=\Y@p3678K\spline@start T*tj176?KlCHAPTERf2.CEXTENSIONS??hw3679K\ifx\splinerec@\relax\let\splinerec@=\squinerec@\fi 3680K\L@c=\A@\U@c=\B@\R@c=\L@c\D@c=\U@c3681K\splinerec@\spline@end}! BUezier2cubicsplinesf93691\xydef@\xycubicbezier@{%3692K\addtocrvpts@{\def\crvconnect@{\cubicconnect@}}%3693K\xycubicmethods@\let\splinesegment@=\cubicsegment@3694K\begingroup\setcrvobjects@\xysplineparams@\splined@@@3695K\bgroup\setupcubic@\cubiced@\splineset@\savespline@}P3697\xydef@\xycubicmethods@{%3698 m\def\crvconnect@{\cubicconnect@}%3699 m\def\splinereverse@@{\cubicreverse@@}%3700 m\let\getsplineparams@=\getcubicparams@3701 m\let\spline@start@=\cubic@start@3702 m\let\splinedecast@@=\cubicdecast@3703 m\let\splinerec@@=\cubicrec@3704 m\let\splined@@=\cubiced@@3705 m\let\splineIpt@@=\cubicIpt@3706 m\let\splineIadvance@@=\cubicIadvance@3707 m\let\splineoutsidehull@@=\cubicoutsidehull@3708 m\let\splinetestcvxhull@=\cubictestcvxhull@3709 m\let\splineinfo@=\cubicinfo@3710 m\let\setsplinedir@=\setcubicdir@3711 m\let\setsplineknotdir@=\setcubicknotdir@3712 m\let\splinereverse@=\cubicreverse@3713 m\let\splineDadvance@@@=\cubicDadvance@@@3714 m\let\splinesetparams@=\cubicsetparams@3715 m\let\splineplot@maybe@@=\cubicplot@maybe3716K}3718\xydef@\cubicconnect@{\splineconnect@\crvconnect@@3719 m\let\splinesegment@=\cubicsegment@}%3721\xydef@\cubicsegment@#1{\xycubicmethods@\def\segmentnum@{1}%3722K\setupcubic@\cubiced@} Use0theregisters\A@o,\B@ҕ,\dimen331and\dimen52tostorecoMordinatesofthet!wo0controlpMoints,denotedrl1andrsa!ye.@ThewholecurvelieswithintheconvexpMolygonp,(p+l7))=2,(c+rM޹)=2randcwhere:thev!erticesarenotnecessarilyinthisorder.Set\X@max&,_\X@min&ʹ,_\Y@max+and\Y@min*ptobMetheextremesofthecoMordinatesofthese4poin!ts.0TheremaynotactuallybMeanypMointonthecurveac!hievingftheseextremes,butcertainlywegetprettyclose.3737\xydef@\setupcubic@{%3738K\xycontrolpt@\z@\X@p=\X@c\Y@p=\Y@c3739K\xycontrolpt@\@ne\A@=\X@c\B@=\Y@c3740K\xycontrolpt@\tw@\global\dimen3=\X@c\global\dimen5=\Y@c3741K\xycontrolpt@\thr@@3742K\adjustmaxmin@}3744\xydef@\adjustmaxmin@{% +*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй177??hw3745 m\ifdim\A@>\X@max\dimen@=\A@\advance\dimen@\X@p\dimen@half 3746\ifdim\dimen@>\X@max\X@max=\dimen@\fi\else3747 m\ifdim\A@<\X@min\dimen@=\A@\advance\dimen@\X@p\dimen@half3748\ifdim\dimen@<\X@min\X@min=\dimen@\fi\fi\fi3749 m\ifdim\B@>\Y@max\dimen@=\B@\advance\dimen@\Y@p\dimen@half3750\ifdim\dimen@>\Y@max\Y@max=\dimen@\fi\else3751 m\ifdim\B@<\Y@min\dimen@=\B@\advance\dimen@\Y@p\dimen@half3752\ifdim\dimen@<\Y@min\Y@min=\dimen@\fi\fi\fi3753%3754 m\ifdim\dimen3>\X@max\dimen@=\dimen3\advance\dimen@\X@c\dimen@half3755\ifdim\dimen@>\X@max\X@max=\dimen@\fi\else3756 m\ifdim\dimen3<\X@min\dimen@=\dimen3\advance\dimen@\X@c\dimen@half3757\ifdim\dimen@<\X@min\X@min=\dimen@\fi\fi\fi3758 m\ifdim\dimen5>\Y@max\dimen@=\dimen5\advance\dimen@\Y@c\dimen@half3759\ifdim\dimen@>\Y@max\Y@max=\dimen@\fi\else3760 m\ifdim\dimen5<\Y@min\dimen@=\dimen5\advance\dimen@\Y@c\dimen@half3761\ifdim\dimen@<\Y@min\Y@min=\dimen@\fi\fi\fi3762%3763 m\dimen@=\A@\advance\dimen@\dimen3\dimen@half3764 m\ifdim\dimen@>\X@max\X@max=\dimen@3765\else\ifdim\dimen@<\X@min\X@min=\dimen@\fi\fi3766 m\dimen@=\B@\advance\dimen@\dimen5\dimen@half3767 m\ifdim\dimen@>\Y@max\Y@max=\dimen@3768\else\ifdim\dimen@<\Y@min\Y@min=\dimen@\fi\fi3769}dThe;yrecursiv!ealgorithmforcubicB"Deziersplinesissimilartothequadraticone.9Nowtherearetwo\recursiv!e"fcontrolpMointstobMecalculateduponeac!hsubdivision. Onfthep-side:8pzp=pvlzp=(pn+l7))=2ʨrzp=(pn+2l+rM޹)=4>czp=(pn+3l+3rʹ+c)=8whilefonthec-sidenpzc6C=(pn+3l+3rʹ+c)=8_lzc6C=(l+n2rʹ+c)=4rzc6C=(rʹ+nc)=2Jczc6C=cNoticefthatczp= pzc߹andthatthetangen!tsmatchthere.P3795\xydef@\cubicdecast@{\halve@dimen\splinedepth@%\divide\splinedepth@\tw@ 3796K\A@=\L@c\advance\A@\R@c\halve@dimen\A@"}%\divide\A@\tw@3797K\advance\R@c\X@c\halve@dimen\R@cJ%\divide\R@c\tw@3798K\B@=\U@c\advance\B@\D@c\halve@dimen\B@"}%\divide\B@\tw@ 7*tj178?KlCHAPTERf2.CEXTENSIONS??hw3799K\advance\D@c\Y@c\halve@dimen\D@cJ%\divide\D@c\tw@ 3800K\advance\L@c\X@p\halve@dimen\L@cJ%\divide\L@c\tw@3801K\advance\U@c\Y@p\halve@dimen\U@cJ%\divide\U@c\tw@3802K\begingroup3803 m\X@c=\R@c\advance\X@c\L@c\halve@dimen\X@c T%\divide\X@c\tw@3804 m\advance\X@c\A@\halve@dimen\X@cJ%\divide\X@c\tw@3805 m\Y@c=\D@c\advance\Y@c\U@c\halve@dimen\Y@c T%\divide\Y@c\tw@3806 m\advance\Y@c\B@\halve@dimen\Y@cJ%\divide\Y@c\tw@3807 m\R@c=\L@c\advance\R@c\A@\halve@dimen\R@c>%\divide\R@c\tw@3808 m\D@c=\U@c\advance\D@c\B@\halve@dimen\D@c>%\divide\D@c\tw@3809 m\bgroup\splinerec@3810 m\egroup\splinepoint\endgroup3811K\X@p=\L@c\advance\X@p\R@c\halve@dimen\X@p>%\divide\X@p\tw@3812K\advance\X@p\A@\halve@dimen\X@pP{L%\divide\X@p\tw@3813K\L@c=\R@c\advance\L@c\A@\halve@dimen\L@c%\divide\L@c\tw@3814K\Y@p=\U@c\advance\Y@p\D@c\halve@dimen\Y@p>%\divide\Y@p\tw@3815K\advance\Y@p\B@\halve@dimen\Y@pP{L%\divide\Y@p\tw@3816K\U@c=\D@c\advance\U@c\B@\halve@dimen\U@c%\divide\U@c\tw@3817K\splinerec@}P3819\xydef@\cubicrec@{{\splinefar@false\splinenear@\X@p\X@c\Y@p\Y@c3820K\ifsplinefar@\aftergroup\cubicdecast@3821K\else\aftergroup\splineadvance@\fi}}3823\xydef@\cubicDadvance@@@{\X@p\X@c\Y@p\Y@c}3825\xydef@\cubicplot@maybe{{\X@p=\L@c\Y@p=\U@c\cv@start\the\Edge@c\@ne3826 m\ifInside@\aftergroup\cubicplot@maybeii\else\aftergroup\splineplot@true\fi}}3827\xydef@\cubicplot@maybeii{{\X@p=\R@c\Y@p=\D@c\cv@start\the\Edge@c\@ne3828 m\ifInside@\aftergroup\splineplot@false\else\aftergroup\splineplot@true\fi}}v3832\xydef@\cubiced@@{%3833%\global\splinedepth@=\p@3834K\splinedepth@=\p@3835K\global\splineval@=\z@3836K\spline@start3837K\global\dimen@i=\X@p\global\dimen3=\Y@p3838K\splinerec@\spline@end}STheftangen!tdirectioniscomputedfromthedisplacementtothe\recursive"controlpMoint.3847\xydef@\setcubicdir@{%3848K\ifdim\splinedepth@<.001\p@\DN@{\cubiccoarsedir@}%3849 m\else\DN@{\cubicfinedir@}\fi\next@}3851\xydef@\cubicfinedir@{%3852K\d@X=\X@c\advance\d@X-\R@c\d@Y=\Y@c\advance\d@Y-\D@c3853K\ifdim\zz@\d@X\ifdim\zz@\d@Y3854 m\d@X=\X@c\advance\d@X-\L@c\d@Y=\Y@c\advance\d@Y-\U@c3855 m\ifdim\zz@\d@X\ifdim\zz@\d@Y3856\d@X=\X@c\advance\d@X-\X@p\d@Y=\Y@c\advance\d@Y-\Y@p3857K\fi\fi\fi\fi3858%\ifdim\X@c=\X@p\ifdim\Y@c=\Y@p3859% T\d@X=\L@c\d@Y=\U@c\advance\d@X-\X@p\advance\d@Y-\Y@p C۠*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй179??hw3860% T\ifdim\d@X=\z@\ifdim\d@Y=\z@ 3861%>\d@X=\R@c\d@Y=\D@c\advance\d@X-\X@p\advance\d@Y-\Y@p3862% T\fi\fi3863%\fi\fi3864K\setupDirection@ii3865\splinetrace@{dir:(\the\d@X,\the\d@Y),\the\Direction;depth:\the\splinedepth@}%3866}P3868\xydef@\cubiccoarsedir@{%3869K\d@X=\X@c\advance\d@X-\X@p\d@Y=\Y@c\advance\d@Y-\Y@p\setupDirection@ii3870K\global\dimen5=\d@X\global\dimen7=\d@Y3871\splinetrace@{dir:(\the\d@X,\the\d@Y),\the\Direction;depth:\the\splinedepth@}%3872}3874\xydef@\setcubicknotdir@{%3875K\ifdim\zz@\splineval@\DN@{\setcubiczerodir@}%3876K\else\DN@{\cubicfinedir@}\fi\next@}3878\xydef@\setcubiczerodir@{%3879K\d@X=\L@c\advance\d@X-\X@p\d@Y=\U@c\advance\d@Y-\Y@p3880K\ifdim\zz@\d@X\ifdim\zz@\d@Y3881\d@X=\R@c\advance\d@X-\X@p\d@Y=\D@c\advance\d@Y-\Y@p3882\ifdim\zz@\d@X\ifdim\zz@\d@Y3883Jk\d@X=\X@c\advance\d@X-\X@p\d@Y=\Y@c\advance\d@Y-\Y@p3884K\fi\fi\fi\fi\setupDirection@ii} -Weefneedaw!ayftoaccesstheinformationin\splineparamsNb.3890\xydef@\getcubicparams@#1,#2,#3,#4,#5,#6,#7,#8,#9,{%3891K\splinelength@=#1\relax\X@p=#2\relax\Y@p=#3\relax\L@c=#4\relax3892K\U@c=#5\relax\R@c=#6\relax\D@c=#7\relax\X@c=#8\relax\Y@c=#9\relax3893}%3894\xydef@\cubicinfo@{%3895\expandafter\removePT@\the\X@p\space3896\expandafter\removePT@\the\Y@p\space3897\expandafter\removePT@\the\L@c\space3898\expandafter\removePT@\the\U@c\space3899\expandafter\removePT@\the\R@c\space3900\expandafter\removePT@\the\D@c\space3901\expandafter\removePT@\the\X@c\space3902\expandafter\removePT@\the\Y@c\space3903\expandafter\removePT@\the\dimen5\space\space3904\expandafter\removePT@\the\dimen7\space3905K}%3906\xydef@\cubicreverse@{\readsplineparams@3907K\expandafter\edef\xysplineparams@{\the\splinelength@,%3908 m\the\X@c,\the\Y@c,\the\R@c,\the\D@c,\the\L@c,\the\U@c,\the\X@p,\the\Y@p,}}%3909\xydef@\cubicreverse@@{%3910K\splinereverse@@@3911K\dimen@ii=\L@c\L@c=\R@c\R@c=\dimen@ii3912K\dimen@ii=\U@c\U@c=\D@c\D@c=\dimen@ii} -Start%thepictureb!y(1)settingabMox,?Gasusual.(2)InitializeglobalvdDariables;PwthesemustbMeglobal P*tj180?KlCHAPTERf2.CEXTENSIONS??hwsince$theyareusedtostoreinformationwhic!hmustbMepreservedoutsidethegroupingwhichisvital totherecursiv!enatureofthealgorithm.(3)MovehorizontallytothestartingpMointatp.(4)Beginb!yfhandlingthestartingpMoint;i.e.decidewhetheritistobMeplottedornot.P3926\xydef@\cubic@start@{\setboxz@h\bgroup%>%(1)3927K\global\splinelength@=\z@\global\dimen@i=\z@\global\dimen3=\z@% T%(2)3928K\kern\X@p T%%(3)3929K{\cubicsetparams@\X@c=\X@p\Y@c=\Y@p\R@c=\X@c\D@c=\Y@c3930 m\firstsplinepoint@}\bgroup3931}% T%(4)3933\xydef@\cubicsetparams@{%3934K\expandafter\expandafter\expandafter\getsplineparams@\xysplineparams@3935K\global\dimen@i=\X@p\global\dimen3=\Y@p}v3939\xydef@\cubiced@{%3940K\expandafter\edef\xysplineparams@{\the\z@,\the\X@p,\the\Y@p3941 m,\the\A@,\the\B@,\the\dimen3,\the\dimen5,\the\X@c,\the\Y@c,}%3942K}%'/B-splines|Thefcasesof3and4con!trolpMointshavesomespMecialsimplifyingfeatures.3955\xydef@\xybspline@iii{%3956 m\addtocrvpts@{\def\crvconnect@{\bsplineiiiconnect@}}%3957 m\def\crvconnect@{\bsplineiiiconnect@}\xybsplinemethods@3958 m\let\splinesegment@=\bsplinesegment@iii3959 m\begingroup\setcrvobjects@\dobspline@\savespline@}3960\xydef@\bsplineiiiconnect@{\splineconnect@\crvconnect@@3961 m\let\splinesegment@=\bsplinesegment@iii}%3963\xydef@\xybspline@iv{%3964 m\addtocrvpts@{\def\crvconnect@{\bsplineivconnect@}}%3965 m\def\crvconnect@{\bsplineivconnect@}\xybsplinemethods@3966 m\let\splinesegment@=\bsplinesegment@iv3967 m\begingroup\setcrvobjects@\dobspline@\savespline@}3968\xydef@\bsplineivconnect@{\splineconnect@\crvconnect@@3969 m\let\splinesegment@=\bsplinesegment@iv}%Z^No!wfforthegeneralcaseof 5controlpMoints.3975\xydef@\xybspline@{%3976\splinetrace@{B-splinewith\numcontrolpts\spacecontrolpoints.}%3977 m\addtocrvpts@{\def\crvconnect@{\bsplineconnect@}}%3978 m\def\crvconnect@{\bsplineconnect@}\xybsplinemethods@3979 m\let\splinesegment@=\bsplinesegment@3980 m\begingroup\setcrvobjects@3981K\dobspline@\savespline@}3983\xydef@\xybsplinemethods@{%3984 m\def\splinereverse@@{\cubicreverse@@}%3985 m\let\getsplineparams@=\getbsplineparams@3986 m\let\spline@start@=\cubic@start@ \Ԡ*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй181??hw3987 m\let\splinedecast@@=\cubicdecast@ 3988 m\let\splinerec@@=\cubicrec@3989% T\let\splined@@=\cubiced@@3990 m\let\splineIpt@@=\cubicIpt@3991 m\let\splineIadvance@@=\cubicIadvance@3992 m\let\splined@@=\bsplined@@3993 m\let\splineinfo@=\cubicinfo@3994 m\let\setsplinedir@=\setcubicdir@3995 m\let\setsplineknotdir@=\setcubicknotdir@3996 m\let\splinereverse@=\cubicreverse@3997 m\let\splineDadvance@@@=\cubicDadvance@@@3998 m\let\splinesetparams@=\cubicsetparams@3999 m\global\let\lastbspline@=\lastbspline@@4000 m\global\let\middlebspline@=\middlebspline@@4001}4002\xydef@\bsplined@@{%4003%\global\splinedepth@=\p@4004K\splinedepth@=\p@4005K\global\splineval@=\z@4006K\spline@start4007K\global\dimen@i=\X@p\global\dimen3=\Y@p4008K\splinerec@\spline@end}v4012\xydef@\bsplineconnect@{\splineconnect@\crvconnect@@4013 m\let\splinesegment@=\bsplinesegment@}%P4015\xydef@\getbsplineparams@{\getcubicparams@}4017\xydef@\dobspline@{\xysplineparams@\scanbspline@\firstbspline@}%эRegistersi3\dimen31 andi3\dimen5arei3usedgloballye,sincethestandardloMcalregistersarealready used.4024\xydef@\firstbspline@{%4025 m\enter@{\pfromthep@\cfromthec@}\enter@{\cfromthec@}\bgroup4026 m\def\segmentnum@{1}\xycontrolpt@\z@\X@p=\X@c\Y@p=\Y@c4027\splinetrace@{0:\the\X@p,\the\Y@p}%4028 m\xycontrolpt@\@ne\A@=\X@c\B@=\Y@c4029\splinetrace@{1:\the\X@c,\the\Y@c}%4030 m\xycontrolpt@\tw@4031\splinetrace@{2:\the\X@c,\the\Y@c}%4032\dimen@=\X@c\advance\dimen@\A@\dimen@half4033\global\dimen3=\dimen@4034\dimen@=\Y@c\advance\dimen@\B@\dimen@half4035\global\dimen5=\dimen@4036 m\xycontrolpt@{3}%4037\splinetrace@{3:\the\X@c,\the\Y@c}%4038 m\expandafter\count@\xycrvcnt@\relax%%% Tveryimportantto|\relax|4039 m\ifnum\count@=3\relax4040\advance\X@c-\A@\dimen@nth4\X@c%\divide\X@cby44041\advance\X@c\dimen3\relax4042\advance\Y@c-\B@\dimen@nth4\Y@c%\divide\Y@cby4 hӠ*tj182?KlCHAPTERf2.CEXTENSIONS??hw4043\advance\Y@c\dimen5\relax 4044\enter@{\X@p=\the\X@c\Y@p=\the\Y@c\crv@cnt@=\@ne\relax4045 \noexpand\lastbspline@}%4046 m\else4047\advance\X@c7\dimen3\advance\X@c-2\A@4048 \dimen@nth6\X@c T%\divide\X@cby6\relax4049\advance\Y@c7\dimen5\advance\Y@c-2\B@4050 \dimen@nth6\Y@c T%\divide\Y@cby6\relax4051\enter@{\X@p=\the\X@c\Y@p=\the\Y@c\crv@cnt@=\@ne\relax4052 \noexpand\middlebspline@}%4053 m\fi\adjustmaxmin@\czeroEdge@4054K\bsplined@\splineset@\leave@}P4056\xydef@\lastbspline@@{\bgroup4057 m\advance\crv@cnt@\@ne\edef\segmentnum@{\the\crv@cnt@}%4058\splinetrace@{<:\the\X@p,\the\Y@p}%4059 m\advance\crv@cnt@\@ne\xycontrolpt@{\crv@cnt@}%4060 m\global\dimen3=\X@c\global\dimen5=\Y@c4061\splinetrace@{\the\crv@cnt@:\the\X@c,\the\Y@c}%4062\advance\crv@cnt@\m@ne\xycontrolpt@{\crv@cnt@}%4063\splinetrace@{\the\crv@cnt@:\the\X@c,\the\Y@c}%4064 \A@=\X@c\advance\A@\dimen3\halve@dimen\A@ T%\divide\A@\tw@4065 \B@=\Y@c\advance\B@\dimen5\halve@dimen\B@ T%\divide\B@\tw@4066 m\adjustmaxmin@\leave@ T\relax\cv@end%<---------------4067\splinetrace@{>:\the\X@c,\the\Y@c}%4068 m\bsplined@\splineset@\leave@}%4069\xylet@\lastbspline@=\lastbspline@@4071\xydef@\middlebspline@@{%4072 m\advance\crv@cnt@\@ne\edef\segmentnum@{\the\crv@cnt@}%4073\splinetrace@{<:\the\X@p,\the\Y@p}%4074 m\bgroup4075\xycontrolpt@{\crv@cnt@}\A@=2\X@c\B@=2\Y@c4076\splinetrace@{\the\crv@cnt@:\the\X@c,\the\Y@c}%4077\advance\crv@cnt@\@ne\xycontrolpt@{\crv@cnt@}%4078\splinetrace@{\the\crv@cnt@:\the\X@c,\the\Y@c}%4079 \advance\A@\X@c\dimen@nth3\A@>%\divide\A@by34080 \advance\B@\Y@c\dimen@nth3\B@>%\divide\B@by3\relax4081 \advance\X@c\A@\halve@dimen\X@c%\divide\X@c\tw@4082 \advance\Y@c\B@\halve@dimen\Y@c%\divide\Y@c\tw@4083 \global\dimen3=\X@c\global\dimen5=\Y@c4084\advance\crv@cnt@\@ne\xycontrolpt@{\crv@cnt@}%4085\splinetrace@{\the\crv@cnt@:\the\X@c,\the\Y@c}%4086 m\expandafter\count@\xycrvcnt@\relax4087 m\ifnum\crv@cnt@<\count@\relax4088\advance\X@c7\dimen3\advance\X@c-2\A@4089 \dimen@nth6\X@c T%\divide\X@cby6\relax4090\advance\Y@c7\dimen5\advance\Y@c-2\B@4091 \dimen@nth6\Y@c T%\divide\Y@cby6\relax4092\enter@{\X@p=\the\X@c\Y@p=\the\Y@c\crv@cnt@=\segmentnum@\relax4093 \noexpand\middlebspline@}% s*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй183??hw4094 m\else 4095\advance\X@c-\A@\dimen@nth4\X@c T%\divide\X@cby44096\advance\X@c\dimen3\relax4097\advance\Y@c-\B@\dimen@nth4\Y@c T%\divide\Y@cby44098\advance\Y@c\dimen5\relax4099\enter@{\X@p=\the\X@c\Y@p=\the\Y@c\noexpand\lastbspline@}%4100 m\fi\adjustmaxmin@4101\bsplined@\splineset@\leave@}4102\xylet@\middlebspline@=\middlebspline@@v4106\xydef@\scanbspline@{\splined@@@}4110\xydef@\bsplined@{\cubiced@ 4111K\expandafter\ifx\xysplineedges@\relax\relax\DN@{}%4112K\else\DN@{\adjustbsplineedges@}\fi\next@}P4114\xydef@\adjust@forsegments@{\getcrvsegsnum@4115K\ifnum\count@>\@ne4116\splinetrace@{adjustfor\the\count@\spacesegments:4117K\the\dimen5,\the\dimen7}%4118 m\multiply\dimen5by\count@\relax\dimen@=\segmentnum@\p@4119 m\ifnum\dimen5>\dimen@\relax\dimen5=\p@4120 m\else\advance\dimen5-\segmentnum@\p@\advance\dimen5by\p@\fi4121 m\ifnum\dimen5<\z@\relax\dimen5=\z@\relax\fi4122 m\multiply\dimen7by\count@\relax4123 m\dimen@=\segmentnum@\p@%\advance\dimen@-\segmentnum@\p@4124 m\ifnum\dimen7<\dimen@\advance\dimen@-\p@4125\ifnum\dimen7>\dimen@\advance\dimen7-\dimen@4126\else\dimen7=\z@\fi4127 m\else\dimen7=\p@\fi4128\splinetrace@{adjustedfor\the\count@\spacesegments:4129K\the\dimen5,\the\dimen7}%4130K\fi}4132\xydef@\adjustbsplineedges@{\bgroup%dimen5anddimen7areNOTglobalhere4133\splinetrace@{**adjustingedges**}%4134 m\readsplineparams@\adjust@forsegments@4135%>\count@@=\dimen7\divide\count@@\p@4136%\advance\dimen7-\count@@\p@\advance\count@@\@ne4137%>\count@=\dimen5\divide\count@\p@4138%\advance\dimen5-\count@\p@\advance\count@\@ne4139\splinetrace@{params:\xysplineparams@}%4140\splinetrace@{segment\segmentnum@:<\the\dimen5,\the\dimen7>:\xysplineedges@}%4141%>\expandafter\ifnum\segmentnum@=\count@4142%>\else4143%\expandafter\ifnum\segmentnum@<\count@\dimen5=\p@4144%\else\dimen5=\z@\fi\fi4145%>\expandafter\ifnum\segmentnum@=\count@@4146 \multiply\dimen7by\m@ne\advance\dimen7by\p@4147%>\else4148%\expandafter\ifnum\segmentnum@>\count@@\dimen5=\p@\dimen7=\p@ Ġ*tj184?KlCHAPTERf2.CEXTENSIONS??hw4149%\else\dimen7=\z@\fi\fi 4150 m\expandafter\edef\xysplineedges@{%4151\noexpand\z@;\the\dimen5,\noexpand\z@;\the\dimen7,}%4152 m\edef\tmp@{\egroup4153\noexpand\def\expandafter\noexpand\xysplineedges@{\xysplineedges@}}%4154 m\tmp@}giThesemacrosselectthecorrectB"Deziercon!trolpMointsforeachsegmentofthespline.Thisisneededforf ndingplacesontheconstructedcurv!es. {InJgeneralthereare5t!ypMesofsegment:U rst,Csecond,middle,pMenultimate, nal.TheJconversionfromB-splinetoB"Dezierissligh!tlydi erentforeachtypMe.FeormiddlesegmentstheB"DeziercontrolpMoin!tsfaredeterminedinthefollowingway:ܗwX:u(1)  B8:i)=1ȉfey t3aY2Xz(i) L6+nXz(i+1)ƟwX:u(2)  B8:i)=1ȉfey t3aYXz(i) L6+n2Xz(i+1)ƟwX:u(0)  B8:i)=1ȉfey t6aYXz(i1)(+n4Xz(i) L6+Xz(i+1)Ɵ)=1ȉfey t6aYXz(i1)(+n7X:u(1)  B8:i`2X:u(2)  B8:i 8twX:u(3)  B8:i)=1ȉfey t6aYXz(i) L6+n4Xz(i+1)(+Xz(i+2)Ɵ)=1ȉfey t6aYXz(i+2)(+n7X:u(2)  B8:i`2X:u(1)  B8:i 8t+4178\xydef@\bsegment@@ii@iii{% 4179K\xycontrolpt@{\count@@}\global\dimen3=\X@c\global\dimen5=\Y@c4180\splinetrace@{\the\count@@:\the\X@c,\the\Y@c}%4181K\advance\count@@\@ne\xycontrolpt@{\count@@}\A@=\X@c\B@=\Y@c4182K\advance\A@by2\dimen3\dimen@nth3\A@ T%\divide\A@by3\relax4183K\advance\B@by2\dimen5\dimen@nth3\B@ T%\divide\B@by3\relax4184K\dimen@=\dimen3\advance\dimen@by2\X@c4185 m\dimen@nth3\dimen@ T%\divide\dimen@\thr@@4186K\global\dimen3=\dimen@4187K\dimen@=\dimen5\advance\dimen@by2\Y@c4188 m\dimen@nth3\dimen@ T%\divide\dimen@\thr@@4189K\global\dimen5=\dimen@4190\splinetrace@{<:\the\dimen3,\the\dimen5}%4191\splinetrace@{>:\the\A@,\the\B@}%4192K\advance\count@@\m@ne}P4194\xydef@\bsegment@@i{\bgroup4195K\advance\count@@\m@ne\xycontrolpt@{\count@@}%4196\splinetrace@{\the\count@@:\the\X@c,\the\Y@c}%4197K\edef\tmp@{\egroup\X@p=\the\X@c\Y@p=\the\Y@c}\tmp@4198K\advance\X@p-2\dimen3\advance\X@pby7\A@4199\dimen@nth6\X@p T%\divide\X@pby6\relax4200K\advance\Y@p-2\dimen5\advance\Y@pby7\B@4201\dimen@nth6\Y@p T%\divide\Y@pby6\relax4202} Ġ*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй185??hw4204\xydef@\bsegment@@iv{% 4205K\advance\count@@\tw@\xycontrolpt@{\count@@}%4206\splinetrace@{\the\count@@:\the\X@c,\the\Y@c}%4207K\advance\X@cby7\dimen3\advance\X@c-2\A@4208\dimen@nth6\X@c T%\divide\X@cby6\relax4209K\advance\Y@cby7\dimen5\advance\Y@c-2\B@4210\dimen@nth6\Y@c T%\divide\Y@cby6\relax4211\splinetrace@{>>:\the\X@c,\the\Y@c}%4212}PFeorthesecondsegmen!ttheexpressionforX:u(0)  Bq2visdi erent.?SimilarlytheexpressionforX:u(3)  Bqnq% cmsy61@=isalteredfforthepMen!ultimatesegment.祉|X:u(0)  Bq2\=j1jȉfey t4hLXz(1)`+n4X:u(1)  Bq2X:u(2)  Bq2 8trVX:u(3)  Bqn1\=j1jȉfey t4hLXz(3)`+n4X:u(2)  Bqn1'X:u(1)  Bqn1y;N4227\xydef@\bsegment@@ii@i{\bgroup4228K\advance\count@@\m@ne\xycontrolpt@{\count@@}%4229\splinetrace@{\the\count@@:\the\X@c,\the\Y@c}%4230K\edef\tmp@{\egroup\X@p=\the\X@c\Y@p=\the\Y@c}\tmp@4231K\advance\X@p-\dimen3\advance\X@pby4\A@4232\dimen@nth4\X@p T%\divide\X@pby4\relax4233K\advance\Y@p-\dimen5\advance\Y@pby4\B@4234\dimen@nth4\Y@p T%\divide\Y@pby4\relax4235\splinetrace@{<<:\the\X@p,\the\Y@p}%4236}4237\xydef@\bsegment@@y@iv{%4238K\advance\count@@\tw@\xycontrolpt@{\count@@}%4239\splinetrace@{\the\count@@:\the\X@c,\the\Y@c}%4240K\advance\X@cby4\dimen3\advance\X@c-\A@4241\dimen@nth4\X@c T%\divide\X@cby4\relax4242K\advance\Y@cby4\dimen5\advance\Y@c-\B@4243\dimen@nth4\Y@c T%\divide\Y@cby4\relax4244}FeorWthe rstsegmen!tthe rstthreeB"DeziercontrolpMointsarealwaysdeterminedinthesameway:GuX:u(0)  Bq1C= Xz(0)0X:u(1)  Bq1C= X(1)_X:u(2)  Bq1C==1=ڟȉfey t2 (X:u(1)  Bq1`+nXz(2) 8t)C3+fsegmen!ts_X:u(3)  Bq1C==1=ڟȉfey t6 (7X:u(2)  Bq1`n2X:u(1)  Bq1+Xz(3) 8t)LV2fsegmen!ts_X:u(3)  Bq1C==1=ڟȉfey t4 (4X:u(2)  Bq1`nX:u(1)  Bq1+Xz(3) 8t)N4260\xydef@\bsegment@i{% 4261K\xycontrolpt@\z@\X@p=\the\X@c\Y@p=\the\Y@c4262%\ifx\cv@start\relax4263% T\bgroup\csnamecv@0\endcsname R*tj186?KlCHAPTERf2.CEXTENSIONS??hw4264% T\edef\tmp@{\egroup\X@p=\the\X@c\Y@p=\the\Y@c}\tmp@ 4265%\else\xycontrolpt@\z@\X@p=\the\X@c\Y@p=\the\Y@c\fi4266\splinetrace@{0:\the\X@p\the\Y@p}%4267 m\xycontrolpt@\@ne4268\splinetrace@{1:\the\X@c,\the\Y@c}\A@=\X@c\B@=\Y@c4269 m\xycontrolpt@\tw@4270 m\dimen@=\X@c\advance\dimen@\A@\dimen@half4271 m\global\dimen3=\dimen@4272\splinetrace@{2:\the\X@c,\the\Y@c}%4273 m\dimen@=\Y@c\advance\dimen@\B@\dimen@half4274 m\global\dimen5=\dimen@}P4276\xydef@\bsegment@i@iv{%4277 m\xycontrolpt@{3}%4278\splinetrace@{3:\the\X@c,\the\Y@c}%4279\advance\X@cby7\dimen3\advance\X@c-2\A@4280 \dimen@nth6\X@c T%\divide\X@cby6\relax4281\advance\Y@cby7\dimen5\advance\Y@c-2\B@4282 \dimen@nth6\Y@c T%\divide\Y@cby6\relax4283K}Theflastsegmen!tisdeterminedsymmetricallyfromthe nalfourcontrolpMoints:ύ3X:u(3)  BnC= Xz(n+2)X:u(2)  BnC= X(n+1)цX:u(1)  BnC==1=ڟȉfey t2 (X:u(2)  Bn`+nXz(n) );3+fsegmen!tsцX:u(0)  BnC==1=ڟȉfey t6 (Xz(n1)l(n2X:u(2)  Bn`+7X:u(1)  Bn 8t)Dp?2fsegmen!tsцX:u(0)  BnC==1=ڟȉfey t4 (Xz(1)`nX:u(2)  Bn+4X:u(1)  Bn 8t)zc4298\xydef@\bsegment@z{% 4299K\expandafter\count@@\xycrvptsnum@\advance\count@@\@ne4300K\xycontrolpt@{\the\count@@}\relax4301\splinetrace@{\the\count@@:\the\X@c,\the\Y@c}%4302K\advance\count@@\m@ne4303K\bgroup4304 m\xycontrolpt@{\the\count@@}%4305\splinetrace@{\the\count@@:\the\X@c,\the\Y@c}%4306 m\global\dimen3=\X@c\global\dimen5=\Y@c4307 m\advance\count@@\m@ne\xycontrolpt@{\the\count@@}%4308\splinetrace@{\the\count@@:\the\X@c,\the\Y@c}%4309 m\A@=\X@c\advance\A@\dimen3\halve@dimen\A@>% T\divide\A@\tw@4310 m\B@=\Y@c\advance\B@\dimen5\halve@dimen\B@>% T\divide\B@\tw@4311 m\edef\tmp@{\egroup\A@=\the\A@\B@=\the\B@\count@@=\the\count@@}%4312K\tmp@}4314\xydef@\bsegment@z@i{%4315K\expandafter\count@@\xycrvptsnum@\relax\advance\count@@-\tw@4316K\bgroup4317 m\xycontrolpt@{\count@@}\X@p=\the\X@c\Y@p=\the\Y@c4318\splinetrace@{\the\count@@:\the\X@c,\the\Y@c}%4319 m\advance\X@pby7\A@\advance\X@p-2\dimen3\dimen@nth6\X@p t*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй187??hw4320 m\advance\Y@pby7\B@\advance\Y@p-2\dimen5\dimen@nth6\Y@p 4321 m\edef\tmp@{\egroup\X@p=\the\X@p\Y@p=\the\Y@p}%4322K\tmp@}vKThisfistheswitc!hing-yard.P4328\xydef@\bsplinesegment@#1{\xybsplinemethods@4329K\count@@=#1\relax4330K\ifnum\count@@=\@ne(=% Tfirstsegment4331 m\bsegment@i\bsegment@i@iv4332K\else\ifnum\count@@=\tw@ T%secondsegment4333 m\bsegment@@ii@iii\bsegment@@ii@i\bsegment@@iv4334%\else\expandafter\count@\xycrvcnt@\advance\count@\m@ne4335K\else\expandafter\count@\xycrvptsnum@\advance\count@\m@ne4336K\ifnum\count@@=\count@% Tlastsegment4337 m\bsegment@z\bsegment@z@i4338K\else\advance\count@\m@ne4339 m\ifnum\count@@=\count@>% Tpenult.segment4340\bsegment@@ii@iii\bsegment@@i\bsegment@@y@iv4341 m\elserH% Tmiddlesegments4342\bsegment@@ii@iii\bsegment@@i\bsegment@@iv4343K\fi\fi\fi\fi4344K\expandafter\def\expandafter\segmentnum@\expandafter{\number#1}%4345K\bsplined@}Herefarethedi erencesfor3con!trolpMoints.P4351\xydef@\bsplinesegment@iii#1{\xybsplinemethods@4352\splinetrace@{2segments;\number#1}%4353K\count@@=#1\relax4354K\ifnum\count@@=\@ne\bsegment@i4355\xycontrolpt@{3}%4356\splinetrace@{3:\the\X@c,\the\Y@c}%4357\advance\X@c4\dimen3\advance\X@c-\A@4358 \dimen@nth4\X@c>% T\divide\X@cby4\relax4359\advance\Y@c4\dimen5\advance\Y@c-\B@4360 \dimen@nth4\Y@c>% T\divide\Y@cby4\relax4361K\else\ifnum\count@@=\tw@\bsegment@z4362\bgroup\xycontrolpt@{\@ne}%4363\splinetrace@{1:\the\X@c,\the\Y@c}%4364\edef\tmp@{\egroup\X@p=\the\X@c\Y@p=\the\Y@c}\tmp@4365\advance\X@p4\A@\advance\X@p-\dimen3%4366 \dimen@nth4\X@p>% T\divide\X@pby4\relax4367\advance\Y@p4\B@\advance\Y@p-\dimen5%4368 \dimen@nth4\Y@p>% T\divide\Y@pby4\relax4369K\fi\fi4370K\expandafter\def\expandafter\segmentnum@\expandafter{\number#1}%4371K\bsplined@}Herefarethedi erencesfor4con!trolpMoints.P4377\xydef@\bsplinesegment@iv#1{\xybsplinemethods@4378\splinetrace@{3segments;\number#1}% Π*tj188?KlCHAPTERf2.CEXTENSIONS??hw4379K\count@@=#1\relax 4380K\ifnum\count@@=\@ne\bsegment@i\bsegment@i@iv4381K\else\ifnum\count@@=\tw@4382 m\bsegment@@ii@iii\bsegment@@ii@i\bsegment@@y@iv4383K\else\ifnum\count@@=3\relax4384 m\bsegment@z\bsegment@z@i%\xycontrolpt@{5}%4385K\fi\fi\fi4386K\expandafter\def\expandafter\segmentnum@\expandafter{\number#1}%4387K\bsplined@}!2.1.2 CirclesandEllipsesHereaw!edescribMethemeanstoaspecifycirclesofarbitraryradius,dra!wnwitharbitrarylinestyles.Whenhlarge-sizedobjectsareusedtheyareregularlyspacedaroundthecircle.Similarlyellipsesma!ybMe3speci ed,V(butonlythoseha!vingmajor/minoraxesalignedinthestandarddirections;yOspacingofobjectsfisnolongerregular,butisbunc!hedtowardthenarrowerends.Suc!hfacircleorellipseisspMeci edusing.3.. f؉ffd UH\xycircleBhv!ectori{hstylei}JȉffdǍAewherethecompMonen!tsofthehvectorideterminethelengthsoftheaxisfortheellipse;thusgivinga circlewhenequal. Thehst!yleicanbMeanyhconni,Nasin3.2thatworkswithcurvedarrows|manydo.Alternativ!elyKhstyleicanbMeanyhobjecti,DwhichwillbMeplacedequally-spacedaboutthecircleatafseparationtosn!ugly tthehobjectis.Ifhemptyithenasolidcircleorellipseisdrawn.T\oĵDo:RecognizeFspMecialhst!yleis;fe.g.. đfordottedwith\zerodot1D1,Y= `foradoubledcircle|alterthe=jradius,c+dra!wtwocircles;:fordoubledotted(pMerhapsuse\doubled@7d,c+\tripled@8 %);>and<:~forc!hevrons;fanyothers?Teousean!yofthesespMecialsymbMolsasthehobjectiforhstyleithenencloseitwithinextrabraces,e.g.f\xycircle<20pt>{{>}}v.Thecurv!esarenottrulycircularorelliptical,{butareapproximationsgivenbycubicB"Dezierseg-men!ts.Hencefthexycurve/rfeaturemustbMeloaded.P4433\message{circles,}TheHcirclesareconstructedfromfourB"Deziercubiccurv!es,soneforeachquadrantofthecircle or4circle.FTeodothisitissucien!ttoestablishthecontrolpMointsforeachcubicsegment.FThisisstraigh!tforward,fusingWthefollo!wing\magicnumbMer",fgivenasquarebasissuchthatthedesiredcircleisftheunitcircle,orrectangularbasisforwhic!hthe\unitcircle"isthedesiredcircle.P4444\xydef@\Circmagic@@{0.5517847}4445\xylet@\Circmagic=\Circmagic@@4446\xydef@\twoPi@{6.2831852}4447\xydef@\fullPi@{3.1415926}4448\xydef@\halfPi@{1.5707963}This6isthemagicn!umbMer,)exactly6givenbyK%k1ifePA12(ǟ7pȟ7p lΟ ɍ385/!13)B#,)thathelpsconstructtheB"Deziercubiccurv!eKthatbMestapproximatesaquadrantofacircle.ItdoMessowithremarkdDableaccuracye,udi eringb!yatmost.5%oftheradiusatanyangle;theaveragedeviationalongthewholequadrantbMeinglessthanf.13%.Thebasichobjectide nedhereis\circle+ .4461\xynew@{dimen}\L@4463\xydef@\xycircle#1#{\hbox\bgroup\afterVECTORorEMPTY{%4464\xy@@{\R@=\X@c\L@=\Y@c}\xycircle@}{\xy@@{\R@=\R@c\L@=\L@c}\xycircle@}#1@} Y*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй189??hw4466\xydef@\xycircle@#1@#2{% 4467K\DN@{#1}\ifx\next@\empty\def\onlyQuad@{}\else\count@=#1\relax4468 m\ifnum\count@<5\advance\count@-3\relax4469\ifnum\count@<\z@\advance\count@4\relax\fi\edef\onlyQuad@{\the\count@}%4470 m\else\xyerror@{illegalcircle:mustbeor}{}\fi4471K\fi\xy@@{\def\circleSTYLE@{#2}}\def\circleSTYLE@{#2}\xycircle@i}P4473\xydef@\xycircle@i{\hbox{\vbox{\vskip\L@4474K\hboxto2\R@{\hfill\buildcircle@\hfill}\vskip\L@}}%4475K\L@c=\R@\R@c=\R@\D@c=\L@\U@c=\L@\def\Leftness@{.5}\def\Upness@{.5}%4476K\def\Drop@@{\styledboxz@}\def\Connect@@{\straight@\relax}\Edge@c={\circleEdge}%4477K\OBJECT@x}4479\xydef@\adjustMinMaxcirc@#1#2{%4480K\dimen@=\X@c\advance\dimen@#1\relax\ifdim\dimen@>\X@max\X@max=\dimen@\fi4481K\dimen@=\X@c\advance\dimen@-#1\relax\ifdim\dimen@<\X@min\X@min=\dimen@\fi4482K\dimen@=\Y@c\advance\dimen@#2\relax\ifdim\dimen@>\Y@max\Y@max=\dimen@\fi4483K\dimen@=\Y@c\advance\dimen@-#2\relax\ifdim\dimen@<\Y@min\Y@min=\dimen@\fi4484}4486%\xydef@\buildcircle@{\save@4487%%\cubicCircleControls@@4488%\ifx\circleSTYLE@\empty\DN@{\solidcircle@{}}%4489%\else\expandafter\DN@\expandafter{\addDASH@{}}\relax4490% T\ifx\next@\circleSTYLE@\DN@{%4491%>\expandafter\addDASH@\expandafter{\expandafter{\addDASH@{}}}}%4492%\else\DN@{\circledobjects@}\fi\fi\next@\leave@}v4496\xydef@\cubicCircleControls@@{\X@origin=\z@\Y@origin=\z@4497 m\X@xbase=\R@\Y@xbase=\z@\X@ybase=\z@\Y@ybase=\L@4498 m\vfromcartesian@@1,0@\czeroEdge@\idfromc@{0@c}%4499 m\vfromcartesian@@0,1@\czeroEdge@\idfromc@{1@c}%4500 m\vfromcartesian@@-1,0@\czeroEdge@\idfromc@{2@c}%4501 m\vfromcartesian@@0,-1@\czeroEdge@\idfromc@{3@c}%4502 m\vfromcartesian@@1,\Circmagic@@@\czeroEdge@\idfromc@{1@m}%4503 m\vfromcartesian@@\Circmagic@@,1@\czeroEdge@\idfromc@{2@m}%4504 m\vfromcartesian@@-\Circmagic@@,1@\czeroEdge@\idfromc@{3@m}%4505 m\vfromcartesian@@-1,\Circmagic@@@\czeroEdge@\idfromc@{4@m}%4506 m\vfromcartesian@@-1,-\Circmagic@@@\czeroEdge@\idfromc@{5@m}%4507 m\vfromcartesian@@-\Circmagic@@,-1@\czeroEdge@\idfromc@{6@m}%4508 m\vfromcartesian@@\Circmagic@@,-1@\czeroEdge@\idfromc@{7@m}%4509 m\vfromcartesian@@1,-\Circmagic@@@\czeroEdge@\idfromc@{8@m}%4510K}4512\xydef@\doCircleQuadrant@@#1#2{\save@\ifcase#2\relax4513K\doCircleQuadrant@@@{0@c}{1@m}{2@m}{1@c}{#1}\or4514K\doCircleQuadrant@@@{1@c}{3@m}{4@m}{2@c}{#1}\or4515K\doCircleQuadrant@@@{2@c}{5@m}{6@m}{3@c}{#1}\or4516K\doCircleQuadrant@@@{3@c}{7@m}{8@m}{0@c}{#1}\or4517K\doCircleQuadrant@@@{0@c}{1@m}{2@m}{1@c}{#1}\or4518K\doCircleQuadrant@@@{1@c}{3@m}{4@m}{2@c}{#1}\or4519K\doCircleQuadrant@@@{2@c}{5@m}{6@m}{3@c}{#1}\or *tj190?KlCHAPTERf2.CEXTENSIONS??hw4520K\doCircleQuadrant@@@{3@c}{7@m}{8@m}{0@c}{#1}\fi\leave@}P4522\xydef@\doCircleQuadrant@@@#1#2#3#4#5{% 4523K\cfromid@{#1}\pfromc@\senter@4524K\cfromid@{#2}\spushc@\cfromid@{#3}\spushc@\cfromid@{#4}%4525K\let\bstartPLACE@=\empty\connect@\crvs{#5}\relax\sinit@\sleave@4526K\resetbreaks@}QcTheRhoMok\dosolidcircle@@bHispro!videdsothatback-endsmayprovideanalternativemethoMdtodra!wthecircles/ellipses.Notethatthetokenfollowing\solidcircle@R޹willbMeagrouprepresentingthefhst!yleitobMeused.4535\xydef@\dosolidcircle@#1{%4536 m\cubicCircleControls@@4537 m\doCircleQuadrant@@{#1}1\relax\Clast@@4538 m\doCircleQuadrant@@{#1}2\relax\Clast@@4539 m\doCircleQuadrant@@{#1}3\relax\Clast@@4540 m\doCircleQuadrant@@{#1}4\relax\Clast@@}%4542\xydef@\solidcircle@{\dosolidcircle@@}4543\xylet@\dosolidcircle@@=\dosolidcircle@QcThisfplacesobjectsequallyspacedaroundacircle,accordingtoangularpMosition. uBug:Oobjectsarenotequallyspacedaroundellipsesconstructedthisw!aye.Togetregularspacingaroundfellipses,intermsorarc-lengthsa!ye,ismuchmoredicult,bMoththeoreticallyandpracticallye.T\o(mDo:j(thesizeoftheresultinghobjectidoMesnottak!eintoaccountthesizeofthehobjectidroppMedaroundfthecircle.P4557\xydef@\circledobjects@{\cubicCircleControls@@4558K\setboxz@h{\expandafter\object\circleSTYLE@{}}%4559K\ifdim\L@>\R@\dimen@ii=\ht\z@\advance\dimen@ii\dp\z@4560 m\ifdim\zz@\dimen@ii\dimen@ii=\wdz@\fi4561K\else\dimen@ii=\wdz@4562 m\ifdim\zz@\dimen@ii\dimen@ii=\ht\z@\advance\dimen@ii\dp\z@\fi4563K\fi\ifdim\zz@\dimen@ii\dimen@ii=2\jot\fi4564K\expandafter\dimen@\ifdim\L@>\R@\twoPi@\L@\else\twoPi@\R@\fi4565K\advance\dimen@.5\dimen@ii4566K\count@@=\dimen@\count@=\dimen@ii\divide\count@@\count@4567K\edef\numobjects{\the\count@@}\dimen@=4\p@4568K\dimen@nth\numobjects\dimen@>% T\divide\dimen@\numobjects\relax4569K\edef\circleseparation@{\expandafter\removePT@\the\dimen@}%4570K\edef\circleplace@{-\circleseparation@}\placeQuadrants@}%4572\xydef@\placeQuadrants@{\DN@{\placeAllQuadrants@}%4573K\ifx\onlyQuad@\undefined\else\ifx\onlyQuad@\empty\else4574 m\DN@{\expandafter\placeCircQuadrant@\expandafter{\onlyQuad@}}%4575K\fi\fi\next@}%4576%\def\placeQuadrants@{\placeAllQuadrants@}4578\xydef@\placeAllQuadrants@{%4579K\placeCircQuadrant@{1}%4580K\advance\dimen@-\p@\advance\dimen@-\circleseparation@\p@4581K\edef\circleplace@{\expandafter\removePT@\the\dimen@}%4582K\placeCircQuadrant@{2}%4583K\advance\dimen@-\p@\advance\dimen@-\circleseparation@\p@ *tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй191??hw4584K\edef\circleplace@{\expandafter\removePT@\the\dimen@}% 4585K\placeCircQuadrant@{3}%4586K\advance\dimen@-\p@\advance\dimen@-\circleseparation@\p@4587K\edef\circleplace@{\expandafter\removePT@\the\dimen@}%4588K\placeCircQuadrant@{4}}P4590\xydef@\placeCircQuadrant@#1{%4591K\let\bstartPLACE@=\relax\doCircleQuadrant@@{}#1%4592K\loop@4593 m\expandafter\dimen@\circleplace@\p@4594 m\advance\dimen@\circleseparation@\p@4595 m\edef\circleplace@{\expandafter\removePT@\the\dimen@}%4596 m\ifdim\dimen@<\p@\placeCircObject@4597K\repeat@}4599\xydef@\placeCircObject@{\begingroup4600 m\crvconnect@@\Creset@@\Invisible@false4601 m\expandafter\splinealong@\expandafter{\circleplace@}%4602 m\expandafter\drop\circleSTYLE@{}\endgroup}4604\xydef@\buildcircle@{\save@4605%\cubicCircleControls@@4606K\DNii@{\circledobjects@}%4607K\ifx\circleSTYLE@\empty\DNii@{\solidcircle@{}}%4608K\else\expandafter\DN@\expandafter{\addDASH@{}}\relax4609 m\ifx\next@\circleSTYLE@\DNii@{\solidcircle@{}}%4610K\else\expandafter\DN@\expandafter{\addEQ@{}}%4611 m\ifx\next@\circleSTYLE@4612\expandafter\circletemplate@\expandafter{\addEQ@{}}{}%4613K\else\expandafter\DN@\expandafter{\addDASH@2}%4614 m\ifx\next@\circleSTYLE@\DNii@{\doublecircle@{}}%4615K\else\expandafter\DN@\expandafter{\addDASH@3}%4616 m\ifx\next@\circleSTYLE@\DNii@{\triplecircle@{}}%4617K\else\expandafter\expandafter\expandafter\DN@\expandafter\expandafter4618 m\expandafter{\expandafter\addDASH@\addDASH@{}}%4619 m\ifx\next@\circleSTYLE@\DNii@{\dashedcircle@{}}%4620K\else\expandafter\expandafter\expandafter\DN@\expandafter\expandafter4621 m\expandafter{\expandafter\addEQ@\addEQ@{}}%4622 m\ifx\next@\circleSTYLE@\expandafter\expandafter\expandafter4623\circletemplate@\expandafter\expandafter\expandafter{%4624 \expandafter\addEQ@\addEQ@{}}2%4625K\else\expandafter\expandafter\expandafter\DN@\expandafter\expandafter4626 m\expandafter{\expandafter\addEQ@\addEQ@2}%4627 m\ifx\next@\circleSTYLE@\expandafter\expandafter\expandafter4628\circletemplate@\expandafter\expandafter\expandafter{%4629 \expandafter\addEQ@\addEQ@{}}2%4630K\else\expandafter\expandafter\expandafter\DN@\expandafter\expandafter4631 m\expandafter{\expandafter\addEQ@\addEQ@3}%4632 m\ifx\next@\circleSTYLE@\expandafter\expandafter\expandafter4633\circletemplate@\expandafter\expandafter\expandafter{%4634 \expandafter\addEQ@\addEQ@{}}3% ʠ*tj192?KlCHAPTERf2.CEXTENSIONS??hw4635K\else\expandafter\DN@\expandafter{\addDOT@{}}\relax 4636 m\ifx\next@\circleSTYLE@\DNii@{\dottedcircle@{}}%4637K\else\expandafter\DN@\expandafter{\addDOT@2}\relax4638 m\ifx\next@\circleSTYLE@\DNii@{\dbldottedcircle@{}}%4639K\else\expandafter\DN@\expandafter{\addDOT@3}\relax4640 m\ifx\next@\circleSTYLE@\DNii@{\trpldottedcircle@{}}%4641K\else\DN@{:}\relax4642 m\ifx\next@\circleSTYLE@\DNii@{\dbldottedcircle@{}}%4643%\else\DN@{\circledobjects@}%4644K\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\nextii@\leave@}P4646\xydef@\circletemplate@#1#2{\def\circleSTYLE@{\dir#2{#1}}}4647\xydef@\doublecircle@#1{%4648K\advance\R@-\p@\advance\L@-\p@\solidcircle@{}%4649K\advance\R@2\p@\advance\L@2\p@\solidcircle@{}}4650\xydef@\triplecircle@#1{%4651K\advance\R@-2\p@\advance\L@-2\p@\solidcircle@{}%4652K\advance\R@2\p@\advance\L@2\p@\solidcircle@{}%4653K\advance\R@2\p@\advance\L@2\p@\solidcircle@{}}4655%\xydef@\dashedcircle@#1{\expandafter\expandafter\expandafter4656%>\circletemplate@\expandafter\expandafter\expandafter{%4657%\expandafter\addDASH@\addDASH@{}}{}\circledobjects@}%4659\xydef@\dottedcircle@#1{%4660K\expandafter\def\expandafter\circleSTYLE@\expandafter{%4661% T\expandafter{\addDOT@{}}}%4662K\zerodot@i}%4663K\circledobjects@}4665\xydef@\dashedcircle@#1{%4666K\expandafter\def\expandafter\circleSTYLE@\expandafter{\zerodash@i}%4667K\circledobjects@}4669\xydef@\dbldottedcircle@#1{%4670K\advance\R@-\p@\advance\L@-\p@\dottedcircle@{}%4671K\advance\R@2\p@\advance\L@2\p@\dottedcircle@{}}4672\xydef@\trpldottedcircle@{%4673K\advance\R@-2\p@\advance\L@-2\p@\dottedcircle@{}%4674K\advance\R@2\p@\advance\L@2\p@\dottedcircle@{}%4675K\advance\R@2\p@\advance\L@2\p@\dottedcircle@{}}4677{\xyuncatcodes\gdef\next{=<.75\jot>{\zerodot}}}4678\xylet@\zerodot@i=\next4680{\dimen0=2\xydashl@\xyuncatcodes4681\expandafter\gdef\expandafter\next\expandafter{\expandafter4682K=\expandafter<\the\dimen0>_\dir{|}}}4683\xylet@\zerodash@i=\next à*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй193??hw!ЍeKps: SDict begin xyc end334:334<h0" {30.0 -30.0 l}xy?#ch0<" {3072 10 /xy AB}xy/" {3160 10 /xy AB}xy#X" {3250 10 /xy AB}xy[" {3357 10 /xy AB}xy1u" {3499 10 /xy AB}xy <:5" {3739 10 /xy AB}xyV" {-4020 10 /xy AB}xy;G" {-3456 10 /xy AB}xyCE" {-2942 10 /xy AB}xy؟-" {-2379 10 /xy AB}xyJݟ " {-1838 10 /xy AB}xy " {-1557 10 /xy AB}xyD-" {-1376 10 /xy AB}xy3" {-1258 10 /xy AB}xy)٢" {-1156 10 /xy AB}xy5g " {-1068 10 /xy AB}xyBQ*" {-981 10 /xy AB}xyN^" {-892 10 /xy AB}xyYfF" {-791 10 /xy AB}xyc$.}" {-663 10 /xy AB}xykU'" {-502 10 /xy AB}xyq֟ " {-173 10 /xy AB}xyue." {329 10 /xy AB}xywꕟF" {890 10 /xy AB}xywC}},*\xycircle<15pt,10pt>{};*\xycircle<10pt>{{.}}\endxyv4705{\xyuncatcodes\gdef\next{--}}4706\xylet@\dashcorntemp@@=\next4707{\xyuncatcodes\gdef\next{.}}4708\xylet@\dotcorntemp@@=\nextP4710\xydef@\dotcorner@#1{%4711 m\expandafter\circleCorner@\expandafter{\dotcorntemp@@}{#1}}%4712\xydef@\dashcorner@#1{%4713 m\expandafter\circleCorner@\expandafter{\dashcorntemp@@}{#1}}4715\xydef@\circleCorner@#1#2{\setboxz@h\bgroup4716K\edef\next{#2\relax\R@=\the\R@\relax\L@=\R@}%4717K\expandafter\xycircle@\next@{#1}%4718K\ifcase#2\or\setboxz@h{\lower\R@\boxz@\kern\X@c}%4719K\or\setboxz@h{\kern-\R@\lower\R@\boxz@\kern\R@\kern\X@c}%4720K\or\setboxz@h{\kern-\R@\lower\R@\boxz@\kern\R@\kern\X@c}%4721K\or\setboxz@h{\lower\R@\boxz@\kern\X@c}\fi4722 m\wdz@=\R@\ht\z@=\R@\dp\z@=\R@\boxz@4723K}!'2.1.3 QuadraticSplinesQuadratic:B"Deziersplines,_asdistinctfromcubicBDeziersplines,_areconstructedfromparabMolicarcs,usingf`con!trolpMoints'todeterminethetangentswheresuccessivearcsarejoined.Veariousimplemen!tationsofsuchcurvesexist.Theoneadoptedhereisconsistentwiththexfigdra!wingEutilityandtpicimplementations.yThesehavethepropMertyofbMeginningandendingwithstraigh!tsegments,halfthelengthtothecorrespMondingadjacentcontrol-pMoint.kFeurthermorethemid-pMoin!tbetweensuccessivecontrol-pMointsliesonthespline,Mwiththelinejoiningthecontrol-pMointsbMeingtangen!tfthere.Suc!hfcurvesarespMeci ed,eitherasahdecoriorasanhobjecti,using.3.. ffd \qspline{hst!ylei}Fffd *tj194?KlCHAPTERf2.CEXTENSIONS??hwjwhereތthestartandendofthecurv!eareatpandcrespMectivelye.PThecontrol-pMointsaretakenfrom thefcurren!tstack,see1.3o.Ifthisstackisemptythenastraightlineisconstructed.TheQfollo!wingexamplecomparesthequadraticsplinewiththegentlercurvingB-splinehavingthesamefcon!trolpMoints,using\crvs d.B @ ps: SDict begin xyc endh0P'`g;+K`g;+o`g;+h0CnF" {11.25876 11.25876 l}xyFn4" {mark 132.0 54.0 114.0 72.0 96.0 54.0 0.0 1.0 q}xyFn5" {mark 168.0 54.0 150.0 36.0 132.0 54.0 0.0 1.0 q}xyFn5" {mark 204.0 72.0 186.0 72.0 168.0 54.0 0.0 1.0 q}xyxҪn" {3072 F d}xyҪn" {3072 F d}xyƄҪn" {3072 F d}xyFnD" {mark 78.0 36.0 114.0 72.0 132.0 54.0 150.0 54.0 0.06943 1.0 bt}xyB" {mark 150.0 54.0 168.0 54.0 186.0 72.0 222.0 72.0 0.0 0.93 bt}xy)c\xy/r1.5pc/:,+<5pc,3pc>*+{P};p@(,+(2,2)*{+}@+,+(2,-2)*{+}@+,+(2,2)*{+}@+,+(2,0)*+{C}="C",*\qspline{},"C",**\crvs{.},@i@)\endxyPIfthecurren!tstackisemptye,Esimplypasseverythingto\crvs@&I,Easiftherequestoriginatedfromaf\crvs$ orf\ard.Otherwisefw!emustbuildupthesegmentsofthespline.4773\xydef@\qspline{\hbox\bgroup\crvresetbreaks@\xy@spline@}4775\xydef@\xy@spline@#1#{\if\sempty@\DN@{\crvs@{}\resetbreaks@}%4776K\else\DN@{\xy@spline@i{#1}}\fi\next@}%The #1Ilparameter to\xy@spline@iJistoallo!walternativeimplementations;%currentlyitisignored.Whenf#1 isfindeedempt!ye,4784\xydef@\xy@spline@i#1#2{\def\splineSTYLE@{#2}%4785K\DN@{\xy@spline@ii}\DNii@{#1}%4786K\ifx\nextii@\empty\DN@{\xy@spline@ii@@}\fi\next@}4788\xydef@\xy@spline@ii{\save@\cfromp@\idfromc@{@p}%4789K\enter@\cplusthec@\count@@=\s@top\advance\count@@\m@ne4790K\cfroms@{\count@@}\leave@4791K\halve@dimen\X@c T%\divide\X@c\tw@4792K\halve@dimen\Y@c T%\divide\Y@c\tw@4793K\czeroEdge@\idfromc@{@c}%4794K\expandafter\doSplineStraight@\expandafter{\splineSTYLE@}%4795K\count@=\@ne\edef\next@{\the\count@}%4796K\ifx\next@\s@top\DN@{\xy@spline@iv}\else\DN@{\xy@spline@iii}\fi4797K\next@}4798\xylet@\xy@spline@ii@@=\xy@spline@ii4800\xydef@\xy@spline@iii{\crv@cnt@=\s@top4801K\loop\advance\crv@cnt@\m@ne\xy@spline@g\ifnum\crv@cnt@>\@ne\repeat4802K\xy@spline@iv}4804\xydef@\xy@spline@g{\cfromid@{@c}\idfromc@{@p}%4805K\count@@=\crv@cnt@\cfroms@{\count@@}\idfromc@{@m}%4806K\enter@\cplusthec@\count@@=\crv@cnt@\advance\count@@\m@ne4807 m\cfroms@{\count@@}\leave@4808K\halve@dimen\X@c T%\divide\X@c\tw@4809K\halve@dimen\Y@c T%\divide\Y@c\tw@4810K\czeroEdge@\idfromc@{@c}%4811K\expandafter\doSplineSegment@\expandafter{\splineSTYLE@}} }*tj2.1.CCURȈVEfANDSPLINEEXTENSIONYй195??hw4813\xydef@\xy@spline@iv{\cfromid@{@c}\idfromc@{@p}% 4814K\cfroms@{\z@}\idfromc@{@m}\leave@\save@4815K\enter@\cplusthec@\cfromid@{@m}\leave@4816K\halve@dimen\X@c T%\divide\X@c\tw@4817K\halve@dimen\Y@c T%\divide\Y@c\tw@4818K\czeroEdge@\idfromc@{@c}%4819K\expandafter\doSplineSegment@\expandafter{\splineSTYLE@}%4820K\xy@spline@v}P4822\xydef@\xy@spline@v{\cfromid@{@c}\idfromc@{@p}%4823K\leave@\save@\idfromc@{@c}%4824K\expandafter\doSplineStraight@\expandafter{\splineSTYLE@}%4825K\xy@spline@x}4827\xydef@\xy@spline@x{\leave@4828K\def\Drop@@{\splineDrop@\resetbreaks@}%4829K\def\Connect@@{\straight@\relax\splineConnect@\resetbreaks@}%4830K\OBJECT@x}4832\xydef@\splineDrop@{\ifInvisible@\setboxz@h{}%4833K\else\setboxz@h{\kern-\the\X@c\raise-\the\Y@c\hbox{\styledboxz@}}\fi4834K\wdz@=\z@\ht\z@=\z@\dp\z@=\z@\boxz@}4836\xydef@\splineConnect@{%4837K\ifInvisible@\else\box\lastobjectbox@\fi}%eTheinitialand nalpMoin!tsinasegmentarestoredas@pand@crespMectiv!elye.SWhereneeded,Bthecon!trolfisin@m%.4844\xydef@\doSplineStraight@#1{\begingroup\sinit@4845K\cfromid@{@p}\pfromc@\cfromid@{@c}%4846K\connect@\crvs{#1}\relax\sleave@\endgroup}4848\xydef@\doSplineSegment@#1{\begingroup\sinit@4849K\cfromid@{@p}\pfromc@\senter@\cfromid@{@m}\spushc@\cfromid@{@c}%4850K\connect@\crvs{#1}\relax\sinit@\sleave@\endgroup}#pThe2end&Log4858\xyendinput4860%$Log:xycurve.doc,v$4861%Revision3.7 T1999/02/1615:12:50krisrose4862%Interimrelease(Y&Yfontsnowfree).4863%4864%Revision3.6 T1998/03/0601:28:05krisrose4865%Releasing(withY&Yfonts).4866%4867%Revision3.4 T1997/05/1801:13:24ross4868%Essentialbugfixes.4869%4870%Revision3.3 T1996/12/1809:01:45ross4871%majorrevisionsforthenewBREAKmethods4872%splineedge-findingismorerobust4873%spline-breaksfullyimplemented **tj196?KlCHAPTERf2.CEXTENSIONS??hw4874%intersectionsofcurvewithstraightconnectionsimplemented 4875%improvedtracings4876%adjustedmethodsforstyles4877%4878%Revision3.2 T1995/09/1918:20:20ross4879%Bugfixrelease.4880%4881%Revision3.1 T1995/09/0520:36:33ross4882%Release!4883%4884%Revision3.0 T1995/07/0720:13:19ross4885%Majorreleasew/newUser'sGuide!4886%4887%Revision2.13 T1995/07/0507:58:43ross4888%Readyforv3release?4889%4890%Revision2.12 T1994/10/2503:01:14ross4891%Final3betarelease[bugfixes&AMS-LaTeXfitting].4892%4893%Revision2.12 T1994/09/0508:22:11ross4894%incorporatessomespeed-ups,extradocumentation4895%4896%Revision2.11 T1994/07/0509:27:52ross4897%Minorfixes;use2.11kernelstackcode.4898%4899%Revision2.9 T1994/06/0914:50:54ross4900%Release3beta.4901%4902%Revision2.8 T1994/04/0810:36:40ross4903%Second3alpharelease.4904%4905%Revision2.7 T1994/03/0802:06:01kris4906%Release3alpha.4907%4908%Revision2.6.9.1 T1994/03/0704:22:46ross4909%Lastinternal3alphaandpre-2.7release.4910%4911%NEWforversion2.7inspiredbyKnuth'spicmac.tex.15e2.2r|FframeffandBracketffextensionrV ers.p3.7Tb9yKristo erH.Rosehkrisrose@brics.dkipThefframe$ extensionfpro!videsavdDarietyofwaystoputsframesinXY p-pictures.SHeader:P1%%$Id:xyframe.doc,v3.71999/02/1615:12:50krisroseExp$2%% 5*tj2.2.CFRAMEfANDBRA!CKETEXTENSION󎙹197??hw3%%Xy-pic``FramesandBrackets''extension. 4%%Copyright(c)1991-1997 TKristofferH.Rose5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997 TKristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{frame}{FrameandBracketextension}{\stripRCS$Revision:3.7$}%27K{KristofferH.~Rose}{krisrose@brics.dk}%28K{BRICS/ComputerScience,UniversityofAarhus,NyMunkegade,building540,29 mDK--8000Aarhus~C}NThefframesareXY p-pichobjectisontheform ωffd ($\frm{ fhframeif}}ffd tobMeusedinhposiitions:YDroppingaframewith*]r.3..\frm{hframei}willframethecobject;connectingwithf**%.3..\frm{...hframei} fwillfframetheresultofc.p.X8VY h-picintterface 5Theframesarein!tegratedinYXY -picashobjectisasfollows.Theygenerateadummyobject,uthenT de nethe\Drop@@0徹actiontoplacetherequestedframe.The\Connect@@B$opMerationisde nedhtoplacetherequestedframearoundthecurren!tand+thepreviousobject(usingthe\cmerge@commandfofthek!ernel).63\xydef@\frm{\hbox{}\dimen@=\L@c\advance\dimen@\R@c\wdz@=\dimen@64\ht\z@=\U@c\dp\z@=\D@c\dimen@=\U@c\advance\dimen@\D@c65%\ifdim\wdz@=\z@\def\Leftness@{0}\else\quotient@\Leftness@\L@c\wdz@\fi66%\ifdim\dimen@=\z@\def\Upness@{0}\else\quotient@\Upness@\U@c\dimen@\fi67\ifdim\wdz@=\z@\def\Leftness@{.5}\else\quotient@\Leftness@\L@c\wdz@\fi68\ifdim\dimen@=\z@\def\Upness@{.5}\else\quotient@\Upness@\U@c\dimen@\fi69\expandafter\Edge@c\expandafter{\prevEdge@@}\let\frmradius@@=\z@70\def\Drop@@{}%71\def\Connect@@{\xy@@{\save@\cmerge@\Y@p\X@p\D@p\U@p\L@p\R@p\Drop@@}\restore}%72\xyFN@\frm@i}74\xylet@\frmradius@@=\z@ >ˠ*tj198?KlCHAPTERf2.CEXTENSIONS??hw76\xydef@\frm@i{% 77K\addLT@\ifx\next\addGT@{\addLT@\DN@##1}{\def\frmradius@@{##1}\xyFN@\frm@i}%78K\else\DN@##1##{\frm@{##1}}\fi\next@}TheWmaincommandis\frm@&whic!hloMoksupifacustomcontrolsequenceisavdDailablefortherequestedfframeorwhetherthegeneric`curv!ealongtheedge'coMdeshouldbein!voked.P86\xydef@\frm@#1#2{\DNii@{frm#1{#2}}%87K\expandafter\let\expandafter\next@\csname\codeof\nextii@\endcsname88K\ifx\next@\relax\DNii@{frm{#2}}%89 m\expandafter\let\expandafter\next@\csname\codeof\nextii@\endcsname90 m\ifx\next@\relax\let\next@=\frm@generic\fi\fi\next@}92\xydef@\frm@generic{\xyerror@{Nogenericframesyet!}{}}Thisextracommandisusedtode ne\Drop@@.3Lforeac!hframesuchthat\frmradius@@JisavdDailable.99\xydef@\frmDrop@#1{%100K\ifx\frmradius@@\z@\addtoDrop@@{\let\frmradius@@=\z@#1}%101K\else\expandafter\addtoDrop@@\expandafter{%102 \expandafter\def\expandafter\frmradius@@\expandafter{\frmradius@@}#1}\fi}104\xydef@\EdgefromtheEdge@{%105K\U@c=\the\U@c\D@c=\the\D@c\L@c=\the\L@c\R@c=\the\R@c106K\Edge@c={\expandafter\noexpand\the\Edge@c}}107\xydef@\prevEdgefromtheEdge@{%108K\U@c=\the\U@c\D@c=\the\D@c\L@c=\the\L@c\R@c=\the\R@c109K\noexpand\def\noexpand\prevEdge@@{\expandafter\noexpand\the\Edge@c}}111\xydef@\addtoDrop@@#1{%112K\expandafter\def\expandafter\Drop@@\expandafter{\Drop@@#1}}113\xydef@\addbeforeDrop@@#1{\DNii@{#1}%114K\expandafter\DN@\expandafter{\expandafter\nextii@\Drop@@}%115K\expandafter\expandafter\expandafter\def116 m\expandafter\expandafter\expandafter\Drop@@117\expandafter\expandafter\expandafter{\next@}}Belo!wpwedistinguishbMetween`ordinary'frames,m`brackets'and` lls';lastwepresenthowsomeframesfcanbMeaddedtootherobjectsusingobjectmoMdi erhshapeis.!N2.2.1 Frames=FigureR{2.2sho!wsthepMossibleframesandtheapplicablehmodi eriswithreferencetothenotesbelo!w.!荑Notes=2.2a.=TheLJ\frm{})frameLJisadumm!yusefulfornotputtingaframeonsomething,^Pe.g.,inLJmacrosthattak!efahframeiargument.206\xydefcsname@{frm{}}{}207\xyletcsnamecsname@{frm[]{}}{frm{}}208\xyletcsnamecsname@{frm[o]{}}{frm{}}V2.2b.Rpectangular=framesinclude\frm{.},M,*A\frm{-},g,*A\frm{=},*A\frm{--}2',*A\frm{==},*Aand\frm{o-}2 2.Theyfallmak!erectangularframesthatessentiallytracethebMorderofarectangle-shapedobject. L*tj2.2.CFRAMEfANDBRA!CKETEXTENSION󎙹199??Ӎџ05.ps: SDict begin xyc endm!MFeramedfwith [*\frm{} AUQframe2.2a-!HFeramedfwith W~\frm{.}A~frame2.2bwگ3232ݍ3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'ږ323232323232323232323232323232323232323232323232323232323232323232323232[ږ32323232323232323232323232323232323232323232323232323232323232323232323232گ3232ݍ3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232juFeramedfwith $\frm<44pt>{.} 'frame2.2bh0"6" {20.59529 40.36647 -20.5953 -40.36647 20.59529 vt}xy$MϹFeramedfwith XK\frm{-}AUr5frame2.2b-͍li2" {0.0 33.50795 -19.83487 -33.50795 19.83485 ov}xyJ63232Ld3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'Jږ323232323232323232323232323232323232323232323232323232323232323232323232ږ32323232323232323232323232323232323232323232323232323232323232323232323232J63232Ld3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232#HFeramedfwith U\frm<8pt>{-}~frame2.2b-͍vQ1" {8.0 37.49213 -20.5953 -37.49213 20.59529 ov}xy.h޼3232"썍3232D%3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232D3232)5덍# 83232 323232323232323232323232323232323232323232323232323232323232323232323232N 83232 32323232323232323232323232323232323232323232323232323232323232323232323232޼3232"썍3232D%3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232D3232#Feramedfwith $\frm<44pt>{-} 'frame2.2b-͍"6" {20.59529 40.36647 -20.5953 -40.36647 20.59529 ov}xy.h `3232H3232<3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232<3232)5덍ǟ 83232 323232323232323232323232323232323232323232323232323232323232323232323232J 83232 32323232323232323232323232323232323232323232323232323232323232323232323232 `3232H3232<3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232<3232T[MϹFeramedfwith XK\frm{=}AUr5frame2.2b^%jli2" {0.0 33.50795 -19.83487 -33.50795 19.83485 ov}xy^%jli2" {0.0 31.50795 -17.83487 -31.50795 17.83485 ov}xyJOJ63232Ld3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'Jږ323232323232323232323232323232323232323232323232323232323232323232323232ږ32323232323232323232323232323232323232323232323232323232323232323232323232J63232Ld3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232T'HFeramedfwith U\frm<8pt>{=}~frame2.2b^%jvQ1" {8.0 37.49213 -20.5953 -37.49213 20.59529 ov}xy^%jvQ1" {6.0 35.49213 -18.5953 -35.49213 18.59529 ov}xyI޼3232"썍3232D%3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232D3232)5덍# 83232 323232323232323232323232323232323232323232323232323232323232323232323232N 83232 32323232323232323232323232323232323232323232323232323232323232323232323232޼3232"썍3232D%3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232D3232T'Feramedfwith $\frm<44pt>{=} 'frame2.2b^%j"6" {20.59529 40.36647 -20.5953 -40.36647 20.59529 ov}xy^%j"6" {18.59529 38.36647 -18.5953 -38.36647 18.59529 ov}xyI `3232H3232<3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232<3232)5덍ǟ 83232 323232323232323232323232323232323232323232323232323232323232323232323232J 83232 32323232323232323232323232323232323232323232323232323232323232323232323232 `3232H3232<3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232<3232HMϹFeramedfwith Uk0\frm{--}AUr5frame2.2bzNJ63232Kh" {3072 F d}xyUF[" {3072 F d}xy D" {3072 F d}xy" {3072 F d}xy" {3072 F d}xy" {3072 F d}xy D" {3072 F d}xyD3232'؂J" {1024 F d}xyJ #32" {1024 F d}xy $32" {1024 F d}xy 32" {1024 F d}xy؂" {1024 F d}xy #32" {1024 F d}xy $32" {1024 F d}xy 32" {1024 F d}xy32J63232Kh" {3072 F d}xyUF[" {3072 F d}xy D" {3072 F d}xy" {3072 F d}xy" {3072 F d}xy" {3072 F d}xy D" {3072 F d}xyD3232zNJ63232Ld3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'Jږ323232323232323232323232323232323232323232323232323232323232323232323232ږ32323232323232323232323232323232323232323232323232323232323232323232323232J63232Ld3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232HHFeramedfwith w\frm{o-}A~frame2.2bzNH" {135 180 4.00002 7 c}xy+" {90 135 4.00002 6 c}xyH" {3072 F d}xy肍" {3072 F d}xy :" {3072 F d}xy" {3072 F d}xy1" {3072 F d}xy1" {45 90 4.00002 5 c}xy" {0 45 4.00002 4 c}xy#ō;H" {1024 F d}xyōH" {1024 F d}xy;+" {1024 F d}xyō+" {1024 F d}xyH" {-180 -135 4.00002 0 c}xy+" {-135 -90 4.00002 1 c}xyH" {3072 F d}xy肍" {3072 F d}xy :" {3072 F d}xy" {3072 F d}xy1" {3072 F d}xy1" {-90 -45 4.00002 2 c}xy" {-45 0 4.00002 3 c}xyzNگ3232ݍ3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'ږ323232323232323232323232323232323232323232323232323232323232323232323232[ږ32323232323232323232323232323232323232323232323232323232323232323232323232گ3232ݍ3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232LFeramedfwith E$\frm<44pt>{--} 'frame2.2b"6" {20.59529 43.24081 -20.5953 -43.24081 20.59529 vd}xyy뢍+3232aꍍ32326]32323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232326I3232)5덍 83232 323232323232323232323232323232323232323232323232323232323232323232323232Mq 83232 32323232323232323232323232323232323232323232323232323232323232323232323232+3232aꍍ32326]32323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232326I3232MϹFeramedfwith XK\frm{,} Vnframe2.2cKРo33Co'033 J63232Ld3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'PJ|i323232323232323232323232323232323232323232323232323232323232323232323232|i32323232323232323232323232323232323232323232323232323232323232323232323232J63232Ld3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232$鍍HFeramedfwith U\frm<5pt>{,} frame2.2c#; J; (?޼3232"썍3232D%3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232D3232(덍#ك΍3232323232323232323232323232323232323232323232323232323232323232323232323232Nك΍323232323232323232323232323232323232323232323232323232323232323232323232323232޼3232"썍3232D%3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232D3232Feramedfwith  "\frm{-,}  `frame2.2c⤍"2" {0.0 33.50795 -19.88904 -33.50795 19.88904 ov}xy o33CCѡo'033 (3232!V3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'P͏|i323232323232323232323232323232323232323232323232323232323232323232323232Dԟ|i32323232323232323232323232323232323232323232323232323232323232323232323232(3232!V3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:32322MϹFeramedfwith XK\frm{o}AUr5frame2.2dli" {33.50793 ox}xykJ63232Ld3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'Jږ323232323232323232323232323232323232323232323232323232323232323232323232ږ32323232323232323232323232323232323232323232323232323232323232323232323232J63232Ld3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232CHFeramedfwith U\frm<8pt>{o}~frame2.2dvQ " {8.0 ox}xyڨ܍޼3232"썍3232D%3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232D3232)5덍# 83232 323232323232323232323232323232323232323232323232323232323232323232323232N 83232 32323232323232323232323232323232323232323232323232323232323232323232323232޼3232"썍3232D%3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232D32322Feramedfwith  "\frm{.o}A 'frame2.2d"" {33.50793 ot}xyk(3232!V3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'͏ږ323232323232323232323232323232323232323232323232323232323232323232323232Dԟږ32323232323232323232323232323232323232323232323232323232323232323232323232(3232!V3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232dύMϹFeramedfwith Uk0\frm{oo}AUr5frame2.2dlli" {33.50793 ox}xylli" {31.40793 ox}xy %J63232Ld3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'Jږ323232323232323232323232323232323232323232323232323232323232323232323232ږ32323232323232323232323232323232323232323232323232323232323232323232323232J63232Ld3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232#HFeramedfwith \frm<8pt>{oo}~frame2.2dlvQ " {8.0 ox}xylvQ " {5.9 ox}xy y3232;3232<3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232<3232)5덍N 83232 323232323232323232323232323232323232323232323232323232323232323232323232# 83232 323232323232323232323232323232323232323232323232323232323232323232323232323232;3232<3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232<3232dύFeramedfwith  "\frm{-o}A 'frame2.2dl"" {33.50793 od}xy %(3232!V3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'͏ږ323232323232323232323232323232323232323232323232323232323232323232323232Dԟږ32323232323232323232323232323232323232323232323232323232323232323232323232(3232!V3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232GlMϹFeramedfwith XK\frm{e} AVnframe2.2eOHli," {19.58485 19.58485 33.50793 33.50793 ox}xy{e} frame2.2eOHvQ" {8.0 8.0 20.0 20.0 ox}xy;323232323卍32323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323233232(덍eك΍3232323232323232323232323232323232323232323232323232323232323232323232323232Swك΍323232323232323232323232323232323232323232323232323232323232323232323232323232323232323卍32323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323233232GlFeramedfwith  "\frm{.e} A `frame2.2eOH"," {19.58485 19.58485 33.50793 33.50793 ot}xy{ee} frame2.2e)卒vQ" {8.0 8.0 20.0 20.0 ox}xy)卒vQ" {6.0 6.0 18.0 18.0 ox}xyl3232ڮ3232:ꍍ32323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:۞3232(덍%ك΍32323232323232323232323232323232323232323232323232323232323232323232323232323Lك΍3232323232323232323232323232323232323232323232323232323232323232323232323232323232ڮ3232:ꍍ32323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:۞3232wb Feramedfwith  "\frm{-e} A `frame2.2e)卒"," {19.58485 19.58485 33.50793 33.50793 od}xyl_(3232!V3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'0͏3232 V32323232323232323232323232323232323232323232323232323232323232323232Dԟ3232 V3232323232323232323232323232323232323232323232323232323232323232323232(3232!V3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232Be@v8@v|b>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>><y@vJ3>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>|U:h JgTheseMare ;o!verlayed`withMtheU\frm{.}frameabMo!ve;toMsho!w'theMw!ayѧtheyMarecen!teredMon EtheMobjectk䍍NFiguref2.2:Plainhframeis. +Pps: SDict begin xyc end${2Feramedfwith \frm{_\}}&Y fframe2.2fBF|31{! BFz31}g3232 3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'ѫΟwX3232э32323232323232323232323232323232323232323232323232323232323232323232CwX3232э3232323232323232323232323232323232323232323232323232323232323232323232g3232 3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232$^ yFeramedfwith b\frm{^\}}Af߹frame2.2fZyz31}|΂|31{Z3232\-3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'ZGږ323232323232323232323232323232323232323232323232323232323232323232323232ږ32323232323232323232323232323232323232323232323232323232323232323232323232Z3232\-3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232$Feramedfwith S\frm{\{}AXframe2.2f-͍됭+8+g>E<oT+>f:Y323293232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'ږ323232323232323232323232323232323232323232323232323232323232323232323232ږ32323232323232323232323232323232323232323232323232323232323232323232323232Y323293232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232$%kFeramedfwith \frm{\}}Aѹframe2.2f-͍됭O9Og>E=oTO>f; Ҟ3232F3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'9ږ323232323232323232323232323232323232323232323232323232323232323232323232T)~ږ32323232323232323232323232323232323232323232323232323232323232323232323232 Ҟ3232F3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232UύFeramedfwith a\frm{_)} Y тframe2.2greH|31: }J%g3232 3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'QΟ𞍍323232323232323232323232323232323232323232323232323232323232323232323232C𞍍32323232323232323232323232323232323232323232323232323232323232323232323232g3232 3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232U*[^ yFeramedfwith e\frm{^)} Aeframe2.2g[ yJz31: {JZ3232\-3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'0ZG3232 V323232323232323232323232323232323232323232323232323232323232323232323232 V3232323232323232323232323232323232323232323232323232323232323232323232Z3232\-3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232U*[Feramedfwith |(\frm{(} Atframe2.2gI+8+/P>>>>>>>>/C:JY323293232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'03232 V323232323232323232323232323232323232323232323232323232323232323232323232 V3232323232323232323232323232323232323232323232323232323232323232323232Y323293232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232U*[%kFeramedfwith \frm{)} Aframe2.2gIO9O/P>>>>>>>>/C;J Ҟ3232F3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232'093232 V32323232323232323232323232323232323232323232323232323232323232323232T)~3232 V3232323232323232323232323232323232323232323232323232323232323232323232 Ҟ3232F3232:*3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232:3232hFiguref2.3:Brac!kethframeis. Y *tj200?KlCHAPTERf2.CEXTENSIONS??hwThevhframeis\frm{-}1)ιand\frm{=}allo!wanoptionalcpornerradius\,thatvroundsthecornersof theframewithquartercirclesofthespMeci edradius..Thisisnotallo!wedfortheotherframes|the4X\frm{o-}8fframe4Xalw!aysgivesroundedcornersofthesamesizeastheuseddashes(when\xydashfont8n͹isfthedefaultonethentheseare5ptʹinradius).!͍Exercise22.4: 5Ho!wfdoyouthinktheauthortypMesetthefollowing?+䍍 ps: SDict begin xyc end%A43" {7.10625 ox}xy!;=BJH#" {7.42752 ox}xy g3232&덍3232@~32323232323232323232323232323232323232323232323232323232323232323232@n3232"x{Ο߾ʍ3232323232323232323232323232323232323232323232323232323232323232*߾ʍ323232323232323232323232323232323232323232323232323232323232323232g3232&덍3232@~32323232323232323232323232323232323232323232323232323232323232323232@n3232vᅪThefcommandsstillhac!kawaywithrulesandstu .3..\frm{.}#!justW llstheedgesoftheobjectrectanglebMorderwithdotsusingdotsasindotted connectionsfinthek!ernel.P252\xydefcsname@{frm{.}}{\frmDrop@{\let\zerocorner=\framezerodot@@253 m\let\framehfill=\frm@doth@@\let\framevfill=\frm@dotv@@254 m\framed@@{\frmradius@@}}}256\xyletcsnamecsname@{frm[]{.}}{frm{.}}258\xydef@\frm@doth@@{\setboxz@h{\kern5\B@\framezerodot@@\kern5\B@}\ht\z@=\B@259K\dp\z@=\B@\kern5\B@\xleaders\boxz@\hss\kern5\B@}260\xydef@\frm@dotv@@{\setboxz@hto2\B@{\hss\framezerodot@@\hss}\ht\z@=5\B@261K\dp\z@=5\B@\kern5\B@\xleaders\boxz@\vss\kern5\B@}263\xyletcsnamecsname@{frm{..}}{frm{.}}265\xylet@\framezerodot@@=\zerodotThe\frmyhvdDarian!ti{-}1Ϲand\frmhvarian!ti{=}1Ϲsetasingle/doubleframethatjustsurroundsthecurren!t[object;tifahradiusiisgiventhenitshouldbMea< chdimeni>where[thehdimeniwillbeusedforfthecornerradius.ᅪThewcommandsfor\frm{-}1-~and\frm{=}arequitesimilarinthattheyjustcall\framed@6(oneort!wotimes,respMectivelye,withthecornerradiusandL;1R;DM;UJexten!tsre ectingthesizeoftheframe.\framed@6-thengsetsthehorizon!talandvertical llcommandstogeneraterulesoftherightlength,fthencalls\framed@@; ƹwheretherealw!orkisdone.281\xydefcsname@{frm{-}}{\frmDrop@{\framed@\frmradius@@}}282\xyletcsnamecsname@{frm[]{-}}{frm{-}}284\xydef@\framed@{\let\zerocorner=\framezerodot@@285K\let\framehfill=\frm@solidh@@\let\framevfill=\frm@solidv@@\framed@@}287\xylet@\framesetthick@=\relax289\xydef@\frm@solidh@@{\framesetthick@\leaders\hruleheight\B@depth\B@\hfill}290\xydef@\frm@solidv@@{\framesetthick@\leaders\vrulewidth2\B@\vfill}292\xydefcsname@{frm{=}}{\frmDrop@{\framed@\frmradius@@293 m{\advance\L@c-2\p@\advance\R@c-2\p@\advance\U@c-2\p@\advance\D@c-2\p@294\dimen@=\frmradius@@295\ifdim\dimen@>2\p@\advance\dimen@-2\p@\else\dimen@=\z@\fi296 m\framed@\dimen@}}}298\xyletcsnamecsname@{frm[]{=}}{frm{=}} w*tj2.2.CFRAMEfANDBRA!CKETEXTENSION󎙹201??hwWhenfthelineextensionisalsoloadedthenw!eusethelinethicknessforframes:P305\xydef@\framesetthick@line{\B@=.5\xylinethick@}307\xydef@\frm@thickc@@{\hbox{\framesetthick@line 308 m\vruleheight.5\B@depth.5\B@width\B@}}310\xywithoption{line}{%311K\let\framezerodot@@\frm@thickc@@\let\framesetthick@=\framesetthick@line}6\framed@@.isSwherew!ebuildabMoxwiththesidesoftheframedisplacedappropriatelye. T\oDoGeneralise2thistohandleantydirectional!319%#iProcedure:320%#i%0setuphrulefillandvrulefillasapropriate...321%#i%1LowerRtobelessthanhalfofboth(U+D)and(L+R).322%#i%2Startvboxat(X-L,Y-D)exceptcenterovershoot.323%#i%3GeneratecornerCO4atR;w[\A@]:=-1/2width(corner);324%4gr[\B@]:=1/2rulewidth;h[\dimen@ii]:=U+D+2w;325%#i%4Row1:hboxtoW{kernwCO4hrulefillCO3kernw}.326%#i%5Row2:hboxtoW{kern-rvboxtoh{vrulefill}327%B[hfillvboxtoh{vrulefill}kern-r}.328%#i%6Row3:hboxtoW{kernwCO1hrulefillCO2kernw}.330\xydef@\framed@@#1{\setboxz@h{\R@=#1\relax331 m\dimen@=\L@c\advance\dimen@\R@c\dimen@ii=\U@c\advance\dimen@ii\D@c%1332 m\ifdim.5\dimen@<\R@\R@=.5\dimen@\fi333 m\ifdim.5\dimen@ii<\R@\R@=.5\dimen@ii\fi334 m\A@=\X@c\advance\A@-\L@c\B@=\Y@c\advance\B@-\D@cs%2335 m\ifdim\R@<\p@\else\cirrestrict@@\fi336 m\dimen@=2\R@\advance\dimen@-\L@c\advance\dimen@-\R@c337 m\ifdim\dimen@>\z@\advance\A@-.5\dimen@\fi338 m\dimen@=2\R@\advance\dimen@-\U@c\advance\dimen@-\D@c339 m\ifdim\dimen@>\z@\advance\B@-.5\dimen@\fi340 m\kern\A@\raise\B@\vboxto\dimen@ii{\framed@body@@}}%341K\ht\z@=\z@\dp\z@=\z@\wd\z@=\z@\boxz@}343\xydef@\framed@body@{%344K\advance\dimen@ii.22\p@\advance\dimen@-.2\p@345K\setboxz@h{\corn@@4\R@}\A@=-.5\wdz@\B@=.5\xydashw@s%3346K\dimen@=\L@c\advance\dimen@\R@c\advance\dimen@-.2\p@347K\setboxz@hto\dimen@{\kern\A@\boxz@\framehfill\corn@@3\R@\kern\A@}%4348K\advance\dimen@ii-\dp\z@\kern-\ht\z@\nointerlineskip\boxz@349K\dimen@=\L@c\advance\dimen@\R@c\advance\dimen@-.2\p@350K\setboxz@hto\dimen@{\kern\A@\corn@@1\R@\framehfill\corn@@2\R@\kern\A@}%6351K\advance\dimen@ii-\ht\z@352K\dimen@=\L@c\advance\dimen@\R@c\advance\dimen@.2\p@353K\nointerlineskip\hboxto\dimen@{%s%5354 m\setbox\z@=\vboxto\dimen@ii{\framevfill}\kern-.5\wdz@\copy\z@355 m\hss\copy\z@\kern-.5\wdz@}%356K\nointerlineskip\boxz@\vss\kern\z@}358\xylet@\framed@body@@=\framed@body@360\xylet@\zerocorner=\framezerodot@@ *tj202?KlCHAPTERf2.CEXTENSIONS??hw362\xydef@\solidcorner@#1#2{\hbox\bgroup\R@=#2\relax 363K\ifdim\R@<\p@\zerocorner364K\else\cirrestrict@@\multiply\count@8%365 m\setboxz@h{\corn@x@@{#1}}\dimen@=\wdz@366 m\ifcase#1\or\ht\z@=\z@\kern\dimen@\raise\dimen@\boxz@367 m\or\ht\z@=\z@\raise\dimen@\boxz@\kern\dimen@368 m\or\dp\z@=\z@\lower\dimen@\boxz@\kern\dimen@369 m\or\dp\z@=\z@\kern\dimen@\lower\dimen@\boxz@\fi370 m\vruleheight\dimen@depth\dimen@width\z@\fi371K\edef\tmp@{\egroup\U@c=\the\dimen@}\tmp@\D@c=\U@c\L@c=\U@c\R@c=\U@c372K\Edge@c={\circleEdge}\ignorespaces}P374\xydef@\corn@x@#1{\ifcase#1\or375K\circhar@@\z@\circhar@@\@ne\or\circhar@@\tw@\circhar@@3\or376K\circhar@@5\circhar@@4\or\circhar@@7\circhar@@6\fi}378\xylet@\corn@x@@=\corn@x@380\xydef@\corn@@{\DN@{\solidcorner@}%381 m\ifx\framehfill\frm@doth@@\DN@{\let\cirrestrict@@=\relax382\let\corn@x@@=\dotcorner@@\let\zerodot=\framezerodot@@383\solidcorner@}%384 m\else\ifx\framehfill\frm@dashh@@\DN@{\let\cirrestrict@@=\relax385\let\corn@x@@=\dashcorner@@\let\zerodot=\framezerodot@@386\solidcorner@}%387K\fi\fi\next@}389\xydef@\dotcorner@@#1{\zerocorner}390\xydef@\dashcorner@@#1{\zerocorner}392\xywithoption{curve}{%393K\let\dotcorner@@=\dotcorner@\let\dashcorner@@=\dashcorner@}}Thefdashedframes`dash'withthedashusedfordashedlines.399\xydefcsname@{frm{--}}{%400 m\frmDrop@{\let\zerocorner=\framezerodot@@401 m\let\framehfill=\frm@dashh@@\let\framevfill=\frm@dashv@@402 m\framed@@\frmradius@@}}404\xyletcsnamecsname@{frm[]{--}}{frm{--}}406\xydef@\frm@dashh@@{\setboxz@h{\dashhfillchar}%407 m\ht\z@=\B@\dp\z@=\B@\wdz@=2\xydashl@408 m\copy\z@\xleaders\copy\z@\hss\boxz@\kern-\xydashl@}409\xydef@\frm@dashv@@{\setboxz@hto2\B@{\hss\dashvfillchar\hss}\ht\z@=\z@410 m\dp\z@=2\xydashl@\nointerlineskip\copy\z@\xleaders\copy\z@\vss411 m\nointerlineskip\boxz@\kern-\xydashl@}%413\xydef@\dashhfillchar{{\rDirection@\xydashl@\line@@}}414\xydef@\dashvfillchar{{\dDirection@\xydashl@\line@@}}}Bug:8WSettingSthecorner-radiustolessthan10pthasnoe ectwhenusing\frm{o-}2P;Ainsteadadefaultfsizeof.8\xydashl@Fisused.421\xydefcsname@{frm{o-}}{%422K\ifdim\frmradius@@<2\xydashl@\relax\dimen@=.8\xydashl@ *tj2.2.CFRAMEfANDBRA!CKETEXTENSION󎙹203??hw423 m\expandafter\def\expandafter\frmradius@@\expandafter{\the\dimen@}\fi 424K\frmDrop@{\let\zerocorner=\framezerodot@@425 m\let\framehfill=\frm@rddashh@@\let\framevfill=\frm@rddashv@@426 m\framed@@\frmradius@@}}%P428\xydef@\frm@rddashh@@{\setboxz@h{\kern\xydashl@\dashhfillchar}%429 m\ht\z@=\B@\dp\z@=\B@\copy\z@\xleaders\copy\z@\hss\boxz@\kern\xydashl@}430\xydef@\frm@rddashv@@{\ifdim\dimen@ii<2\xydashl@\else431 m\setbox\z@=\vboxto2\xydashl@{\hboxto2\B@{\hss\dashvfillchar\hss}\vss}%432 m\kern\xydashl@\copy\z@\xleaders\copy\z@\vss433 m{\ifdim\dimen@ii<2\xydashl@\else\aftergroup\boxz@\fi}\fi}2.2c.rTheframe\frm{,}/ƹputsashade,builtfromrules,in!tothepicturebMeneaththe(assumedrect-angular)object,pthereb!ygivingtheillusionof`lifting'it;˪\frm<"hdimeni>{,};makesthisshadehdimenifdeep.\frm{-,}'/Ϲcom!binesfa\frm{-}/rwitha\frm{,}+ .Aۮblac!kruleisjustthat,)cashadeistworulesplacedunderandleftoftherectangularobject outline.452\xydefcsname@{frm{,}}{%453K\ifx\frmradius@@\z@\shaded@{1.2\p@}\else\shaded@\frmradius@@\fi}455\xydef@\shaded@#1{\frmDrop@{\R@=#1\relax456 m{\advance\X@c\R@\advance\Y@c-\D@c\U@c=\z@\D@c=\R@\blacked@}%457 m{\advance\X@c\R@c\advance\Y@c-\R@\L@c=\z@\R@c=\R@\blacked@}}}459\xydefcsname@{frm{-,}}{\addtoDrop@@{\drop\frm{-}\drop\frm{,}}}461\xydef@\blacked@{\setboxz@h{%462 m\A@=\X@c\advance\A@-\L@c\dimen@=\L@c\advance\dimen@\R@c463 m\B@=\Y@c\advance\B@-\D@c\dimen@ii=\Y@c\advance\dimen@ii\U@c464 m\advance\A@-.5\xydashw@465K%\advance\B@-\xydashw@ T\advance\dimen@ii-.5\xydashw@466 m\kern\A@\blacked@@}%467K\ht\z@=\z@\dp\z@=\z@\wd\z@=\z@\boxz@}469\xydef@\bblacked@{\setboxz@h{%470 m\dimen@=\L@c\advance\dimen@\R@c\B@=-\D@c\dimen@ii=\U@c471 m\kern-\L@c\blacked@@\kern-\dimen@\kern\L@c}%472 m\ht\z@=\z@\dp\z@=\z@\wd\z@=\z@\boxz@}474\xydef@\blacked@@{\vrulewidth\dimen@depth-\B@height\dimen@ii}Thef\blacked5Joptionfissubsumedwithinamoregeneral\filled+ ;seebMelo!w.2.2d.Circlesdonewith\frm{o}0g2ha!veradiusas(R)+L)=2andwith\frm< hdimeni>{o}nha!veradiusas4thehdimeni;\frm{oo}5Fsmak!esadoublecirclewiththeoutermostcirclebMeingthesameasthatoff\frm{o}+ .#ƺExercise22.5: 5Whatfisthedi erencebMet!weenf*\cir{}/randf*\frm{o}1?497\xydefcsname@{frm{o}}{%498K\ifx\frmradius@@\z@499 m\frmDrop@{\dimen@=.5\L@c\advance\dimen@.5\R@c *tj204?KlCHAPTERf2.CEXTENSIONS??hw500\let\framehfill=\frm@solidh@@\let\framevfill=\frm@solidv@@ 501\circled@\dimen@}%502K\else503 m\frmDrop@{\let\framehfill=\frm@solidh@@504\let\framevfill=\frm@solidv@@\circled@\frmradius@@}%505K\fi}P507\xydefcsname@{frm{oo}}{%508K\ifx\frmradius@@\z@509 m\frmDrop@{\dimen@=.5\L@c\advance\dimen@.5\R@c510\let\framehfill=\frm@solidh@@\let\framevfill=\frm@solidv@@511{\circled@\dimen@}\advance\dimen@-2.1\p@\circled@\dimen@}%512K\else513 m\frmDrop@{\dimen@=\frmradius@@514\let\framehfill=\frm@solidh@@\let\framevfill=\frm@solidv@@515{\circled@\dimen@}\advance\dimen@-2.1\p@\circled@\dimen@}%516K\fi}518\xydef@\circled@#1{\setboxz@h\bgroup\R@=#1\relax519 m\setboxz@h{\vbox{\circled@x@@}}%520 m\A@=\X@c\advance\A@-.5\wd\z@521 m\B@=\Y@c\advance\B@-.5\ht\z@\advance\B@.5\dp\z@\advance\B@.2\p@522 m\edef\tmp@{\egroup\dimen@=\the\wdz@}%523 m\kern\A@\raise\B@\boxz@524K\tmp@\divide\dimen@4\ht\z@=\z@\dp\z@=\z@\wd\z@=\z@\boxz@}526\xydef@\circled@x@{\hbox{\corn@@4\R@\corn@@3\R@}%527 \nointerlineskip\hbox{\corn@@1\R@\corn@@2\R@}}528\xylet@\circled@x@@=\circled@x@K썑ThencoMdehereisrepetitiv!eandcouldbeimpro!ved.v Thenonlypurposeof\let\framehfill=\frm@dashh@@etc.isftoserv!easamarkerfortherequiredstyle:solid/dashed/dotted.536\xydefcsname@{frm{.o}}{%537K\ifx\frmradius@@\z@\frmDrop@{\let\framehfill=\frm@doth@@538 m\dimen@=.5\L@c\advance\dimen@.5\R@c\circled@\dimen@}%539K\else540 m\frmDrop@{\let\framehfill=\frm@doth@@\circled@\frmradius@@}%541K\fi}543\xydefcsname@{frm{-o}}{%544K\ifx\frmradius@@\z@\frmDrop@{\let\framehfill=\frm@dashh@@545\dimen@=.5\L@c\advance\dimen@.5\R@c\circled@\dimen@}%546K\else547 m\frmDrop@{\let\framehfill=\frm@dashh@@\circled@\frmradius@@}%548K\fi}"GP2.2e.rEllipsesspMeci edusing\frm{e}0rha!veaxislengths(R+AL)=2and(U+DM޹)=2,whilethosewith\frm<Jkhdimen,dimeni>{e}ѹuse)thegiv!enlengthsfortheaxes.\frm{ee}5makesadoubleellipsewithoutermostfellipsebMeingthesameasthatof\frm{e}+ .WithoutspMecialsupporttorendertheellipses,eitherviaahdriv!eriorusingthearc޹feature,theellipsewillbMedra!wnasacircleofradiusapproximatelytheaverageofthemajorandminoraxes. à*tj2.2.CFRAMEfANDBRA!CKETEXTENSION󎙹205??hw567\xydefcsname@{frm{e}}{\ellipse@whichfrm@\ellipsesolidframed@}% 568\xydefcsname@{frm{.e}}{\ellipse@whichfrm@\ellipsedotframed@}%569\xydefcsname@{frm{-e}}{\ellipse@whichfrm@\ellipsedashframed@}%P571\xydefcsname@{frm{ee}}{\ellipse@whichdblfrm@\ellipsesolidframed@}%572\xydefcsname@{frm2{.e}}{\ellipse@whichdblfrm@\ellipsedotframed@}%573\xydefcsname@{frm2{-e}}{\ellipse@whichdblfrm@\ellipsedashframed@}%575\xyletcsnamecsname@{frm[o]{-}}{frm{e}}576\xyletcsnamecsname@{frm[o]{=}}{frm{ee}}577\xyletcsnamecsname@{frm[o]{.}}{frm{.e}}578\xyletcsnamecsname@{frm[o]{--}}{frm{-e}}580\xydef@\ellipse@whichfrm@#1{%581K\ifx\frmradius@@\z@582 m\frmDrop@{#1\dimen@=.5\L@c\advance\dimen@.5\R@c583\dimen@ii=.5\U@c\advance\dimen@ii.5\D@c584\edef\next@{\noexpand\ellipsed@{\the\dimen@}{\the\dimen@ii}}\next@}%585K\else586 m\frmDrop@{#1\expandafter\ellipsed@i@\frmradius@@,,@@}%587K\fi}589\xydef@\ellipse@whichdblfrm@#1{%590K\ifx\frmradius@@\z@591 m\frmDrop@{#1\dimen@=.5\L@c\advance\dimen@.5\R@c592\dimen@ii=.5\U@c\advance\dimen@ii.5\D@c593\edef\next@{\noexpand\ellipsed@e@{\the\dimen@}{\the\dimen@ii}}\next@}%594K\else595 m\frmDrop@{#1\expandafter\ellipsed@ei@\frmradius@@,,@@}%596K\fi}598\xydef@\ellipsed@i@#1,#2,#3@@{\DNii@{,}\DN@{#3}%599K\ifx\next@\nextii@600 m\dimen@=#1\relax\dimen@ii=#2\relax601 m\edef\next@{\noexpand\ellipsed@{\the\dimen@}{\the\dimen@ii}}%602K\else\ifx\next@\empty\DN@{#2}%603 m\ifx\next@\empty\DN@{#1}%604 \dimen@=.5\L@c\advance\dimen@.5\R@c605 \dimen@ii=.5\U@c\advance\dimen@ii.5\D@c606 \edef\next@{\noexpand\ellipsed@{\the\dimen@}{\the\dimen@ii}}%607 m\else\dimen@=#1\relax608\edef\next@{\noexpand\ellipsed@{\the\dimen@}{\the\dimen@ii}}%609 m\fi610K\else\xywarning@{ignoringextratokensinellipticalframe:#3}%611 m\dimen@=#1\relax\dimen@ii=#2\relax612 m\edef\next@{\noexpand\ellipsed@{\the\dimen@}{\the\dimen@ii}}%613K\fi\fi\next@}615\xydef@\ellipsed@ei@#1,#2,#3@@{\DNii@{,}\DN@{#3}%616K\ifx\next@\nextii@617 m\dimen@=#1\relax\dimen@ii=#2\relax618 m\edef\next@{\noexpand\ellipsed@e@{\the\dimen@}{\the\dimen@ii}}%619K\else\ifx\next@\empty\DN@{#2}% -*tj206?KlCHAPTERf2.CEXTENSIONS??hw620 m\ifx\next@\empty\DN@{#1}% 621 \dimen@=.5\L@c\advance\dimen@.5\R@c622 \dimen@ii=.5\U@c\advance\dimen@ii.5\D@c623\edef\next@{\noexpand\ellipsed@e@{\the\dimen@}{\the\dimen@ii}}%624 m\else625\dimen@=#1\relax626\edef\next@{\noexpand\ellipsed@e@{\the\dimen@}{\the\dimen@}}%627 m\fi628K\else\xywarning@{ignoringextratokensinellipticalframe:#3}%629 m\dimen@=#1\relax\dimen@ii=#2\relax630\edef\next@{\noexpand\ellipsed@e@{\the\dimen@}{\the\dimen@ii}}%631K\fi\fi\next@}P633\xydef@\ellipsed@e@#1#2{%634 m\dimen@=#1\relax\dimen@ii=#2\relax635 m\edef\next@{\noexpand\ellipsed@{\the\dimen@}{\the\dimen@ii}}\next@636 m\dimen@=#1\relax\dimen@ii=#2\relax637 m\ifdim\dimen@>2\p@\advance\dimen@-2\p@\else\dimen@=\z@\fi638 m\ifdim\dimen@ii>2\p@\advance\dimen@ii-2\p@\else\dimen@ii=\z@\fi639 m\edef\next@{\noexpand\ellipsed@{\the\dimen@}{\the\dimen@ii}}\next@}%641\xydef@\ellipsed@#1#2{\setboxz@h\bgroup\relax642 m\setboxz@h{\vbox{\ellipsed@x@@{#1}{#2}}}%643 m\A@=\X@c\advance\A@-.5\wd\z@644 m\B@=\Y@c\advance\B@-.5\ht\z@\advance\B@.5\dp\z@\advance\B@.2\p@645 m\edef\tmp@{\egroup\dimen@=\the\wdz@}%646 m\kern\A@\raise\B@\boxz@647K\tmp@\divide\dimen@4\ht\z@=\z@\dp\z@=\z@\wd\z@=\z@\boxz@}649\xydef@\ellipsed@i#1#2{{\R@c=#1\relax\L@c=\R@c650K\U@c=#2\relax\D@c=\U@c\ellipsed@{#1}{#2}}}652\xydef@\ellipsed@x@#1#2{\R@=#1\relax\advance\R@#2\relax653K\divide\R@\tw@\circled@x@@}654\xylet@\ellipsed@x@@=\ellipsed@x@656\xydef@\ellipsesolidframed@{%657K\let\framehfill=\frm@solidh@@\let\framevfill=\frm@solidv@@}658\xydef@\ellipsedotframed@{%659K\let\framehfill=\frm@doth@@\let\framevfill=\frm@dotv@@}660\xydef@\ellipsedashframed@{%661K\let\framehfill=\frm@dashh@@\let\framevfill=\frm@dashv@@}T\oDo:ŭAllo!wvhframevdDariantislikethoseusedfordirectionals,i.e.,\frm2{-}4 shouldvbMethesameasf\frm{=}+ .Addf\frm{o,}5Jandfmorebrac!kets.}鍍2.2.2 BracketsThefpMossiblebrac!ketsfaresho!wnin gure2.3withnotesbelo!w.Notes2.2f.,Brpacesare!justthestandardplainT,[wEB Xlargebracesinsertedcorrectlyin XY -picpictureswiththe `nib'falignedwiththereferencepMoin!toftheobjecttheybrace. *tj2.2.CFRAMEfANDBRA!CKETEXTENSION󎙹207??hwExercise22.6: 5Ho!wfdoyouthinktheauthortypMesetthefollowing?3V ps: SDict begin xyc end %A%!;=Bܿg3232.΍3232Hd3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232HQ3232-kYΟ32321323232323232323232323232323232323232323232323232323232323232323232323232323232326323213232323232323232323232323232323232323232323232323232323232323232323232323232323232g3232.΍3232Hd3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232HQ3232ܿz31-} [3ܿ|31 J{ |31 {) z31ml}M{*}9.ɰHencerectangular,o!vdDal,circularandellipticalshapMescanbespeci edfor lling. Theffollo!wingexamplesillustratethisineachcase:-K\(\ʉff{*}zff\dimen@\dimen@=\dimen@ii\fi962K\ifdim\dimen@>\z@\divide\dimen@\tw@963 m\ifdim\R@>\dimen@\R@=\dimen@\fi\fi} I*tj2.2.CFRAMEfANDBRA!CKETEXTENSION󎙹211??hwThedefaultimplemen!tationusesonly\bblacked@=f,Jinallcases.ԦThedistinctionbMetween\frm{*} andf\frm{**}5JcanfbMeignored.P970\xylet@\filledRectangle@@=\bblacked@971\xylet@\filledCircle@@=\bblacked@972\xylet@\filledEllipse@@=\bblacked@973\xylet@\filledOval@@=\bblacked@CAlternativ!eGimplementationsmayusethese,inwhichtheparameter#1isthecontentsofa\vbox llingftotheheigh!t,depthandwidthoftheregiontobMe lled.981\xydef@\filled@Region@#1#2{\setboxz@h\bgroup982 m\setboxz@h{\vbox{#1#2\empty}}%983 m\A@=\X@c\advance\A@-.5\wd\z@984 m\B@=\Y@c\advance\B@-.5\ht\z@\advance\B@.5\dp\z@985 m\edef\tmp@{\egroup\dimen@=\the\wdz@}%986 m\kern\A@\raise\B@\boxz@\kern-\A@987K\tmp@\divide\dimen@\tw@\ht\z@=\z@\dp\z@=\z@\wd\z@=\z@\styledboxz@}989\xydef@\filled@Rectangle@{\filled@Region@\filledRectangle@@}990\xydef@\filled@Oval@{\filled@Region@\filledOval@@}991\xydef@\filled@Circle@{\filled@Region@\filledCircle@@}992\xydef@\filled@Ellipse@{\filled@Region@\filledEllipse@@}$T2.2.4 Framingasobjectmo`di ersInaddition,;framesma!ybMeaccessedusingthespecial[F hframei] aobjectmodi erhshapeisthatwilladdlthedesiredhframeitothecurren!tobject.-TheframeappropriatetotheedgeoftheobjectwillbMefc!hosen(presentlyeitherrectangularorelliptical).UIf*shapMemodi ersneedtobeappliedtothehframeialonethentheycanbeincludedusing:ܹasseparator.Th!us[F-:red]6ʹwillmakearedframe(providedthecolorextensionisactive,*ofcourse).AdditionallyfthevdDarian!tofframesusing< fhdimeni>canfbMeaccessedbyspMecifying[ f.3..:< Rhdimeni>] T.1013\xydefcsname@{shape[F...]}#1{\xyFN@\Fshape@#1:@}1015\xylet@\whichframe@@=\empty1016\xylet@\whichoptions@@=\empty1018\xydef@\Fshape@#1:{\def\whichframe@@{{#1}}%1019K\DN@{{}}\ifx\whichframe@@\next@\def\whichframe@@{{-}}\fi1020K\expandafter\DN@\expandafter{\the\Edge@c}\DNii@{\circleEdge}\ifx\next@\nextii@1021 m\DN@##1{\def\whichframe@@{[o]##1}}%1022 m\expandafter\next@\expandafter{\whichframe@@}\fi1023K\let\whichoptions@@=\empty\xyFN@\Fshape@i}1025\xydef@\Fshape@i{%1026K\ifx@\next\let\next@=\Fshape@x1027K\else\addLT@\ifx\next\let\next@=\Fshape@iii1028K\else\let\next@=\Fshape@ii\fi\fi\next@}1030\xydef@\Fshape@ii#1:{%1031K\expandafter\def\expandafter\whichoptions@@\expandafter{\whichoptions@@[#1]}%1032K\xyFN@\Fshape@i}1034\xydef@\Fshape@iii#1:{\DN@##1{\def\whichframe@@{#1##1}}%1035K\expandafter\next@\expandafter{\whichframe@@}\xyFN@\Fshape@i}>Ǡ*tj212?KlCHAPTERf2.CEXTENSIONS??hw1037\xydef@\Fshape@x@{% 1038K\edef\next@##1{\noexpand\addbeforeDrop@@{{\EdgefromtheEdge@##1}}}%1039K\DNii@##1##2{\next@{\saveframestyles@{\setbox\z@=\object##2\frm##1%1040 m\xypre@Style@@\Drop@@\xypost@Style@@\restoreframestyles@}}}%1041K\expandafter\expandafter\expandafter\nextii@1042 m\expandafter\expandafter\expandafter{%1043\expandafter\whichframe@@\expandafter}\expandafter{\whichoptions@@}}Thesfollo!wingareusedtoensurethatthecurrentstyles, aftertypMesetting, arethoseofthehobjecti,ratherfthanthehframei.P1052\xydef@\saveframestyles@{%1053K\edef\afterframe@preStyle@{\preXY@style@}%1054K\edef\afterframe@postStyle@{\postXY@style@}}1056\xydef@\restoreframestyles@{%1057K\xdef\preXY@style@{\afterframe@preStyle@}\def\afterframe@preStyle@{}%1058K\xdef\postXY@style@{\afterframe@postStyle@}\def\afterframe@postStyle@{}}Herefaresomesimpleexamplesusingthisfeature.2ps: SDict begin xyc end[F**:white]++[F**:red]\txt{textwithbackground},+!D+/d1pc/,*++[F**:black][white]\txt\bf{boldwhiteonblack}\endxyNotice thatwhenm!ultipleframe-moMdi ersareused,theframesareactuallyplacedinreverseorder,softhatearlieronesareprin!tedontopoflaterones. T\oDo:$Theframeoptionisnotquitecompletey!et:somenewframesandsev!eralnewbracketsshouldfbMeadded.2.2.5 UsingcurvesforframesmIIf/thecurv!eoptionisloaded,2:thencircularandellipticalframesofarbitraryradiuscanbMeconstructed,b!y1,spMecifying\UseCurvedFrames_+̹.Thiscanbenegatedb!y\UseFontFramesSx.BothofthesecommandsobMeyF#normalT,[wEB Xgrouping.Feurthermore,ndottedanddashedframesno!whavearegularspacingoftheirvconstituen!tobjects.8TheusualwarningsabMoutmemoryrequirementsforlargenumbMersofcurvesapplyfherealso.Usefthe\xycircle; ƹsetupinxycurve.docFtoimplemen!tcircularandellipticalframes.P1098\xydef@\xycircleframe@x@{\L@=\R@\xycircleframe@x@i}%1099\xydef@\xyellipseframe@x@#1#2{\R@=#1\relax\L@=#2\relax\xycircleframe@x@i}1101\xydef@\xycircleframe@x@i{%1102K\ifx\framehfill\frm@solidh@@\def\circleSTYLE@{}%1103K\else\ifx\framehfill\frm@doth@@1104 m\expandafter\def\expandafter\circleSTYLE@\expandafter{\addDOT@{}}%1105K\else\ifx\framehfill\frm@dashh@@1106 m\expandafter\expandafter\expandafter\def\expandafter\expandafter1107\expandafter\circleSTYLE@\expandafter\expandafter\expandafterLi*tj2.2.CFRAMEfANDBRA!CKETEXTENSION󎙹213??hw1108{\expandafter\addDASH@\addDASH@{}}% 1109K\fi\fi\fi\xycircleframe@x@x}P1111\xydef@\xycircleframe@x@x{\hbox{\vbox{\vskip\L@1112K\hboxto2\R@{\hfill\buildcircle@\hfill}\vskip\L@}}}1114\xydef@\UseCurveFrames@{%1115K\let\circled@x@@=\xycircleframe@x@1116K\let\ellipsed@x@@=\xyellipseframe@x@}1117\def\UseCurveFrames{\xywithoption{curve}{\UseCurveframes@}}%1119\xydef@\UseFontFrames@{%1120K\let\circled@x@@=\circled@x@1121K\let\ellipsed@x@@=\ellipsed@x@}1122\xylet@\UseFontFrames=\UseFontFrames@Finallye,ftheframeextensionisaddedtothehdriv!erisystem:1130\xydef@\UnloadFrames@{%1131K\let\framed@body@@=\framed@body@1132K\let\circled@x@@=\circled@x@1133K\let\ellipsed@x@@=\ellipsed@x@1134K\let\frame@fill@@=\frame@fill@1135K\let\frame@emph@@=\frame@emph@1136K\let\filledRectangle@@=\bblacked@1137K\let\filledCircle@@=\bblacked@1138K\let\filledEllipse@@=\bblacked@1139K\let\filledOval@@=\bblacked@1140}1142\xyaddunsupport{frame}\UnloadFrames@!֍End&logb퍍1150\xyendinput1152%$Log:xyframe.doc,v$1153%Revision3.7 T1999/02/1615:12:50krisrose1154%Interimrelease(Y&Yfontsnowfree).1155%1156%Revision3.6 T1998/03/0601:28:05krisrose1157%Releasing(withY&Yfonts).1158%1159%Revision3.4 T1997/05/1801:14:25krisrose1160%Essentialbugfixes.1161%1162%Revision3.3 T1996/12/1903:31:56krisrose1163%Maintenancerelease1164%1165%Revision3.2 T1995/09/1918:22:27kris1166%Bugfixrelease.1167%1168%Revision3.1 T1995/09/0520:31:32kris1169%Releasing![*tj214?KlCHAPTERf2.CEXTENSIONS??hw1170% 1171%Revision3.0 T1995/07/0720:14:21kris1172%Majorreleasew/newUser'sGuide!1173%1174%Revision2.14 T1995/07/0522:11:03kris1175%Buglets...1176%1177%Revision2.13 T1995/07/0415:11:17kris1178%Readytoreleasev3?1179%1180%Revision2.12 T1994/10/2511:34:25kris1181%Interimreleasejustbeforev3[workswithAMS-LaTeX1.2]...1182%1183%Revision2.10 T1994/06/1512:55:07kris1184%Second3betarelease:bugfixes.1185%1186%Revision2.9 T1994/06/0914:59:19kris1187%Release3beta.1188%1189%Revision2.8 T1994/04/0804:30:00kris1190%Second(bugfix)3alpharelease.1191%1192%Revision2.7 T1994/03/0802:06:01kris1193%Release3alpha.1194%1195%Revision2.6.9.1 T1994/03/0704:22:46kris1196%Lastinternal3alphaandpre-2.7release.1197%1198%NEWforversion2.7basedonframecodeinxypic.doc2.6.1.1.%ˍ2.3r|MoreffTipsextension_#V ers.p3.3Tb9yKristo erH.Rosehkris@diku.dkiThisextensionpro!videsseveraladditionalstylesof`tips'foruse(primarily)asarrowheads,HandmakesittpMossibletode necustomisedtips.7Thisisusedtosupporttipsthatmimicthest!yleoftheComputerMoMdernfon!ts1RϹbyKnuth(see[8y]and[6,appMendixF])andoftheEulermathfon!tsdistributedbythe- cmsy9AuAM]>S.Header:P1%%$Id:xytips.doc,v3.31996/12/1904:12:13krisroseExp$2%%3%%Xy-pic``MoreTips''extension.4%%Copyright(c)1992-1996 TKristofferH.Rose5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%Copyright(c)1991-1996 TKristofferH.Rose |ffy̟ L͍ {-=1aThis^functionw9asearliersuppAortedbythecmtipDextensionwhichisstillincludedinthedistributionbutisnow obsolete.ec*tj2.3.CMOREfTIPSEXTENSION4215??hw8%% 9%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify10%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe11%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour12%%option)anylaterversion.13%%14%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but15%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY16%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense17%%formoredetails.18%%19%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong20%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,21%%675MassAve,Cambridge,MA02139,USA.22%%23\ifx\xyloaded\undefined\inputxy\fiP25\xyprovide{tips}{MoreTipsextension}{\stripRCS$Revision:3.3$}%26K{KristofferH.~Rose}{kris@diku.dk}%27K{BRICS/ComputerScience,UniversityofAarhus,NyMunkegade,building540,28 mDK--8000Aarhus~C}L)Firstfsa!vetheXY p-commandsthatmayneedrestoring.48\xylet@\tip@xy=\tip@49\xylet@\atip@xy=\atip@50\xylet@\btip@xy=\btip@52\xylet@\Tip@xy=\Tip@53\xylet@\Ttip@xy=\Ttip@55\xylet@\tipjot@xy=\tipjot@Nextfdeclarethefon!ts(initiallytheoriginalcm style).61\xyfont@\xy@@atfont=xycmat1062\xyfont@\xy@@btfont=xycmbt10Feon!tfselectionisdonewiththecommand 4ffd 'v\SelectTipsf{ fhfamilyi}{%hsizei}=ffd74\xydef@\tipfamily@@{cm}75\xydef@\tipsize@@{10}77\xydef@\SelectTips#1#2{%78\DN@{#1}\ifx\next@\empty\else\def\tipfamily@@{#1}\fi79\DN@{#2}\ifx\next@\empty\else\def\tipsize@@{#2}\fi80\csnametipfamily\tipfamily@@\endcsname\ignorespaces}wherefthehfamilyiandhsizeishouldbMeselectedfromthefollo!wingtable.)r#ݟωff㲫 ͤ} ff͟Feamily ffEs10#} ffs11#} ffs12#} ffzff㲫ͤ} fffzxy ff2ps: SDict begin xyc end h0" {3072 10 /xy AB}xy{$BYps: SDict begin xyc end h0" {3072 /XT tt}xy h1" {9.5 0.0 l}xy h/" {9.5 0.0 l}xyTzps: SDict begin xyc endh0" {-1024 F d}xy h0" {3072 /Xt tT}xy͟h1" {8.8 0.0 l}xy͟h/" {8.8 0.0 l}xy͟h0" {8.8 0.0 l}xyiz} ffops: SDict begin xyc end h0" {3072 10 /xy AB}xy{$Yps: SDict begin xyc end h0" {3072 /XT tt}xy h1" {9.5 0.0 l}xy h/" {9.5 0.0 l}xyyps: SDict begin xyc endh0" {-1024 F d}xy h0" {3072 /Xt tT}xy͟h1" {8.8 0.0 l}xy͟h/" {8.8 0.0 l}xy͟h0" {8.8 0.0 l}xyy} ffps: SDict begin xyc end h0" {3072 10 /xy AB}xy{$Yps: SDict begin xyc end h0" {3072 /XT tt}xy h1" {9.5 0.0 l}xy h/" {9.5 0.0 l}xyxps: SDict begin xyc endh0" {-1024 F d}xy h0" {3072 /Xt tT}xy͟h1" {8.8 0.0 l}xy͟h/" {8.8 0.0 l}xy͟h0" {8.8 0.0 l}xyx} ff ͤ} fffzcm ff2ps: SDict begin xyc end h0" {3072 10 /cm AB}xy{$BYps: SDict begin xyc end h0" {3072 /XT tt}xy h1" {9.5 0.0 l}xy h/" {9.5 0.0 l}xyTzps: SDict begin xyc endh0" {-1024 F d}xy h0" {3072 /Xt tT}xy͟h1" {8.8 0.0 l}xy͟h/" {8.8 0.0 l}xy͟h0" {8.8 0.0 l}xyiz} ffops: SDict begin xyc end h0" {3072 11 /cm AB}xy{$Yps: SDict begin xyc end h0" {3072 /XT tt}xy h1" {9.5 0.0 l}xy h/" {9.5 0.0 l}xyyps: SDict begin xyc endh0" {-1024 F d}xy h0" {3072 /Xt tT}xy͟h1" {8.8 0.0 l}xy͟h/" {8.8 0.0 l}xy͟h0" {8.8 0.0 l}xyy} ffps: SDict begin xyc end h0" {3072 12 /cm AB}xy{$Yps: SDict begin xyc end h0" {3072 /XT tt}xy h1" {9.5 0.0 l}xy h/" {9.5 0.0 l}xyxps: SDict begin xyc endh0" {-1024 F d}xy h0" {3072 /Xt tT}xy͟h1" {8.8 0.0 l}xy͟h/" {8.8 0.0 l}xy͟h0" {8.8 0.0 l}xyx} ffͤ} fffzeu ff3ps: SDict begin xyc end h0" {3072 10 /eu AB}xy{$C?{ps: SDict begin xyc end h0" {3072 /ET tt}xy h1" {10.5 0.0 l}xy h/" {10.5 0.0 l}xyTeps: SDict begin xyc endh0" {-1024 F d}xy h0" {3072 /ET tT}xy h1" {9.6 0.0 l}xy h/" {9.6 0.0 l}xy h0" {9.6 0.0 l}xyi{} ffpps: SDict begin xyc end h0" {3072 11 /eu AB}xy{$?zps: SDict begin xyc end h0" {3072 /ET tt}xy h1" {10.5 0.0 l}xy h/" {10.5 0.0 l}xyeps: SDict begin xyc endh0" {-1024 F d}xy h0" {3072 /ET tT}xy h1" {9.6 0.0 l}xy h/" {9.6 0.0 l}xy h0" {9.6 0.0 l}xyz} ffps: SDict begin xyc end h0" {3072 12 /eu AB}xy{$?yps: SDict begin xyc end h0" {3072 /ET tt}xy h1" {10.5 0.0 l}xy h/" {10.5 0.0 l}xyeps: SDict begin xyc endh0" {-1024 F d}xy h0" {3072 /ET tT}xy h1" {9.6 0.0 l}xy h/" {9.6 0.0 l}xy h0" {9.6 0.0 l}xyy} ffff㲫p*tj216?KlCHAPTERf2.CEXTENSIONS??hwThe?tableisreallyencoMdedincon!trolsequences\tipfamilyAhfamilyithatlookv!erymuchalike sincexallthecurren!tlyexistingcombinationsaremerelyalternativefonts.Thisislikelytochange,ho!wever,f.3.. @ ^Firstcmӹ,'Gi.e.,computermoMdern:jthesearesimpli edb!ythefactthatwecanusethenormaldoublearro!ws.P115\xydefcsname@{tipfamilycm}{\loadtipfonts@116K\let\tip@=\tip@cm\let\atip@=\atip@cm\let\btip@=\btip@cm117K\let\Tip@=\Tip@xy\let\Ttip@=\Ttip@xy\def\tipjot@{.2em}}119\xydef@\loadtipfonts@{\edef\next##1##2{##1=xy\tipfamily@@##2\tipsize@@}%120K\next{\font\xy@@atfont}{at}121K\next{\font\xy@@btfont}{bt}122}124\xydef@\tip@cm{\activatetips@\tip@x\tip@@}125\xydef@\atip@cm{\activatetips@\tip@x\atip@@}126\xydef@\btip@cm{\activatetips@\tip@x\btip@@}128\xydef@\activatetips@{\let\xyatipfont=\xy@@atfont\let\xybtipfont=\xy@@btfont}NextYEulertips:Duthesingletipsmerelyreusethecm2coMdeexceptforthesligtlysmallerdistancebMet!weenfdoubletips;thedoublearro!wshavetobMerecodedtomimicthesteeperEulerappearance.136\xydefcsname@{tipfamilyeu}{\loadtipfonts@137K\let\tip@=\tip@cm\let\atip@=\atip@cm\let\btip@=\btip@cm138K\let\Tip@=\Tip@eu\let\Ttip@=\Ttip@eu\def\tipjot@{.15em}}140\xydef@\Tip@eu{\kern1.5pt\vruleheight1.5ptdepth1.5ptwidth\z@141K\Tip@@eu\kern1.5pt\egroup142K\U@c=1.5pt\D@c=1.5pt\L@c=1.5pt\R@c=1.5pt\Edge@c={\circleEdge}%143K\Invisible@false\Hidden@false\def\Leftness@{.5}\def\Upness@{.5}%144K\def\Drop@@{\styledboxz@}\def\Connect@@{\straight@{\dottedSpread@\jot}}}146\xydef@\Tip@@eu{\count@=\DirectionChar147K\advance\count@-10\ifnum\count@<\z@\advance\count@128\fi148K\xyatipfont\char\count@149K\advance\count@20\ifnum127<\count@\advance\count@-128\fi150K\xybtipfont\char\count@}152\xydef@\Ttip@eu{\kern2.4pt\vruleheight2.4ptdepth2.4ptwidth\z@153K\Ttip@@eu\kern2.4pt\egroup154K\U@c=2.4pt\D@c=2.4pt\L@c=2.4pt\R@c=2.4pt\Edge@c={\circleEdge}%155K\Invisible@false\Hidden@false156K\def\Leftness@{.5}\def\Upness@{.5}%157K\def\Drop@@{\styledboxz@}\def\Connect@@{\straight@{\dottedSpread@\jot}}}159\xydef@\Ttip@@eu{%160K\setboxz@h\bgroup\reverseDirection@\line@\wdz@=\z@\ht\z@=\z@\dp\z@=\z@161K\kern-\L@c\boxz@\kern\L@c\Tip@@eu}Oncefaselectionismade,thefollo!wingcommandsareavdDailable: ffd _1$\UseTipsactivdDatefselectedtips_1$\NoTipsdeactivdDateʉffd'l174\xydef@\UseTips{\csnametipfamily\tipfamily@@\endcsname}2*tj2.4.CLINEfSTYLESEXTENSION+_&217??hw176\xydef@\NoTips{\let\tip@=\tip@xy\let\atip@=\atip@xy\let\btip@=\btip@xy 177K\let\Tip@=\Tip@xy\let\Ttip@=\Ttip@xy\let\tipjot@=\tipjot@xy}TheyeareloMcalandth!uscanbeswitc!hedonand/oro forindividualpicturesusingtheT,[wEB Xgroupingmec!hanism,fe.g.,P\SelectTips{cm}{10}\xy*{}\arK@{*{\UseTips\dir_{<<}}-*{\NoTips\dir{>}}}K(20,5)*{}\endxywillft!ypMeset΍mps: SDict begin xyc endݟ5" {-768 10 /cm A}xyh0" {-768 10 /cm A}xyh0" {0.0 0.0 l}xy8缟.A" {3328 10 /xy AB}xy8缟.A" {56.90521 14.2263 l}xy8缟.A" {0.0 0.0 l}xyregardlessfofwhic!htipsareusedotherwiseinthedoMcument.󍍑2.3.1 End&log6204\xyendinputP206%$Log:xytips.doc,v$207%Revision3.3 T1996/12/1904:12:13krisrose208%Newforthismaintenancerelease.209%210%Generalisationofxycmtip.doc,v3.11995/09/0520:31:32krisExpkrisrose211%212%Revision3.1 T1995/09/0520:31:32kris213%Releasing!214%215%Revision3.0 T1995/07/0720:14:21kris216%Majorreleasew/newUser'sGuide!217%218%Revision2.13 T1995/07/0415:11:17kris219%Readytoreleasev3?220%221%Revision2.12 T1994/10/2511:34:25kris222%Interimreleasejustbeforev3[workswithAMS-LaTeX1.2]...223%224%Revision2.6 T1993/10/2120:36:09kris225%NEWfiletogoinversion2.7!226%227%Extractedfromxypic.doc2.6.1.1.y썍2.4r|LineffstylesextensionӍV ers.p3.6Tb9yRossMoQorehross@mpGce.mq.edu.aui*GThis|extensionpro!videstheabilitytorequestvdDariouse ectsrelatedtotheappMearanceofstraightlines;fe.g..thic!kness,non-standarddashing,andcolour._Header:1%%$Id:xyline.doc,v3.61998/03/0601:28:05krisroseExp$*tj218?KlCHAPTERf2.CEXTENSIONS??hw2%% 3%%Xy-pic``LineWidth''extension.4%%Copyright(c)1993-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose T9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{line}{Linestylesextension}{\stripRCS$Revision:3.6$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}These9aree ectswhic!harenotnormallyavdDailablewithinT,[wEB X.UInsteadtheyrequireasuitable`bac!k-end''optiontoprovidethenecessary\special5Ecommands,orextrafonts,togetherwithappro-priatefcommandstoimplemen!tthee ects.Thuso%ps: SDict begin xyc end*xDUsingMthisextensionwillha!veMnoe ectontheoutput Bo4unlessMusedwithabac!kendMthatexplicitlysuppMortsit.h0z4" {0.0 196.47948 -13.88919 -196.47946 13.88918 ov}xyTۍThefextensionpro!videsspMeciale ectsthatcanbeusedwithan!yNaXY-pichobjecti,byde ning[KhshapMei] modi ers.]The&Nmodi cationislocaltothehobjecticurren!tlybeingbuilt,FGsowillha!venoe ectfifthisobjectisnev!eractuallyused.ÍAdjusting?linethictkness 5The3follo!wingtableliststhemoMdi ersprimarilytoalterthethicknessof[linesusedb!yC]Msetfthic!knesstohdimeniT[Z|`t9hdimeni]MalsofsetstohdimeniT[Z|`t9=f3hw!ordi]Mmak!ef[ fhwordi]setfcurrentstylesettingsT[Z|`t9*]Mreusefpreviousst!yleT[butt]Mbuttfcapatends*tj2.4.CLINEfSTYLESEXTENSION+_&219??hw8[roundcap]pfroundfcapatends 8[projcap]pfprojectingfsquarecap.&ffd@rLatersettingsofthelinewidtho!verrideearliersettings;Qm!ultiplecallsto[thicker];Tand[thinner]compMound,nbutF%theothervdDarian!tssetanabsolutethickness.Theline-thicknessspMeci cationa ectsarro!w-tips;aswellasthethicknessofstraightlinesandcurves.yThreekindsofline-capsareavdDailable;theyfarediscussedbMelo!winthesectionon`poly-lines'.%^!3ps: SDict begin xyc end}ߍes/DtqGcmr17C}ߍP h0(ps: SDict begin {pu 0.39998 lw}xyg end " {0.0 0.0 l}xyps: SDict begin { pp}xyf end(ps: SDict begin {pu 0.39998 lw}xyg endS" {3072 10 /xy AB}xyps: SDict begin { pp}xyf end(ps: SDict begin {pu 0.39998 lw}xyg endS" {70.56253 0.0 l}xyps: SDict begin { pp}xyf end(ps: SDict begin {pu 0.39998 lw}xyg endS" {0.0 0.0 l}xyps: SDict begin { pp}xyf end(ps: SDict begin {pu 1.59991 lw}xyg end " {0.0 0.0 l}xyps: SDict begin { pp}xyf end(ps: SDict begin {pu 1.59991 lw}xyg endS" {3072 10 /xy AB}xyps: SDict begin { pp}xyf end(ps: SDict begin {pu 1.59991 lw}xyg endS" {70.56253 0.0 l}xyps: SDict begin { pp}xyf end(ps: SDict begin {pu 1.59991 lw}xyg endS" {0.0 0.0 l}xyps: SDict begin { pp}xyf end(ps: SDict begin {pu 3.99979 lw}xyg end " {0.0 0.0 l}xyps: SDict begin { pp}xyf end(ps: SDict begin {pu 3.99979 lw}xyg endS" {3072 10 /xy AB}xyps: SDict begin { pp}xyf end(ps: SDict begin {pu 3.99979 lw}xyg endS" {70.56253 0.0 l}xyps: SDict begin { pp}xyf end(ps: SDict begin {pu 3.99979 lw}xyg endS" {0.0 0.0 l}xyps: SDict begin { pp}xyf end(ps: SDict begin {pu 7.99957 lw}xyg end " {0.0 0.0 l}xyps: SDict begin { pp}xyf end(ps: SDict begin {pu 7.99957 lw}xyg endS" {3072 10 /xy AB}xyps: SDict begin { pp}xyf end(ps: SDict begin {pu 7.99957 lw}xyg endS" {70.56253 0.0 l}xyps: SDict begin { pp}xyf end(ps: SDict begin {pu 7.99957 lw}xyg endS" {0.0 0.0 l}xyps: SDict begin { pp}xyf end?b \xy/r8pc/:*++\txt\huge{C}="c",0*++\txt\huge{P}="p",,"p",{\ar@*{[|(1)]}"p";"c"<20pt>},"p",{\ar@*{[|(4)]}"p";"c"<14pt>},"p",{\ar@*{[|(10)]}"p";"c"<4pt>},"p",{\ar@*{[|(20)]}"p";"c"<-16pt>}\endxyˍUsingXthePostScriptbac!k-end,7thesizeofthearrow-headgrowsaestheticallywiththethicknessof)thelineusedtodra!wit.ThisgrowthvdDariesasthesquare-roMotofthethickness;thusforverythicklinesf(20+timesnormal)thearro!wheadbMeginstomergewiththestem. ݍLoadfthestyle$ extensiontoestablishthenecessaryinfra-structure.P113%\xydefcsname@{shape[|...]}#1{\xyFN@\xywidthchar@#1@@}%114\xydefcsname@{*stylechar@|@}#1{\xyFN@\xywidthchar@#1@@}%116%\xydefcsname@{shape[thinner]}{\xyshape@thinner@}117%\xydefcsname@{shape[thicker]}{\xyshape@thicker@}118\xydefcsname@{style[thinner]}{\xyshape@thinner@}119\xydefcsname@{style[thicker]}{\xyshape@thicker@}"׍Implementtation 5Recordthelinethic!knessloMcallyinadimenregister.$TheinitialvdDalueisreadfromthexydash107"fon!t.Eachtime\xylinethick@Sisc!hanged,͹itspreviousvdDalueisstoredastheexpansionfof\xyprevwidth@@T!,incasethisisneededb!yaspMeci cback-end.132\xynew@{dimen}\xylinethick@\xylinethick@=\xydashw@134\xydef@\xyshape@thicker@{\xylinewidth@i{\multiply\xylinethick@\tw@}}135\xydef@\xyshape@thinner@{\xylinewidth@i{\divide\xylinethick@\tw@}}137\xydef@\xylinewidth@i#1{\edef\xyprevwidth@@{\the\xylinethick@}%138#1\edef\next@{\xylinethick@=\the\xylinethick@}%139\edef\next@ii{\noexpand\addtotoks@{%140T\noexpand\xylinewidth@@{\next@}{\xyprevwidth@@}}}%141\next@ii}v144\xydef@\xywidthchar@{%145\ifx\space@\next\expandafter\DN@\space{\xyFN@\xywidthchar@}%gobblespaces146%\else\ifx@\next\DN@@@{\addtotoks@{\checkXyStyle@}}%147\else\ifx@\next\DN@@@{\checkXyStyle@}%148\else\ifx(\next\DN@(##1)##2@@{%p*tj220?KlCHAPTERf2.CEXTENSIONS??hw149 m\xylinewidth@i{\xylinethick@=##1\xydashw@}}% 150K\else\addLT@\ifx\next\addGT@{\addLT@\DN@##1}##2@@{%151 m\xylinewidth@i{\xylinethick@=##1\relax}}%152%\else\ifx*\next\DN@*@@{\addtotoks@{\checkXyStyle@}}%153%\else\ifx*\next\DN@*@@{\checkXyStyle@}%154K\else\ifx*\next\DN@*@@{\recoverXyStyle@}%155%\else\addEQ@\ifx\next\addEQ@\DN@##1@@{%156% T\addtotoks@{\checkXyStyle@\xynamestyle@{##1}}}%157K\else\addEQ@\ifx\next\addEQ@\DN@##1@@{\checkXyStyle@158 m\addtotoks@{\xynamestyle@{##1}}}%159K\else\ifxC\next\DN@C##1@@{\xysetlinecap@{##1}@}%160K\else\ifxJ\next\DN@J##1@@{\xysetlinejoin@{##1}@}%161K\else\ifxM\next\DN@M(##1)@@{\xymiterlimit@{##1}@}%162K\else\DN@##1@@{\xylinewidth@i{\xylinethick@=##1\relax}}%163K\fi\fi\fi\fi\fi\fi\fi\fi\fi\next@}Thefdiagramin gure2.4,page233,usesdi eren!tline-thicknessesandcolours.+Ptoly-lines 5Bya`pMoly-line'w!emeanapathbuiltfromstraightlinesegmentshavingnogapswhereeac!hrsegmentabutsthenext.kThepMoly-linecouldbetheedgesofapolygon,5eitherclosedoropenifthefend-pMoin!tsaredi erent. ThepreasonforconsideringapMoly-lineasaseparatehobjecti,ratherthansimplyasahpathibuiltfromystraigh!tlines,bMecomesapparentonlywhenthelineshaveappreciablethickness.Thentherearesev!eral4standardwaystofashionthe`joins'(wheresegmentsmeet).IAlsotheshapMeofthe`caps'ateitherfendofthepMoly-linecanbealtered.Theffollo!wingmoMdi ersareusedtodeterminetheshapesoftheline`caps'and`joins':#ffd DV0D[[|aJgoBhvdDali]joinfst!yle,hvdDali=0,1or2V0D[mitre]mitre-join,fsameas[ f|%J0]V0D[roundjoin]roundfjoin,sameas[ f|%J1]V0D[bevel]bMev!el-join,fsameas[ f|%J2]V0D[[|aCgoBhvdDali]end-cap,fhvdDali=0,1or2V0D[butt]\butt"fcap,sameas[ f|%C0]V0D[roundcap]roundfcap,sameas[ f|%C1]V0D[projcap]\projectingfsquare"cap,samefas[ f|%C2]MV0D[[|aM(m.hn!umi)]setfmitrelimittohn!umi 1 ffd7!nThesee ectsarecurren!tlyimplementedonlywiththePostScriptback-endorwhenusing\xypolyline(describMedbelo!w)withaPostScripthdriveri.DInthiscasethe`cap'settingcanbMeappliedtoanysegmen!t,tZstraightgorcurv!ed,whetherpartofapMoly-lineornot;|ho!wevergthe`join'settingappliesonlytofpMoly-lines.Arro!w-tipsarenota ected.Thedefaultsaretouseroundjoinsandround-capends.Adjustinggthemiter-limita ectsho!wfarmitersareallowedtoprotrudewhentwowidelinesmeetatsmallangles.$TThehn!umiisinunitsoftheline-thickness.$THighervdDaluesmeanusingbMevelsonlyatsmallerangles,whilethevdDalueof1isequivalen!ttousingbMevelsatallangles.Thedefaultmiter-limitisf10.Curren!tfvdDaluesarestoredincasetheseareneededwithinnestedpMortionsofdiagrams.P221\xydef@\xylinecap@{2}222\xydef@\xylinejoin@{2}223\xydef@\xylinemiter@{10}=*tj2.4.CLINEfSTYLESEXTENSION+_&221??hwRecognisefk!eywordsfor`line-caps'and`line-joins':P251\xydefcsname@{style[bevel]}{\xyshape@bevel@} 252\xydefcsname@{style[roundjoin]}{\xyshape@rdjoin@}253\xydefcsname@{style[miter]}{\xyshape@miter@}254%255\xydefcsname@{style[butt]}{\xyshape@butt@}256\xydefcsname@{style[roundcap]}{\xyshape@rdcap@}257\xydefcsname@{style[projcap]}{\xyshape@projcap@}v261\xydef@\xyshape@butt@{\xysetlinecap@@0}262\xydef@\xyshape@rdcap@{\xysetlinecap@@1}263\xydef@\xyshape@projcap@{\xysetlinecap@@2}265\xydef@\xyshape@miter@{\xysetlinejoin@@0}266\xydef@\xyshape@rdjoin@{\xysetlinejoin@@1}267\xydef@\xyshape@bevel@{\xysetlinejoin@@2}269\xydef@\xysetlinecap@#1@{\DN@ii{#1}\count@=#1\relax270K\expandafter\DN@\expandafter{\the\count@}%271K\ifx\next@\next@ii\else272 m\xywarning@{ignoringextratokensinline-cap:\next@}\fi273K\expandafter\xysetlinecap@@\expandafter{\next@}}275\xydef@\xysetlinejoin@#1@{\DN@ii{#1}\count@=#1\relax276K\expandafter\DN@\expandafter{\the\count@}%277K\ifx\next@\next@ii\else278 m\xywarning@{ignoringextratokensinline-join:\next@}\fi279K\expandafter\xysetlinejoin@@\expandafter{\next@}}281\xydef@\xysetmiterlimit@#1@{\DN@ii{#1}\dimen@=#1\p@\relax282K\edef\next@{\expandafter\removePT@\the\dimen@}%283K\ifx\next@\next@ii\else284 m\xywarning@{ignoringextratokensinmiter-limit:\next@}\fi285K\expandafter\xysetmiterlimit@@\expandafter{\next@}}"Thesefusethemoresophisticatedapproac!hthatiseasiertoadjustfordi erenthdriveris.294\xydef@\xysetlinecap@@#1{\xy@linecap@i{\def\xylinecap@{#1}}}295\xydef@\xysetlinejoin@@#1{\xy@linejoin@i{\def\xylinejoin@{#1}}}296\xydef@\xysetmiterlimit@@#1{%297K\xy@linemiter@i{\def\xylinemiter@{#1}}}299\xydef@\xy@linecap@i#1{#1\addtotoks@{\xy@linecap@@{#1}}}300\xydef@\xy@linejoin@i#1{#1\addtotoks@{\xy@linejoin@{#1}}}301\xydef@\xy@linemiter@i#1{#1\addtotoks@{\xy@linemiter@{#1}}}"Implemen!tationfofline-caps:307\xydef@\xy@linecap@#1{\checkXyStyle@\edef\xyprevcap@@{\xylinecap@}%308K#1\let\prexylinecap@=\prexylinecap@@\let\postxylinecap@=\postxylinecap@@309K\applyLIFOstyle@\prexylinecap@{\xylinecap@}%310 m\postxylinecap@{\xyprevcap@@}}312\xydef@\prexylinecap@@{\let\prexylinecap@=\eat@313K\let\postxylinecap@=\postxylinecap@@\outputxylinecap@}314\xydef@\postxylinecap@@{\let\postxylinecap@=\eat@*tj222?KlCHAPTERf2.CEXTENSIONS??hw315K\let\prexylinecap@=\prexylinecap@@\resetxylinecap@@} 316\xylet@\prexylinecap@=\prexylinecap@@317\xylet@\postxylinecap@=\postxylinecap@@P319\xydef@\outputxylinecap@#1{\xycapSpecial@@{#1}}320\xydef@\resetxylinecap@#1{\resetxylinecap@i{#1}\outputxylinecap@{#1}}321\xydef@\resetxylinecap@i#1{\def\xylinecap@{#1}}322\xylet@\resetxylinecap@@=\resetxylinecap@324\xylet@\xycapSpecial@@=\eat@1Implemen!tationfofline-joins:330\xydef@\xy@linejoin@#1{\checkXyStyle@331K\edef\xyprevjoin@@{\xylinejoin@}#1%332K\let\prexylinejoin@=\prexylinejoin@@333K\let\postxylinejoin@=\postxylinejoin@@334K\applyLIFOstyle@\prexylinejoin@{\xylinejoin@}%335 m\postxylinecap@{\xyprevjoin@@}}337\xydef@\prexylinejoin@@{\let\prexylinejoin@=\eat@338K\let\postxylinejoin@=\postxylinejoin@@\outputxylinejoin@}339\xydef@\postxylinejoin@@{\let\postxylinejoin@=\eat@340K\let\prexylinejoin@=\prexylinejoin@@\resetxylinejoin@@}341\xylet@\prexylinejoin@=\prexylinejoin@@342\xylet@\postxylinejoin@=\postxylinejoin@@344\xydef@\outputxylinejoin@#1{\xyjoinSpecial@@{#1}}345\xydef@\resetxylinejoin@#1{\resetxylinejoin@i{#1}\outputxylinejoin@{#1}}346\xydef@\resetxylinejoin@i#1{\def\xylinejoin@{#1}}347\xylet@\resetxylinejoin@@=\resetxylinejoin@349\xylet@\xyjoinSpecial@@=\eat@1Implemen!tationfofmiter-limit:355\xydef@\xy@linemiter@#1{\checkXyStyle@356K\edef\xyprevmiter@@{\xylinemiter@}#1%357K\let\prexylinemiter@=\prexylinemiter@@358K\let\postxylinemiter@=\postxylinemiter@@359K\applyLIFOstyle@\prexylinemiter@{\xylinemiter@}%360 m\postxylinecap@{\xyprevmiter@@}}362\xydef@\prexylinemiter@@{\let\prexylinemiter@=\eat@363K\let\postxylinemiter@=\postxylinemiter@@\outputxylinemiter@}364\xydef@\postxylinemiter@@{\let\postxylinemiter@=\eat@365K\let\prexylinemiter@=\prexylinemiter@@\resetxylinemiter@@}366\xylet@\prexylinemiter@=\prexylinemiter@@367\xylet@\postxylinemiter@=\postxylinemiter@@369\xydef@\outputxylinemiter@#1{\xymiterSpecial@@{#1}}370\xydef@\resetxylinemiter@#1{\resetxylinemiter@i{#1}\outputxylinemiter@{#1}}371\xydef@\resetxylinemiter@i#1{\def\xylinemiter@{#1}}372\xylet@\resetxylinemiter@@=\resetxylinemiter@374\xylet@\xymiterSpecial@@=\eat@1The.pathtak!enbythe`pMoly-line'thisisreadasthelistofhposiitionsinthecurren!t`stack',ignoringA*tj2.4.CLINEfSTYLESEXTENSION+_&223??hwsizeDexten!ts.][thicker]\xybox{%K*+(3,2){}="X";@={p+CU,p+LU,p+LD,p+RD,p+RU,p+CU}K,{0*[miter]\xypolyline{}}K,{\xypolyline{*}},@i@),"X",*+(2.5,1.5){}="X",@={!CU,!LU,!LD,!RD,!RU,!CU}K,{0*[gray][roundjoin]\xypolyline{}}K,{0*[gray]\xypolyline{*}},@i@),"X",*+(2,1){}="X",@={!CU,!LU,!LD,!RD,!RU,!CU}K,{0*[white]\xypolyline{*}}K,{0*[bevel]\xypolyline{}},@i@),"X"-(.7,0)*++\txt\LARGE{A}="a","X"+(.7,0)*++\txt\LARGE{B}="b",{\ar@{-}@*{[butt][thinner]}"a";"b"<1pc>},{\ar@{-}@*{[roundcap][thinner]}"a";"b"},{\ar@{-}@*{[projcap][thinner]}"a";"b"<-1pc>}}}Notetheuseof{0*[...]\xypolyline{..}}.toapplyst!yle-moMdi erstoapolyline.The@={!..}methoMdrforloadingthestac!kgivesequivdDalentresultstousing;@={p+..}7ll,since\xypolylineF2ignoresthefedgeexten!tsofeachhpMosiinthestack.NotePalsothattheargumen!t#1 to\xypolylineEa ectswhatistypMeset.WAllowableargumentsare: rffd TvH2|\xypolyline{}solidflinev*tj224?KlCHAPTERf2.CEXTENSIONS??hw+\xypolyline{.}2Ϲdottedfline +\xypolyline{-}2Ϲdashedfline+\xypolyline{*}2Ϲ llfenclosedpMolygon+\xypolyline{?}2Ϲ llfenclosedpMolygonusingev!en-oddrule+\xypolyline{{*}}2Ϲusef\dir{*}/rforflines+\xypolyline{}2Ϲusingf\dir{} ffd=GThelattercasesonehas**\dir{...}FDܹbMeingusedtoconnectthev!erticesofthepolyline,with{{*}}bMeingFneededtoget**\dir{*}6@.(Similarly**\dir(isusedwhenahdriv!eriisnotavdDailabletospMeci callysuppMort,polylines;p2inparticularthet!wo` ll'options*and?willresultinadottedpMolygonoutlinethefregionin!tendedtobMe lled.Inallcasesitisuptotheusertoloadthestac!kbMeforecalling\xypolyline{H.3..}ݹ.AparticularlycommoncaseistheoutlineofanexistingkAXY -pichobjecti,asintheexampleabMo!ve.CFeutureextensionsto;\frmuwill;pro!videasimpli edmechanismwherebytheuserneednotcall\xypolylineGexplicitlyforfsuc!he ects.P464\xylet@\xypolyline@Special=\eat@465\xylet@\xypolyfill@Special=\eat@466\xylet@\xypolyeofill@Special=\eat@467\xylet@\xypolydot@Special=\eat@468\xylet@\xypolydash@Special=\eat@470\xydef@\UnloadpolySpecials@{%471\let\xypolyline@Special=\eat@472\let\xypolyfill@Special=\eat@473\let\xypolyeofill@Special=\eat@474\let\xypolydot@Special=\eat@475\let\xypolydash@Special=\eat@476}478\xydef@\xy@polystyle@#1{%479\let\poly@style@@=\xypolyline@Special480\DNii@{#1}\ifx\nextii@\empty481\else\DN@{*}\ifx\next@\nextii@\let\poly@style@@=\xypolyfill@Special482\else\DN@{?}\ifx\next@\nextii@\let\poly@style@@=\xypolyeofill@Special483\else\expandafter\DN@\expandafter{\addDOT@{}}\ifx\next@\nextii@484T\let\poly@style@@=\xypolydot@Special485\else\expandafter\DN@\expandafter{\addDASH@{}}\ifx\next@\nextii@486T\let\poly@style@@=\xypolydash@Special487\else\DN@{{*}}\ifx\next@\nextii@\def\poly@style@@{\xypolystraight@{*}}%488\else\def\poly@style@@{\xypolystraight@{#1}}%489\fi\fi\fi\fi\fi\fi}491\xydef@\xydopoly@style{\expandafter\poly@style@@\expandafter{\xyps@list}}492\xydef@\xynopolystyle@#1#2{\xyundefinedLine@{polyline}{{#1}}@@}WhenfthereisnospMecialsupportthishandlesthevdDariouscasesusingordinarythinlinet!ypes.501\xydef@\xypolynospec@#1{\DNii@{#1}%502\ifx\nextii@\empty\def\poly@style@@{\xypolystraight@{-}}%503\else\DN@{.}\ifx\next@\nextii@\def\poly@style@@{\xypolystraight@{.}}%504\else\DN@{-}\ifx\next@\nextii@\def\poly@style@@{\xypolystraight@{--}}%505\else\DN@{*}\ifx\next@\nextii@\def\poly@style@@{\xypolystraight@{.}}%506\else\DN@{?}\ifx\next@\nextii@\def\poly@style@@{\xypolystraight@{.}}%*tj2.4.CLINEfSTYLESEXTENSION+_&225??hw507K\else\DN@{{*}}\ifx\next@\nextii@\def\poly@style@@{\xypolystraight@{*}}% 508K\else\def\poly@style@@{\xypolystraight@{#1}}%509K\fi\fi\fi\fi\fi\fi}ߍGobble!=thecollectedpMositionsin{\xyps@list}J5;ިreco!ver!=thev!erticesfromthestack,thensetstraigh!tflinesintheappropriatestyle.P516\xydef@\xypolystraight@#1#2{%517K\enter@{\pfromthep@\basefromthebase@\cfromthec@}%518K\edef\smapp@@{\s@bot}\csnameS@0\endcsname\czeroEdge@\pfromc@\def\smapp@@{0}%519K\smapxy@i{\czeroEdge@\enter@{\pfromthec@}{\connect@\dir{#1}}\leave@}\leave@}InitiallyfpMoly-linesareuninstalled,un!tilloadedbyahdriveri.P527\xylet@\xy@polystyle@@=\xypolynospec@529\xydef@\UninstallPolylines@{% 530K\UnloadpolySpecials@531K\let\xy@polystyle@@=\xypolynospec@}532\UninstallPolylines@)Installation 5InitiallyfthereisnosuppMortfortheactuale ects.P541\xydef@\xyundefinedLine@#1#2@@{%542K\xywarning@{The#1#2effectisnotimplementedwiththecurrentdriver.}}%544\xydef@\xynolinewidth@#1#2{%545K\xyundefinedLine@{linewidth}{\the\xylinethick@}@@}%546\xydef@\xynolinecap@#1{\xyundefinedLine@{linecap}{\xylinecap@}@@}%547\xydef@\xynolinejoin@#1{\xyundefinedLine@{linejoin}{\xylinejoin@}@@}%548\xydef@\xynolinemiter@#1{\xyundefinedLine@{miterlimit}{\xylinemiter@}@@}%ߍNothingcfurthercanbMedoneunlessallo!wedcbyaspMeci chdriveri,whichmustestablishanalter-nativ!efexpansionstobMeboundto\xylinewidth@@Wandtheotherhooks.556\xylet@\xylinewidth@@=\xynolinewidth@557\xylet@\xy@linecap@@=\xynolinecap@558\xylet@\xy@linejoin@@=\xynolinejoin@559\xylet@\xy@linemiter@@=\xynolinemiter@561\xydef@\UnloadLine@#1{%562K\ifx#1\relax\else\xyunload@{linewidthextension}\fi563K\let\resetxyline@@=\resetxyline@564K\let\resetxylinecap@@=\resetxylinecap@565K\let\resetxylinejoin@@=\resetxylinejoin@566K\let\resetxylinemiter@@=\resetxylinemiter@567K\let\transxyline@@=\DN@568K\let\xylineSpecial@@=\eat@569K\let\xycapSpecial@@=\eat@570K\let\xyjoinSpecial@@=\eat@571K\let\xymiterSpecial@@=\eat@572K\let\xylinewidth@@=\xynolinewidth@573K\let\xy@linecap@@=\xynolinecap@574K\let\xy@linejoin@@=\xynolinejoin@575K\let\xy@linemiter@@=\xynolinemiter@ à*tj226?KlCHAPTERf2.CEXTENSIONS??hw576K\UninstallPolylines@}P578\xyaddunsupport{line}{\UnloadLine@\relax}:ThisŝisapMossiblealternativ!efor\xylinewidth@@S@.IndeeditisusedwiththePostScriptsupport, whic!hfthenrede nesjust\xylineSpecial@@_.587\xydef@\xylinewidth@#1#2{\checkXyStyle@588K#1\let\prexyline@=\prexyline@@\let\postxyline@=\postxyline@@589K\applyLIFOstyle@\prexyline@{\the\xylinethick@}\postxyline@{#2}}590\xydef@\prexyline@@{\let\prexyline@=\eat@591K\let\postxyline@=\postxyline@@\outputxyline@}592\xydef@\postxyline@@{\let\postxyline@=\eat@593K\let\prexyline@=\prexyline@@\resetxyline@@}594\xylet@\prexyline@=\prexyline@@595\xylet@\postxyline@=\postxyline@@597\xydef@\resetxyline@#1{\resetxyline@i{#1}\outputxyline@{#1}}598\xydef@\resetxyline@i#1{\xylinethick@=#1\relax}599\xydef@\outputxyline@#1{\transxyline@@{#1}%600K\expandafter\xylineSpecial@@\expandafter{\next@}}601\xylet@\resetxyline@@=\resetxyline@:ThesefneedtobMereboundb!yaback-endwhichsuppMortsvdDariationintheline-thickness.608\xydef@\transxyline@#1{\edef\next@{\removePT@#1}}610\xylet@\transxyline@@=\DN@611\xylet@\xylineSpecial@@=\eat@#u荑The2end&Log619\xyendinput621%$Log:xyline.doc,v$622%Revision3.6 T1998/03/0601:28:05krisrose623%Releasing(withY&Yfonts).624%625%Revision3.3 T1996/12/1809:22:29ross626%adjustmentsforstylesnowwithinthekernelcode627%fixedproblemwithline-widths628%629%Revision3.2 T1995/09/1918:21:41ross630%Bugfixrelease.631%632%Revision3.1 T1995/09/0520:36:33ross633%Release!634%635%Revision3.0 T1995/07/0720:13:19ross636%Majorreleasew/newUser'sGuide!637%638%Revision2.13 T1995/07/0415:04:51ross639%Readyforreleaseofv3.640%641%Revision2.12 T1994/10/2503:01:14ross*tj2.5.CR!OTeATEfANDSCALEEXTENSION|227??hw642%Final3betarelease[bugfixes&AMS-LaTeXfitting]. 643%644%Revision2.11 T1994/07/0509:27:49ross645%fixeddocumentationbug646%647%Revision2.10 T1994/06/1512:46:03ross648%Secondrelease3beta.649%Colourandlinestylesavingworks;labelcolouringbugfixed.650%651%Revision2.9 T1994/06/0914:39:49ross652%Release3beta.653%654%NEWforversion2.9byRossMoore./2.5r|RotateffandScaleextension돍V ers.p3.3Tb9yRossMoQorehross@mpGce.mq.edu.aui&This^ extensionpro!videstheabilitytorequestthatanyobjectbMedisplayedrotatedatanyangleasw!ellfasscaledinvdDariousways.RHeader:P1%%$Id:xyrotate.doc,v3.31996/12/1809:40:16rossExp$2%%3%%Xy-pic``RotateandScaleextension''option.4%%Copyright(c)1993-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fi26\xyprovide{rotate}{RotateandScaleextension}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%"%*tj228?KlCHAPTERf2.CEXTENSIONS??hw28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}These9aree ectswhic!harenotnormallyavdDailablewithinT,[wEB X.UInsteadtheyrequireasuitable `bac!k-end''optiontoprovidethenecessary\special5Ecommands,orextrafonts,togetherwithappro-priatefcommandstoimplemen!tthee ects.ThusY^ps: SDict begin xyc end*xDUsingMthisextensionwillha!veMnoe ectontheoutput Bo4unlessMusedwithabac!kendMthatexplicitlysuppMortsit.h0z4" {0.0 196.47948 -13.88919 -196.47946 13.88918 ov}xy#ZF53\xydef@\xyundefinedRotate@#1#2@@{%\egroup%54K\xywarning@{The#1#2effectisnotimplementedwiththecurrentdriver.}}%PTheWextensionpro!videsspMeciale ectsthatcanbeusedwithan!yXY a-pichobjectibyde ning[KhshapMei] nmodi ers. CThemodi cationislocaltothehobjecticurren!tlybeingbuilt,{sowillha!venofe ectifthisobjectisnev!eractuallyused.The6nfollo!wingtableliststhemoMdi ersthathavesofarbMeende ned.TheycomeintwotypMes{eitherfasinglek!eyword,forak!ey-characterfwiththefollo!wingtexttreatedasasingleargument. DSffd y덍If[@]rIalignfwithcurren!tdirectionIf[@T>hdirectioni]rIalignftohdirectioniIf[@!Zhn!umbMeri]rIrotatefhn!umbMeridegreesiIf[*T>hn!umbMeri]rIscalefb!yhnumbMeriIf[*T>hn!umizxH,hnumizy ]rIscalefxandy separatelyIf[left]rIrotatefan!ticloMckwiseby90If[right]rIrotatef(cloMc!kwise)by90If[flip]rIrotatefb!y180;sameas[*-1,-1]If[dblsize]rIscaleftodoublesizeIf[halfsize]rIscaleftohalfsizeoffdBXThese[ hshapMei]modi ersXspecifytransformationsofthehobjecticurren!tlybeingbuilt. Iftheobjecthasaarectangleedgethenthesizeoftherectangleistransformedtoenclosethetransformedobject;withfacircleedgetheradiusisalteredappropriatelye.T\o'Do:ThereshouldbMean[@*]+ιformwhic!hrepeatsthesetoftransformationsappliedtothelastobjectMwhic!hhasbMeentransformed,^possiblyinanearlierdiagram.Alsoan[@=hw!ordi] formallowingafsetoftransformationstobMesa!vedfandusedlater,simplyb!yspecifying[ fhw!ordi].9Eac!htsuccessivetransformationactsupMontheresultofallprevious.IOneconsequenceofthisisthattheorderoftheshapMemodi erscanmak!easigni cantdi erenceinappMearance|ingeneral,transformations,#donotcomm!ute.Even,#successiverotationscangivedi erentsizedrectanglesiftakeninftherev!erseorder.Sometimes$-thisc!hangeofsizeisnotdesirable.W1ThefollowingcommandsareprovidedtomoMdifythisfbMeha!viour. #Bffd y덍S\NoResizing'bprev!entsfsizeadjustmen!tS\UseResizing'brestoresfsizeadjustmen!tsffd ܩP120\xydef@\NoResizing{\xyNoResizing@}121\xydef@\UseResizing{\xyUseResizing@}123\xydef@\xyNoResizing@{%124\global\let\origxyrescale@=\xyrescale@-Z*tj2.5.CR!OTeATEfANDSCALEEXTENSION|229??hw125K\global\let\origxyrotSizeMod@=\xyrotateSizeMod@ 126K\global\let\xyNoResizing@=\xyNoResizing@@127K\global\let\xyUseResizing@=\xyUseResizing@@128K\xyNoResizing@@}P130\xydef@\xyNoResizing@@{%131K\global\let\xyrescale@=\xyignorescale@132K\global\let\xyrotateSizeMod@=\xyignoreSizeMod@133K}135\xylet@\xyUseResizing@=\relax136\xydef@\xyUseResizing@@{%137K\global\let\xyrescale@=\origxyrescale@138K\global\let\xyrotateSizeMod@=\origxyrotSizeMod@139K} TheK\NoResizingEtcommandKisalsousefultoha!veKatthebMeginningofadocumen!tbeingt!ypesetusingauLdriv!erthatcannotsuppMortscalinge ects,inparticularwhenappliedtowholediagrams.JInanycase!.)AnJimplemen!tationmustde nemacroswhichare+tobMeboundtothecon!trolsequencenames\preXYtransform@dQand\postXYtransform@eι,LwhicharefprepMendedandappendedtothe\Drop@@/randConnect@@; ƹmethodsforthecurren!thobjecti.VAlso%\Drop@@08and%\Connect@@A6m!ust%bMemodi ed,Eifthishasnotalreadybeendoneasindicatedb!yf\xy@transform@Whavingfexpansion\relax&$b.185\xydef@\preXYtransform@{}186\xydef@\postXYtransform@{}188\xywarnifdefined\preXYtransform@@189\xywarnifdefined\postXYtransform@@190K\gdef\preXYtransform@@{}191K\gdef\postXYtransform@@{}192\xydef@\xy@transform@{}193\xydef@\preShape@@{}194\xydef@\postShape@@{} The3transformationsm!ustbMeimplementedbyemulatingtheadjointcoMordinatetransformations.ThisRrequiresthatcoMdebeaddedtopreXYtransform@@dinrev!erseordertotheorderofoccurrence<*tj230?KlCHAPTERf2.CEXTENSIONS??hwof-thehshapMeimodi ers.qThecodeisaddedto\postXYtransform@@o"innaturalorder,Nsothateac!h additionfto\preXYtransform@@icanbMeclosedo ,ifnecessarye,inacorrectlynestedsequence.P205\xydef@\modXYtransform@{%206K\ifx\xy@transform@\empty207 m\transformDrop@\transformConnect@\resetTransform@\fi208%\show\preShape@@209K\DN@##1{\expandafter\def\expandafter\tmp@\expandafter{##1}}%210 m\expandafter\next@\expandafter{\preShape@@}%211 m\DN@##1{\expandafter\gdef\expandafter\preXYtransform@@\expandafter{%212\tmp@##1}}\expandafter\next@\expandafter{\preXYtransform@@}%213K\DN@##1{\expandafter\def\expandafter\tmp@\expandafter{##1}}%214 m\expandafter\next@\expandafter{\postShape@@}%215 m\DN@##1{\expandafter\gdef\expandafter\postXYtransform@@\expandafter{%216\postXYtransform@@##1}}\expandafter\next@\expandafter{\tmp@}}%218\xydef@\transformDrop@{\let\xy@transform@=\relax219K\expandafter\def\expandafter\Drop@@\expandafter{%220K\expandafter\preXYtransform@\Drop@@\postXYtransform@}}222\xydef@\transformConnect@{\let\xy@transform@=\relax223K\expandafter\def\expandafter\Connect@@\expandafter{%224K\expandafter\preXYtransform@\Connect@@\postXYtransform@}}226\xydef@\resetTransform@{\gdef\preXYtransform@@{}\gdef\postXYtransform@@{}}LBug:TheV'referencepMoin!tdoesnotmo!veV'correctlyinPostScriptwhenashiftmodi erhasbeenappliedfbMeforearotation.Theobjectprin!tsoutsideofitsbounding\rectangleEdgeT!.Fixthis!! ^Globalmacrosareused,sothatthesamest!ylescanbMereusedbysuccessiveobjectswithouthavingtofre-in!terprethshapMeimodi ers,asdescribednext.Satving}transformations 5Once7spMeci edforanhobjecti,[thecollectionoftransformationscanbeassignedaname,via[>mhnamei].Thehnameihereisan!ycollectionoflettersorothercharactersuptodtheclosing] $7.SSubsequen!tuseof[>hnamei],withthesameorotherhobjectsis,willre-establishthesa!vedtransformations,actingonthenewhobjectiwithinitialreferencepMointappropriatetothishobjecti.Note:>Suc!hVnamingsareglobalandpMermanent.TheyareintendedtoallowaparticularsetoftransformationsKtobMeeasilyrepeatedfordi eren!tobjectsinsidevdDariouspicturesanddiagramswithinthefsamedoMcumen!t.P255\xydef@\xynametransform@#1{%256K\DN@{\expandafter\gdef\expandafter#1\expandafter{\the\toks@}}\next@}#ScalingtandScaledT\ext 5ThePhshapMeimodi ercancon!taineitherasinglescalefactor, KorapairindicatingKdi eren!tfactorsinthex-andyd-directions.NegativevdDaluesareallowed,toobtainre ectionsinfthecoMordinateaxes,butnotzero.269\xydef@\xyscalechar@#1@@{\xyscalechars@#1,#1,@@}271\xydef@\xyscalechars@#1,#2,#3@@{%272K\DN@{\xyrescale@(#1,#2)}%273K\dimen@=#1\p@274K\ifdim\dimen@>\z@\else\ifdim\dimen@<\z@\else275 m\DN@{\xywarning@{invalidscalingfactors#1,#2}}%J8*tj2.5.CR!OTeATEfANDSCALEEXTENSION|231??hw276K\fi\fi T\dimen@=#2\p@ 277K\ifdim\dimen@>\z@\else\ifdim\dimen@<\z@\else278 m\DN@{\xywarning@{invalidscalingfactors#1,#2}}%279K\fi\fi\next@}P281\xydef@\xyrescale@(#1,#2){%282K\setboxz@h{\xyscale@@{#1}{#2}%283 m\dimen@=\ifx-#1\R@c\advance\dimen@-\R@c\dimen@=-\dimen@284 m\else#1\L@c\advance\dimen@-\L@c\fi285K\kern\dimen@\boxz@\kern-\dimen@}%286K\R@c=\if-#1\L@c\else#1\R@c\fi287K\L@c=\if-#1\R@c\else#1\L@c\fi288K\U@c=\if-#2\D@c\else#2\U@c\fi289K\D@c=\if-#2\U@c\else#2\D@c\fi}291\xydef@\xyignorescale@(#1,#2){\xywarning@{Ignoringrescale:#1,#2}%292K\setboxz@h{\xyscale@@{#1}{#2}\boxz@}}%ݍSomefparticularscalings.300\xydef@\xyshape@halfsize@{\xyrescale@(.5,.5)}301\xydef@\xyshape@dblsize@{\xyrescale@(2,2)}302\xydef@\xyshape@flip@{\xyrescale@(-1,-1)}303\xydef@\xyshape@vflip@{\xyrescale@(1,-1)}304\xydef@\xyshape@hflip@{\xyrescale@(-1,1)}/B֍Rotation andRotatedT\ext 5Within>[@...])xthe>...Kzare>parsedasahdirectioniloMcallye,basedonthecurren!tdirection.JThevdDalueofcountregister\Direction@dcontainstheinformationtodeterminetherequesteddirection.حWhennohdirectioniisparsedthen[@]lrequestsarotationtoalignwiththecurren!tfdirection.The.1spMecialsequence[@!...]0ispro!videdtopassanangledirectlytotheback-end.u=TheXY;-picsizeVandshapMeofthehobjectiwith\rectangleEdgeW(isunc!hanged,fevenVthoughtheprin!tedformmayappMearrotated.Thisisafeaturethatm!ustbeimplemen!tedspeciallyb!ytheback-end.Feorexample,usingpthePostScriptbac!k-end,s[@!45])߹willshowtheobjectrotatedby45ntinsideabMoxofthesizeofftheunrotatedobject.325\xydef@\xyrotatechar@{\bgroup326K\afterDIRECTIONorEMPTY{\xyrotateSizeMod@}{\xyFN@\xySpecialRotate@i}}328\xydef@\xySpecialRotate@i{%329K\ifx\space@\next\expandafter\DN@\space{\xyFN@\xySpecialRotate@i}%330K\else\ifx@\next\let\next@=\xyrotateSizeMod@331K\else\addEQ@\ifx\next332 m\addEQ@\DN@##1@@{%\transformDrop@333\expandafter\xynametransform@\csnameshape[##1]\endcsname\egroup}%334K\else\ifx!\next\DN@!{\egroup\getSpecialRotate@}%335K\else\ifx*\next\DN@*@@{\egroup\transformDrop@}%336K\else\DN@{\xySpecialRotate@@}%337K\fi\fi\fi\fi\fi\next@}339\xydef@\getSpecialRotate@{\doSpecialRotate@@}ݍT\o2Do:ݹPro!videfexampleofrepMeated,namedtransformation.YE*tj232?KlCHAPTERf2.CEXTENSIONS??hwInstallation 5InitiallyGthereisnosuppMortfortheactuale ects.Theywillbeprocessedaccording to_size/shapMerequiremen!ts,buttheactualrotationorre-sizingisommitted.CAhdriveri leisre-quiredjLtoimplemen!tthee ects.)Itneedtode nealternativeexpansionstowhich\xyRotate@@#1O%,\xySpecialRotate@@#1@@b,f\doSpecialRotate@@#1@@handf\xyscale@@#1#2WcanfbMebound.P357\xydef@\xyRotate@#1{\xyundefinedRotate@{rotate}{#1}@@}358\xydef@\xySpecialRotate@#1@@{\xyundefinedRotate@{rotate}{#1}@@\egroup}359\xydef@\doSpecialRotate@#1@@{\xyundefinedRotate@{specialrotate}{#1}@@}360\xydef@\xyscale@#1#2{\xyundefinedRotate@{scale}{#1,#2}@@}362\xydef@\UnloadRotate@#1{%363K\ifx#1\relax\else\xyunload@{rotationextension}\fi364K\let\xyRotate@@=\xyRotate@365K\let\xySpecialRotate@@=\xySpecialRotate@366K\let\doSpecialRotate@@=\doSpecialRotate@367K\let\xyscale@@=\xyscale@}369\UnloadRotate@\relax371\xyaddunsupport{rotate}{\UnloadRotate@\relax}Thisfadjuststhesizesof\L@c,\R@c,\U@cKtand\D@cappropriatelye.379\xydef@\xyrotateSizeMod@@@{%380K\L@p=\L@c\R@p=\R@c\U@p=\U@c\D@p=\D@c381K\ifdim\cosDirection\p@>\z@382 m\R@c=\cosDirection\R@p T\L@c=\cosDirection\L@p383 m\U@c=\cosDirection\U@p T\D@c=\cosDirection\D@p384K\else385 m\R@c=\cosDirection\L@p T\L@c=\cosDirection\R@p386 m\U@c=\cosDirection\D@p T\D@c=\cosDirection\U@p387K\fi388 m\advance\L@c\if-\sinDirection\D@p\else\sinDirection\U@p\fi389 m\advance\R@c\if-\sinDirection\U@p\else\sinDirection\D@p\fi390 m\advance\U@c\if-\sinDirection\L@p\else\sinDirection\R@p\fi391 m\advance\D@c\if-\sinDirection\R@p\else\sinDirection\L@p\fi392 m\dimen@ii=\L@c\advance\dimen@ii-\L@p393K\edef\tmp@{\egroup\L@c=\the\L@c\R@c=\the\R@c\U@c=\the\U@c\D@c=\the\D@c394 m\dimen@ii=\the\dimen@ii\noexpand\setboxz@h\bgroup395 m\noexpand\xyRotate@@{\the\Direction}}\tmp@396 m\xydropRotated@}398\xydef@\xydropRotated@@{%399K\kern\dimen@ii\boxz@\kern-\dimen@ii\modXYtransform@\egroup}400\xylet@\xydropRotated@=\xydropRotated@@402\xydef@\xyignoreSizeMod@@@{\xywarning@{Ignoringrotation}}Somefparticularrotations.408\xydef@\xyshape@left@{\xyrotatechar@v(0,1)@@}409\xydef@\xyshape@right@{\xyrotatechar@v(0,-1)@@}* Re ections 5Re ections#canbMespeci edb!yacombinationofrotationanda ip|either[hflip]orf[vflip]+ .f3*tj2.5.CR!OTeATEfANDSCALEEXTENSION|233??%U8V`n;ps: SDict begin xyc end"h0ps: SDict begin xyp endmY1ps: SDict begin {pu xyct 1.25 1.25 xyss }xyg endA4mJB3color push rgb 1. 0. 0.-ps: SDict begin {pu {1. 0. 0. rgb}cc}xyg endğ:ps: SDict begin xyp endQ0ps: SDict begin {pu xyct 1434 xyd xyrs }xyg end~Fps: SDict begin { pp}xyf endps: SDict begin { pp}xyf end color popcolor push Plum %ps: SDict begin {pu {Plum}cc}xyg end8jps: SDict begin xyp endGP0ps: SDict begin {pu xyct 1434 xyd xyrs }xyg end|Fps: SDict begin { pp}xyf endps: SDict begin { pp}xyf end color pop$ps: SDict begin {pu 1.0 lw}xyg end&R" {263.9476 105.50113 l}xyps: SDict begin { pp}xyf endɟ⎋ps: SDict begin xyp end ȟ⎋1ps: SDict begin {pu xyct -3072 xyd xyrs }xyg endUlabMelf1ps: SDict begin { pp}xyf endcolor push rgb 1. 0. 0.Җ۞3232j3232w֍3232wƞ3232"B\ 32323232323232323232323232323232323232323232323232323232!\ 3232323232323232323232323232323232323232323232323232323232۞3232j3232w֍3232wƞ3232 color popps: SDict begin {pu gsave newpath xyXpos xyYpos moveto 50 dup rlineto 20 setlinewidth 0 0 1 setrgbcolor stroke grestore}xyg endRps: SDict begin xyp endFR,ps: SDict begin {pu xyct -1 1 xyss }xyg endUlabMelf6ps: SDict begin { pp}xyf endcolor push rgb 1. 0. 0.D,}3232pٍ3232DY323232323232323232323232323232323232323232323232DG3232ʍ 󍍐3232y32326 󍍐3232y323232,}3232pٍ3232DY323232323232323232323232323232323232323232323232DG3232 color popqps: SDict begin xyp end p,ps: SDict begin {pu xyct 1 -1 xyss }xyg endUlabMelf7ps: SDict begin { pp}xyf endcolor push rgb 1. 0. 0.Ѽמ3232533232DY323232323232323232323232323232323232323232323232DG3232ʍ> 󍍐3232y3232s 󍍐3232y323232מ3232533232DY323232323232323232323232323232323232323232323232DG3232 color popps: SDict begin xyp end0ps: SDict begin {pu xyct 1024 xyd xyrs }xyg endUlabMelf8ps: SDict begin { pp}xyf endcolor push rgb 1. 0. 0.|񍍍&3232$3232w֍3232wƞ3232"\ 32323232323232323232323232323232323232323232323232323232`j\ 3232323232323232323232323232323232323232323232323232323232&3232$3232w֍3232wƞ3232 color popps: SDict begin xyp end[͟5ps: SDict begin {pu xyct .66667 .66667 xyss }xyg end< ps: SDict begin xyp end60ps: SDict begin {pu xyct 3481 xyd xyrs }xyg end͍spMecialfe ect:alignedtext}ps: SDict begin { pp}xyf end}ps: SDict begin { pp}xyf endcolor push rgb 1. 0. 0.д䍍o3232q32327323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323273232%oܵ덍3232k3232323232323232323232323232323232323232323232323232323232323232sܵ덍3232k323232323232323232323232323232323232323232323232323232323232323232o3232q32327323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323273232 color pop%Qps: SDict begin { pp}xyf endv Figuref2.4:Rotations,scalingsand ips<424\xydef@\xyshearchar@{\xyundefinedRotate@{shearing}}oSheartransformations T\oDo:BPro!videthestructuretosuppMortthese;r:thenimplementitin PostScript. Theffollo!wingdiagramrequiresvdDariousoptionstobMeloadedandinstalled.`Example 5Thediagramin gure2.4illustratesman!yofthee ectsdescribMedabo!veasw!ellassomeadditionalfonesde nedb!ythecolor$ androtate)ȹextensions.Exercise22.7: 5SuggestfthecoMdeusedb!ytheauthortotypMeset2.4. TheactualcoMdeisgiv!eninthesolutiontotheexercise.)Useitasatestofthecapabilitiesofy!ourA9DVI-driver.#ThelabMelsshould tsnuglyinsidetheaccompanyingrectangles,Uurotatedand ippMedappropriatelye.Bug:This gurealsousescolours,altersline-thic!knessandincludessomePostScriptdrawing.TheUcoloursma!yprintasshadesofgraye,QwiththelinefromAtoB~bMeingthickerthannormal.Thewider/bandslopingdo!wnwards/mayhavedi erentwidthandlengthaccordingtotheDVI-driverused;thisfdepMendsonthecoordinatesystemusedb!ythedriver,when`raw'PostScriptcoMdeisincluded.`The2end&LogP497\xyendinput499%$Log:xyrotate.doc,v$ 500%Revision3.3 T1996/12/1809:40:16ross501%nochanges502%503%Revision3.2 T1995/09/1918:21:41ross504%Bugfixrelease.505%506%Revision3.1 T1995/09/0520:36:33ross507%Release!508%509%Revision3.0 T1995/07/0720:13:19ross510%Majorreleasew/newUser'sGuide!511%rڠ*tj234?KlCHAPTERf2.CEXTENSIONS??hw512%Revision2.13 T1995/07/0415:04:51ross 513%Readyforreleaseofv3.514%515%Revision2.12 T1994/10/2503:01:14ross516%Final3betarelease[bugfixes&AMS-LaTeXfitting].517%518%Revision2.11 T1994/07/0506:38:37ross519%somedocumentationwasleftoutpreviously520%521%Revision2.10 T1994/06/1512:46:03ross522%Secondrelease3beta.523%Colourandlinestylesavingworks;labelcolouringbugfixed.524%525%Revision2.9 T1994/06/0914:39:49ross526%Release3beta.527%528%NEWfiletogoinversion2.9byRossMoore.-2.6r|ColourffextensionV ers.p3.3Tb9yRossMoQorehross@mpGce.mq.edu.aui1Thisfextensionpro!videstheabilitytorequestthatanyobjectbMedisplayedinaparticularcolour. ,Itrequiresasuitable`driv!er'optiontoprovidethenecessary\special6Xcommandstoimplementthefe ects.Th!us&ps: SDict begin xyc end*xDUsingMthisextensionwillha!veMnoe ectontheoutput >s%unlessMusedwithadvi-driv!erthatexplicitlysuppMortsit.h0z4" {0.0 196.47948 -13.88919 -196.47946 13.88918 ov}xy#Header:P1%%$Id:xycolor.doc,v3.31996/12/1903:50:08rossExp$2%%3%%Xy-pic``Colourextension''option.4%%Copyright(c)1993-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%Š*tj2.6.CCOLOURfEXTENSIONDX235??hw20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong 21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{color}{Colourextension}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}vVAlle ectsde nedinthecolor$`extensioncanbMeimplemen!tedusingmostPostScripthdriveris,andxsomenon-PostScriptones,aret!wo>methoMds,,sperhapsusedsim!ultaneouslye,,sforhandlingrequestsforcolour. fThe\xylocalColor@U9iscthenormalmethoMd,bcolouringwhatev!erobjectsT,[wEB XtypMesetsfromfonts.%ThemorespMecialized\xycolor@= isusedwiththePostScriptbac!k-end.GThisisnecessarysincesomehdriv!erisassumethatthecurrentcolourshouldbMe`black'whenthecontentsofa\special5jisinter-preted,fe.g.withinPostScript. Th!usahdriveriwhichsuppMortsbothcolourandPostScriptm!ustde neamethodtohandle\xylocalColor@Sqbut%shouldlea!ve%alone\xycolor@6.ThelattermethoMdwillbeadjustedappropriatelywhenfaPostScripthdriv!eriisinstalled.101\xydef@\xyNoColor@#1{}102\xylet@\xycolor@@=\xyNoColor@103\xydef@\xyNoColor@@#1#2{\xycolorwarning@}105\xydef@\xycolor@{\xycolor@@}106\xylet@\xylocalColor@=\xyNoColor@@108\xydef@\UnloadColor@{%109\let\xylocalColor@=\xyNoColor@@110%\let\xycolor@=\xyNoColor@R*tj236?KlCHAPTERf2.CEXTENSIONS??hw111K\let\xycolor@@=\xyNoColor@ 112K\let\xycolorwarning@=\xycolorwarning@@}113\xylet@\UnloadColor@@=\UnloadColor@P115\xyaddunsupport{color}{\UnloadColor@@\relax}`ThisnextmacroistoinheritadefaultcolourfromthesurroundingdoMcumen!t,perhapsusingonealreadyfde nedb!yLAGT,[wEB Xv2z"122\ifx\current@color\undefined\xydef@\xybasecolor@{}%123\else\def\xybasecolor@{\current@color}\fi125%\xydef@\xycmath@{\hbox\bgroup\dimen@=.55ex\checkxycolor@\xyinside@}126%\xydef@\xycnomath@{\hbox\bgroup\dimen@=\z@\checkxycolor@\xyinside@}128%\xydef@\checkxycolor@{\ifx\xybasecolor@\empty\else129%\expandafter\imposexycolor@\fi}130%\xydef@\imposexycolor@{\xylocalColor@}`ADcommonlyDusedmethoMdistomain!tainacolour-stack.ZThefollowingcommandsareforusewithsuc!h\xasetup,howevertheyshouldonlybMecalledfromcodeinstalledfromahdriv!eri- le.Di erentdriv!ersnmaydothingsdi erently;e.g.v dvips#Lusesasingle\special2.via:B"\def\xycolor@push@@#1{\special{colorpush#1}} ,but Teexturesusest!wo: 7Q\xydef@\xycolor@push#1{\special{colorpush}\special{color#1}}m}.Sincethecolour-stac!kideawaspropMosedbyTeomasRokicki,thedvips"BTmethoMdisthedefaultbeha!viour.143\xydef@\xystackcolor@{\bgroup\DN@##1##2{\egroup}%144K\ifInvisible@\else\ifHidden@\else\DNii@{\no@@}\ifx\nextii@\Connect@@145K\else\DN@{\xystackcolor@i}\fi\fi\fi\next@}147\xydef@\xystackcolor@i#1#2{\checkXyStyle@148K\DN@{#2}\ifx\next@\empty149 m\def\tmp@##1{\DN@{\xycolor@push{#1}##1\xycolor@pop}}%150K\else\def\tmp@##1{\DN@{\xycolor@push{#2#1}##1\xycolor@pop}}\fi151K\toks@={\egroup\let\xy@style@=\relax\def\Drop@@}%152K\expandafter\tmp@\expandafter{\Drop@@}%153K\expandafter\addtotoks@\expandafter{\expandafter{\next@}\def\Connect@@}%154 m\expandafter\tmp@\expandafter{\Connect@@}%155K\expandafter\addtotoks@\expandafter{\expandafter{\next@}}%156K\the\toks@}%158\xydef@\xycolor@push@@#1{\special{colorpush#1}}159\xydef@\xycolor@pop{\special{colorpop}}160\xylet@\xycolor@push=\xycolor@push@@%NamedrpcoloursandcolourmoYdels 5Newcolournamesarecreatedwith\newxycolorC޹,takingt!woarguments.SFirstlyanameforthecolourisgiven,ןfollowedbythecoMdewhichwillultimatelybMepassed,totheoutputdeviceinordertospMecifythecolour.eIfthecurren!tdrivercannotsuppMortcolour,orfgra!yscaleshading,thenthenewnamewillbMerecognised,butignoredduringtypMesetting.174\xydef@\newxycolor#1#2{\newxyColor{#1}{}{}{#2}{}}175\xydef@\newxyColor#1#2#3#4{\newxycolor@{#1}{#2}{#3}{#4}{}}`FeorYPostScriptdevices,h{the@XY -psPostScriptdictionaryde nesopMeratorsrgb,cmyk$andgraycorrespMondingntothestandardR!GB_andCMYKcolourmoMdelsandgra!yscaleshadings.ColoursandshadesaredescribMedas:r7gbrgb1orcYmykQCcmykHorsgray, wheretheparametersaren!umbMersintherange0q+r";1gd;b;c;m;y;kX?;sq+1.eTheopMeratorslinktothebuilt-incolourmodelsor,IinthecaseŽ*tj2.6.CCOLOURfEXTENSIONDX237??hwoffcmykKtforfearlierv!ersionsofPostScript,giveasimpleemulationintermsoftheRGBmoMdel.׍ExistingfcolornamescanbMeo!verriddenfusing\newxycolor@#1#2\relax.P193\xydef@\newxycolor@#1#2#3#4#5{% 194K\expandafter\let\expandafter\next@\csnameshape[#1]\endcsname195K\ifx\next@\relax196 m\DN@{#4}\ifx\next@\empty197\DN@{#2}\ifx\next@\empty198 \DN@{\newxystyle{#1}{\xylocalColor@{}{#3}\xycolor@{#3}}}%199\else200 \DN@{\newxystyle{#1}{\xylocalColor@{#2}{#3}\xycolor@{#2#3}}}%201\fi202 m\else\DN@{#2#3}\ifx\next@\empty203 \DN@{\newxystyle{#1}{\xylocalColor@{#4}{}\xycolor@{#4}}}%204\else205 \DN@{\newxystyle{#1}{\xylocalColor@{#2}{#3}\xycolor@{#4}}}%206 m\fi\fi207K\else\def\tmp@{\relax}\DNii@{#5}%208K\ifx\nextii@\tmp@209 m\DN@{#4}\ifx\next@\empty210\DN@{#2}\ifx\next@\empty211 \DN@{\newxystyle{#1}{\xylocalColor@{}{#3}\xycolor@{#3}}}%212\else213 \DN@{\newxystyle{#1}{\xylocalColor@{#2}{#3}\xycolor@{#2#3}}}%214\fi215 m\else216\DN@{#2#3}\ifx\next@\empty217 \DN@{\newxystyle{#1}{\xylocalColor@{#4}{}\xycolor@{#4}}}%218\else219 \DN@{\newxystyle{#1}{\xylocalColor@{#2}{#3}\xycolor@{#4}}}%220 m\fi\fi221K\else\DN@{}\fi\fi\next@\relax}NōStandardcolournameswhic!harede nedautomaticallycorrespMondtothethreeprimariesred ,greenJk,yblue`andmtheircomplemen!tscyanlX,ymagenta+,yyellow)daswellasthreeextremegrayscaleshadesblackJk,fwhite d,fgray.230\xydef@\xystandardcolors@{%231%\newxycolor@{black}{1.}{gray}{}\relax T%Texturesreversesgray-scales232%\newxycolor@{white}{0.}{gray}{}\relax T%233%\newxycolor@{black}{0.}{gray}{}\relax T%ThisisnormalforPostScript234%\newxycolor@{white}{1.}{gray}{}\relax T%235K\newxycolor@{black}{0.0.0.}{rgb}{}\relax>%avoidthehassles.236K\newxycolor@{white}{1.1.1.}{rgb}{}\relax>%237K\newxycolor@{gray}{.5}{gray}{}\relax238K\newxycolor@{grey}{.5}{gray}{}\relax239K\newxycolor@{red}{1.0.0.}{rgb}{}\relax240K\newxycolor@{green}{0.1.0.}{rgb}{}\relax241K\newxycolor@{blue}{0.0.1.}{rgb}{}\relax242K\newxycolor@{cyan}{0.1.1.}{rgb}{}\relax243K\newxycolor@{magenta}{1.0.1.}{rgb}{}\relax՗*tj238?KlCHAPTERf2.CEXTENSIONS??hw244K\newxycolor@{yellow}{1.1.0.}{rgb}{}\relax 245K\xyuncatcodes}Note:The-driv!er lemustcall\xystandardcolors@mzNbMeforethesecoloursbecomeaccessible.uThisisftoallo!wanyhdriveri-spMeci cde nitionstobeactiv!ewhenthesecoloursarede ned.#<Satvingqcolourandstyles 5WhenN"st!ylesaresavedusing[=vhwordi],xsee,thenthecurren!tcoloursetting~(ifan!y)issavedalso. .$Subsequentuseof[ (hwordi]recovers~thecolourandaccompanyingline-st!ylefsettings.ըFeurtherXcolournamesarede nedb!ythecommand\UseCrayolaColoursp*thatloadsthecrayonoption,rinIwhic!hmorecoloursarede ned.ȗConsultthe lexyps-col.docMforthecoloursandtheirspMeci cationsfintheR!GBorCMYKmodels.P269\xydef@\UseCrayolaColors{\xyrequire{crayon}\xyuncatcodes}%270%\xyinputorelse@{xyps-col}{\xyerror@{Couldnotloadxyps-col}{}}}(*xycrayon.doc:This4optionpro!videsthecommandtoinstallde nitionsforthe68coloursrecognisedbynamebyTeomas+lRokic!ki'sdvips'*driver[11 4]. lThiscommandmustbMecalledfromahdriveri- lewhichcanactuallyfsuppMortthecolours.1%%$Id:xycrayon.doc,v3.31996/12/1808:58:16rossExp$2%%3%%Xy-pic``Crayolacolours''PostScriptbackendsupport.4%%Copyright(c)1995-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fi26\xyprovide{crayon}{CrayolaColours}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}Ṡ*tj2.6.CCOLOURfEXTENSIONDX239??hwThecolourde nitionsthemselv!esareinthe lexyps-col.texH.Theyarenotloadeddirectlyhere sinceitisnotkno!wnwhichhdriveriistobMeused.GDi erenthdriverismayrede nethe\xynewcolor@macroftosetthecolourb!ynameorcolour-moMdel.P46\xydef@\installCrayolaColors@{%47K\xyinputorelse@{xyps-col}{\xyerror@{CouldnotloadCrayolacolours}{}}%48K\let\installCrayolaColors@=\relax49K\xyuncatcodes}v55\xyendinput57%$Log:xycrayon.doc,v$58%Revision3.3 T1996/12/1808:58:16ross59%cosmeticupdates60%61%Revision3.1 T1995/09/0520:36:33ross62%Release!63%64%Revision3.0 T1995/07/0720:13:19ross65%Majorreleasew/newUser'sGuide!66%67%Revision2.13 T1995/07/0507:58:43ross68%Readyforv3release?69%70#71%NEWforversion3.1byRossMoore T1995/03/18.72%,mPostScriptcolour 5WhenPostScriptdriv!ersuppMortisavdDailable,/themethoMdforhandlingcolourwithin,diagramsma!ybMedi erent.Thereasonforthisisthatsomedvi-driversresetthecolourtoblackbMefore _placingthecon!tents _ofthe\special1.Teocoun!terthis,(thePostScriptcodemain!tainsitsowncolour-stac!k.SuppMortisestablishedwithinaseparate lexyps-c.tex=W,,loadedfromtheappropriatehdriv!eri- les.295\xydef@\xyBEcolorcheck@{\ifx\xycolor@@\xyNoColor@\else296K\xywarning@{PostScriptcoloursupportshouldbeOK.}\fi}%298\xywithoption{ps}{%299K\xyinputorelse@{xyps-c}{\xyerror@{Couldnotloadxyps-c}{}}}%300K\xycatcodes%/The2end&Log308\xyendinput310%$Log:xycolor.doc,v$311%Revision3.3 T1996/12/1903:50:08ross312%Maintenancerelease.313%314%Revision3.3 T1996/12/1808:56:49ross315%minorupdates316%*tj240?KlCHAPTERf2.CEXTENSIONS??hw317%Revision3.2 T1995/09/1918:20:20ross 318%Bugfixrelease.319%320%Revision3.1 T1995/09/0520:36:33ross321%Release!322%323%Revision3.0 T1995/07/0720:13:19ross324%Majorreleasew/newUser'sGuide!325%326%Revision2.14 T1995/07/0602:56:02kris327%Buglets...328%329%Revision2.13 T1995/07/0415:04:51ross330%Readyforreleaseofv3.331%332%Revision2.10 T1994/06/1512:46:03ross333%Secondrelease3beta.334%Colourandlinestylesavingworks;labelcolouringbugfixed.335%336%Revision2.9 T1994/06/0914:39:49ross337%Release3beta.338%339%NEWforversion2.9bybyRossMoore..I2.7r|PatternffandTileextensionV ers.p3.4Tb9yRossMoQorehross@mpGce.mq.edu.aui header=color.pro =Thisfextensionpro!videstheabilitytorequestthata lledregionbMetiledusingaparticularpattern. Thisisane ectnotnormallya!vdDailablewithinT,[wEB X.Insteaditrequiresasuitablehdriverioptiontopro!videthenecessary\special5 Zcommands,togetherwithanyextracommandsneededtoimplementthefe ects.Th!us퍍-^tps: SDict begin xyc end*xDUsingMthisextensionwillha!veMnoe ectontheoutput >s%unlessMusedwithadvi-driv!erthatexplicitlysuppMortsit.h0z4" {0.0 196.47948 -13.88919 -196.47946 13.88918 ov}xy촍Allge ectsde nedinthetilevextensioncanbMeimplemen!tedusingmostPostScripthdriveris,gloadedasf\xyoption{=# hdriv!eri}.Header:P1%%$Id:xytile.doc,v3.41997/05/1801:13:24rossExp$2%%3%%Xy-pic``PatternandTileextension''option.4%%Copyright(c)1993-1997RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997KristofferH.Rose9%%>*tj2.7.CPeATTERNfANDTILEEXTENSIONp9241??hw10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify 11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{tile}{PatternandTileextension}{\stripRCS$Revision:3.4$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}~ Lik!efusingcolor,sNtilingwithpatternsisaninstanceofaspMecialstyle,sNsinceuseofapatternhasnoe ectonthesizeorshapMeofthehobjectibeingt!ypeset.Itonlya ectsho!wthehobjectiwillappearonftheprin!tedpageoron-screen.;,ps: SDict begin xyc endh. h0 2" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xyh0 3" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xyyy/Mmac10% ( h{2" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xy( h{3" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xy>yZ(mac11% ( )2" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xy( )3" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xy>yFmac12% ( n2" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xy( n3" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xy>ymac13% ( I2" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xy( I3" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xy>yڡmac14% ( 3$2" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xy( 3$3" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xy>yOmac15% ( =2" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xy( =3" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xy>y/omac16O R捑 2" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xyR捍 3" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xyi'v{},{*[bricks]\frm{**}},*+<2.5pc>[o]{},*[bars]\frm{**}\endxyqRTherearet!womethoMds,perhapsusedsim!ultaneouslye,forhandlingrequestsforapattern.The\xylocalpattern@`_isthenormalmethoMd,patterningwhatev!erobjectsT,[wEB XtypMesetsfromfontsorrules.ThefmorespMecialized\xypattern@FisusedwithaPostScripthdriv!eri.Th!usEahdriveriwhichsuppMortsbothpatternandPostScriptm!ustde neamethodtohandle\xylocalpattern@_butzshouldlea!vezalone\xypattern@C!ȹ.ThelattermethoMdwillbeadjustedappro-priatelyfwhenaPostScripthdriv!eriisinstalled.P208\xydef@\xyNopattern@#1{}209\xylet@\xypattern@@=\xyNopattern@210\xydef@\xyNopattern@@#1#2{\xypatternwarning@}212\xylet@\xypattern@=\xypattern@@213\xylet@\xylocalpattern@=\xyNopattern@@qRThisistofacilitateunloadingpatternswhenthehdriv!eriischangedtoonethatdoMesnotsupportthisffeature.Thisisthedefaultstate,un!tilanappropriatehdriveriisloaded.221\xydef@\Unloadpattern@{%222\let\xylocalpattern@=\xyNopattern@@223\let\xypattern@=\xyNopattern@224\let\xypatternwarning@=\xypatternwarning@@}226\Unloadpattern@"^oPtatterndata 5AVregionVistiledusingcopiesofasingle`cell'regularlyplacedsoastoseamlesslytilethe6&en!tireregion.rThehdataiappMearingasanargumentto\newxypatternQ'isultimatelypassedtothedvi-driv!er.5*tj244?KlCHAPTERf2.CEXTENSIONS??hwThe?Osimplestformofpatterndatais:Rhn!umihHex-datai,Swherethedataisa16-characterstringof Hexadecimaldigits;ii.e.0{9,>A{FV.Eac!hHex-digitequatesto4binarybits,>sothisdatacontains64bitszrepresen!tingpixelsinan88zarraye.[ThehnumiisanintegercountingthenumbMerof`0'samongtheQ64bits.Teak!enasafractionof64,thisnumbMeroritscomplement,representstheaveragedensityof`on'pixelswithinasinglecellofthepattern.ׯDriv!ersunabletoprovidethe nedetailofapatternma!y6FsimplyusethisnumbMer,Z>oritscomplement,Z>asagray-levelorpartofacolourspMeci cationforthefwholeregiontobMetiled.CAdesirablesetofstandardpatternscouldbMespeci edtobealw!aysloaded.Ifsuc!hasetemergesindeedfasbMeingfrequen!tlydesirablethenitwillbeincludedhere.P254\xydef@\xystandardpatterns@{}%1Note:"QTheȠdriv!er lemustcall\xystandardpatterns@zbMeforethesepatternsbecomeaccessible.Thisfistoallo!wanyhdriveri-spMeci cde nitionstobeactiv!ewhenthesepatternsarede ned.264\xynew@{read}{\xypatread@}265\xydef@\defaultpattfile@{}267\xydef@\xygetfilepatterns@#1{\DN@{#1}%268K\ifx\next@\empty269 m\ifx\defaultpattfile@\empty\xywarning@{Nopatternfilespecified.}%270 m\else\DN@{\expandafter\openpattfile@\expandafter{\defaultpattfile@}}\fi271K\else\DN@{\openpattfile@{#1}}\fi\next@}273\xydef@\openpattfile@#1{\openin\xypatread@=#1.xyp%274K\ifeof\xypatread@\xywarning@{Nopatternsinfile:#1.xyp}%275 m\closein\xypatread@276K\else\expandafter\xyreadpatfile@\fi}%278\xydef@\UsePatternFile#1{\def\defaultpattfile@{#1}}280\xydef@\LoadAllPatterns{\let\parsepattern@=\parsepattern@@281 m\xygetfilepatterns@}283\xydef@\LoadPattern#1{\let\parsepattern@=\filepattern@@284 m\def\pattname@{#1}\xygetfilepatterns@}286\xydef@\AliasPattern#1#2{\let\parsepattern@=\aliaspattern@@287 m\def\aliasname@{#1}\def\pattname@{#2}\xygetfilepatterns@}1Thefc!haracter! visusedtodelimitcommentswithinpattern-data les.294\xydef@\xyreadpatfile@{%295K\loop@\bgroup\xycatcodes296 m\global\read\xypatread@to\xypatline@297 m\ifeof\xypatread@\aftergroup\endpatread@298\else\aftergroup\morepatread@\fi\edef\next@{%299 m\egroup\noexpand\getxypattern@{\xypatline@!!!}\relax}\next@300K\repeat@}301\xydef@\endpatread@{\closein\xypatread@\iffalse}302\xydef@\morepatread@{\iftrue}304%\xydef@\getxypattern@{\futurelet\next\getxypattern@@}305\xydef@\getxypattern@#1{\def\next{#1}\getxypattern@@}306\xydef@\getxypattern@@{\DN@{!!!}\ifx\next\next@\DN@{}%307K\else\DN@{\expandafter\parsepattern@\next}\fi\next@}309\xydef@\parsepattern@@#1#2!#3\relax{\newxypattern{#1}{#2}}C*tj2.7.CPeATTERNfANDTILEEXTENSIONp9245??hw310\xydef@\filepattern@@#1#2!#3\relax{\DN@{#1}% 311K\ifx\next@\pattname@312 m\DN@{\expandafter\foundpattern@\expandafter{\pattname@}{#2}}%313K\else\DN@{}\fi\next@}314\xydef@\foundpattern@#1#2{\newxypattern{#1}{#2}\endpatread@\fi315K\expandafter\eat@}316\xydef@\aliaspattern@@#1#2!#3\relax{\DN@{#1}%317K\ifx\next@\pattname@318 m\DN@{\expandafter\foundpattern@\expandafter{\aliasname@}{#2}}%319K\else\DN@{}\fi\next@}P321%\xydef@\parsepattern@#1#2!#3\relax{\message{#1:#2}}{The lexymacpat.xypJ con!tainsde ningdataforthe38standardpatternsavdDailablewiththeMacintoshOpMeratingfsystem.Figure2.5displa!ysallthesepatterns.&[RotatingandResizingPtatterns 5Someimplemen!tationsofpatternsaresucientlyversatiletoallo!wztextraparameterstoa ectthewaythepatterndataisinterpreted.ZPostScriptisonesuchimplemen!tationUinwhichitispMossibletorotatethewholepatternandeventoexpandorcontractthesizesfofthebasiccell.RrDueg>totherasternatureofoutputdevices,snotallsuc!hrequestscanbMeguaranteedtoproMduceaestheticWresultsonalldevices.InpracticeonlyrotationsthroughspMeci cangles(e.g30,)45,60)and*tparticularscalingratioscanbMereliablyused.jTh!usthereisnosophisticatedinterfaceprovidedb!y6 XY j-picN`toaccessthesefeatures.Howeverthe`PostScriptescapMe'mechanismdoMesallowaformofaccess,fwhenaPostScripthdriv!eriishandlingpatternrequests.SpMecialiwPostScriptoperatorspaRBandpfsetthepatternangle(normally0)and`frequency'measuredincpelFlsKperinch.Hence,*whenusedasanhobjecti-moMdi er,[!30pa18.75pq]oȹrotatestheJpatternb!y30 cloMckwiseandusesasmallerpatterncell(largerfrequency).KThedefaultfrequencyof'12:5=300=(83)meansthateac!hpixelinapatterncellcorrespMonds,Gonadeviceofresolution300dpi,ftoa3n3fsquareofdevicepixels;onsuc!hadevice18:75uses2n2fsquares.A!tUZ300dpiafrequencyof9:375.<=300=(84)UZuses44UZsquares.Thesematchthenaturalsizeforpixelsona75dpiscreenandareprett!yclosefor72dpiscreens. Thoughappropriateforscreendispla!ys,݄these~are`toMochunky'forhighqualityprintedwork.b&DoublingthefrequencyistoMo neforsomepatterns,hencethein!termediatechoiceof12:5asdefault.YInorderforprintedoutputtomatchthe6screenview,M7aPostScriptopMeratormacfreq.~hasbeende nedtofacilitaterequestsfor9:375,M7via[!macfreq].Thefnextdiagramdispla!yschangestothefrequencye."2lps: SDict begin xyc endh.Ȳ lled patternh0 2" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xy83h0&ps: SDict begin {pu 9.375 pq}xyg end83" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xyps: SDict begin { pp}xyf endc-?9.375gAd lled apatternqϞ2" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xy%ps: SDict begin {pu 12.5 pq}xyg endqϞ3" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xyps: SDict begin { pp}xyf endch12.5)3 lled kpatternm2" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xy&ps: SDict begin {pu 18.75 pq}xyg endm3" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xyps: SDict begin { pp}xyf endcS18.75 lled :pattern<2" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xy%ps: SDict begin {pu 37.5 pq}xyg end<3" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xyps: SDict begin { pp}xyf endcڻ37.5'ٍ.Y lled (pattern*ۍ82" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xy&ps: SDict begin {pu 9.375 pq}xyg end*ۍ83" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xyps: SDict begin { pp}xyf endAk-?9.375'ٍgAd lled apattern*ۍqϞ2" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xy%ps: SDict begin {pu 12.5 pq}xyg end*ۍqϞ3" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xyps: SDict begin { pp}xyf endAkh12.5'ٍ)3 lled kpattern*ۍm2" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xy&ps: SDict begin {pu 18.75 pq}xyg end*ۍm3" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xyps: SDict begin { pp}xyf endAkS18.75'ٍ lled :pattern*ۍ<2" {0.0 19.12505 -12.94447 -19.12503 12.94447 ov}xy%ps: SDict begin {pu 37.5 pq}xyg end*ۍ<3" {0.0 19.12505 -12.94447 -19.12503 12.94447 sfo}xyps: SDict begin { pp}xyf endAkڻ37.5cSatving?patterns:MVWhenist!ylesaresavedusinghwordi],seenote1.4kofx1.4,thenthecurren!tpatternY(ifan!y)isalsosaved.[Subsequentuseof[ hwordi]recoversYthepatternaswellascolourandline-st!ylesettings.ThisincludesanyexplicitvdDariationsappliedusingthe\StyleEscapMe"mechanism.Q0*tj246?KlCHAPTERf2.CEXTENSIONS??hwHerefisavdDariationofanearlierexample,withextrae ects.%FeKps: SDict begin xyc endh0H#" {0.0 72.0 -24.0 -72.0 24.0 sfo}xyHh0,ps: SDict begin {pu macfreq -45 pa}xyg end-" {15.89996 15.89996 15.89996 15.89996 sfe}xyps: SDict begin { pp}xyf end͍" {15.89996 ox}xy+" {0.0 30.0 -16.19998 -30.0 16.19998 sfo}xy*" {0.0 30.0 -16.19998 -30.0 16.19998 ov}xyfe33<;Οfe fd33color push rgb 1. 1. 1.-ps: SDict begin {pu {1. 1. 1. rgb}cc}xyg endy !FR6ff cmss12FKilroywas/hereps: SDict begin { pp}xyf end color pop*-\UsePatternFile{xymacpat} \AliasPattern{bricks}{mac12}{}\LoadPattern{mac28}{}\LoadPattern{mac05}{}\xy*=0[!macfreq-45pa][mac28][|=Bars]{},*+<12pc,4pc>{}*[bricks]\frm{**},-<3.5pc,0pt>,*+<2.65pc>[o]{},*[Bars]\frm{**},*[thicker]\frm{o},+<6pc,0pt>,*+<5pc,2.7pc>{},*[mac05]\frm{**},*\frm{-,},*[white]\txt\Large\bf\sf{Kilroy\\washere}\endxyPAddthisextensiontothedriv!er-tablesas\unload",unlessanalready-loadeddrivercansuppMortit:423\DN@{\xyaddunsupport{tile}\Unloadpattern@}%424\ifx\xyeverywithoption@tile@\undefined425\else\ifx\xyeverywithoption@tile@\empty426\else427K\DN@{\xysetup@@{\xywithoption{tile}{\xyeverywithoption@tile@\xydriversloaded@@}}}%428\fi\fi\next@!2鍑The2end&Log440\xyendinput442%$Log:xytile.doc,v$443%Revision3.4 T1997/05/1801:13:24ross444%Essentialbugfixes.445%446%Revision3.3 T1996/12/1809:43:06ross447%documentationchange448%449%Revision3.2 T1995/09/1918:21:41ross450%Bugfixrelease.451%452%Revision3.1 T1995/09/0520:36:33ross453%Release!454%455%Revision3.0 T1995/07/0720:13:19ross456%Majorreleasew/newUser'sGuide!457%458%Revision2.13 T1995/07/0415:04:51ross459%Readyforreleaseofv3.460%461%462%NEWforversion3.0bybyRossMoore.iZ*tj2.8.CIMPOReTfGRAPHICSEXTENSION쾹247??hw2.8r|Imps3ortffgraphicsextensionqV ers.p3.6Tb9yRossMoQorehross@mpGce.mq.edu.auiThisJfeaturepro!videstheabilitytoeasyaddlabMelsandannotationstographicspreparedoutsideT,[wEB X orvLAGT,[wEB X. An XY-picgraphicsen!vironmentvisestablishedwhosecoMordinatesmatc!hthatwithinthecon!tents[oftheimpMortedgraphic,j|makingiteasytospecifyexactlywherealabelshouldbeplaced,j|orarro!wfdrawntohighlightaparticularfeature.VHeader:P1%%$Id:xyimport.doc,v3.61998/03/0601:28:05krisroseExp$2%%3%%Xy-pic``Importfeature''option.4%%Copyright(c)1993-1997RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997KristofferH.Rose T9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fi26\xyprovide{import}{Importgraphicsextension}{\stripRCS$Revision:3.6$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}NAcommand\xyimport8isde nedwhic!hisused,EinconjunctionwithimpMortedgraphics,toestablishacoMordinatesystemappropriatetotheparticulargraphics.HThisenableshposiitionswithinthegraphictobMeeasilylocated, eitherforlabellingoraddingextraem!bellishingfeatures.!Itisusedineitheroftheffollo!wways: ffd 戍zS\xyimport(ϫwidth,height){ Thgraphici}zS\xyimport(ϫwidth,height)( Tx-o ,yd-o ){hgraphici}OffdHNormally}thehgraphicsiwillbMeabo!xcontainingagraphicimpMortedusingthecommandsfrompack-agessuc!hasgraphics2*,7epsf Ĺorepsfig'=ֹ,7orusingothercommandsprovidedbytheloMcalT,[wEB Xim-plemen!tation.5However.thehgraphicicouldbMeanybalancedT,[wEB Xmaterialwhatsoev!er;provided.itoMccupiesfnon-zerosize,bothv!erticallyandhorizontallye.s*tj248?KlCHAPTERf2.CEXTENSIONS??hɍm:'ps: SDict begin xyc end>7Yps: currentpoint currentpoint translate 0.65166 0.65166 scale neg exch neg exch translate:PSfile="import1.eps" llx=0 lly=0 urx=261 ury=261 rwi=2610 eps: currentpoint currentpoint translate 1 0.65166 div 1 0.65166 div scale neg exch neg exch translateh0@3" {0.0 106.19545 -64.5175 -64.51749 106.19543 ov}xyTU tframedfcon!tentsofgraphics leǽps: SDict begin xyc end Z>7Yps: currentpoint currentpoint translate 0.65166 0.65166 scale neg exch neg exch translate:PSfile="import1.eps" llx=0 lly=0 urx=261 ury=261 rwi=2610 eps: currentpoint currentpoint translate 1 0.65166 div 1 0.65166 div scale neg exch neg exch translateV!LRationalfpMoin!tsontheellipticcurve:x3.+nyd3/>= 7Ysv1+Pv1Xy&1O.$164P󟫜Pt2P㧟2POi3P.V3P-UI12Ge" {-0.00902 0.00902 l}xy)q" {-2048 10 /xy AB}xy)q" {-9.22758 9.22758 l}xy)q" {-0.00902 0.00902 l}xyr柊I1x1Ge" {-0.00902 0.00902 l}xyn=q" {-2048 10 /xy AB}xyn=q" {-9.22758 9.22758 l}xyn=q" {-0.00902 0.00902 l}xy<-'1+" {0.00902 -0.00902 l}xyK4" {2048 10 /xy AB}xyK4" {9.22758 -9.22758 l}xyK4" {0.00902 -0.00902 l}xyxk¹Figuref2.6:impMortingagraphicforlabelling$Thenwidthandheightarehn!umbMerisngiveninthecoMordinatesystemforthecpontents^ofthehgraphicsi. These&arenotdimensions,1fbutcoMordinate-lengths,usingtheunitsappropriatetothepicturedispla!yedb!yfhgraphici.yxWhenpro!vided,({Vx-o ,yd-o )@givethedistanceincoMordinateunitsfrombottom-leftcornertowherethettoriginofcoMordinatesshouldbelocated,~qusuallywithinareaco!veredttbythehgraphici.7Usuallythenegativ!es/ofthesenumbMerswillgivethecoMordinatelocationofthebottom-leftcornerofthehgraphici.Iffnoo setsaresuppliedthentheoriginispresumedtolieatthebMottom-leftcorner.P112\xydef@\xyimport#1#{\xyimport@{#1}}113\xydef@\xyimport@#1#2{\xydelayimport@{#1}{#2}}114\xydef@\xydelayimport@#1#2{\xy@@ix@{#1{#2}}%115K\xy@@{\expandafter\xyextern@\the\toks9}}117\xydef@\xyextern@(#1,#2){\hbox\bgroup\R@c=#1\p@\U@c=#2\p@\xyextern@i}119\xydef@\xyextern@i#1#{\DN@{#1}%120K\ifx\next@\empty\L@c=\z@\D@c=\z@\DN@{\xyextern@x}%121K\else\DN@{\xyextern@ii#1}\fi\next@}123\xydef@\xyextern@ii(#1,#2){\L@c=#1\p@\D@c=#2\p@124K\advance\R@c-\L@c\advance\U@c-\D@c\xyextern@x}126\xydef@\xyimportdefault@{3}127\xydef@\xyexportwarning@#1#2#3{\xywarning@{%128K#1forimporthaszero#2;using\xyimportdefault@#3default}}130\xydef@\xyextern@x#1{\toks@={\egroup\L@c=}\setboxz@h{#1}%131K\dimen@ii=\L@c\advance\dimen@ii\R@c\dimen@=\wdz@132K\ifdim\dimen@=\z@\xyexportwarning@{graphic}{width}{cm}%133 m\dimen@=\xyimportdefault@cm\fi134K\ifdim\dimen@ii=\z@\xyexportwarning@{coords}{width}{unit}%135 m\dimen@ii=\xyimportdefault@\p@\fi*tj2.8.CIMPOReTfGRAPHICSEXTENSION쾹249??hw136K\quotient@\next@\dimen@\dimen@ii\dimen@=\next@\p@ 137K\edef\tmp@{\expandafter\removePT@\the\L@c}\L@c=\tmp@\dimen@138K\expandafter\addtotoks@\expandafter{\the\L@c\relax\R@c=}%139K\edef\tmp@{\expandafter\removePT@\the\R@c}\R@c=\tmp@\dimen@140K\expandafter\addtotoks@\expandafter{\the\R@c\relax\setbase@\z@\z@}%141%142K\expandafter\addtotoks@\expandafter{\expandafter{\the\dimen@}\z@\D@c=}%143K\dimen@ii=\U@c\advance\dimen@ii\D@c\dimen@=\ht\z@\advance\dimen@\dp\z@144K\ifdim\dimen@=\z@\xyexportwarning@{graphic}{height}{cm}%145 m\dimen@=\xyimportdefault@cm\fi146K\ifdim\dimen@ii=\z@\xyexportwarning@{coords}{height}{unit}%147 m\dimen@ii=\xyimportdefault@\p@\fi148K\quotient@\next@\dimen@\dimen@ii\dimen@=\next@\p@149K\edef\tmp@{\expandafter\removePT@\the\D@c}\D@c=\tmp@\dimen@150K\expandafter\addtotoks@\expandafter{\the\D@c\relax\U@c=}%151K\edef\tmp@{\expandafter\removePT@\the\U@c}\U@c=\tmp@\dimen@152K\expandafter\addtotoks@\expandafter{\the\U@c\relax\setbase@@\z@}%153K\expandafter\addtotoks@\expandafter{\expandafter{\the\dimen@}}%154%155K\setboxz@h{\kern-\L@c\lower\D@c\boxz@\kern\L@c}%156 m\wd\z@=\z@\ht\z@=\z@\dp\z@=\z@\boxz@\the\toks@\X@c=\z@\Y@c=\z@157K\ifdim\X@min>-\L@c\X@min=-\L@c\fi\ifdim\X@max<\R@c\X@max=\R@c\fi158K\ifdim\Y@min>-\D@c\Y@min=-\D@c\fi\ifdim\Y@max<\U@c\Y@max=\U@c\fi159K\idfromc@{import}\POS}oNormally the\xyimport;йcommandisusedatthebMeginningofan\xy..\endxyGV$en!vironment.kItis6notnecessarytogiv!eanybasissetup,forthisisdeducedbymeasuringthedimensionsofthehgraphici1Wandusingthesuppliedwidth,Theightando sets.~Thehgraphiciitselfde nesnamedhpMosicalledb2"import"1_,oloMcatedb2attheoriginandha!vingappropriateextentstodescribMetheareacoveredbythehgraphici.uThismak!esitparticularlyeasytosurroundthehgraphiciwithaframe,asontheleftsidefof gure2.6,ortodra!waxespassingthroughtheorigin.&HerefisthecoMdeusedtoapplythelabellingin gure2.6:P\def\ellipA{\resizebox{6cm}{!}{% m\includegraphics{import1.eps}}}\xy\xyimport(3.7,3.7)(1.4,1.4){\ellipA}*\frm{-},!D+<2pc,-1pc>*+!U\txt{%Kframedcontentsofgraphicsfile}\endxy\qquad\qquad\xy\xyimport(3.7,3.7)(1.4,1.4){\ellipA},!D+<2pc,-1pc>*+!U\txt{RationalpointsKontheellipticcurve:$x^3+y^3=7$},(1,0)*+!U{1},(-1,0)*+!U{-1},(0,1)*+!R{1},(0,-1)*+!R{-1},(2,-1)*+!RU{P},(-1,2)*+!RU{-P},(1.3333,1.6667)*+!UR{-2P},(1.6667,1.3333)*!DL{\;2P},(-.5,1.9)*++!DL{3P},(1.9,-.5)*!DL{\;-3P},(-1,2.3)*+++!D{\infty}*=0{},{\ar+(-.2,.2)},(.5,2.3)*+++!D{\infty}*=0{},{\ar+(-.2,.2)}*tj250?KlCHAPTERf2.CEXTENSIONS??hw,(2.3,-1)*+++!L{\infty}*=0{},{\ar+(.2,-.2)} \endxyThisnexampleusestheLAGT,[wEB Xv2z" standardgraphics2.pac!kdDagetoimpMortthegraphics leimport1.epsA=;otherxpac!kdDagescouldhavebMeenusedinstead.e.g.epsfig'n,epsf,orxthe\picture5V@or\illustrationcommandsfinTexturesontheMacin!tosh. TheEzonlypMossibleproblemsthatcanoccurarewhenthegraphicspac!kdDageisloadedafter-$XY-pichasfbMeenloaded.Generallyitisadvisabletoha!veXY p-picfloadingafterallothermacropac!kdDages.sThe2end&LogP196\xyendinput198%$Log:xyimport.doc,v$ 199%Revision3.6 T1998/03/0601:28:05krisrose200%Releasing(withY&Yfonts).201%202%Revision3.4 T1997/05/1801:13:24ross203%Essentialbugfixes.204%205%Revision3.3 T1996/12/1809:19:22ross206%nochanges207%208%Revision3.1 T1995/09/0520:36:33ross209%Release!210%211%Revision3.0 T1995/07/0720:13:19ross212%Majorreleasew/newUser'sGuide!213%214%Revision2.14 T1995/07/0522:10:51kris215%Buglets...216%217%Revision2.13 T1995/07/0415:04:51ross218%Readyforreleaseofv3.219%220%221%NEWforversion3.0bybyRossMoore./G2.9r|MovieffStorybs3oardextensionV ers.p3.5Tb9yKristo erH.Rosehkrisrose@brics.dki1Thisextensionin!terpretsthe\sceneprimitiveofthemovieclass,5hsettingtheprogressindicatorstodumm!yfvdDalues.Thefollowingassumesthatyourarefamiliarwiththemovie$ class.Header:P1%%$Id:xymovie.doc,v3.51997/05/2813:05:01krisroseExp$2%%3%%Xy-pic``MovieStoryboardextension''option.4%%Copyright(c)1996-1997KristofferH.RoseD*tj2.9.CMO!VIEfSTOReYBOARDEXTENSION޹251??hw5%% 6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{movie}{MovieStoryboardextension}{\stripRCS$Revision:3.5$}%27K{KristofferH.~Rose}{krisrose@brics.dk}%28K{BRICS/ComputerScience,UniversityofAarhus,NyMunkegade,building540,29 mDK--8000Aarhus~C}|Thefsizeoftheframeisdeterminedb!ythecommand ffd ?܍~C|\MovieSetup{width=(=width ,height=.[height ,ɔ.3..}5ffd㍹(the.3..indicatetheotherargumen!tsrequiredbythemovie$classbutsilentlyignoredbytheXYo-picmovie dextension).Note:SThisyQextensionstillexpMerimen!talandsubjecttochange.TheonlydoMcumentationisinthemovie.cls7c`sourcef le.Theimplemen!tationmimicstheaspMectsofthekeyval*packdDageneededhere,:cnamelyreadingtheheightfandwidthparameters.61\xynew@{dimen}\m@height62\xynew@{dimen}\m@width64\xydef@\extractparameterm@#1#2#3{%65\DN@##1,#1=##2,##3@{\csnamem@#1\endcsname=##2\relax}%66\next@,#2,#3,@}68\xydef@\MovieSetup#1{%69\extractparameterm@{height}{#1}{height=2in}%70\extractparameterm@{width}{#1}{width=2in}%71}Thefprogressmacrosalldefaultto77\xydef@\theScene{0}78\xydef@\theF{0}79\xydef@\theFr{1}x*tj252?KlCHAPTERf2.CEXTENSIONS??hw80\xydef@\F#1{#1(0)} 81\xydef@\Fr#1{#1(1)}b$Weeneedtoin!terpretandignoretheargumentsto\scene*K:exceptthe* whichisusedonthelastscenesincethismeansthatw!eshouldoutputthescenewithprogressvdDaluescorrespMondingto\TheEnd".P89\xynew@{if}\iflastframe@90\xynew@{count}\m@scene92\xydef@\scene{\advance\m@scene\@ne93K\DN@{\ifx*\next\lastframe@true\DN@*{\xyFN@\scene@}%94 m\else\let\next@=\scene@\fi\next@}%95K\xyFN@\next@}97\xydef@\scene@{%98K\ifx[\next\DN@[##1]{\scene@i}\else\let\next@=\scene@i\fi\next@}100\long\def\scene@i#1{{%101%102 m\def\caption##1{\gdef\m@caption{Scene\the\m@scene.##1}}%103 m\edef\theScene{\the\m@scene}%104 m\def\theF{0}\def\theFr{1}%105 m\def\F##1{##1(0)}\def\Fr##1{##1(1)}%106 m\scene@frame{#1}%107%108 m\iflastframe@109\def\caption##1{}%110\gdef\m@caption{TheEnd.}%111\def\theF{1}\def\theFr{0}%112\def\F##1{##1(1)}\def\Fr##1{##1(0)}%113\scene@frame{#1}%114 m\fi115 m}\ignorespaces}117\def\scene@frame#1{\vbox{\null118 m\dimen@=\m@width\advance\dimen@2\xydashw@119 m\hrulewidth\dimen@120 m\hboxto\dimen@{\vrulewidth\xydashw@\hss121\vboxto\m@height{\hsize=\m@width\null\vfil{#1}\vfil\null}%122\hss\vrulewidth\xydashw@}%123 m\hrulewidth\dimen@124 m\setbox0=\hbox{%125\setbox0=\hboxto\m@width{\hss\strut\m@caption\hss}%126\dimen0=\dp0\ht0=0pt\dp0=0pt\raise\dimen0\box0}%127 m\ht0=0pt\dp0=0pt\box0\relax128 m\null}}'The2end&Log134\xyendinput136%$Log:xymovie.doc,v$137%Revision3.5 T1997/05/2813:05:01krisroseK*tj2.10.CPOSTSCRIPTfBA!CKEND1&253??hw138%Fixedmissingbreaksbug. 139%140%Revision3.4 T1997/05/1802:37:17krisrose141%Fitsmovie.cls3.4...stillexperimental.142%143%Revision1.1 T1997/05/1801:22:10krisrose144%Initialrevision145%146%NEWforversion3.4.-t2.10PostScriptffbackendV ers.p3.7Tb9yRossMoQorehross@mpGce.mq.edu.auissùXY#-ps9`isa`bac!k-end'whichprovides! XY j-picwiththeabilitytoproMduceDVI9E lesthatusePostScript\specialsyforfdra!wingratherthantheXY p-picfonts. Inlparticularthismak!esitpMossibletoprint{XYv-picDVI/ lesonsystemswhichdonothavetheabilit!ytoloadthespMecialfonts.ThepMenaltyisthatthegeneratedDVI leswillonlyfunctionwithonefparticularD!VIdriverprogram.HencewheneverXY p-psisactivdDateditwillwarntheuser:@ps: SDict begin xyc end+w荍8XYCD-picMWearning:yTheproMducedD!VI leisnotpportableҡ:It 5con!tainsMPostScript\specialsforhoneparticularidriverh0z4" {0.0 196.47948 -14.43663 -196.47946 14.43663 ov}xy~Afmorecompletediscussionoftheprosandconsofusingthisbac!kendfisincludedbMelo!w.Header:P1%%$Id:xyps.doc,v3.71999/02/1615:12:50krisroseExp$2%%3%%Xy-pic``PostScriptbackend''.4%%Copyright(c)1993-1997RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%*tj254?KlCHAPTERf2.CEXTENSIONS??hw24%%Asaspecialexception,youmayusethisfileandallfilesderived 25%%fromitwithoutrestrictions. TThisspecialexceptionwasaddedwith26%%version3.7ofXy-pic.27%%28\ifx\xyloaded\undefined\inputxy\fiP30\xyprovide{ps}{PostScriptbackend}{\stripRCS$Revision:3.7$}%31K{RossMoore}{ross@mpce.mq.edu.au}%32K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}12.10.1Cho`osingtheDVI-driver Including\xyoption{ps}OwithinthedoMcumen!tpreamble,Jtells-XY -picthatthePostScriptalternativetoRthefon!tsshouldbMeused, providedthemeanstodothisisalsospMeci ed. ThisisdonebyalsospMecifyingadvi-driv!erwhichiscapableofrecognisingandinterpreting\special3\expandafter\let\expandafter\next\csname#2@\endcsname191%>\ifx\next\relax\DN@{\xyerror@{PostScriptspecialsfor`#2'notsupported}{}}%192#>\ifx\next\relax\DN@{\UsePSspecials@{#2}{}}%193%>\else\DN@{\expandafter\UsePSspecials@\csname#2@\endcsname#1}\fi194#>\else\DN@{\UsePSspecials@{#2}{#1}}\fi195T\fi196\else197T\DN@{#2}\ifx\next@\empty\DN@{\PSspecials@true}%198T\else199%>\edef\next@{\expandafter\string\csname#2@\endcsname}%200#>\DN@{#2}%201#>\edef\nextii@{\expandafter\string\whichPSspecials@}%202#>\ifx\next@\nextii@\DN@{\PSspecials@true}%203#>\else204(\ifx\firstPS@@\relax205.R\DN@{\xyerror@{OnlyonePSallowed:\dvitype@alreadyloaded}{}}%206(\else207.R\expandafter\let\expandafter\next\csname#2@\endcsname208.R\ifx\next\relax2094}\DN@{\xyerror@{PostScriptspecialsfor`#2'notsupported}{}}%210.R\else2114}\xywarning@{ChangingPSto#2}%212%"}\DN@{\expandafter\UsePSspecials@\csname#2@\endcsname#1}%x*tj256?KlCHAPTERf2.CEXTENSIONS??hw213 \DN@{\UsePSspecials@{#2}{#1}}% 214Jk\fi215 \fi216\fi217 m\fi218K\fi\next@}PThe(follo!wingcontrolsequenceswillalsoloadthecorrespMondingdriver.a#Theyareretainedforbac!kwardsfcompatibilityonly;theymaybMephasedoutoffuturereleases: ˉffd A*6~\UseDVIPSspecialsdvips6~\UsePostScriptSpecialsdvips6~\UseTexturesPSspecialsTextures6~\UseTexturesSpecialsTextures6ffd hT235\xydef@\UseDVIPSspecials{\UsePSspecials@\dvips@}236\xydef@\UseTexturesPSspecials{\UsePSspecials@\Textures@}237\xydef@\UseTexturesSpecials{\UsePSspecials@\Textures@}238\xydef@\UsePostScriptSpecials{\UsePSspecials@\dvips@}239\xydef@\UseOzTeXspecials{\UsePSspecials@\OzTeX@}240\xydef@\UseDVITOPSspecials{\UsePSspecials@\dvitops@}241%\xylet@\UseDVIPSSpecials=\UseDVIPSspecials242%\xylet@\UsePSspecials=\UsePostScriptSpecials243%\xylet@\UseTeXturesPSspecials=\UseTexturesPSspecials244%\xylet@\UseTexturesSpecials=\UseTexturesPSspecials245%\xylet@\UseTeXturesSpecials=\UseTexturesSpecialsv251\message{drivers,}Firstthedriv!erisspMeci edby\UsePSspecials{Z5hdriveri}.%ThiscausesaspMecialdriver letobMeread.Usepoffon!tsisrestoredatanypMointbycalling\NoPSspecialsN,,{afterwhichuseofPostScriptiswre-instatedb!ysimply\UsePSspecialsT/,Cwithoutneedofanargument.RUThecommandsdescribMedabMo!vefforspeci cdriv!ersaresimplyaliasesfor\UsePSspecials@{_hdriveri}.OnceOthenewbindingsha!veObMeensetup,`thentheuseof\special1Llsisgo!vernedObythevdDalueoftheconditionalf\ifPSspecials@T!.266\xydef@\loadPSdriver@#1#2{\xyinputorelse@{xy#1}%267{\xyrequire{#2}\expandafter\ifx\csnamexy#2loaded\else%268{\xyerror@{Unabletoloadxy#1.texfor#2driver}{}}\fi}}270\xydef@\dvips@{\loadPSdriver@{ps-dvi}{dvips}}271\xydef@\Textures@{\loadPSdriver@{ps-txt}{Textures}}272\xydef@\OzTeX@{\loadPSdriver@{ps-oz}{OzTeX}}273\xydef@\dvitops@{\loadPSdriver@{ps-dto}{dvitops}}274\xydef@\dvipsone@{\loadPSdriver@{ps-one}{dvipsone}}275%\xydef@\dviwindo@{\loadPSdriver@{ps-wdo}{dviwindo}}276%\xydef@\dviwin@{\loadPSdriver@{ps-win}{dviwin}}277%\xydef@\pubps@{\loadPSdriver@{ps-pub}{pubps}}The΂driv!er lecontainsde nitionswhicharespMeci ctotheparticulardriver.V1Notethatsomedriv!erspmaynotbMeabletosupportallofthePostScripte ectsthatcanberequestedfromwithinXY g -pic.a>When'anunsuppMortede ectisencoun!tered,Gitissimplyignored;hawarningmessagewillbMeproMducedfunlesstooman!ysuchmessageshavealreadybMeenissued.Ѡ*tj2.10.CPOSTSCRIPTfBA!CKEND1&257??hw288\global\newif\ifPSspecials@ 289%\xydef@\UsePSspecials@#1{\gdef\whichPSspecials@{#1}\xyFN@\PSspecials@}290\xydef@\UsePSspecials@#1{\def\whichPSspecials@{#1}%291K\DN@{\Textures@}\ifx\next@\whichPSspecials@292 m\DN@##1{\xyrequire{textures}%293\def\whichPSspecials@{textures}\xyps@options}%294K\else\DN@{\dvips@}\ifx\next@\whichPSspecials@295 m\DN@##1{\xyrequire{dvips}%296\def\whichPSspecials@{dvips}\xyps@options}%297K\else\DN@{\OzTeX@}\ifx\next@\whichPSspecials@298 m\DN@##1{\xyrequire{oztex}%299\def\whichPSspecials@{oztex}\xyps@options}%300K\else\DN@{\dvitops@}\ifx\next@\whichPSspecials@301 m\DN@##1{\xyrequire{dvitops}%302\def\whichPSspecials@{dvitops}\xyps@options}%303K\else304 m\DN@##1{\xyrequire{ps}\xyrequire{#1}\xyps@options}%305K\fi\fi\fi\fi\next@}P307\xydef@\xyps@options{%308K\xyrequire{ps}\xyrequire{line}\xyrequire{color}\xyrequire{crayon}%309K\xyrequire{rotate}\xyrequire{tile}\xyrequire{frame}\xyuncatcodes}310\xydef@\whichPSspecials@{}312\xydef@\NoPSspecials{\xyPSwarning@{off}%313K\PSspecials@false\aftergroup\resetPS@}314\xydef@\resetPS@{\ifPSspecials@\xyPSwarning@{backon}\fi}315\xydef@\UsePSspecials@x{\PSspecials@true\resetPS@}317\xydef@\xyPSwarning@#1{\xywarning@{PostScriptswitched#1}}318%319%\xydef@\xyPSraw@{%320%\ifPSspecials@\expandafter\PSraw@@\else\expandafter\eat@\fi}UnloadingfthePostScript-bac!kendfishandledb!ytheunload)hdriveri.397\xyaddunsupport{ps}{\csnameUnloadPS@@\endcsname}!:addinggnewdrivters 5Otherqdriv!erscanbMeaddedbyincludinganappropriatecontrol-sequencenamefornthedriv!eratthispMoint.v ThepurpMoseofanexpansionsuchas\xydef@\OzTeX@{\noexpand\OzTeX@}is\sothatthisnamealw!ays\referstoauniquetok!en./Themacro\PSspecials@@PZde nedbMelow,^detectsthisftok!enandthencallsuptheappropriatemacrotomakethenecessarybindings.Th!usfaddinganewdriverinvolves5steps:%1fDe neanewcon!trolsequence,asjustexplained.kP2tDe neappropriatelynamedmacrostogeneratethedesired\special1qns.(Seetheexistingonesforfexamplesofwhatisneededhere.)3*De neamacrothatwillpMerformtheappropriatebindingsofthedi eren!tclassesof\special1'չ.(Seeftheexistingonesforexamplesofwhatisneededhere.)4~=Determineho!wfrequentlytheeXYG-psdictionarymustbMeincludedwithinthePostScript le.Once(atthebMeginning)istheideal,%ho!weveritma!ybenecessarytoincludeitwithev!erypage|*tj258?KlCHAPTERf2.CEXTENSIONS??hwthisisthecasewithTextures.AlsoifthedictionarycanbMeloadedasaheaderorprolog, determinewhetherthiscanbMedoneonlyonceorm!ustbeforeac!hpage.fAlsocheckwhetheraspMeci cfnameisrequired,aswithOz[T,[wEB X.5HBChec!ktoseewhetherthe\dumpPSdictGҹmacrocorrectlywritesthedictionarytoa le.pThe\endlinecharG{canfbMeimportan!there.sXY#-psew!orksbyrebindingexistingcontrolsequencenames,ϥintheXY.o-pickernelandextensions,ϥtoha!venewexpansions.?Thesenewexpansionsma!yeventuallytypMesetnothing,oratmostanemptybMox;instead[theyusea\special40commandtoplacePostScriptcoMdedirectlyin!tothe.dvi le(orDVI2resourcesinthecaseofTexturesontheMacin!tosh).ThenewexpansionsaltertheT,[wEB XproMcessing,oftenfsimplifyingitconsiderablyhenceleadingtosa!vingsinbMothtimeandmemoryrequirement. 3ItTshouldnotbMepossibletomix\specials}e\dumpPSdict{}e\xyPSdefaultdictFffdӍNormallyitissucien!ttoinvoke\UsePSheader{}Sy7,whichinvokesthedefaultnameofxy37dict.pro,referringItothecurren!tversionof1MXY-pic.ǔTheoptionalh lenameiallowsadi erent letobMeused.Placingz\dumpPSdict{..}^5withinzthedoMcumen!tpreamblecausesthedictionarytobMewrittentothesuppliedfh lenamei.P625\DN@{\csnamenewif\endcsname\ifUsePSdict@@\DN@{}}626\ifx\undefined\UsePSdict@@true\else\DN@{}\fi\next@628\ifx\undefined\xyPSdefaultdict629\xydef@\xyPSdefaultdict{%630T\DN@##1.##2.##3@{\gdef\xyPSdictname{xy##1##2dict.pro}}%631\expandafter\next@\xyversion.@}%632\fi634\ifx\undefined\UsePSheader@635\xydef@\UsePSheader@#1{%636T\DN@{#1}\ifx\next@\empty637% T\ifx\xyPSdictname\undefined\xyPSdefaultdict\fi638T\else\gdef\xyPSdictname{#1}\fi639T\ifx\xyPSdictname\undefined\xyPSdefaultdict\fi640T\gdef\xyHeaderMessage@{%641#>ItincludesareferencetothePostScriptfile\xyPSdictname.^^J}%642\UsePSdict@@true}%643\let\UsePSheader=\UsePSheader@644\fiq덑SeetthedoMcumen!tationforthespeci cdriv!ertoestablishwherethedictionary leshouldbelocatedonaran!yparticularT,[wEB Xsystem.Usuallyitissucienttohaveacopyinthecurrentworkingdirectorye.In!voking)athecommand\dumpPSdict{}Qdwillplaceacop!yoftherequisite le,Bbhavingthedefaultname,in3thecurren!tdirectorye.DThis lewillbMeusedasthedictionaryforthecurrentproMcessing,providedit isonthecorrectdirectorypath,#sothatthedriv!ercanloMcateitwhenneeded. ConsultyourloMcalsystemfadministratorify!ouexpMeriencediculties. The`dump'cannotbMeperformedun!tiladriverhasbMeeninstalled.Thisensuresthatthecorrect`end-of-line'fc!haracterisused.663\xydef@\dumpPSdict#1{\DN@{#1}\ifx\next@\empty%*tj2.10.CPOSTSCRIPTfBA!CKEND1&261??hw664 m\ifx\undefined\xyPSdictname\xyPSdefaultdict\fi 665K\else\gdef\xyPSdictname{#1}\fi666K\def\dumpPSdict@@{\writePSdict@@}%667K\ifx\xydriversselected@@\empty\DN@{\xysetup@@\null@xy@ps}%668K\else\DN@{\installxyps@x}\fi\next@}VMultipleNinstancesof\UsePSheaderMand\dumpPSdictGZarepMossible,xonlythelastwilldeterminewhic!h leisusedforthecurrentdoMcument.Thecommand\xyPSdefaultdictcbrevertstothedefaultname. Allo!winganarbitraryh lenameiwith\UsePSheaderNwHisfor exibilitye,ytoaccommoMdatesystemsthatma!yimpMosespecialrequiremen!tsonthe lenamesof lestobeusedasPostScriptheader les.͉Oz[T,[wEB Xukisonesuc!h.ItalsocatersforadvdDancedusersof]XY u-picwhoma!ywishtoexpMerimentwithcustomisedfPostScripttoobtainnewe ects.t2.10.3Ho`okinginto&aX1"Yv-pich689\message{hooks,}ThisfnextmacrostreamlinestherebindingproMcess.P695\gdef\xyPSalternative@#1#2{%696\expandafter\global\expandafter\let\csnameorigxy#2@\endcsname=#1%697K\xdef#1{\noexpand\ifPSspecials@698\noexpand\expandafter\expandafter\noexpand\csnamexyPS#2@\endcsname699 m\noexpand\else700\noexpand\expandafter\expandafter\noexpand\csnameorigxy#2@\endcsname701 m\noexpand\fi}}%Thencommands\setupxyPSlevelA@d)9,:\setupxyPSlevelB@dg,:\setupxyPSlevelC@fsand\setupxyPSlevelD@actuallypMerformtherebindings.GEac!hmaybMecalledpreciselyonce,andeachrequiresalllowerlevelsarefalsoset.P710\xydef@\setupxyPSlevelA@{\xyPStips@%711K\xyPSalternative@{\Tip@@}{Tip}%712K\xyPSalternative@{\Ttip@@}{Ttip}%713K\xyPSalternative@{\Tip@@eu}{Tip@eu}%714K\xyPSalternative@{\Ttip@@eu}{Ttip@eu}%715K\xyPSalternative@{\hook@@}{hook}%716K\xyPSalternative@{\ahook@@}{ahook}%717K\xyPSalternative@{\bhook@@}{bhook}%718K\xyPSalternative@{\aturn@@}{aturn}%719K\xyPSalternative@{\bturn@@}{bturn}%720K\xyPSalternative@{\squiggle@@}{squiggle}%721K\xyPSalternative@{\stopper@@}{stopper}%722K\xyPSalternative@{\line@@}{dash}%723K\xyPSalternative@{\circhar@@}{circhar@}%724%\xywithoption{cmtip}{\xyPScmtips@}%725K\gdef\setupxyPSlevelA@{\PSincrease@{1}}%726K\global\let\UsePSspecials=\UsePSspecials@x\PSspecials@true}727%728\xydef@\setupxyPSlevelB@{%729K\let\xyPSfont@=\empty\let\xyPSsemifont@=\empty730K\xyPSalternative@{\cirrestrict@@}{cirrest}%3*tj262?KlCHAPTERf2.CEXTENSIONS??hw731K\gdef\setupxyPSlevelB@{\PSincrease@{2}}% 732K\setupxyPSlevelA@}733%734\xydef@\setupxyPSlevelC@{%735K\xyPSalternative@{\cirbuild@}{cirbuild}%736K\xyPSalternative@{\CIRfull@}{CIRfull}%737K\xyPSalternative@{\solid@}{solid}%738K\xyPSalternative@{\point@}{point}%739K\xywithoption{curve}{%740 m\xyPSalternative@{\splinesolid@}{splinesolid}}%741K\gdef\setupxyPSlevelC@{\PSincrease@{3}}%742K\setupxyPSlevelB@}%743%744\xydef@\setupxyPSlevelD@{%745K\xyPSalternative@{\dash@}{dashed}%746%\xyPSalternative@{\squiggle@}{squiggled}%747K\xywithoption{curve}{%748 m\xyPSalternative@{\splinedashed@}{splinedashed}%749 m\xyPSalternative@{\splinedotted@}{splinedotted}}%750K\gdef\setupxyPSlevelD@{}%\PSincrease@{4}}%751K\setupxyPSlevelC@}UThefbindingsarenotpMerformedun!til\setupxyPS@Fiscalled.l=2.10.4KernelimprovementsDirectionals:These\macrosstandardisethew!ay\ac!haracterisdescribMedinPostScript.Firstgivethe\Direction coMdeathentheoperatorname,whic!hisjustasimplecharacterstring.نThemoMdi ers\xyPSfont@@fand\xyPSsemifont@6are[empt!yinallbutthemostprimitivelevelofPostScriptusage./Whennon-emptytheyfrestricttousingonlyanglescorrespMondingtoactualfon!tcharacters.P772\xydef@\xyPSchar@#1{%773K\PSmacro@{\the\Direction\space\xyPSfont@#1}}775\xydef@\xyPSsemichar@#1{%776K\PSmacro@{\the\Direction\space\xyPSsemifont@#1}}UThesejPmacrospro!videPostScriptcoMdetorounda\DirectionBQDcodetothatcorrespondingtothefnearestfon!tcharactercoMde,forDirectionalandsemi-DirectionalfontsrespMectivelye.784\xydef@\xyPSfont@{f}%{xyfont}785\xydef@\xyPSsemifont@{fs}%{xysdfont}UBeforean!ybindingwesavetheoriginalexpansionsofcontrol-sequenceswhosenameswillbMesubjecttofrebinding.Weegiv!ethese rstforeachfont.׍tips 5Arro!wfheadsin\xyatipfontFand\xybtipfont Theftipsareallsetaszero-sizedc!haracters.3..799\xydef@\xyPStip@{\xyPSchar@{t}}%{\xyPSchar@{tip}}800%\xydef@\xyPSatip@{\xyPSchar@{a}}%{\xyPSchar@{atip}}801%\xydef@\xyPSbtip@{\xyPSchar@{b}}%{\xyPSchar@{btip}}802\xydef@\xyPSTip@{\xyPSchar@{/XTtt}}%{\xyPSchar@{Tip}}@\*tj2.10.CPOSTSCRIPTfBA!CKEND1&263??hw803\xydef@\xyPSTtip@{\setboxz@h\bgroup 804 m\reverseDirection@\line@\wdz@=\z@\ht\z@=\z@\dp\z@=\z@805 m\kern-\L@c\boxz@\kern\L@c\xyPSchar@{/XttT}}%{\xyPSchar@{Ttip}}806\xydef@\xyPSTip@eu@{\xyPSchar@{/ETtt}}%{\xyPSchar@{Tip}}807\xydef@\xyPSTtip@eu@{\setboxz@h\bgroup808 m\reverseDirection@\line@\wdz@=\z@\ht\z@=\z@\dp\z@=\z@809 m\kern-\L@c\boxz@\kern\L@c\xyPSchar@{/ETtT}}%{\xyPSchar@{Ttip}} -The7mec!hanismtohandleComputerMoMderntipsisalittledi erent.Herewemustrebind\xycm@toa!voidanycallstofontnames.%fWhen\PSspecialstrue^bthenweexpandamacrowhichwillloMokatfthefollo!wingtokentodecidewhichtypMeoftipisrequiredafter\tip@x&$b.P819%\xydef@\xyPScmtips@{\xyPSalternative@{\xycm@}{cm}}%820\xydef@\xyPScm@\tip@x{\xyFN@\xyPScm@@}%821\xydef@\xyPScm@@{%822 \ifx\next\tip@@ T\DN@\tip@@{\tip@x\xyPScmtip@}%823K\else\ifx\next\atip@@\DN@\atip@@{\tip@x\xyPScmatip@}%824K\else\ifx\next\btip@@\DN@\btip@@{\tip@x\xyPScmbtip@}%825K\else\DN@{}%826K\fi\fi\fi\next@}%827%828\xydef@\xyPScmtip@{\xyPSchar@{ct}}%{\xyPSchar@{cmtip}}829\xydef@\xyPScmatip@{\xyPSchar@{ca}}%{\xyPSchar@{cmatip}}830\xydef@\xyPScmbtip@{\xyPSchar@{cb}}%{\xyPSchar@{cmbtip}}Feromg9v!ersion3.3thefontcoMdinghaschanged,sforgreater exibilityandconsistencye.Inparticular\xycm@ {isfnolongerde ned.P837\xydef@\xyPStips@{%838K\xyPSalternative@{\atip@@}{atip}%839K\xyPSalternative@{\btip@@}{btip}%840K\xyPSalternative@{\tip@@}{abtip}%841}%843\xydef@\xyPSatip@{\xyPSwhichatip@844K\expandafter\xyPSchar@\expandafter{\xyPSfont@@}}%845\xydef@\xyPSbtip@{\xyPSwhichbtip@846K\expandafter\xyPSchar@\expandafter{\xyPSfont@@}}%847\xydef@\xyPSabtip@{\xyPSwhichabtip@848K\expandafter\xyPSchar@\expandafter{\xyPSfont@@}}%850\xydef@\xyPSwhichatip@{\ifx\xyatipfont\xy@@atfont851K\expandafter\xyPSatip@i\else\def\xyPSfont@@{10/xyA}\fi}%852\xydef@\xyPSwhichbtip@{\ifx\xybtipfont\xy@@btfont853K\expandafter\xyPSbtip@i\else\def\xyPSfont@@{10/xyB}\fi}%854\xydef@\xyPSwhichabtip@{\ifx\xyatipfont\xy@@atfont855K\expandafter\xyPSabtip@i\else\def\xyPSfont@@{10/xyAB}\fi}%856\xydef@\xyPSatip@i{%857 m\edef\xyPSfont@@{\tipsize@@\space/\tipfamily@@\spaceA}}858\xydef@\xyPSbtip@i{%859 m\edef\xyPSfont@@{\tipsize@@\space/\tipfamily@@\spaceB}}860\xydef@\xyPSabtip@i{%861 m\edef\xyPSfont@@{\tipsize@@\space/\tipfamily@@\spaceAB}}LF*tj264?KlCHAPTERf2.CEXTENSIONS??hw863\xydef@\xyPSTtips@{% 864 m\let\Ttip@xy=\Ttip@865 m\let\Ttip@cm=\Ttip@866 m\let\Ttip@eu=\Ttip@}#hoYoks,2turnsandsquiggles: 5squigglesffrom:\xybsqlfont ThefhoMoksarezero-sizedc!haracters.3..P875\xydef@\xyPShook@{\xyPSchar@{h}}%{\xyPSchar@{hook}}876\xydef@\xyPSahook@{\xyPSchar@{ha}}%{\xyPSchar@{ahook}}877\xydef@\xyPSbhook@{\xyPSchar@{hb}}%{\xyPSchar@{bhook}}⍑.3..sofaretheturns.3..883\xydef@\xyPSaturn@{\xyPSchar@{ta}}%{\xyPSchar@{aturn}}884\xydef@\xyPSbturn@{\xyPSchar@{tb}}%{\xyPSchar@{bturn}}⍑Thiszhandlessquigglesasindividualc!haracters.XSquiggledconnectionsshouldbMehandledsepa-ratelye,:e.g.v b!ynhaving\xyPSsquiggle@UY*settheconnectionbysomethinglike\edef\Connect@@{\noexpand\xyPSsquiggled@{\the\Direction}}Os.893\xydef@\xyPSsquiggle@{\xyPSchar@{g}}%{\xyPSchar@{squigl}}⍑T\o2Do:ݹde nefcompMosite\xyPSsquiggled@ T\o2Do:ݹde nefcompMosite\xyPSdashsquiggled@ dashes2andstoppYers: 5usingfc!haractersfrom:xydashfontANstoppMerڝcon!tributeszerosize.zHoweveradashgetsitssizefromtheitaliccorrectioninthe xydashfont,faccessedhereusing\origxyline@@Nb.910\xydef@\xyPSstopper@{\xyPSchar@{st}}%{\xyPSchar@{stopper}}912%\xydef@\xyPSfliptrue@{\DN@{\xyPSsemichar@{truedash}}}913\xydef@\xyPSfliptrue@{\DN@{\xyPSsemichar@{Td}}}915\xydef@\xyPSdash@{%916%\DN@{\xyPSsemichar@{falsedash}}%917K\DN@{\xyPSsemichar@{Fd}}%918K\ifnum\SemiDirectionChar=31919 m\ifdim\d@Y<\z@920\ifdim\d@X<\z@\ifx\xyPSsemifont@\empty\xyPSfliptrue@\fi\fi921 m\else922\ifdim\z@>\d@X923 \ifx\xyPSsemifont@\empty\else\xyPSfliptrue@\fi924\else\xyPSfliptrue@\fi925K\fi\fi926K\next@\setboxz@h{\origxydash@}\kern\wdz@927K\setbox\z@=\box\voidb@x}#CircleseAfullfcirclesandcirclesegmen!ts:\xycircfont Thisfhandlesthecaseswhereafon!tcharacteriscalledusing\circhar#1=# .937\xydef@\xyPScirchar@#1{\count@=#1\edef\tmp@{\the\count@}%938K\ifcase#1% Y-*tj2.10.CPOSTSCRIPTfBA!CKEND1&265??hw939 m\xyPScirchar@@@{-180}{-135}{\tmp@}\dimen@=\partroottwo\R@ 940K\or\xyPScirchar@@@{-135}{-90}{\tmp@}\dimen@=\halfroottwo\R@941K\or\xyPScirchar@@@{-90}{-45}{\tmp@}\dimen@=\halfroottwo\R@942K\or\xyPScirchar@@@{-45}0{\tmp@}\dimen@=\partroottwo\R@943K\or\xyPScirchar@@@0{45}{\tmp@}\dimen@=\partroottwo\R@944K\or\xyPScirchar@@@{45}{90}{\tmp@}\dimen@=\halfroottwo\R@945K\or\xyPScirchar@@@{90}{135}{\tmp@}\dimen@=\halfroottwo\R@946K\or\xyPScirchar@@@{135}{180}{\tmp@}\dimen@=\partroottwo\R@947K\fi}P949\xydef@\xyPScirrest@{\relax}%G捑Thisfreplacesjustthefon!tcharacter,calledusing\circhar@@#1H^.955\xydef@\xyPScirchar@@#1{\relax\count@=#1\edef\tmp@{\the\count@}% 956K\expandafter\xyPScirchar@@@\ifcase#1%957K{-180}{-135}{\tmp@}\kern\partroottwo\R@958K\or{-135}{-90}{\tmp@}\kern\halfroottwo\R@959K\or{-90}{-45}{\tmp@}\kern\halfroottwo\R@960K\or{-45}0{\tmp@}\kern\partroottwo\R@961K\or0{45}{\tmp@}\kern\partroottwo\R@962K\or{45}{90}{\tmp@}\kern\halfroottwo\R@963K\or{90}{135}{\tmp@}\kern\halfroottwo\R@964K\or{135}{180}{\tmp@}\kern\partroottwo\R@965K\fi}P967\xydef@\xyPScirchar@@@#1#2#3{\edef\tmp@{#1\space#2\space968K\expandafter\removePT@\the\R@\space#3\spacec}%969K\PSmacro@{\tmp@}}Thisonextmacrowillallo!wformoregeneralcirclesegmentstobMedoneinPostScript. Thetwoparametersfarethestartingangleand nishinganglerespMectiv!elye,measuredanti-cloMckwise.P977\xydef@\xyPScirc@#1#2{\edef\tmp@{\expandafter\removePT@\the\R@}%978%\PSmessage{\tmp@\space#1#2circ}\PSmacro@{\tmp@\space#1#2circ}}979K\PSmacro@{\tmp@\space#1#2o}}Thesefgiv!esfullcirclesandcirclesegmentsbuiltfromquarterturns.P985\xydef@\xyPSCIRfull@{\setboxz@h{\kern\R@\xyPScirc@0{360}\kern\R@}%986K\wd\z@=\z@\ht\z@=\R@\dp\z@=\R@\boxz@}%988\xydef@\xyPScirbuild@{{%989K\count@=\CIRlo@@\count@@=\CIRhi@@990K\multiply\count@by45\advance\count@-180\relax991K\multiply\count@@by45\advance\count@@-180\relax992K\def\tmp@{}%993K\ifx\CIRtest@@\CIRtest@inside994 m\ifnum\count@@>\count@995\edef\tmp@{\noexpand\xyPScirc@{\the\count@}{\the\count@@}}\fi996K\else\ifx\CIRtest@@\CIRtest@outside997 m\ifnum\count@>-180\advance\count@by360\relax998\edef\tmp@{\noexpand\xyPScirc@{\the\count@@}{\the\count@}}%999 m\else1000\ifnum\count@@<180\relax d*tj266?KlCHAPTERf2.CEXTENSIONS??hw1001 \edef\tmp@{\noexpand\xyPScirc@{\the\count@@}{180}}% 1002\fi\fi1003K\fi\fi1004K\kern\R@\tmp@\kern\R@}}#Linesssolid,fdashedanddotted;withoutusingsegmen!ts.MThisisbasedon\straight@<.Itisusedb!yallthreetypMesofline,takinganappropriatemacroasthefparameter#1%.P1014\xydef@\xyPSstraight@#1{\setupDirection@1015K\edef\Creset@@{\cfromthec@\pfromthep@\DirectionfromtheDirection@}%1016K\DN@##1##2{\def\checkoverlap@@{%1017 m\ifdim##1\X@p>##1\X@c\let\next@=\relax\fi1018 m\ifdim##2\Y@p>##2\Y@c\let\next@=\relax\fi}}%1019K\edef\nextii@{{\sd@X}{\sd@Y}}\expandafter\next@\nextii@1020K\noCshavep@@1021 m\edef\Cshavep@@{\pfromthep@\noexpand\resetDirection@}%1022K\noCshavec@@1023 m\edef\Cshavec@@{\cfromthec@\noexpand\resetDirection@}%1024K\ifHidden@\else1025 m\ifdim\Y@c>\Y@max\Y@max=\Y@c\fi T\ifdim\Y@p>\Y@max\Y@max=\Y@p\fi1026 m\ifdim\Y@c<\Y@min\Y@min=\Y@c\fi T\ifdim\Y@p<\Y@min\Y@min=\Y@p\fi1027 m\ifdim\X@c>\X@max\X@max=\X@c\fi T\ifdim\X@p>\X@max\X@max=\X@p\fi1028 m\ifdim\X@c<\X@min\X@min=\X@c\fi T\ifdim\X@p<\X@min\X@min=\X@p\fi\fi1029K\ifInvisible@\let\next@=\relaxY\else1030 m\DN@{\setboxz@h{\kern\X@c\raise\Y@c\hbox{#1}}%1031\ht\z@=\z@\wd\z@=\z@\dp\z@=\z@{\xykillstyles@\Drop@@}}%1032K\fi1033K\checkoverlap@@1034K\ifdim\d@X=\z@\ifdim\d@Y=\z@\DN@{\relax}\fi\fi\next@1035K\def\Cslidep@@{\noCslidep@@}\def\Cslidec@@{\noCslidec@@}%1036K\def\Calong@@{\noCalong@@}\Creset@@};Thisfisnotneededunlessst!ylesareused,hencexyps-s)ȹisloaded.1042\xylet@\xykillstyles@=\relaxHerefisho!wsolidlinesaredone.1048%\xydef@\xyPSsolid@{\ifInvisible@\let\next@=\no@@ 1049%\else\DN@{\xyPSstraight@\xyPSsolid@@@}\fi\next@}1051\xydef@\xyPSsolid@{\straight@\xyPSsolidSpread@}%1052\xydef@\xyPSsolidSpread@{\xyPSspread@{solid}{l}@@}%1054\xydef@\xyPSdottedSpread@{\xyPSspread@{dotted}{dt}@@}%1056\xydef@\xyPSdashed@{\line@\def\Connect@@{\straight@\xyPSdashedSpread@}}1057\xydef@\xyPSdashedSpread@{\xyPSspread@{dashed}{dd}@@}%v1060\xydef@\xyPSspread@#1#2@@#3\repeat@{\edef\tmp@{%1061 m\expandafter\removePT@\the\d@X\space\expandafter\removePT@\the\d@Y}%1062K\setboxz@h{\kern\X@c\raise\Y@c\hbox{% p^*tj2.10.CPOSTSCRIPTfBA!CKEND1&267??hw1063 m\PSmessage{#1line:}\PSmacro@{\tmp@\space#2}}}% 1064K\ht\z@=\z@\wd\z@=\z@\dp\z@=\z@\boxz@}pThisfreplacestheXY p-pic\dash@)ȹtogiv!edashedlines:P1071%\xydef@\xyPSdashed@{\line@\def\Connect@@{\xyPSstraight@\xyPSdashed@@}}1072%\xydef@\xyPSdashed@@{\edef\tmp@{%1073% T\expandafter\removePT@\the\d@X\space\expandafter\removePT@\the\d@Y}%1074% T\PSmessage{dashedline:\tmp@}\PSmacro@{\tmp@\spacedd}}ThissreplacestheXY >}-pic\point@-쌹togiv!edottedlines.XY-picde nes\zerodot36tobMeasmallcentredsquarefwithsidelength\xydashw@7c`.ThePostScriptsubstituteisarounddotofthisradius.P1083\xydef@\xyPSpoint@{\xyPSzerodot@\egroup1084K\Invisible@false\Hidden@false\def\Leftness@{.5}\def\U@pness@{.5}\ctipEdge@1085%\def\Drop@@{\styledboxz@}\def\Connect@@{\xyPSstraight@\xyPSdotted@}}1086K\def\Drop@@{\styledboxz@}\def\Connect@@{\straight@\xyPSdottedSpread@}}1088%\xydef@\xyPSdotted@{\edef\tmp@{%1089% T\expandafter\removePT@\the\d@X\space\expandafter\removePT@\the\d@Y}%1090% T\PSmessage{dottedline:\tmp@}\PSmacro@{\tmp@\spacedt}}1091\xydef@\xyPSzerodot@{\PSmessage{dot:}\PSmacro@{p}}"ZF\rames Thesefareusedfordashedframes.Thisfma!ydocircularframes.Curvtes1117\xydef@\xyPScubic@#1{\readsplineparams@ 1118K\PSmessage{CUBIC:}%1119K\DN@{#1}\ifx\next@\empty\PSmacro@{mark\cubicinfo@\spacebz}%1120K\else\PSmacro@{mark\cubicinfo@\spaceb#1}\fi}1122\xydef@\xyPSsquine@#1{\readsplineparams@1123K\PSmessage{SQUINE:}%1124K\DN@{#1}\ifx\next@\empty\PSmacro@{mark\squineinfo@\spaceq#1}%1125K\else\PSmacro@{mark\squineinfo@\spaceq#1}\fi}v1129\xydef@\xyPSsplinesolid@{\ifx\splineinfo@\squineinfo@1130K\expandafter\xyPSsquine@\else\expandafter\xyPScubic@\fi{}}1132\xydef@\xyPSsplinedashed@{\ifx\splineinfo@\squineinfo@1133K\expandafter\xyPSsquine@\else\expandafter\xyPScubic@\fi{d}}1135\xydef@\xyPSsplinedotted@{\ifx\splineinfo@\squineinfo@1136K\expandafter\xyPSsquine@\else\expandafter\xyPScubic@\fi{t}}"ZThe2end&Log1144\xyendinput1146%$Log:xyps.doc,v$1147%Revision3.7 T1999/02/1615:12:50krisrose1148%Interimrelease(Y&Yfontsnowfree).1149% |@*tj268?KlCHAPTERf2.CEXTENSIONS??hw1150%Revision3.4 T1997/05/1801:13:24ross 1151%Essentialbugfixes.1152%1153%Revision3.3 T1996/12/1903:50:08ross1154%Maintenancerelease.1155%1156%Revision3.3 T1996/12/1809:31:46ross1157%revisedinterfacetostraightconnections1158%revisedinterfacefortips,handlesarbitraryscaling1159%driver/option-loadingnowuses\xyrequire1160%1161%Revision3.2 T1995/09/1918:21:41ross1162%Bugfixrelease.1163%1164%Revision3.1 T1995/09/0520:36:33ross1165%Release!1166%1167%Revision3.0 T1995/07/0720:13:19ross1168%Majorreleasew/newUser'sGuide!1169%1170%Revision2.14 T1995/07/0522:10:30kris1171%Buglets...1172%1173%Revision2.13 T1995/07/0415:04:51ross1174%Readyforreleaseofv3.1175%1176%Revision2.12 T1994/10/2503:01:14ross1177%Final3betarelease[bugfixes&AMS-LaTeXfitting].1178%1179%Revision2.11 T1994/07/0506:34:32ross1180%fixedbugwithquadraticcurves1181%fixedminordocumentationbugs1182%1183%Revision2.10 T1994/06/1512:46:03ross1184%Secondrelease3beta.1185%Colourandlinestylesavingworks;labelcolouringbugfixed.1186%1187%Revision2.9 T1994/06/0914:50:54ross1188%Release3beta.1189%Includessupportforspecialeffects:Rotations,Scaling,Line-width,Colour.1190%Back-endsareseparatedintoseparatefiles.1191%Moreback-endsaresupported,experimentally---needstesting.1192%1193%Revision2.8 T1994/04/0810:36:40ross1194%Second3alpharelease.1195%1196%Revision2.7 T1994/03/2810:57:02ross1197%Firstversion.1198% *tj2.11.CTPICfBA!CKEND]AL269??hw1199%InitialversionbyRossMoorebasedonXYps2.6.4(m2.11TPICffbackend1#V ers.p3.3Tb9yRossMoQorehross@mpGce.mq.edu.auikThisN2optionallo!wsthe5XY<-picfontstobMereplacedbytpic\special2Ks,x$whenusedwithadvi-driver capable,ofsuppMortingthem.0Extracapabilitiesincludesmootherlines,ev!enlyspaceddotted/dashedcurv!es,fvdDariableline-widths,gray-scale llsofcircles,ellipsesandpMolygonalregions."Header:P1%%$Id:xytpic.doc,v3.31996/12/1809:50:38rossExp$2%%3%%Xy-pic``tpic''TPICbackend,forlines,curvesandfills.4%%Copyright(c)1995-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fi26\xyprovide{tpic}{TPICbackend}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}Use,Poftpic\special3)so ersanalternativ!etotheXYZ-picfonts. oHowevertheyrequireadvi-driv!er thatiscapableofrecognizingandinterpretingthem. Onesuchviewerisxdvik r,%KarlBerry'smoMdi cationtothexdvibview!eronunix3systemsrunningX-windowsoraderivdDative.Advipsk( =,zKarlBerry's@SmoMdi cationtodvips#>alsohandlestpic\special1=s,Tsoxdvik/dvipsk%Oisangoodcom!binationforfqualit!yscreen-displayandPostScriptprinting.Oncenloadedusing\xyoption{tpic}Y,ywithanappropriatehdriv!erialsospMeci edeitheralreadyor ffy̟ L͍ {-=3aUnixTisatrademarkofBellLabs.*tj270?KlCHAPTERf2.CEXTENSIONS??hwsubsequen!tlye,fthefollowingcommandsareavdDailabletoturnthetpicbackendo /on. Jffd aH2|\NoTPICspecialsturnsfo tpicspMecials. H2|\UseTPICspecialsreinstatesftpicspMecials.V͉ffd '{P61\xynew@{if}\ifTPICspecials@62\xydef@\UseTPICspecials{\TPICspecials@true}63\xydef@\NoTPICspecials{\TPICspecials@false}Thereisalimittothen!umbMerofpoin!tsallowableinapath.FeorpathsconstructedbyucXY-pic,whic!hincludessplinecurves,5)whenthelimitisreachedthepathisautomatically ushedandanewpath:zcommenced.Thefollo!wingcommandcanbMeusedtocustomisethislimit|initiallysetat300forusefwithxdvi|tosuitalternativ!ehdriveris. Jffd a9q\maxTPICpoints{hn!umi}g@setfmaxim!umforpathsV͉ffd '{79\xynew@{count}\xytpic@cnt80\xydef@\xytpic@max{300}81\xydef@\maxTPICpoints#1{\count@=#1\relax82\ifnum\count@>\tw@\edef\xytpic@max{\the\count@}%83\else\expandafter\xyTPICmaxwarning@\expandafter{\the\count@}\fi}84\xydef@\xyTPICmaxwarning@#1{maxpointsmustbeatleast2,#1invalid}Eac!hFFobjectinvolvingtpic\special1Csmustsetthestyle,Yusing\xytpic@set@Ktostoreamacroastheexpansionof\xytpic@style@@Z.Curren!tlythisisglobal,`sinceatpicobjectmustbMecompletedoncefithasbMeenstarted|perhapsthisisnotnecessarye.Notesthat\xytpic@set@NR޹uses\xdef!iŹ,buthasa\noexpand=initsexpansion;-thisforcesexpan-sion?oftheargumen!t,ewhenthereisone,tothecon!trolsequencepassedasthe rsttokenfollowing\xytpic@set@D.99\xydef@\xytpic@style@@{\xytpic@fp}100\xydef@\xytpic@reset@{\gdef\xytpic@style@@{\xytpic@fp}%101\global\xytpic@cnt=\z@}102\xydef@\xytpic@set@#1{\xdef\xytpic@style@@{\noexpand#1}}Herefaretheactual\specials; ƹthatgetplacedinthedvi- le.108\xydef@\xytpic@pn#1{\xyTPIC@special{pn#1}}109\xydef@\xytpic@pa#1#2{\global\advance\xytpic@cnt\@ne\relax110\ifnum\xytpic@cnt=\xytpic@max\relax\xyTPIC@special{pa#1#2}%111T\kern-\X@c\raise-\Y@c\hbox{\xytpic@style@@}\kern\X@c112%\xytpic@ip113\global\xytpic@cnt=\@ne\relax\fi\xyTPIC@special{pa#1#2}}114\xydef@\xytpic@fp{\xyTPIC@special{fp}}115\xydef@\xytpic@ip{\xyTPIC@special{ip}}116\xydef@\xytpic@da#1{\xyTPIC@special{da#1}}117\xydef@\xytpic@dt#1{\xyTPIC@special{dt#1}}118\xydef@\xytpic@sp#1{\xyTPIC@special{sp#1}}119\xydef@\xytpic@ar#1#2#3#4#5#6{\xyTPIC@special{ar#1#2#3#4#5#6}}120\xydef@\xytpic@ia#1#2#3#4#5#6{\xyTPIC@special{ia#1#2#3#4#5#6}}121\xydef@\xytpic@sh#1{\xyTPIC@special{sh#1}}122%\xydef@\xytpic@psb#1{\xyTPIC@special{:[begin]#1}}v*tj2.11.CTPICfBA!CKEND]AL271??hw123%\xydef@\xytpic@pse#1{\xyTPIC@special{:[end]}} 124%125\xydef@\xytpic@wh{\xyTPIC@special{sh0}} T%obsolete126\xydef@\xytpic@bk{\xyTPIC@special{sh1}} T%obsoleteP128\xydef@\xyTPIC@special#1{\special{#1}}129\xydef@\xyTPIC@noisy#1{\W@{TPIC:#1}\special{#1}}130\xydef@\NoisyTPIC{\let\xyTPIC@special=\xyTPIC@noisy}`Somefe ectsma!yrequireatpic\special5JtobMeplacedbothbeforeandafterthehobjecti.137\xydef@\xyTPICsplit@#1#2{\setboxz@h{#1\boxz@#2}}%tpicfusesunitsof`milli-inc!hes'forcoMordinates,butinchesfordot-separationsanddash-length.146\xydef@\xytpic@pt#1{\dimen@=#1\divide\dimen@by72% 147K\multiply\dimen@by1000\advance\dimen@.5\p@148K\count@=\dimen@\divide\count@\p@}149\xydef@\xytpic@in#1{\dimen@=#1\divide\dimen@by72%150K\edef\next@{\expandafter\removePT@\the\dimen@}}%`ThetpicloMcationiscalculatedrelativ!etothecurrentT,[wEB XreferencepMoint.Hencemosttpicobjectsfstartatthe(0;10)loMcation.157\xydef@\xytpic@dot@@{\xytpic@pa00}158\xydef@\xytpic@width@{\xytpic@pt{\xylinethick@}%159K\expandafter\xytpic@pn\expandafter{\the\count@}}160%\xylet@\xytpic@width@=\relax162\xydef@\xytpic@line{%163K\xytpic@dot@@\xytpic@pt{-\d@X}\count@@=\count@164K\xytpic@pt\d@Y\edef\next@{{\the\count@@}{\the\count@}}%165K\expandafter\xytpic@pa\next@\xytpic@style@@\xytpic@reset@}167\xydef@\xytpic@solid@@{\xytpic@set@\xytpic@fp}168\xydef@\xytpic@dashed@@{\xytpic@in\xydashl@\xytpic@dad}169\xydef@\xytpic@dotted@@{\dimen@=.5\xydashl@\xytpic@in\dimen@\xytpic@dtd}170\xydef@\xytpic@dad{\expandafter\xytpic@set@\expandafter{%171 m\expandafter\xytpic@da\expandafter{\next@}}}172\xydef@\xytpic@dtd{\expandafter\xytpic@set@\expandafter{%173 m\expandafter\xytpic@dt\expandafter{\next@}}}175\xydef@\xytpic@polysolid@{\xytpic@set@\xytpic@fp}176\xydef@\xytpic@polydashed@#1{\count@=#1\xytpic@dad}177\xydef@\xytpic@polydotted@#1{\count@=#1\xytpic@dtd}178\xydef@\xytpic@postpoly@{\xytpic@style@@\xytpic@reset@}%re-bindings 5This+Dissimilartothemec!hanismusedbythePostScriptback-endtorebind\hoMoks"tofincorpMorateaswitc!haccordingtothecurrentvdDalueof\ifTPICspecials@_.190\xydef@\TPICalternative@#1#2{%191\expandafter\global\expandafter\let\csnameorigxy#2@\endcsname=#1%192K\xdef#1{\noexpand\ifTPICspecials@193\noexpand\expandafter\expandafter\noexpand\csnamexytpic@#2@\endcsname194 m\noexpand\else195\noexpand\expandafter\expandafter\noexpand\csnameorigxy#2@\endcsnameǠ*tj272?KlCHAPTERf2.CEXTENSIONS??hw196 m\noexpand\fi}}%ҍAllo!wVhonlyoneinstanceof\setupxyTPIC@P ;.hthereaftersimplydo\reloadxyTPIC@[(toturnon an!ythingfthathasbMeenturnedo .P203\xydef@\setupxyTPIC@{\xywarning@{usingTPICspecials}%204K\TPICalternative@{\solid@}{solid}%205K\TPICalternative@{\dash@}{dashed}%206K\TPICalternative@{\point@}{point}%207K\TPICalternative@{\circhar@@}{circhar}%208K\TPICalternative@{\splinesolid@}{splinesolid}%209%\TPICalternative@{\splinedashed@}{splinedashed}%210%\TPICalternative@{\splinedotted@}{splinedotted}%211K\xywithoption{frame}{\xyinputorelse@{xytp-f}{}\xyuncatcodes}%212K\let\setupxyTPIC@=\reloadxyTPIC@213K\activateTPIC@}215\xydef@\xyunloadTPIC@{\xywarning@{TPICspecialsturnedoff}%216K\xywithoption{curve}{\xysetup@@\uninstallTPICcurves@}%217K\xywithoption{line}{\xysetup@@\uninstallTPICline@}%218K\xywithoption{frame}{\xysetup@@\uninstallTPICframes@}%219K\TPICspecials@false220K\let\setupxyTPIC@=\reloadxyTPIC@}222\xydef@\activateTPIC@{%223K\xywithoption{line}{\xysetup@@\installTPICline@}%224K\xywithoption{curve}{\xysetup@@\installTPICcurves@}%225K\xywithoption{frame}{\xysetup@@\installTPICframes@}%226K\TPICspecials@true}228\xydef@\reloadxyTPIC@{\xywarning@{TPICspecialsbackon}\activateTPIC@}(a񍍑236\xydef@\xytpic@solid@{%237K\ifInvisible@\let\next@=\no@@238K\else\DN@{\xyTPICstraight@{\xytpic@solid@@\xytpic@line}}\fi239K\next@}241\xydef@\xytpic@dashed@{\line@242K\def\Connect@@{\xyTPICstraight@{\xytpic@dashed@@\xytpic@line}}}244\xydef@\xytpic@point@{\xytpic@dot@@\xytpic@fp\egroup245K\Invisible@false\Hidden@false\def\Leftness@{.5}\def\Upness@{.5}\ctipEdge@246K\def\Drop@@{\styledboxz@}%247K\def\Connect@@{\xyTPICstraight@{\xytpic@dotted@@\xytpic@line}}}249\xydef@\xyTPICstraight@#1{\setupDirection@250K\edef\Creset@@{\cfromthec@\pfromthep@\DirectionfromtheDirection@}%251K\DN@##1##2{\def\checkoverlap@@{%252 m\ifdim##1\X@p>##1\X@c\let\next@=\relax\fi253 m\ifdim##2\Y@p>##2\Y@c\let\next@=\relax\fi}}%254K\edef\nextii@{{\sd@X}{\sd@Y}}\expandafter\next@\nextii@255K\noCshavep@@\edef\Cshavep@@{\pfromthep@\noexpand\resetDirection@}%256K\noCshavec@@\edef\Cshavec@@{\cfromthec@\noexpand\resetDirection@}%257K\ifHidden@\else*tj2.11.CTPICfBA!CKEND]AL273??hw258 m\ifdim\Y@c>\Y@max\Y@max=\Y@c\fi T\ifdim\Y@p>\Y@max\Y@max=\Y@p\fi 259 m\ifdim\Y@c<\Y@min\Y@min=\Y@c\fi T\ifdim\Y@p<\Y@min\Y@min=\Y@p\fi260 m\ifdim\X@c>\X@max\X@max=\X@c\fi T\ifdim\X@p>\X@max\X@max=\X@p\fi261 m\ifdim\X@c<\X@min\X@min=\X@c\fi T\ifdim\X@p<\X@min\X@min=\X@p\fi\fi262K\ifInvisible@\let\next@=\relaxY\else263 m\DN@{\setboxz@h{\kern\X@c\raise\Y@c\hbox{#1}}%264\ht\z@=\z@\wd\z@=\z@\dp\z@=\z@{\Drop@@}}%265K\fi266K\checkoverlap@@267K\ifdim\d@X=\z@\ifdim\d@Y=\z@\DN@{\relax}\fi\fi\next@268K\def\Cslidep@@{\noCslidep@@}\def\Cslidec@@{\noCslidec@@}%269K\def\Calong@@{\noCalong@@}\Creset@@}ostraightt2lines Lspline curvtes 5Ofethecurv!esde nedinthexycurve-pextension,onlysolidsplinecurvesaresuppMorted.Thisisdoneb!ytreatingthesplineasapMolygon(poly-line)withman!ysegments.ThedottedordashedvdDarian!tsfdonotworkcorrectlye. ˁImplemen!tationseoftpicdrawdashedpMolygonssuchthatthestartand nishofeachsegmentissolid.Since thesesegmen!tscanbMeveryshort,thee ectissimplytocreateasolidline.Similarlytheshortness#ofthesegmen!tstendstogivenothingatallforlargepMortionsofadottedcurve.U2Whatisneededaisanimplemen!tationwherebytheon/o natureofadashedordottedpMolygonisdeterminedb!yftheaccumulatedlength,notthelengthalongjustthecurrentsegment.P294\xydef@\xytpic@splinesolid@{\xyTPICspline@\xytpic@fp}295\xydef@\xytpic@splinedashed@{\xytpic@in\xydashl@\expandafter\xyTPICspline@296K\expandafter{\expandafter\xytpic@da\expandafter{\next@}}}297\xydef@\xytpic@splinedotted@{\xytpic@in{.5\xydashl@}\expandafter\xyTPICspline@298K\expandafter{\expandafter\xytpic@dt\expandafter{\next@}}}300\xydef@\xyTPICspline@#1{\setbox\splinebox@=\copy\voidb@x%\zerodot301K\SloppyCurves%\splinetol@=\xydashl@ T%\xytpic@ip302K\global\xytpic@cnt=\@ne\xytpic@set@{#1}%303K\def\splineextra@@{\xyTPICspline@dot}%304K\def\xycrvdrop@{}\def\xycrvconn@{}\splineset@@\xytpic@style@@}306\xydef@\xyTPICspline@dot{\xytpic@pt{\X@c}\count@@=\count@307K\xytpic@pt{-\Y@c}\edef\next@{{\the\count@@}{\the\count@}}%308K\expandafter\xytpic@pa\next@}'EA316\xydef@\xyTPIClinewidth@#1{\xytpic@pt{#1}\edef\next@{\the\count@}}318\xydef@\installTPICline@{%319K\let\xylinewidth@@=\xylinewidth@320K\let\xylineSpecial@@=\xytpic@pn321K\let\transxyline@@=\xyTPIClinewidth@}323\xydef@\uninstallTPICline@{\UnloadLine@}%oline2width LcirclesLandellipses 5Hereuw!ecatchcirclesandellipsesspMeci edusingthe\xycircle9ycommandfromthe)xycurve0extension.hSince)TPIC)suppMortsonlysolidcircles,Jw!ecatchitonlywhenthehstyleiis*tj274?KlCHAPTERf2.CEXTENSIONS??hweitherf{} orf{-}d.P335\xydef@\xydoTPICcircle@#1{\DN@{#1}% 336K\ifx\next@\empty\DN@{\xyTPICfullcircle@}%337K\else\expandafter\DNii@\expandafter{\addDASH@{}}%338 m\ifx\next@\nextii@\DN@{\L@=\R@\xyTPICfullcircle@}%339K\else\DN@{\dosolidcircle@{#1}}\fi\fi\next@}341\xydef@\xyTPICfullcircle@{\xyTPICpartcircle@{00}0\twoPi@}%343\xydef@\xyTPICpartcircle@#1#2#3{%344K\xytpic@pt{\R@}\expandafter\DNii@\expandafter{\the\count@}%345K\xytpic@pt{\L@}\edef\next@{#1{\nextii@}{\the\count@}{#2}{#3}}%346K\expandafter\xytpic@ar\next@}348\xydef@\qartPi@{0.7853981}349\xydef@\tartPi@{2.3561944}Thisfreplacesjustthefon!tcharacter,calledusing\circhar@@#1H^.355\xydef@\xytpic@circhar@#1{\xytpic@width@\ifcase#1%356 m\xytpic@pt{\R@}\edef\next@{{{\the\count@}0}}%357 m\expandafter\xyTPICcirchar@i\next@{\tartPi@}{\fullPi@}\kern\partroottwo\R@358K\or359 m\xytpic@pt{\halfroottwo\R@}\edef\next@{{{\the\count@}0}}%360 m\expandafter\xyTPICcirchar@i\next@{\halfPi@}{\tartPi@}\kern\halfroottwo\R@361K\or362 m\xytpic@pt{\z@}\edef\next@{{{\the\count@}0}}%363 m\expandafter\xyTPICcirchar@i\next@{\qartPi@}{\halfPi@}\kern\halfroottwo\R@364K\or365 m\xytpic@pt{-\halfroottwo\R@}\edef\next@{{{\the\count@}0}}%366 m\expandafter\xyTPICcirchar@i\next@0{\qartPi@}\kern\partroottwo\R@367K\or368 m\xytpic@pt{-\halfroottwo\R@}\edef\next@{{{\the\count@}0}}%369 m\expandafter\xyTPICcirchar@i\next@{-\qartPi@}0\kern\partroottwo\R@370K\or371 m\xytpic@pt{\z@}\edef\next@{{{\the\count@}0}}%372 m\expandafter\xyTPICcirchar@i\next@{-\halfPi@}{-\qartPi@}\kern\halfroottwo\R@373K\or374 m\xytpic@pt{\halfroottwo\R@}\edef\next@{{{\the\count@}0}}%375 m\expandafter\xyTPICcirchar@i\next@{-\tartPi@}{-\halfPi@}\kern\halfroottwo\R@376K\or377 m\xytpic@pt{\R@}\edef\next@{{{\the\count@}0}}%378 m\expandafter\xyTPICcirchar@i\next@{-\fullPi@}{-\tartPi@}\kern\partroottwo\R@379K\fi}381\xydef@\xyTPICcirchar@i#1#2#3{\L@=\R@\xyTPICpartcircle@{#1}{#2}{#3}},E387\xydef@\xyTPIC@spline@ii@{\DN@{\xy@spline@ii}%388K\ifx\splineSTYLE@\empty\DN@{\xyTPICqspline@{0}}%389K\else\expandafter\DNii@\expandafter{\addDASH@{}}%390K\ifx\splineSTYLE@\nextii@\DN@{\xyTPICqspline@{0}}%391K\else\expandafter\DNii@\expandafter{\addDOT@{}}%*tj2.11.CTPICfBA!CKEND]AL275??hw392K\ifx\splineSTYLE@\nextii@\DN@{\xyTPICqspline@{-.5}}% 393K\else\expandafter\expandafter\expandafter\DNii@\expandafter\expandafter394 m\expandafter{\expandafter\addDASH@\addDASH@{}}%395K\ifx\splineSTYLE@\nextii@\DN@{\xyTPICqspline@{}}%396K\fi\fi\fi\fi397K\next@}%P399\xydef@\xyTPIC@accumulate{\xytpic@pt\X@c\count@@=\count@400K\xytpic@pt{-\Y@c}\edef\next@{{\the\count@@}{\the\count@}}%401K\expandafter\xytpic@pa\next@}403\xydef@\xyTPICqspline@#1{\xytpic@width@404K\xytpic@in{#1\xydashl@}\expandafter\gdef\expandafter\xytpic@style@@405 m\expandafter{\expandafter\xytpic@sp\expandafter{\next@}}%406K\save@\cfromp@\xyTPIC@accumulate407 m\edef\smapp@@{\s@bot}\smapxy@i{\xyTPIC@accumulate}%408K\leave@\xyTPIC@accumulate\xytpic@style@@\xytpic@reset@409K\enter@{}\xy@spline@x}v413\xydef@\installTPICcurves@{%414K\let\dosolidcircle@@=\xydoTPICcircle@415K\let\xy@spline@ii@@=\xyTPIC@spline@ii@416K}417\xydef@\uninstallTPICcurves@{%418K\let\dosolidcircle@@=\dosolidcircle@419K\let\xy@spline@ii@@=\xy@spline@ii})quadratic2splines)426K\xywithoption{frame}{\xyinputorelse@{xytp-f}{}}frames 5Implemen!t@color llsbyreadingfroma\TPICfillcolorS}.&Implementpattern llsbyreading fromfa\TPICfillpattNb.Readthesewhenev!era llisrequested.435\xydef@\uninstallTPICframes@{\UnloadFrames@}v441\xyendinput443%$Log:xytpic.doc,v$444%Revision3.3 T1996/12/1809:50:38ross445%adjustedDrop@@forstyles446%minorimprovementstofile-loadingcommands447%448%Revision3.2 T1995/09/1918:21:41ross449%Bugfixrelease.450%451%Revision3.1 T1995/09/0520:36:33ross452%Release!453%454%Revision3.0 T1995/07/0720:13:19ross455%Majorreleasew/newUser'sGuide!456%457%Revision2.13 T1995/07/0415:04:51rossȠ*tj276?KlCHAPTERf2.CEXTENSIONS??hw458%Readyforreleaseofv3. 459%460%NEWforversion3.1byRossMoore T1995/03/18.461%replacesxyps-col.doc462%5w2.12em-TfeXffbackendjV ers.p3.3Tb9yRossMoQorehross@mpGce.mq.edu.auiލEbMerhard1Matte'sem-T,[wEB Ximplemen!tationprovidesasuiteof\special6`Rcommandstofacilitatethedra!wingoflines,bMothon-screenandwithvdDariousprintingdevices.?This`back-end'extensionallowstheflinesinXY p-picdiagramstobMedra!wnusingthesemethods.[NotethatthisextensiondoMesnotha!vetobeusedwithem-T,[wEB X.VBetterresultsma!ybeobtainedusingwthePostScriptbac!k-endanddvipshdriveri,sinceaversionofdvipsisavdDailableforem-T,[wEB X.Ho!wever,/inСparticularforscreenpreviewingpurpMoses,itma!ybMeconvenienttousethisback-end.FeurthermorefnotethatdvipsiscapableofsuppMortingem-T,[wEB X\special-Ps.#Header:P1%%$Id:xyemtex.doc,v3.31996/12/1809:18:00rossExp$2%%3%%Xy-pic``em-TeX''back-endextension.4%%Copyright(c)1995-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fi26\xyprovide{emtex}{em-TeXbackend}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}*tj2.12.CEM-TEXfBA!CKENDK277??hwOnceQloadedusing\xyoption{emtex}`,7Lwithanappropriatehdriv!erialsospMeci edeitheralready orfsubsequen!tlye,thefollowingcommandsareavdDailabletoturntheem-T,[wEB Xbackendo /on.6ffd ȍM&\NoEMspecials turnsfo em-T,[wEB XspMecials.M&\UseEMspecials reinstatesfem-T,[wEB XspMecials.ffd P59\xynew@{if}\ifEMspecials@60\xydef@\UseEMspecials{\EMspecials@true}61\xydef@\NoEMspecials{\EMspecials@false}'e*69\xydef@\xyemtex@lineto{\xyEM@special{lineto}}70\xydef@\xyemtex@moveto{\xyEM@special{moveto}}71\xydef@\xyemtex@line#1{\xyEM@special{line#1}}72\xydef@\xyemtex@point#1{\xyEM@special{point#1}}73\xydef@\xyemtex@pen#1{\addtostyletoks@{\xyEM@special{linewidth#1}}}4The2\special2/s 5Thesefplacetheactual\special1sandallo!wtracing:79{\catcode`:=12\gdef\next#1{\special{em:#1}}}80\xylet@\xyEM@special=\next82{\catcode`:=12\gdef\next#1{%83\W@{EM:#1(\the\X@p,\the\Y@p),(\the\X@c,\the\Y@c)}\special{em:#1}}}84\xylet@\xyEM@noisy=\next86\xydef@\NoisyEMTeX{\let\xyEM@special=\xyEM@noisy}4Curren!tlyfthesearenotusedbyXY p-pic.92%\xydef@\xyemtex@message#1{\xyEM@special{message#1}}93%\xydef@\xyemtex@graph#1{\xyEM@special{graph#1}}"re-bindings 5This+Dissimilartothemec!hanismusedbythePostScriptback-endtorebind\hoMoks"tofincorpMorateaswitc!haccordingtothecurrentvdDalueof\ifEMspecials@T!.105\xydef@\EMalternative@#1#2{%106\expandafter\global\expandafter\let\csnameorigxy#2@\endcsname=#1%107\xdef#1{\noexpand\ifEMspecials@108#>\noexpand\expandafter\expandafter\noexpand\csnamexyemtex@#2@\endcsname109T\noexpand\else110#>\noexpand\expandafter\expandafter\noexpand\csnameorigxy#2@\endcsname111T\noexpand\fi}}%4Allo!wZonlyoneinstanceof\setupxyEM@Bè;thereaftersimplydo\reloadxyEM@L toturnonanythingthatfhasbMeenturnedo .118\xydef@\setupxyEMTeX@{\xywarning@{usingem-TeXspecials}%119\EMalternative@{\solid@}{solid}%120%\EMalternative@{\point@}{point}%121\EMalternative@{\splinesolid@}{splinesolid}%122\let\setupxyEM@=\reloadxyEM@123\activateEM@}125\xydef@\xyunloadEM@{\xywarning@{EMspecialsturnedoff}%*tj278?KlCHAPTERf2.CEXTENSIONS??hw126%\xywithoption{curve}{\xysetup@@\uninstallEMcurves@}% 127K\xywithoption{line}{\xysetup@@\uninstallEMline@}%128%\xywithoption{frame}{\xysetup@@\uninstallEMframes@}%129K\EMspecials@false130K\let\setupxyEM@=\reloadxyEM@}P132\xydef@\activateEM@{%133K\xywithoption{line}{\xysetup@@\installEMline@}%134%\xywithoption{curve}{\xysetup@@\installEMcurves@}%135%\xywithoption{frame}{\xysetup@@\installEMframes@}%136K\EMspecials@true}138\xydef@\reloadxyEM@{\xywarning@{EMspecialsbackon}\activateEM@}&146\xydef@\xyemtex@solid@{%147K\ifInvisible@\let\next@=\no@@148K\else\DN@{\xyEMstraight@}\fi149K\next@}151\xydef@\xyEMstraight@{\setupDirection@152K\edef\Creset@@{\cfromthec@\pfromthep@\DirectionfromtheDirection@}%153K\DN@##1##2{\def\checkoverlap@@{%154 m\ifdim##1\X@p>##1\X@c\let\next@=\relax\fi155 m\ifdim##2\Y@p>##2\Y@c\let\next@=\relax\fi}}%156K\edef\nextii@{{\sd@X}{\sd@Y}}\expandafter\next@\nextii@157K\noCshavep@@\edef\Cshavep@@{\pfromthep@\noexpand\resetDirection@}%158K\noCshavec@@\edef\Cshavec@@{\cfromthec@\noexpand\resetDirection@}%159K\ifHidden@\else160 m\ifdim\Y@c>\Y@max\Y@max=\Y@c\fi T\ifdim\Y@p>\Y@max\Y@max=\Y@p\fi161 m\ifdim\Y@c<\Y@min\Y@min=\Y@c\fi T\ifdim\Y@p<\Y@min\Y@min=\Y@p\fi162 m\ifdim\X@c>\X@max\X@max=\X@c\fi T\ifdim\X@p>\X@max\X@max=\X@p\fi163 m\ifdim\X@c<\X@min\X@min=\X@c\fi T\ifdim\X@p<\X@min\X@min=\X@p\fi\fi164K\ifInvisible@\let\next@=\relaxY\else165 m\DN@{%166\setboxz@h{\kern\X@p\raise\Y@p\hbox{\xyemtex@moveto}}%167\ht\z@=\z@\wd\z@=\z@\dp\z@=\z@%168\setboxz@h{\boxz@\kern\X@c\raise\Y@c\hbox{\xyemtex@lineto}}%169\ht\z@=\z@\wd\z@=\z@\dp\z@=\z@{\Drop@@}}%170K\fi171K\checkoverlap@@172K\ifdim\d@X=\z@\ifdim\d@Y=\z@\DN@{\relax}\fi\fi\next@173K\def\Cslidep@@{\noCslidep@@}\def\Cslidec@@{\noCslidec@@}%174K\def\Calong@@{\noCalong@@}\Creset@@}mFstraightt2linesaspline curvtes 5Ofethecurv!esde nedinthexycurve-pextension,onlysolidsplinecurvesaresuppMorted.Thisfisdoneb!ytreatingthesplineasapMolygon(poly-line)withman!ysegments.189\xydef@\xyemtex@splinesolid@{\setbox\splinebox@=\copy\voidb@x190K\multiply\splinetol@\thr@@191K\gdef\splineextra@@{\xyemtex@moveto\gdef\splineextra@@{\xyemtex@lineto}}%*tj2.13.CNECULA'SfEXTENSIONS0279??hw192K\def\xycrvdrop@{}\def\xycrvconn@{}\splineset@@}'썍200\xydef@\xyEMlinewidth@#1{\dimen@=#1\relax\edef\next@{\the\dimen@}}P202\xydef@\installEMline@{% 203K\let\xylinewidth@@=\xylinewidth@204K\let\xylineSpecial@@=\xyemtex@pen205K\let\transxyline@@=\xyEMlinewidth@}207\xydef@\uninstallEMline@{\UnloadLine@\relax}%v211\xydef@\UseEMlinewidth{\installEMline@}%212\xydef@\NoEMlinewidth{\uninstallEMline@}%ፑline2widthPiThe2end&Log219\xyendinput221%$Log:xyemtex.doc,v$222%Revision3.3 T1996/12/1809:18:00ross223%fixedbugaffectingline-widths224%225%Revision3.1 T1995/09/0520:28:57ross226%Releasingversion3.1!227%228%Revision3.0 T1995/07/0720:13:19ross229%Majorreleasew/newUser'sGuide!230%231%Revision2.13 T1995/07/0415:04:51ross232%Readyforreleaseofv3.233%234%NEWforversion3./+2.13Necula'sffextensionsꭍV ers.p0.0Tb9yGeorgeC.Neculahnecula@cs.cmu.edui%!Header:1%%$Id$2%%3%%Xy-pic``Neculaextensions''option.4%%Copyright(c)19989|GeorgeC.Necula5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1998 TKristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbytheA*tj280?KlCHAPTERf2.CEXTENSIONS??hw12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour 13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{necula}{Necula'sextensions}{\stripRCS$Revision:0.0$}%27K{GeorgeC.Necula}{necula@cs.cmu.edu}%28K{SchoolofComputerScience,29 mCarnegieMellonUniversity,30 m5000ForbesAvenue,31 mPittsburgh,PA15213-3891,USA}=This`optioncon!tainstwoextensionsofthe XY6j-pickernel:/AVwaytoexpandT,[wEB XmacrosinobjecthmoMdi eris,fandaw!ayftospecifyarbitrarypolygonsasthehshapeiofanobject.!ٍ2.13.1ExpansionFThe\spMecialsyn!taxe|hmacrosi| isintroMducedinanobjecthmodi erisandhcoordiinates.FItexpandsthefgiv!enT,[wEB Xhmacrosi(with\edef d)bMeforereinterpretationasahmoMdi eriofhcoordi,respectiv!elye.52\def\expandbeforenext@#1{%53 m\DN@e|##1|{\edef\tmp@{##1}\expandafter\xyFN@\expandafter#1\tmp@}%54}56\xylet@\xy@oldOBJECT@=\OBJECT@57\xydef@\xy@newOBJECT@{%58K\ifx\space@\next\expandafter\DN@\space{\xyFN@\xy@newOBJECT@}%gobblespaces59K\else\ifxe\next60 m\expandbeforenext@\OBJECT@61K\else62 m\DN@{\xy@oldOBJECT@}\fi\fi63K\next@}%64\let\OBJECT@=\xy@newOBJECT@66\xylet@\xy@oldCOORD@=\COORD@67\xydef@\xy@newCOORD@{%68K\ifx\space@\next\expandafter\DN@\space{\xyFN@\xy@newCOORD@}%gobblespaces69K\else\ifxe\next70 m\expandbeforenext@\COORD@71K\else72 m\DN@{\xy@oldCOORD@}\fi\fi73K\next@}%74\let\COORD@=\xy@newCOORD@*tj2.13.CNECULA'SfEXTENSIONS0281??hwThisfcoMdema!ybecomepartoftheXY p-pick!ernelatacertainpoin!t.-򍍑2.13.2Polygonshap`esAfpMolygonhshapeiisspeci edas :vffd ^R[P:hpMosi,.3..,hposi]Tffdwhere:[P:ypz1, .3..,pznP]denotes:theshapMeobtainedb!ytrackingtheedgewitheachpzifapMositionrelative to>theobjectreferencepMoin!t.^hvectoris>andhcorneriscanbeuseddirectly;ahotherwiseuse-p&togettherelativ!efpMosition.Note:ݹDofnotuse{} or[]inthehpMosiitions.Bug:ݹThefalgorithmassumesthatthereferencepMoin!tisalwaysinsidethepMolygon.ItfispMossibletoframepolygonsisalsopossible.P105%Definethepolygonasastylecharsothatitisdeferred106\xydefcsname@{*stylechar@P@}#1{\Pshape@#1@}107\xynew@{count}\c@poly@count\c@poly@count=\z@%Polygonidentifiers109\xydef@\Pshape@:#1@{%Stripthemandatory:110T\addtotoks@{%111%P{L\xy@showthec{Beforeparse}\xy@showthep{Beforeparse}%112%P{L\xy@showdim{Beforeparse}%113b{L\def\poly@list{@}%114b{L\poly@parse#1,\relax,%Setsthepoly@list115b{L\def\poly@cache{}%116b{L\edef\poly@id{\the\c@poly@count}%117b{L\global\advance\c@poly@count\@ne118b{L\poly@setEdge119b{L%SavetheoldvaluesofLcforshifting120b{L\edef\poly@saveLcshape{\the\L@c}%121b{L\polygonEdge@Outer%SetU,R,D,L122b{L\poly@setEdge123b{L%Nowshifttheobjecttokeepitcentered124b{L\dimen@=\poly@saveLcshape\advance\dimen@-\L@c125b{L\advance\R@p-\dimen@126%P{L\xy@showthec{Afterparse}%127}}129%Settheedge130%Apolygonaledgeisrepresentedas\polygonEdgex1,y1;x2,y2;...;xn,yn@id@131%wherexi,yidefinetheverticesofthepolygonaledgeasdisplacementfrom132%theobjectreferencepoint(xn=x1,yn=y1),andidisanumericalidusedfor133%cachingtheresultofthelastintersectionoperation.Thecachedvaluesfor134%polygonidarestoredintheglobalmacropoly@cache.135\xydef@\poly@setEdge{\expandafter\poly@setEdge@\poly@list\poly@id}136\xydef@\poly@setEdge@#1@#2{\Edge@c={\polygonEdge#1@#2@}%137\expandafter\xdef\csnamepoly@cache#2%138q\endcsname{\poly@cache}}140%Definethepolygonframingoperations141\xydefcsname@{frm[P]{-}}{\expandafter\draw@polyframe\the\Edge@c{-}}142\xydefcsname@{frm[P]{.}}{\expandafter\draw@polyframe\the\Edge@c{.}}"r*tj282?KlCHAPTERf2.CEXTENSIONS??hw143\xydefcsname@{frm[P]{=}}{\expandafter\draw@polyframe\the\Edge@c{=}}v146\xydef@\draw@polyframe\polygonEdge#1@#2@#3{% 147\def\poly@dir{#3}%148\def\poly@list{#1@}%149\def\poly@id{#2}%150\edef\poly@cache{\csnamepoly@cache\poly@id\endcsname}%151\draw@polygon}P153%Apolygonismaintainedasalistofrelativepositions,asfollows:154%poly@list=Xdimen_0,Ydimen_0;...;Xdimen_n,Ydimen_n@155%Thelistisclosed,i.e.,thefirstandlastelementcoincide156%Eachpolygonhasanidstorredin\poly@id157%Eachpolygoncachestheresultofthelastintersectionoperation158% Tasd@x,d@y,x1,y1,x2,y2wherethefirsttwovaluesdefinetheslope159% Tandthetwosetsofpointsarethetwointersectionpoints160% TThesevaluesarestorredin\poly@cache.161%162%163%Helperfunctionfordealingwithpolygonlists165%Mapoverapolygonlist.Makesureyoudefine166%\let\poly@map@next=\poly@mapbefore.Then,youcandefine167%\let\poly@map@next=\poly@map@stopifyouwanttostopthetraversal169\xydef@\poly@empty{}170\xydef@\poly@map#1#2,#3;#4@{%171#1{#2}{#3}%172\def\tmp@{#4}%173\ifx\poly@empty\tmp@\else174Jk\poly@map@next#1#4@%175\fi176}178\xydef@\poly@map@stop#1@{}180\xydef@\poly@mapExpand#1#2{%181\edef\tmp@{\noexpand\poly@map\noexpand#1#2}%182\tmp@}184%Parseapolygondefinition186\xydef@\poly@parse#1,{%187K\ifx#1\relax%Done.Copytheheadofthelistatitsend188\poly@close189\let\next@=\relax190K\else191%Saveeverything192\save@193 %ProcessthepositionusingPOS194 \POS#1%195 %Nowaddthenewctothelist196 \edef\tmp@{{\the\X@c}{\the\Y@c}}%197 \expandafter\poly@append\tmp@.*tj2.13.CNECULA'SfEXTENSIONS0283??hw198\restore 199\let\next@=\poly@parse%continueparsing200K\fi201K\next@202}203Fe%Appendtothelistofpolygonpoints204\xydef@\poly@append#1#2{\expandafter\poly@append@\poly@list{#1,#2;}}205\xydef@\poly@append@#1@#2{\global\def\poly@list{#1#2@}}P207K%Closethepolygon208\xydef@\poly@close{\expandafter\poly@close@\poly@list}209\xydef@\poly@close@#1,#2;#3@{\poly@append{#1}{#2}}211%Drawapolygonatthecurrentlocation213\xydef@\draw@polygon{%Firstseparatethehead214% T\W@{Drawingpolygon\poly@list}\xy@showthec{Centeredat}%215 m\save@216 %Settheorigintopointatthereferencepoint217 \X@origin=\X@c\Y@origin=\Y@c218 \poly@setp%Setpatthebeginningofthepolygonandsetpoly@rest219 %Zerotheedges220 \U@c=\z@\R@c=\z@\D@c=\z@\L@c=\z@\U@p=\z@\R@p=\z@\D@p=\z@\L@p=\z@221 \Edge@c={\zeroEdge}\Edge@p={\zeroEdge}%222 \let\poly@map@next=\poly@map223 \poly@mapExpand\poly@drawseg\poly@rest224 m\restore225}227K%Setptothefirstelement.Requirestheorigintobe228K%atthereferencepoint229\xydef@\poly@setp{\expandafter\poly@setp@\poly@list}230\xydef@\poly@setp@#1,#2;#3@{%231\X@p=#1\advance\X@p\X@origin\Y@p=#2\advance\Y@p\Y@origin%232\global\def\poly@rest{#3@}}234\xydef@\poly@drawseg#1#2{%235 m\dimen@=#1\X@c=\the\dimen@\advance\X@c\X@origin236 m\dimen@=#2\Y@c=\the\dimen@\advance\Y@c\Y@origin237% T\W@{Nextsegmentisatoffset#1,#2andabsolute\the\X@c,\the\Y@c}%238 m\expandafter\connect@\expandafter\dir\poly@dir%239 m\X@p=\X@c\Y@p=\Y@c}241%Polygonaledge242%Requiresctobethereferencepoint243\xydef@\polygonEdge#1@#2@#3{%244 m\def\poly@list{#1@}%245 m\def\poly@id{#2}%246 m\edef\poly@cache{\csnamepoly@cache\poly@id\endcsname}%247 m\ifcase#3\relax248 \DN@{\polygonEdge@Inters249%4g\ifpoly@badinters250%Fe\xyerror@{Couldnotfindintersectionforpolygon}\fi8ɠ*tj284?KlCHAPTERf2.CEXTENSIONS??hw251/}%0 252 m\or\DN@{\polygonEdge@Under}%1253 m\or\DN@{\polygonEdge@Dist}%2254 m\or\DN@{\rectangleProp@}%3 TIdonotunderstandProp!255 m\or\DN@{\polygonEdge@Inner}%4256 m\or\DN@{\polygonEdge@Outer}%5257 m\else\DN@{}\fi258 m\next@}v261\newif\ifpoly@badintersP263\xydef@\polygonEdge@Inters{%264% T\W@{Edgeintersectionwith(\the\X@c,\the\Y@c)->(\the\X@p,\the\Y@p)}%265% T\W@{forpolygon:\poly@id}%266% T\W@{withlist:\poly@list}%267% T\W@{withcache:\poly@cache}%268 m%Checkthecachefirst269 m\ifx\poly@cache\poly@empty270 \poly@intersdoit271 m\else272 \expandafter\poly@intersprobecache\poly@cache@%273 m\fi274% T\xy@showthec{Intersres}%275}277%278%Redefinepoly@cachehittopoly@cachehitdisabletodiablepolygoncaching279\xydef@\poly@cachehit#1#2{%280%\W@{intersectionpointfoundincache}%281 \X@c=#1\Y@c=#2}283\xydef@\poly@cachehitdisable#1#2{\poly@intersdoit}284%\let\poly@cachehit=\poly@cachehitdiasable%Uncommentthislinetodisable$v287%Probesthecache288%289\xydef@\poly@intersprobecache#1,#2,#3,#4,#5@{%290 m\dimen@=#1\advance\dimen@-\d@X291 m\ifdim\zz@\dimen@292 \dimen@=#2\advance\dimen@-\d@Y293 \ifdim\zz@\dimen@294ɿ\poly@cachehit{#3}{#4}295 \else296ɿ\poly@intersdoit297Jk\fi298\else299Jk\poly@intersdoit300\fi301}304%Computestheintersectionbetweenthelinecpandtheedge.305%Bothintersectionpointsarestoredinthecache,theoneintheC*tj2.13.CNECULA'SfEXTENSIONS0285??hw306%directiontowardspfirst. 307\xydef@\poly@intersdoit{%308% T\W@{intersectionnotincache.Computingit}%309 m%SaveA@andB@becausewecannotchangethem310 m\edef\polyoldA@{\the\A@}\edef\polyoldB@{\the\B@}%311 m%Initializetheintersectionpoints312 m\def\poly@intersneg{}\def\poly@interspos{}%313 m\save@314 \poly@setorigin%Setoriginatthebeginningofthepolygonand315ha%setpoly@rest316 \def\zeroDivide@{\poly@badinterstrue}%Handlethedivisionbyzeroexcept.317 \let\poly@map@next=\poly@map318 \poly@mapExpand\poly@interseg\poly@rest319 \ifx\poly@intersneg\poly@empty320 \poly@badinterstrue321 \else322 \ifx\poly@interspos\poly@empty323#i\poly@badinterstrue324 \else325#i\poly@badintersfalse326 \fi327 \fi328 m\restore329 m\A@=\polyoldA@\B@=\polyoldB@%RestoreA@andB@330 m\ifpoly@badinters\else331 \edef\tmp@{\poly@interspos,\poly@intersneg@}%332 \expandafter\poly@intersfinish\tmp@333 m\fi334}P336\xydef@\poly@intersfinish#1,#2,#3@{%337 m\X@c=#1\Y@c=#2\relax338 m\xdef\poly@cache{\the\d@X,\the\d@Y,#1,#2,#3}%339 m\poly@setEdge340}v343K%Setorigintothefirstpoint.Definepoly@rest344K%Requiresctobesettothereferencepoint345\xydef@\poly@setorigin{\expandafter\poly@setorigin@\poly@list}346\xydef@\poly@setorigin@#1,#2;#3@{%347\X@origin=#1\advance\X@origin\X@c\Y@origin=#2\advance\Y@origin\Y@c%348\global\def\poly@rest{#3@}} uR353%354%Computeoneintersectionwithagivenedge355%cissettothereferencepoint,pissettotheendoftheray356%originissettothestartofthesegment357\xydef@\poly@interseg#1#2{%358 m%Defaultisnointersection359% T\W@{Intersectionwithedge(\the\X@origin,\the\Y@origin)->(#1,#2)}%L*tj286?KlCHAPTERf2.CEXTENSIONS??hw360 m%Computetheabsolutevalues 361 m\dimen@=#1\advance\dimen@\X@c\edef\poly@saveXcinters{\the\dimen@}%362 m\dimen@=#2\advance\dimen@\Y@c\edef\poly@saveYcinters{\the\dimen@}%363 m\save@364 \poly@badintersfalse365 %SetR@candU@ctothedistancetoendofsegment366 \R@c=\poly@saveXcinters\advance\R@c-\X@origin367 \U@c=\poly@saveYcinters\advance\U@c-\Y@origin368 %NowcallintersecttosetX@candY@ctotheintersectionpoint369 \intersect@370 \A@=\X@c\B@=\Y@c%Saveresult371 m\restore372 m\ifpoly@badinters373%"}\W@{\spacefailedafterintersect}%374 m\else375%"}\W@{\spaceafterintersect@(\the\A@,\the\B@)}%376 %Verifythatitisonthesegmentfromoriginto(#1,#2)P378\poly@isonseg\X@origin\Y@origin\A@\B@\poly@saveXcinters\poly@saveYcinters379 \ifpoly@badinters380%9|\W@{\spacefailedaftersegcheck}%381 \else382#i%Verifythat(A,B)isontherayfromctop383#i\poly@isonray\X@c\Y@c\A@\B@\X@p\Y@p384#i\ifpoly@badinters3854g%Itisonthenegativeray386%?100\almostz@418/\poly@badinterstrue419 \fi420 \dimen@i=-\dimen@i\dimen@ii=-\dimen@ii421 \else422 \ifdim\dimen@i<-100\almostz@\relax423/\poly@badinterstrue424 \fi425 \fi426 \ifpoly@closedrange427 \advance\dimen@ii100\almostz@428 \ifdim\dimen@i>\dimen@ii429#i\poly@badinterstrue430 \fi431 \fi432%\ifpoly@badinters\W@{failed}\else\W@{succeeded}\fi433 m\fi}P435%436%Checksthat(#3,#4)isonasegmentdefinedby(#1,#2)->(#5,#6)437\xydef@\poly@isonseg#1#2#3#4#5#6{%438 m%CheckXfirst439 m\poly@closedrangetrue440 m\poly@isinrange{#1}{#3}{#5}%441 m\poly@isinrange{#2}{#4}{#6}%443}445%446%Checksthat(#3,#4)isonaraydefinedby(#1,#2)->(#5,#6)447\xydef@\poly@isonray#1#2#3#4#5#6{%448 m%CheckXfirst449 m\poly@closedrangefalse450 m\poly@isinrange{#1}{#3}{#5}%451 m\poly@isinrange{#2}{#4}{#6}%453}454%455%Testwhether(Xp,Yp)isinsidethepolygon(orontheedge)456%Sets\ifInside@accordingly457\xydef@\polygonEdge@Under{%458% T\W@{}\W@{EdgeUnderwithc=(\the\X@c,\the\Y@c)andp=(\the\X@p,\the\Y@p)}%459% T\W@{forpolygon:\poly@list}%460 m%SaveA@andB@461 m\edef\polysaveA@under{\the\A@}\edef\polysaveB@under{\the\B@}%462 m%SaveX@candY@c463 m\edef\poly@saveXcUnder{\the\X@c}\edef\poly@saveYcUnder{\the\Y@c}% a*tj288?KlCHAPTERf2.CEXTENSIONS??hw464 m%Computetheintersection 465 m\polygonEdge@Inters466 m\ifpoly@badinters%pisveryclosetoc467 \Inside@true468 m\else469 \A@=\X@c\B@=\Y@c470 %Restorec471 \X@c=\poly@saveXcUnder\Y@c=\poly@saveYcUnder472 %Nowverifythattheintersectionpointisontherayc->p473 \poly@isonseg\X@c\Y@c\X@p\Y@p\A@\B@474 \ifpoly@badinters\Inside@false\else\Inside@true\fi475 \A@=\polysaveA@under\B@=\poly@saveB@under476 m\fi477% T\ifInside@\W@{->inside}\else\W@{->outside}\fi478}P480%481%Computetheinnerrectangle482%483\xydef@\polygonEdge@Inner{%484% T\W@{}\W@{EdgeInnerwith(\the\X@c,\the\Y@c)->(\the\X@p,\the\Y@p)}%485% T\W@{forpolygon:\poly@list}%486% T\W@{withcache:\poly@cache}%487 m%Saveeverythingexceptc488 m\enter@{\basefromthebase@\pfromthep@\DirectionfromtheDirection@}%489 %SavecinLc,Dc490 \L@c=\X@c\D@c=\Y@c491 %Computethetwointersectionpoints492 \polygonEdge@Inters493 \ifpoly@badinters494ɿ\czeroEdge@495 \else496ɿ%SavetheresultinRc,UcandinX@c,Y@c497ɿ\expandafter\poly@getinterspoints\poly@cache@%498ɿ%Nowcomputetheinnerrectanglecentered499ɿ\ifdim\X@c>\R@c500)I\L@c=\R@c\R@c=\X@c501ɿ\else502)I\L@c=\X@c503ɿ\fi504ɿ\X@c=0.5\L@c\advance\X@c0.5\R@c\advance\R@c-\X@c\L@c=\R@c505ɿ\ifdim\Y@c>\U@c506)I\D@c=\U@c\U@c=\Y@c507ɿ\else508)I\D@c=\Y@c509ɿ\fi510ɿ\Y@c=0.5\D@c\advance\Y@c0.5\U@c\advance\U@c-\Y@c\D@c=\U@c511ɿ\Edge@c={\rectangleEdge}%512 \fi513 m\leave@!kO*tj2.13.CNECULA'SfEXTENSIONS0289??hw514% T\xy@showthec{Afterinner}% 515}P517\xydef@\poly@getinterspoints#1,#2,#3,#4,#5,#6@{%518 m\R@c=#3\U@c=#4\X@c=#5\Y@c=#6}520%521%Computetheouterrectangle(setUc,Dc,Lc,RcandEdgec).522%DoesnotchangeXc,YC523%524\xydef@\polygonEdge@Outer{%525% T\W@{Computingouterfor\poly@list}\xy@showthec{Beforeouter}%526 m%Saveeverythingexceptc527 m\enter@{\basefromthebase@\pfromthep@\DirectionfromtheDirection@}%528 \czeroEdge@%Zerooutc529 \let\poly@map@next=\poly@map530 \poly@mapExpand\poly@findextent\poly@list531 \Edge@c={\rectangleEdge}%532 m\leave@533% T\xy@showthec{Afterouter}534}536\xydef@\poly@findextent#1#2{%537% T\xy@showthec{Beforefindextent}%538% T\W@{extx=#1,exty=#2}%539 m\dimen@=#1\dimen@=\the\dimen@%itfailsifIremovethesecondassign540 m\ifdim\dimen@>\R@c\R@c=\dimen@\fi541 m\ifdim-\dimen@>\L@c\L@c=-\dimen@\fi542 m\dimen@=#2\dimen@=\the\dimen@%itfailsifIremovethesecondassign543 m\ifdim\dimen@>\U@c\U@c=\dimen@\fi544 m\ifdim-\dimen@>\D@c\D@c=-\dimen@\fi545% T\xy@showthec{Afterextent}%546}548%Changetoaccountforpolynomialshapes,inadditiontocircularones549%550\xydef@\Fshape@#1:{\def\whichframe@@{{#1}}\let\whichoptions@@=\empty551K\DN@{{}}\ifx\whichframe@@\next@\def\whichframe@@{{-}}\fi552K\expandafter\xyFN@\expandafter\Fshape@whichframe\the\Edge@c}554\xydef@\Fshape@whichframe{%555K\ifx\next\circleEdge556\edef\whichframe@@{[o]\whichframe@@}%557\DN@##1{\xyFN@\Fshape@i}%558K\else559K\ifx\next\polygonEdge560\edef\whichframe@@{[P]\whichframe@@}%561\DN@\polygonEdge##1@##2@{\xyFN@\Fshape@i}%562K\else563\DN@##1{\xyFN@\Fshape@i}%564K\fi\fi565K\next@566}"t*tj290?KlCHAPTERf2.CEXTENSIONS??hw568\xyendinputPBug:ݹThisfcoMdeshouldbemergedwiththe`frame'and`poly'options. Thefexampleattheendofx??ݹillustratestheextensions.581%$Log$582%ReceivedfromGeorge.#~Ԡ*tj??tChapter 32~Features6cThis c!hapterdescribMestheoptionsthatsupportfacilitiesthatcanbeobtainedusingthek!erneland extensionsfy!etaremucheasiertoobtainusingtheprovidedspMecialsyntax.&3.1r|AllfffeaturesV ers.p3.3Tb9yKristo erH.Rosehkrisrose@brics.dki3yAsaspMecialcon!venience,thisfeatureloadsasubsetofXY 2-pic,1namelytheextensions:pcurve#Ĺ(cf.x2.1),frameֹ(x2.2),jcmtip!'(x2.3),jline&}(x2.4),jrotate'ѹ(x2.5),jcolor(x2.6),jandukthefollo!wingfeatures:E`matrix(x3.5),farrow$ (x3.3),fandgraph(x3.6).P1%%$Id:xyall.doc,v3.31996/12/1903:31:56krisroseExp$2%%3%%Xy-pic``Allfeatures''option.4%%Copyright(c)1993-1996KristofferH.Rose5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fi Mffy̟ L͍ {-=1aTheTname`all'hin9tsatthefactthatthesewerealltheav|railableoptionsatthetime`all'wasadded.LW.291$X*tj292KCHAPTERf3.CFEAeTURES??hw26\xyprovide{all}{Allfeatures}{\stripRCS$Revision:3.3$}% 27K{KristofferH.~Rose}{krisrose@brics.dk}%28K{BRICS/ComputerScience,UniversityofAarhus,NyMunkegade,building540,29 mDK--8000Aarhus~C}Herefw!ego:P47\xyrequire{curve}48\xyrequire{frame}49\xyrequire{cmtip}50\xyrequire{line}51\xyrequire{rotate}52\xyrequire{color}54\xyrequire{matrix}55\xyrequire{arrow}56\xyrequire{graph}Thatfisall.62\xyendinput64%$Log:xyall.doc,v$65%Revision3.3 T1996/12/1903:31:56krisrose66%Maintenancerelease67%68%Revision3.0 T1995/07/0720:14:21kris69%Majorreleasew/newUser'sGuide!70%71%Revision2.13 T1995/07/0415:11:17kris72%Readytoreleasev3?73%74%Revision2.12 T1994/10/2511:34:25kris75%Interimreleasejustbeforev3[workswithAMS-LaTeX1.2]...76%77%Revision2.11 T1994/07/0510:37:32kris78%Third3betarelease[bugfixes].79%Experimentalgraphfeatureincluded(forECCT-94presentation).80%81%Revision2.9 T1994/06/0914:59:19kris82%Release3beta.83%84%NEWfiletogoinversion2.9!,ڍ3.2r|DummyffoptionqV ers.p3.3Tb9yKristo erH.Rosehkrisrose@brics.dkiThisoptionispro!videdasatemplatefornewoptions,itprovidesneitherfeaturesnorextensionsbutitdoMescoun!thowmanytimesitisrequested.EventhoughtheoptiondoMesnothingitstillhasastandardXY p-picfheader:1%%$Id:xydummy.doc,v3.31996/12/1903:31:56krisroseExp$% *tj3.2.CDUMMYfOPTION\293??hw2%% 3%%Xy-pic``Dummy''option.4%%Copyright(c)1993-1996KristofferH.Rose5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{dummy}{Dummyoption}{\stripRCS$Revision:3.3$}%27K{KristofferH.~Rose}{krisrose@brics.dk}%28K{BRICS/ComputerScience,UniversityofAarhus,NyMunkegade,building540,29 mDK--8000Aarhus~C}6Nextffollo!wstwodeclarationsthatareusedtocountthenumbMerofinvoMcations:46\xynew@{count}\xydummyrequires@@ThisXisusedb!ytheoptiontooutputamessageeverytimeitisloadedwith\xyoption?Sor\xyrequire:53\xyeveryrequest{dummy}{\global\advance\xydummyrequires@@\@ne54K\W@{The`dummy'optionwasused\the\xydummyrequires@@\spacetimes!}}(\W@disfanXY p-picprimitiv!ethatoutputsitsargument.)Thenftheoptionends:62\xyendinputFinallyfxydummy.docFisfmain!tainedusingRCSandthuscontainsthefollowingrevisionlog:69%$Log:xydummy.doc,v$70%Revision3.3 T1996/12/1903:31:56krisrose71%Maintenancerelease72%73%Revision3.1 T1995/09/0520:31:32kris74%Releasing!75%76%Revision3.0 T1995/07/0720:14:21kris77%Majorreleasew/newUser'sGuide!&Π*tj294KCHAPTERf3.CFEAeTURES??hw78% 79%Revision2.13 T1995/07/0415:11:17kris80%Readytoreleasev3?81%82%Revision2.7 T1994/03/0802:06:01kris83%Release3alpha.84%85%NEWfiletogoinversion2.7!.3.3r|ArrowffandPathfeatureيV ers.p3.5Tb9yKristo erH.Rosehkrisrose@brics.dkiThisffeaturepro!videsXY p-picwiththearrowparadigmpresentedin[12 4]. !Note:\PATH%Bcommandfincompatiblyc!hangedforversion3.3(the\arʹcommandisuna ected).Thebasicconceptin!troMducedistheppath :uaconnectionthatstarts0fromc(thecurrentobject),ends at/aspMeci edobject,RBandma!ybesplitin!toseveralsepgmentsbMetweenintermediatespMeci edobjectsthatfcanbMeindividuallylabelled,c!hangestyle,havebreaks,etc. !x3.3.1isabMoutthe\PATH%|primitiv!e,includingthesyntaxofpaths,andx3.3.2isabMoutthe\arcustomisationfofpathstodra!warrowsusingXY p-picdirectionalobjects.Header:P1%%$Id:xyarrow.doc,v3.51997/05/2813:05:01krisroseExp$2%%3%%Xy-pic``ArrowsandPaths''feature.4%%Copyright(c)1991-1997KristofferH.Rose5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fi26\xyprovide{arrow}{ArrowandPathfeature}{\stripRCS$Revision:3.5$}%27K{KristofferH.~Rose}{krisrose@brics.dk}%'Р*tj3.3.CARR!OWfANDPeATHfFEATURE295??/獠- ffffd {ySyn!tax!Actionwffd 6fy\PATHfhpathi!in!terpretfhpathi y\afterPATH{hdecori}fhpathi!in!terpretfhpathiandthenrunhdecori#2ffd k yhpathiExL)!\~fhactioni{ vhstu i}hpathi!setfhactioni3.3a톹tohstu iLŗj\~fhwhic!hi{ vhlabMelsi}hpathi!addfhlabMelsipre xforsomesegmen!ts3.3bLŗj\~f{ vhstu if}hpathi!setffailurecon!tinuation3.3c_Ltofhstu iLŗj\'fhsegmen!tihpathi!mak!efstraightsegment3.3dLŗj\`fhturnihsegmen!tihpathi!mak!efturningsegment3.3fLŗj\hsegmen!ti!mak!eflastsegment3.3gyhturniExL)!\hdiagifhturnradiusi!1/4fturn3.3fstartinginhdiagiLŗj\hcirifhturnradiusi!explicitfturn3.3f yhturnradiusiExL)!\hempt!yi!usefdefaultturnradiusLŗj\/fhdimeni!setfturnrpadius~tohdimeniyhsegmen!tiExL)!\hpath-pMosifhslideihlabelsi!segmen!t3.3e_LwithfhslideiandhlabMelsiyhslideiExL)!\hempt!yiLjC<fhdimeni>!optionalslide3.3hY:Vhdimeniinthe\abMo!ve"directionwyhlabMelsiExL)!\^fhanc!horihitihaliasihlabMelsi!labMelfwithhiti3.3iabpoveyhanc!horiwLŗj\_fhanc!horihitihaliasihlabMelsi!labMelfwithhiti3.3ibpelow!hanc!horiLŗj\|fhanc!horihitihaliasihlabMelsi!breakfwithhiti3.3jathanc!hori Lŗj\hempt!yi!nofmorelabMelsyhanc!horiExL)!\-fhanc!horiLjChplacei!labMel/breakA7placedrelativ!etothehplaceiwhere-!isfasynon!ymfor<>(.5)yhitiExL)!\hdigitifj Wwhletterifj{!htexti} fjhcsi!hitifisadefaultlabMel3.3kLŗj\*fhobjecti!hitifisanhobjectiLŗj\@fhdiri!hitifisahdiriectionalLŗj\[ehshapMeif] vhiti!usef[ fhshapMei]forfhitiyhaliasiExL)!\hempt!yiLjC="hidi"!optionalfnameforlabMelobject3.3lzffd @Figuref3.1:hpathis)28K{BRICS/ComputerScience,UniversityofAarhus,NyMunkegade,building540, 29 mDK--8000Aarhus~C}-3.3.1 Pathsl獍59\message{path,}[The"fundamen!talcommandsofthisfeatureare\PATHйand\afterPATHthatwillparsethehpathiaccordingftothegrammarin gure3.1withnotesbMelo!w.(Ptarsing: 5\afterPATHGѹsetsup\afterPATH@E\>andinitialisealltheactions(seenote3.3abMelo!w)beforein!vokingftheactualhpathiparser.\PATH%Bisjustadumm!yinterface.P183\xydef@\PATH{\afterPATH{}}(p*tj296KCHAPTERf3.CFEAeTURES??hw185\xylet@\afterPATH@=\emptyP187\xydef@\afterPATH#1{\save 188K\DN@##1{\def\afterPATH@{\restore\def\afterPATH@{##1}#1}}%189K\expandafter\next@\expandafter{\afterPATH@}%190K\let\PATHfail@@=\empty191K\let\PATHbefore@@=\empty192K\let\PATHafter@@=\empty193K\let\PATHlabelsevery@@=\empty194K\let\PATHlabelsnext@@=\empty195K\let\PATHlabelslast@@=\empty196K\xy@{\afterPATH{#1}}{\def\PATHslide@@{\z@}}%197K\def\PATHcontinue@@{\xyFN@\PATH@}%198K\xyFN@\PATH@}h\PATH@Jis5theparserforhpathi:e{iteatsthehpathiun!tilitfailsandthencallsthe`failurecontin-uation'Ìwhic!hwilleventuallybMecome\empty*whichendstheparsing.5OHactk:)The`\ifPATHsingle@P{L'switc!h;switchesthehsegmentiparsingo R; Jthisisusedbythegraphfeaturetoparsestand-alonehslideihlabMelsifsequences.209\xynew@{if}\ifPATHsingle@211\xydef@\PATH@{%212K\ifx\space@\next\expandafter\DN@\space{\xyFN@\PATH@}%213K\else\ifPATHsingle@\let\next@=\PATH@single214K\else\let\next@=\PATH@normal\fi\fi\next@}216\xydef@\PATH@normal{%217K\ifx~\next\DN@~{\xyFN@\PATHsetting@}%218K\else\addRQ@\ifx\next\addRQ@\DN@{\xy@'{}\xyFN@\PATHstraight@}%219K\else\addLQ@\ifx\next\addLQ@\DN@{\xy@`{}\xyFN@\PATHturn@}%220K\else\ifx\PATHfail@@\PATH@x\DN@{\xyFN@\PATHfinal@}%221K\else222 m\DNii@{\let\PATHfail@@=\PATH@x\xyFN@\PATH@}%223 m\DN@{\expandafter\nextii@\PATHfail@@}%224K\fi\fi\fi\fi\next@}h\PATHsetting@COjustreadsanhactioniorhwhic!hideterminingwhichactionstu tosetandthendoMes&it|w!etreatthefailurecontinuationasanactionhereeventhoughitisnot,G!strictlyspMeaking.TheffouractionsareexplainedintheappropriatenotesbMelo!w.234\xylet@\PATHfail@@=\empty236\xylet@\PATHbefore@@=\empty237\xylet@\PATHafter@@=\empty239\xylet@\PATHlabelsevery@@=\empty240\xylet@\PATHlabelsnext@@=\empty241\xylet@\PATHlabelslast@@=\empty243\xydef@\PATHsetting@{%244K\ifx\space@\next\expandafter\DN@\space{\xyFN@\PATHsetting@}%245K\else\ifx\bgroup\next246 m\DN@##1{\xy@{~{##1}}{}\def\PATHfail@@{##1}\xyFN@\PATH@}%247K\else\addEQ@\ifx\next248 m\addEQ@\DN@##1{\xy@{~={##1}}{}\def\PATHbefore@@{##1}\xyFN@\PATH@}%)*tj3.3.CARR!OWfANDPeATHfFEATURE297??hw249K\else\addLT@\ifx\next 250 m\addLT@\DN@##1{\xy@{~<{##1}}{}\def\PATHlabelsnext@@{##1}\xyFN@\PATH@}%251K\else\addGT@\ifx\next252 m\addGT@\DN@##1{\xy@{~>{##1}}{}\def\PATHlabelslast@@{##1}\xyFN@\PATH@}%253K\else\addPLUS@\ifx\next254 m\addPLUS@\DN@##1{\xy@{~+{##1}}{}\def\PATHlabelsevery@@{##1}\xyFN@\PATH@}%255K\else\ifx/\next256 m\DN@/##1{\xy@{~/{##1}}{}\def\PATHafter@@{##1}\xyFN@\PATH@}%257K\else\addDASH@\ifx\next258 m\xywarning@{Obsolete`-'PATHtranslatedto`='.}%259 m\addDASH@\DN@##1{\xy@{~-{##1}}{}\def\PATHbefore@@{##1}\xyFN@\PATH@}%260K\else261 m\xyerror@{Unknown\string~setting:\meaning\next}%262#i{SeetheXy-picarrowfeaturedocumentationforhelp.}%263K\fi\fi\fi\fi\fi\fi\fi\fi\next@}5NextP(thesetupforstraigh!tsegmentsincludingthelast:1btheyset\PATHinit@@Gܞtoinitialise,zi.e.,slide,V\PATHextra@@Mto3dowhatisneededafterthe=action,Vand nally\PATHpost@@Gissettoan!yopMerations*tobedoneaftertheen!tiresegmentistypMesetbutbeforethenextisread.\PATHcontinue@@isfusedin!ternallytodistinguishtheordinarysegmentsfromthelast.P274\xylet@\PATHinit@@=\empty276\xylet@\PATHextra@@=\empty 277\xylet@\PATHpost@@=\empty278\xylet@\PATHcontinue@@=\emptyP280\xydef@\PATHstraight@{%281K\def\PATHinit@@{\PATHinitstraight@}%282K\let\PATHextra@@=\empty283K\let\PATHpost@@=\empty284K\let\PATHlabelsextra@@=\relax285K\xy@@\pfromc@\PATHafterPOS{\xyFN@\PATHsegment@}}287\xydef@\PATHfinal@{%288K\def\PATHinit@@{\PATHinitstraight@}%289K\def\PATHextra@@{\let\PATHcontinue@@=\afterPATH@}%290K\let\PATHpost@@=\empty291K\let\PATHlabelsextra@@=\PATHlabelsextralast@292K\xy@@\pfromc@\PATHafterPOS{\xyFN@\PATHsegment@}}294\xydef@\PATHlabelsextralast@{\let\PATHlabelsextra@@=\relax295K\expandafter\xyFN@\expandafter\PATHlabels@\PATHlabelslast@@}297\xydef@\PATHinitstraight@{\xy@@{\setupDirection@\dimen@=\PATHslide@@298\dimen@ii=-\sinDirection\dimen@299\ifPATHomitslide@@\else\advance\X@p\dimen@ii\fi\advance\X@c\dimen@ii300\dimen@ii=\cosDirection\dimen@301\ifPATHomitslide@@\else\advance\Y@p\dimen@ii\fi\advance\Y@c\dimen@ii302\PATHomitslide@@false\resetupDirection@}}5Setupfforturningsegmen!tsisinnote3.3f.#GA5hsegmen!ti5#isinterpretedasfollowsafterphasbMeensettothepreviousendobject,Kctothehposigiv!enfatthestartofthesegment,and\PATHslide@@LHĹtotheslide:**tj298KCHAPTERf3.CFEAeTURES??hw312\xydef@\PATHslide@@{\z@} 313\xynew@{if}\ifPATHomitslide@@P315\xydef@\PATHsegment@{%316K\addLT@\ifx\next317 m\addGT@{\addLT@\DN@##1}{%318\xy@{<##1>}{\dimen@=##1\relax\edef\PATHslide@@{\the\dimen@}}%319\xyFN@\PATHsegment@@}%320K\else\let\next@=\PATHsegment@@321K\fi\next@}v>1.Expandg@\PATHinit@@J ι(forg@straigh!tsegmentsthisjustsetsupthedirectionandappliesthehslidei).>2.Expandf\PATHaction={Nbhstu i} fasfsetusing~={dhstu i}.>3.Setsf\PATHcontinue@@]¹tofan!ycontinuationsetwith~{%hstu i}).>4.Construct[listofhlabMelsispeci edb!ytheuserthrough~ nhwhichisetup.Thoseapplicabletothe presen!tfsegmentareinsertedbMeforetheuser'shlabelsiinthesequence<>=d.>5.Storefp;1casstart ,endofsegmen!t.>6.In!terpretfhlabMelsi(seebelo!w),includingtheonesaddedbythe~ fhwheni.3..yhsetupi.3\PATHsegment@@7˹pMerformsfthisexceptthelastt!wofpoints:346\xydef@\PATHsegment@@{\PATHinit@@\addEQ@\PATHaction@\PATHbefore@@\PATHextra@@ 347K\expandafter\toks@\expandafter{\PATHlabelsnext@@}\let\PATHlabelsnext@@=\empty348K\expandafter\addtotoks@\expandafter{\PATHlabelsevery@@}%349K\expandafter\def\expandafter\PATHlabels@@\expandafter{\the\toks@}%350K\toks@={}\expandafter\xyFN@\expandafter\PATHlabels@\PATHlabels@@}oQ\PATHlabels@>Oparses3>allhlabMelsiofahsegmen!ti. eThissets\PATHlabelit@@Zȹtotheoperationbuilding`~thelabMelinquestion.ƐThensomeparsingstoresthetok!ens<>(.5)foreach-inthehanchoriand24 nallypassescon!troltothekernelhplaceiparserwiththesetokensasthehead."Thistheninturncalls\PATHit@5Nthatparseshitiandappliesthec!hosenopMeration.Afterthelastwecontinuewiththeaccum!ulatedfsubsegmentactions.362\xylet@\PATHlabelit@@=\empty364\xydef@\PATHlabels@{%365K\ifx\space@\next\expandafter\DN@\space{\xyFN@\PATHlabels@}%366K\else\ifx^\next367 m\DN@##1{\xy@^{}\let\PATHlabelit@@=\PATHlabelabove@@368\DNii@{}\xyFN@\PATHanchor@}%369K\else\ifx_\next370 m\DN@##1{\xy@_{}\let\PATHlabelit@@=\PATHlabelbelow@@371\DNii@{}\xyFN@\PATHanchor@}%372K\else\ifx|\next373 m\DN@##1{\xy@|{}\let\PATHlabelit@@=\PATHlabelbreak@374\DNii@{}\xyFN@\PATHanchor@}%375K\else\let\next@=\PATHfinishsegments@\fi\fi\fi\fi\next@}377\xydef@\PATHanchor@{\begingroup\toks@={}\PATHanchor@i}+*tj3.3.CARR!OWfANDPeATHfFEATURE299??hw379\xydef@\PATHanchor@i{% 380K\ifx\space@\next\expandafter\DN@\space{\xyFN@\PATHanchor@i}%381K\else\addDASH@\ifx\next382 m\addDASH@\DN@{\expandafter\addtotoks@\expandafter{\PATHanchor@toks}%383\xyFN@\PATHanchor@i}%384K\else385 m\DNii@##1{\endgroup\afterPLACE{\xyFN@\PATHit@}##1}%386 m\DN@{\expandafter\nextii@\expandafter{\the\toks@}}%387K\fi\fi\next@}P389{\xyuncatcodes\gdef\next{<>(.5)}}390\xylet@\PATHanchor@toks=\next392\xylet@\PATHitshapes@@=\empty394\xydef@\PATHit@{\let\PATHitshape@@=\empty\xyFN@\PATHit@i}396\xydef@\PATHit@i{%397K\ifx\space@\next\expandafter\DN@\space{\xyFN@\PATHit@i}%398K\else\ifx*\next\DN@*##1##{\PATHlabelit@@{!C##1}}%399K\else\addAT@\ifx\next\addAT@\DN@##1##{\PATHlabelit@@{\dir##1}}%400K\else\ifx[\next\DN@[##1]{%401 m\expandafter\def\expandafter\PATHitshape@@\expandafter{\PATHitshape@@[##1]}%402 m\xyFN@\PATHit@i}%403K\else\DN@{\PATHlabelit@@{}}%404K\fi\fi\fi\fi\next@}ThefindividualopMerationsboundto\PATHlabelit@@Warediscussedasappropriateinthenotes.AfterfthelastbreakandlabMelw!etypMesetthelastpieceoftheconnection.414\xydef@\PATHfinishsegments@{%415K\ifx\PATHlabelsextra@@\relax\expandafter\PATHfinishsegments@i416K\else417 m\expandafter\PATHlabelsextra@@\fi}419\xydef@\PATHfinishsegments@i{%420K\xy@@{\Clast@@}\the\toks@\toks@={}%421K\xy@@\setupDirection@422K\PATHpost@@\PATHaction@/\PATHafter@@423K\PATHcontinue@@}Bug:ݹTheforderofthebreaksdeterminestheorderofthesubsegmen!ts.Thisisma!ybMeafeature.nNotes3.3a.=AnfhactionicanbMeeitherofthec!haracters=/%.Theassociatedhstu iissa!vedfandusedtocallch\PATHaction֟hactioniW2{hstu i}bpeforeyandfafter!eac!hsegment(includingallhlabMelsi)for=and/,respectiv!elye.KThedefault\PATHactionmacrojustexpandsto\\POShstu i\relax&w "th!ushstu ishouldbMeof theformhpMosihdecori.ZRTheusercanrede nethis|infactthe\arcommanddescribedinx3.3.2bMelo!wfislittlemorethanaspecial\PATHactioncommandandaclev!erdefaultingmechanism.Herefisthedefault\PATHaction:P454\xydef@\PATHaction@default#1#2{\xy@{PATHaction#1{#2}}{}\POS#2\relax},*tj300KCHAPTERf3.CFEAeTURES??hw455\xylet@\PATHaction=\PATHaction@defaultItfiscalledusing\PATHaction@LHĹtoexpandtheactioncon!trolsequencesbacktotheirhstu i rst:P462\xydef@\PATHaction@#1#2{\expandafter\PATHaction\expandafter#1\expandafter{#2}}f3.3b.ItispMossibletoincludean!umberofdefaulthlabelsibpefore}Uthehlabelsioftheactualhsegmen!ti areiEin!terpreted,using~ (hwhichi{hlabMelsi}.&{TheiEspeci edhwhic!hideterminesforwhichsegmentsthefindicatedhlabMelsishouldbepre xedasfollo!ws:- ωff| ͤ} ff͟hwhic!hi ff62&appliedfto.3.. Rɟ} ffzff|ͤ} ff < ff62&nextfsegmen!tonly͟} ff ͤ} ff > ff62&lastfsegmen!tonly } ffͤ} ff = ff62&ev!eryfsegment\} ffff|- (whenfsev!eralapplytothesamesegmenttheyareinsertedinthesequence<>+d).h This8isusefultodra!wconnectionswitha`centermarker'inparticularwitharrows,e.g.,the`mapsto'fexampleexplainedbMelo!wcanbec!hangedintoa`breakto'example:typing\xy*+{0}\PATHK~={**\dir{-}}K~>{|>*\dir{>}}K~+{|*\dir{/}}K'(10,1)*+{1}'(20,-2)*+{2}(30,0)*+{3}\endxywillft!ypMeset+ps: SDict begin xyc endq0sޟ1sޟ"" {16.9776 1.70226 l}xy " {2867 st}xy;缟728缟b " {16.9776 -5.10674 l}xy0ja " {2380 st}xyX[q3U[<" {16.9776 3.39328 l}xyLx@ " {2963 st}xyU[<" {3277 10 /xy AB}xyNote, ho!wever,thatwhatgoMesin!to~+{%.3..} yȹishlabelsiandth!usnotahposi{itisnotanactioninfthesenseexplainedabMo!ve.6x3.3c.rSpMecifyingT~{2hstu i} willTsetthe\failurecon!tinuation"Ttohstu i.EThiswillbeinsertedwhentheflasthsegmen!tiisexpMected|itcanevenreplaceitoraddmorehsegmentis,i.e.,\xy*+{0}\PATH~={**\dir{-}} m~{'(20,-2)*+{2}(30,0)*+{3}}'(10,1)*+{1}\endxyisfequivdDalen!tto\xy*+{0}\PATH~={**\dir{-}} m'(10,1)*+{1}'(20,-2)*+{2}(30,0)*+{3}\endxyt!ypMesetting+ps: SDict begin xyc endq0sޟ1sޟ"" {16.9776 1.70226 l}xy;缟728缟b " {16.9776 -5.10674 l}xyX[q3U[<" {16.9776 3.39328 l}xyD$bMecausewhen\endxy'isseenthentheparserkno!wsthatthenextsymbMolisneitherofthecharacters~'` >and'hencethatthelasthsegmen!tiistobMeexpected.Instead,gho!wever,the'failurecon!tinuationisfinsertedandparsed,andthehpathiis nishedb!ytheinsertedmaterial.h Feailurefcon!tinuationscanbMenested:\xy*+{0}\PATH~={**\dir{-}}-*tj3.3.CARR!OWfANDPeATHfFEATURE301??hwK~{~{(30,0)*+{3}} K'(20,-2)*+{2}}'(10,1)*+{1}\endxyۇwillfalsot!ypMesettheconnecteddigits.3.3d.Af\straigh!tsegment"isinterpretedasfollows:1. %First6pissettotheendobjectoftheprevioussegmen!t(forthe rstsegmentthisiscjust %bMeforePthepathcommand)andcissettothehposistartingthehsegmen!ti,andthecurrent %hslideifisapplied.2. %Then?the= p(and:(0,0)K*+\txt{base}="base".*tj302KCHAPTERf3.CFEAeTURES??hwK\PATH~={**\dir{-}?>*\dir{>}} ɿ`l>(-1,-1)*{A}^aɿ`R(1,-1)*{B}^bɿ`_ul T(1,0)*{C}^cɿ`ul^l"base"R^d@G"base"R^e\endxyBug:ݹTeurnsfareonlyreallyresonableforpathsthatusestraigh!tlinesliketheoneabMove.Note:Alw!ayshwriteavdDalidhpMosiafterahturni,u otherwisean!yfollowing^or_labMelscanconfusetheparser. ESoify!ouintendthe^rin`^r{:tobMealabelthenwrite`,^rƹ,| usingadumm!y,hpMosiition.Weefneedtok!eeptrackofthecurrentin}qandoutPhdiagidirectionsaswellasthecurrentradius.P661\xydef@\PATHlastout@@{3}Thefstartuproutineisjustaselectionofthet!wofkindsofhturni:667\xydef@\PATHturn@{\afterCIRorDIAG\PATHturn@cir\PATHturn@diag}InȑbMothcasesthetric!kistosetupa\PATHinit@@Fpmethodthatt!ypesetstherigh!tcirclesegment attherigh!tloMcation.ThesimplestoneiswhenthereisafullhciriavdDailablebMecausethatshouldjustfbMeuseddirectlye.Theonlycomplicationisthatw!eforbid180fjturns:P677\xydef@\PATHturn@cir{\toks@={\xy@@{%678 m\count@=\CIRin@@\ifnum\count@<4\else\advance\count@-4\fi679 m\count@@=\CIRout@@\ifnum\count@@<4\else\advance\count@@-4\fi680 m\ifnum\count@=\count@@\xyerror@{cannotbehalforfull}{%681Youaskedforaedsegmentwithparallelin-andout-direction.^^J%682Thisisnotallowedbecauseitisnotpossibletopositionituniquely.}\fi}}%683K\edef\next@{{\CIRin@@}{\expandafter\noexpand\CIRorient@@}{\CIRout@@}}%684K\expandafter\PATHturn@i\next@}Prpocedure:forhdiagiturns:Builds]initialpartof\PATHinit@@G7thatcomputesthemissingorientandoutfrominandthecpassedthroughthesegmen!t.Thisinitialsegmentshouldsetorientasfollo!ws:7֍ps: SDict begin xyc end$S@n& pr" {102.42987 45.52435 l}xy0d :::vF :yޟ:|lv˦>:E7i" {3527 10 /xy AB}xyE6Cg^H_vi.e.,fasthesignoftheinnerproMduct1~pcTԍx^v,nin ɞ,andsetoutPasforthehciriclein}qorient .P704\xydef@\PATHturn@diag{\toks@={\xy@@{%705\setupDirection@\count@=\CIRin@@\dimen@=\xydashl@\ABfromdiag@706\ifdim\sinDirection\A@>\cosDirection\B@\def\CIRorient@@{\CIRacw@}%707 \advance\count@\ifnum\count@<6\tw@\else-6\fi708\else\def\CIRorient@@{\CIRcw@}%709 \advance\count@\ifnum\count@>\@ne-\tw@\else6\fi710\fi711\edef\CIRout@@{\the\count@}}}%712K\edef\next@{{\CIRin@@}{}{}}%713K\expandafter\PATHturn@i\next@}/ {*tj3.3.CARR!OWfANDPeATHfFEATURE303??hw\PATHturn@i8n͹isfwhere\PATHinit@@Fisde nedtodothefollo!wing:8jPl.775 %Setupsthedefaultin ,2orient ,andsout]asde nedb!ythecallfromtheabMovemacros.Set %rpadius parameter'tothecurren!tturnradius vdDalue.b_Thecommandsin\toks@*ʹareruntodo %an!yflast-minute xingofthedefaults.8jPl.779 %The$segmen!twillleavepindirectionin/andpretendtobMemeetingcindirectionout .Thus %thecen!terofthehciricleobjecttobMeusedfortheactualhturniobjectisloMcatedatthe %in!tersectionofthelinethroughpa:+rpadiusz^=vzin.indirection2~vzin,andthelinethroughca:+rpadiusz^=vzout %indirectionz~vzoutPN.YHerew!ecomputep]+Rf^vzinѹusingR=wArpadius%;Rifthisistheinitialturnand %R O= rpadius#Vnslide,Yiffitisacon!tinuationfturn.jPl.782 %Sa!vefpandbpaseyforlater.jPl.785 %Compute6cܹ+rpadius^l^vzout5 andusethek!ernel\intersect@E primitivetocomputetheturncircle %segmen!tfcenter.jPl.793 %Ho!wever,ifthein!tersectionpMointliesonthe`wrongside'ofp,i.e.,if~pc3inisnegative,then %w!eKshouldnotusetheintersectionpMointbutthepMointasclosetopaspMossiblebecausethe %connection5fromptotheturnshouldatleastha!ve5zerolength|infactw!esetittohave8sp %lengthftomak!esurethatasugsegmentistypMeset!jPl.806 %MoMdifyrrpadius芹tousefortheactualcirclesegmen!tbytheslideҡ:eitherpMositively(fororient \_) %ornegativ!ely(fororientp^),Landdropthecirclesegment(bypassing\cirCtousetheinternal %settingsffromabMo!ve).jPl.809 %StoreDin\PATHpostpos@@XԹthetrueendofthecirclesegmen!tandcoMdetopreventtheappli- %cationfoftheslideyforthestartofthenexthsegmen!ti.jPl.815 %Mo!vefctotruebMeginningofthecirclesegmen!t.jPl.818 %Restorefsa!vedpandbpaseҡ,andslidep nallye. 771\xylet@\PATHpostpos@@=\emptyP773\xydef@\PATHturn@i#1#2#3{%774K\DN@##1{\def\PATHinit@@{\xy@@{%775 \def\CIRin@@{#1}\def\CIRorient@@{#2}\def\CIRout@@{#3}776 \ifnum\CIRin@@=8\let\CIRin@@=\PATHlastout@@\fi777 \R@=\turnradius@778 ##1\relax}%779\xy@@{\count@=\CIRin@@780 \ifPATHomitslide@@\dimen@=-\PATHslide@@781Jk\ABfromdiag@\advance\X@p-\B@\advance\Y@p\A@\fi782 \enter@{\pfromthep@\basefromthebase@}}783\xy@@{\dimen@=\expandafter\ifx\CIRorient@@\CIRcw@-\fi\R@784 \ABfromdiag@\advance\X@p-\B@\advance\Y@p\A@785 \X@origin=\X@p\Y@origin=\Y@p}786\xy@@{\dimen@=\xydashl@\ABfromdiag@\R@c=\A@\U@c=\B@787 \count@=\CIRout@@788 \dimen@=\expandafter\ifx\CIRorient@@\CIRcw@-\fi\R@789 \ABfromdiag@\advance\X@c-\B@\advance\Y@c\A@790 \dimen@=\xydashl@\X@p=\X@c\Y@p=\Y@c791 \ABfromdiag@\advance\X@p-\A@\advance\Y@p-\B@792 \intersect@793 \count@=\CIRin@@\dimen@=\p@\ABfromdiag@}794\xy@@{\edef\next@{\expandafter\removePT@\the\A@}%02*tj304KCHAPTERf3.CFEAeTURES??hw795 \edef\nextii@{\expandafter\removePT@\the\B@}% 796 \A@=\X@c\advance\A@-\X@origin\B@=\Y@c\advance\B@-\Y@origin797 \ifdim\next@\A@<-\nextii@\B@798Jk\dontleave@\cfromp@799Jk\count@=\CIRin@@\advance\count@\ifnum\count@<4+4\else-4\fi800Jk\dimen@=\xydashl@\Directionfromdiag@801Jk\the\Edge@c\z@802Jk\count@=\CIRin@@\dimen@=\expandafter\ifx\CIRorient@@\CIRcw@-\fi\R@803Jk\ABfromdiag@\advance\X@c-\B@\advance\Y@c\A@804Jk\dimen@=5sp\ABfromdiag@\advance\X@c\A@\advance\Y@c\B@805 \fi806 \dimen@ii=\expandafter\ifx\CIRorient@@\CIRacw@-\fi\PATHslide@@807 \advance\R@\dimen@ii808 \drop@\literal@{\hbox\bgroup\cir@i}}%809\xy@@{\X@p=\X@c\Y@p=\Y@c810 \count@=\CIRout@@811 \dimen@=\expandafter\ifx\CIRorient@@\CIRacw@-\fi\R@c812 \ABfromdiag@\advance\X@p-\B@\advance\Y@p\A@813 \edef\PATHpostpos@@{\X@c=\the\X@p\Y@c=\the\Y@p\noexpand\czeroEdge@814Jk\noexpand\PATHomitslide@@true}}%815\xy@@{\count@=\CIRin@@816 \dimen@=\expandafter\ifx\CIRorient@@\CIRacw@-\fi\R@c817 \ABfromdiag@\advance\X@c-\B@\advance\Y@c\A@\czeroEdge@}%818\xy@@{\leave@819 \count@=\CIRin@@\dimen@=\PATHslide@@820 \ABfromdiag@\advance\X@p-\B@\advance\Y@p\A@821 \edef\PATHlastout@@{\CIRout@@}%822 \count@=\CIRout@@\dimen@=\xydashl@\Directionfromdiag@}}}%823K\expandafter\next@\expandafter{\the\toks@}\toks@={}%824K\let\PATHextra@@=\empty825K\def\PATHpost@@{\xy@@\PATHpostpos@@}%826K\let\PATHlabelsextra@@=\relax827K\xyFN@\PATHturn@ii}The nalmacrotak!escareofthev2.6formatforchangingturnrpadius:֒using/hdimenirightafterthefhturni.P834\xydef@\PATHturn@ii{%835K\ifx/\next836 m\DN@/{\afterassignment\nextii@\dimen@=}%837 m\DNii@{%838\edef\next@{\noexpand\xy@@{\edef\noexpand\turnradius@{\the\dimen@}}}\next@839\xy@@\pfromc@\PATHafterPOS{\xyFN@\PATHsegment@}}%840K\else\DN@{\xy@@\pfromc@\PATHafterPOS{\xyFN@\PATHsegment@}}\fi841K\next@}ThisƟjuststoresahdiagiv!ectorofthespMeci edlenghtin<IA,B> thusactingasanoptimisedversionoff\Directionfromdiag@p:P849\xydef@\ABfromdiag@{\ifcase\count@\relax850Jk\A@=-.7071\dimen@\B@=-.7071\dimen@\or\A@=\z@"}\B@=-\dimen@1)r*tj3.3.CARR!OWfANDPeATHfFEATURE305??hw851K\or\A@=+.7071\dimen@\B@=-.7071\dimen@\or\A@=\dimen@ T\B@=\z@ 852K\or\A@=+.7071\dimen@\B@=+.7071\dimen@\or\A@=\z@"}\B@=+\dimen@853K\or\A@=-.7071\dimen@\B@=+.7071\dimen@\or\A@=-\dimen@\B@=\z@854K\else\xybug@{impossible?}\fi}֍Thefdefaultusedforturnrpadius~canbMesetb!ytheoperation ?JffѲd Nje\turnradiusfhaddopi{ fhdimeni}D1ffѲdR}thatfw!orkslikethekernel\objectmarginetc.commands;itdefaultsto10pt.P870\xydef@\turnradius@{10pt}872\xydef@\turnradius{\afterADDOP{\Addop@@\turnradius@}}%ȍExercise23.1: 5T!ypMesetፍSps: SDict begin xyc end 1%A$dh0" {10.0 0 360 o}xy h0" {10.0 45 315 o}xy2zb" {3686 10 /xy AB}xyzusingfhturnis.,63.3g.=Thelastsegmen!tisexactlyasastraightoneexceptthatthe>action(ifany)isexecuted(and cleared)fjustafterthe hperpin!P]2hunperpinwherehperpi,hunperpiareNj^ 5,_forNj^-labMelsNjand_ 5,^forNj_-labels.AKTheNjlasthac!kusing\lastobjectbox@] aimsatbothset-tingBthatrigh!tandsettingthelabMelasanobject(suchthatmoMdi erstakee ect)eventhoughitsplacemen!tfispMeculiar.LabMelswillbeseparatedfromtheconnectionb!ythelabpel!margincthatyoucansetwiththeopMeration ffѲd o\labelmarginfhaddopi{ fhdimeni}eNffѲd.thatydw!orkslikethekernel\objectmargincommand;infactlabpelmarginPodefaultsydtouseobjepct-marpgin}qiffnotset.985\xylet@\labelmargin@=\objectmargin@987\xydef@\labelmargin{\afterADDOP{\Addop@@\labelmargin@}}%^3.3j.,Breakingmeansto\sliceahole"intheconnectionandinserthitithere.]Thisisrealizedb!yt!ypMesettingatheconnectioninquestioninsubsepgments,oneleadingtothebreakandonecontinuingafterfthebreakasdescribMedinnotes3.3aand3.3d.ThefspMecialcon!trolsequence\holeisprovidedtomakeiteasytomakeanemptybreak.1003\xydef@\hole{\hbox{\dimen@=\objectmargin@\kern2\dimen@1004 m\vruleheight\dimen@depth\dimen@width\z@}}Subsegmen!tsfaretypMesetusingthe`\Cbreak@@3'method.np3.3k.\Unlesshitiisafull- edgedhobjecti(b!yusingthe*form),3~itistypMesetusinga\labelboxobject(initiallyfsimilarto\objectboxofbasicXY p-picbutusing\labelstyleforthest!yle).Remark:ݹYeoufcanonlyomitthe{}%saroundsingleletters,digits,andcon!trolsequences.1024\xylet@\labelstyle=\scriptstyle1025\xydef@\labelbox#1{\hbox{$\m@th\labelstyle{#1}$}}%^3.3l.NAlabMelisanobjectlik!eanyotherintheXY-picture.BInsertinganhaliasi="hidi" osavesthelabMelobjectfas" fhidi"forflaterreference.!B1Exercise23.2: 5T!ypMeset.ڍ~ps: SDict begin xyc endh0" {0.0 0.0 dd}xy& ۟rAU[}{" {3311 10 /xy AB}xyU[}{" {85.35782 19.91682 dd}xyU[}{" {0.0 0.0 dd}xyፍ ݹlabMelh0!,ߟ䨱" {0.01968 0.0 l}xy%D`" {1733 10 /xy AB}xyh0%D0" {4.11005 -5.916 l}xyh0%D0" {0.01968 0.0 l}xy܎3CH*tj3.3.CARR!OWfANDPeATHfFEATURE307??hw1052\xydef@\PATHlabelalias@{% 1053K\ifx\space@\next\expandafter\DN@\space{\xyFN@\PATHlabelalias@}%1054K\else\addEQ@\ifx\next1055 m\addEQ@\DN@"##1"{\savealias@{##1}\xyFN@\PATHlabelalias@}%1056K\else\DN@{\afteraliases@@\PATHlabels@}\fi\fi\next@}P1058\xylet@\afteraliases@@=\empty1060%{\xyuncatcodes\gdef\next#1{\POS!C="#1"\relax}} 1061\xydef@\savealias@#1{\xy@@{\enter@\cfromthec@1062 \advance\X@c-\L@c\advance\L@c\R@c\L@c=.5\L@c\R@c=\L@c\advance\X@c\L@c1063 \advance\Y@c-\D@c\advance\D@c\U@c\D@c=.5\D@c\U@c=\D@c\advance\Y@c\D@c1064 \idfromc@{#1}\leave@}}"]3.3.2 Arrows1183\message{\string\ar,}tdArro!wsarepathswithaparticularlyeasysyntaxforsettinguparrowswithtail!,@stem ,andhepadinthest!yleof[12 4].1ThisisprovidedbyasinglehdecoriationthesyntaxofwhichisdescribMedin gureL3.2(withtheaddedcon!ventionLthataraised`*y'means0ormorerepMetitionsofthepreceedingnon!terminal). Ptarsing: 5Theo\arcommande ectiv!elytranslatestheharrowiintoa\PATHLcommandthatinitialisestheftail,stem,andheadofitasrequiredtogetthedesiredharro!wi. vTheftranslationoftheharro!wiissavedinthefollowingvdDariables:P1204\xylet@\arvariant@@=\empty1205\xylet@\arstemprefix@@=\empty1206\xylet@\artail@@=\empty1207\xylet@\arstem@@=\empty1208\xylet@\arhead@@=\empty1209\xylet@\armodifiers@@=\empty1210\xylet@\arlabels@@=\empty1211\xylet@\arafterPOS@@=\empty1212\xylet@\arinit@@=\empty1213\xylet@\arexit@@=\empty1215\xylet@\arcomponent@@=\relax1216\xylet@\arcomponenttype@@=\relax1218\xylet@\afterar@@=\relaxtd\ar6Mstoresthedefaults;~Aitloadsanin!termediatecommandtoavoidproblemswhenusedas rstcommandfincompiledmatrixen!try.3..1226\xydef@\ar{\relax\arSAFE}1228\xydef@\arSAFE{%1229K\let\arvariant@@=\empty1230K\def\arstemprefix@@{\dir}%1231K\edef\artail@@{\arvariant@@{}}%1232K\edef\arstem@@{\arvariant@@{-}}%1233K\edef\arhead@@{\arvariant@@{>}}%1234K\def\armodifiers@@{}%4R*tj308KCHAPTERf3.CFEAeTURES??hw1235K\def\arafterPOS@@{}% 1236K\def\arlabels@@{}%1237K\def\arinit@@{}%1238K\def\arexit@@{}%1239K\let\PATHlabelabove@@=\PATHlabelabove@1240K\let\PATHlabelbelow@@=\PATHlabelbelow@1241K\xyFN@\ar@}Q\ar@[iswherew!eparsethesequenceofhformisandcontinuewithtypMesettingthearrowafterwards.P1248\xydef@\ar@{%1249K\ifx\space@\next\expandafter\DN@\space{\xyFN@\ar@}%1250K\else\addAT@\ifx\next\addAT@\DN@{\xyFN@\ar@form}%1251K\else\ifx|\next1252 m\DN@|{\ar@anchor|}%1253K\else\ifx^\next1254 m\DN@^{\ar@anchor^}%1255K\else\ifx_\next1256 m\DN@_{\ar@anchor_}%1257K\else\let\next@=\ar@x\fi\fi\fi\fi\fi\next@}Note:ݹMak!esfuseofthenewcpompilationprincipleytofparseahplaceivdDacuously.3..P1264\xydef@\addtoarinit@#1{%1265K\expandafter\def\expandafter\arinit@@\expandafter{\arinit@@#1}}1267\xydef@\addtoarlabels@#1{%1268K\expandafter\def\expandafter\arlabels@@\expandafter{\arlabels@@#1}}1270\xydef@\ar@anchor#1{\begingroup1271K\def\PATHlabelit@@##1##2{%1272 m\DN@{##1}\ifx\next@\empty1273\DN@####1{\expandafter\endgroup\expandafter\addtoarlabels@1274 \expandafter{\the\toks@####1{##2}}\xyFN@\ar@}%1275 m\else1276\DN@####1{\expandafter\endgroup\expandafter\addtoarlabels@1277 \expandafter{\the\toks@*!C####1##1{##2}}\xyFN@\ar@}\fi1278 m\expandafter\next@\expandafter{\PATHitshape@@}}%1279K\toks@={#1}%1280K\def\xy@##1##2{\addtotoks@{##1}}\change@oxy@\xy@\let\xy@@ix@=\eat@1281K\DNii@{}\xyFN@\PATHanchor@}Q\ar@form&/Ϲhandlesfonehformi:1287\xydef@\ar@form{%1288K\ifx\space@\next\expandafter\DN@\space{\xyFN@\ar@form}%1289K\else\ifx^\next\DN@^{\xyFN@\ar@style}\edef\arvariant@@{\string^}%1290K\else\ifx_\next\DN@_{\xyFN@\ar@style}\edef\arvariant@@{\string_}%1291K\else\ifx0\next\DN@0{\xyFN@\ar@style}\def\arvariant@@{0}%1292K\else\ifx1\next\DN@1{\xyFN@\ar@style}\def\arvariant@@{1}%1293K\else\ifx2\next\DN@2{\xyFN@\ar@style}\def\arvariant@@{2}%1294K\else\ifx3\next\DN@3{\xyFN@\ar@style}\def\arvariant@@{3}%1295K\else\ifx\bgroup\next\let\next@=\ar@style1296K\else\ifx[\next\DN@[##1]{\ar@modifiers{[##1]}}%]1297K\else\ifx*\next\DN@*{\ar@modifiers}%5]8*tj3.3.CARR!OWfANDPeATHfFEATURE309??hw1298K\else\addLT@\ifx\next\let\next@=\ar@slide 1299K\else\ifx/\next\let\next@=\ar@curveslash1300K\else\ifx(\next\let\next@=\ar@curveinout%)1301K\else\addRQ@\ifx\next\addRQ@\DN@{\ar@curve@}%1302K\else\addLQ@\ifx\next\addLQ@\DN@{\xyFN@\ar@curve}%1303K\else\addDASH@\ifx\next\addDASH@\DN@{\defarstem@-\xyFN@\ar@}%1304K\else\addEQ@\ifx\next\addEQ@\DN@{\def\arvariant@@{2}\defarstem@-\xyFN@\ar@}%1305K\else\addDOT@\ifx\next\addDOT@\DN@{\defarstem@.\xyFN@\ar@}%1306K\else\ifx:\next\DN@:{\def\arvariant@@{2}\defarstem@.\xyFN@\ar@}%1307K\else\ifx~\next\DN@~{\defarstem@~\xyFN@\ar@}%1308K\else\ifx!\next\DN@!{\dasharstem@\xyFN@\ar@}%1309K\else\ifx?\next\DN@?{\ar@upsidedown\xyFN@\ar@}%1310K\else\let\next@=\ar@error1311K\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\next@}P1313\xydef@\defarstem@#1{\edef\arstem@@{\arvariant@@{\string#1}}%1314K\DNii@##1##{\next@}%1315K\edef\next@##1{\def\noexpand\artail@@{\arvariant@@{##1}}}%1316 m\expandafter\nextii@\artail@@1317K\edef\next@##1{\def\noexpand\arhead@@{\arvariant@@{##1}}}%1318 m\expandafter\nextii@\arhead@@}1320\xydef@\dasharstem@{%1321K\DN@##1##{\nextii@{##1}}\DNii@##1##2{\def\arstem@@{##1{##2##2}}}%1322K\expandafter\next@\arstem@@}1324\xydef@\ar@error#1{\xyerror@{Illegal
ation(\meaning\next)}{}%1325K\xyFN@\ar@}S\ar@isets$theremainingdefaultsandthenallo!ws\ar@ii&5 -iv6xtopickupanytail,Sstem,and$headusingfa$ vasterminator.1332\xydef@\ar@style{%1333K\ifx\bgroup\next\def\artail@@{{}}%1334 m\edef\arstem@@{\arvariant@@{-}}\edef\arhead@@{\arvariant@@{>}}%1335 m\expandafter\ar@i1336K\else\resetvariant@\artail@@\resetvariant@\arstem@@\resetvariant@\arhead@@1337 m\expandafter\xyFN@\expandafter\ar@\fi}1339\xydef@\resetvariant@#1{%1340K\DN@##1##{\DN@{##1}\ifx\next@\empty1341\DN@{\expandafter\nextii@\expandafter{\arvariant@@}}%1342 m\else\DN@{\nextii@{##1}}\fi\next@}%1343K\DNii@##1##2{\def#1{##1{##2}}}%1344K\expandafter\next@#1}1346\xydef@\ar@i#1{\DN@{#1}%1347K\ifx\next@\empty\edef\arstem@@{\arvariant@@{}}\edef\arhead@@{\arvariant@@{}}%1348 m\DN@{\xyFN@\ar@}%1349K\else1350 m\let\arcomponent@@=\ar@ii\let\arcomponenttype@@=\artip@1351 m\DN@{\xyFN@\arcomponent@#1$}%1352K\fi\next@}1354\xydef@\ar@ii{\ifx$\next\let\next@=\ar@iv6i9*tj310KCHAPTERf3.CFEAeTURES??hw1355K\else\expandafter\def\expandafter\artail@@\expandafter{\the\toks@}% 1356 m\let\arcomponent@@=\ar@iii\let\arcomponenttype@@=\arconn@1357 m\DN@{\xyFN@\arcomponent@}\fi\next@}P1359\xydef@\ar@iii{%1360K\expandafter\def\expandafter\arstem@@\expandafter{\the\toks@}%1361K\resetvariant@\artail@@1362K\let\arcomponent@@=\ar@iv\let\arcomponenttype@@=\artip@1363K\xyFN@\arcomponent@}1365\xydef@\ar@iv{%1366K\expandafter\def\expandafter\arhead@@\expandafter{\the\toks@}%1367K\ifx$\next\DN@${\xyFN@\ar@}%1368K\else\xyerror@{illegal:\meaning\next\spacenotvalid}{}\fi\next@}S\ar@x>vis the nalmacrothatpassescon!troltothehpathiinterpreter.ItisabitclumsybMecausew!e mustpasstherightcharactertokens;>itcouldde nitelybMemoreecientbycallinghpathiinternalsdirectly.3..1377\xydef@\ar@x{%1378K\let\arsavedPATHafterPOS@@=\PATHafterPOS\let\PATHafterPOS=\arafterPOS@1379K\toks@={\ar@PATH}%1380K\expandafter\addtotoks@\expandafter{\expandafter{\artail@@}}%#11381K\expandafter\addtotoks@\expandafter{\expandafter{\arstem@@}}%#21382K\expandafter\addtotoks@\expandafter{\expandafter{\arstemprefix@@}}%#31383K\expandafter\addtotoks@\expandafter{\expandafter{\arhead@@}}%#41384K\expandafter\addtotoks@\expandafter{\expandafter{\armodifiers@@}}%#51385K\expandafter\addtotoks@\expandafter{\expandafter{\arinit@@}}%#61386K\expandafter\addtotoks@\expandafter{\expandafter{\arexit@@}}%#71387K\expandafter\addtotoks@\expandafter{\expandafter{\arlabels@@}}%#81388K\addtotoks@{\afterar@@}%#91389K\expandafter\DNii@\expandafter{\the\toks@}\toks@={}%1390%1391%{\let\x=\expandafter\x\x\x\DNii@\x\x\x{\nextii@}\W@{RUN:\codeof\nextii@}}%1392%1393K\nextii@}1395{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{%1396K\def\next{%1397 m\afterPATH{#9}%1398 m~={#6\preconnect#5#3#2}%1399 m~/{#7}%1400 m~<{|<*h#5\dir#1}%1401 m~>{|>*h#5\dir#4}%1402 m~+{#8}%1403 m}%1404K\next}}1406\xylet@\ar@PATH=\next1408\xydef@\arafterPOS@#1{%1409K\arsavedPATHafterPOS@@{\let\PATHafterPOS=\arsavedPATHafterPOS@@1410 m\DN@{#1}\expandafter\next@\arafterPOS@@}}%1412\xylet@\arsavedPATHafterPOS@@=\relax7u٠*tj3.3.CARR!OWfANDPeATHfFEATURE311??hwhtipis~andhconniectorsarein!terpretedbythesethatleaveanyhvdDariantiin\toks@ii7Landthe sequencefofhtipMc!harisorhconncharischaractersin\toks@&$b:Theɵw!orkisreallydonein\arcomponent@RO thatbuilds\toks@*fwithsomethingconformingtothe\arcomponenttype@@Nsandfthenpassescon!trolto\arcomponent@@T!:P1424\xydef@\arcomponent@{%1425K\ifx^\next"}\toks@ii={^}\DN@^{\xyFN@\arcomponent@i}%1426K\else\ifx_\next\toks@ii={_}\DN@_{\xyFN@\arcomponent@i}%1427K\else\ifx1\next\toks@ii={1}\DN@1{\xyFN@\arcomponent@i}%1428K\else\ifx2\next\toks@ii={2}\DN@2{\xyFN@\arcomponent@i}%1429K\else\ifx3\next\toks@ii={3}\DN@3{\xyFN@\arcomponent@i}%1430K\else\ifx\bgroup\next\expandafter\toks@ii\expandafter{\arvariant@@}%1431 m\let\next@=\arcomponent@i1432K\else\ifx*\next\DN@*##1##{\arcomponent@ii{##1}}%1433K\else\expandafter\toks@ii\expandafter{\arvariant@@}\toks@={}%1434 m\let\next@=\arcomponenttype@@1435K\fi\fi\fi\fi\fi\fi\fi1436K\next@}1438\xydef@\arcomponent@i#1{\toks@={#1}\arcomponent@x}1440\xydef@\arcomponent@ii#1#2{\toks@={*#1{#2}}\xyFN@\arcomponent@@}1442\xydef@\artip@{%1443K\addGT@\ifx\next\addGT@\addtotoks@\addGT@\DN@{\xyFN@\artip@}%1444K\else\addLT@\ifx\next\addLT@\addtotoks@\addLT@\DN@{\xyFN@\artip@}%1445K\else\ifx(\next\addtotoks@(\DN@({\xyFN@\artip@}%1446K\else\ifx)\next\addtotoks@)\DN@){\xyFN@\artip@}%1447K\else\ifx|\next\addtotoks@|\DN@|{\xyFN@\artip@}%1448K\else\addLQ@\ifx\next\addLQ@\addtotoks@\addLQ@\DN@{\xyFN@\artip@}%1449K\else\addRQ@\ifx\next\addRQ@\addtotoks@\addRQ@\DN@{\xyFN@\artip@}%1450K\else\addPLUS@\ifx\next\addPLUS@\addtotoks@\addPLUS@\DN@{\xyFN@\artip@}%1451K\else\ifx/\next\addtotoks@/\DN@/{\xyFN@\artip@}%1452K\else\ifcatA\noexpand\next\DN@##1{\addtotoks@{##1}\xyFN@\artip@}%1453K\else\ifx\space@\next\addtotoks@{}\expandafter\DN@\space{\xyFN@\artip@}%1454K\else\let\next@=\arcomponent@x1455K\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\next@}1457\xydef@\arconn@{%1458K\addDASH@\ifx\next\addDASH@\addtotoks@\addDASH@\DN@{\xyFN@\arconn@}%1459K\else\addEQ@\ifx\next\addEQ@\addtotoks@\addEQ@\DN@{\xyFN@\arconn@}%1460 m\ifx\arvariant@@\empty\def\arvariant@@{2}\fi1461K\else\addDOT@\ifx\next\addDOT@\addtotoks@\addDOT@\DN@{\xyFN@\arconn@}%1462K\else\ifx:\next\addtotoks@:\DN@:{\xyFN@\arconn@}%1463 m\ifx\arvariant@@\empty\def\arvariant@@{2}\fi1464K\else\ifx~\next\addtotoks@~\DN@~{\xyFN@\arconn@}%1465K\else\let\next@=\arcomponent@x1466K\fi\fi\fi\fi\fi\next@}1468\xydef@\arcomponent@x{%1469K\DN@##1{\toks@=\expandafter{\the\toks@ii{##1}}}%1470K\expandafter\next@\expandafter{\the\toks@}%1471K\xyFN@\arcomponent@@}8*tj312KCHAPTERf3.CFEAeTURES??hwNotes3.3m.Buildinguanharro!wiissimplyusingthespMeci eddirectionals(using\dirofx1.6.1)tobuilda path:rthe0 rsthtipibMecomesthearrpowtailڹofthearro!w,#thehconniectioninthemiddlebecomesthearrpowstem ,0andthesecondhtipibMecomesthearrowhead!.GIfahvdDarian!tiisgivenbMeforethe{thenfthatvdDarian!t\dirisusedforallthree.Feorexample,P\xy\ar@^{(->}(20,7)\endxyЌt!ypMesetsmps: SDict begin xyc endh0 " {3430 ha}xyb" {0.0 0.02223 l}xy8缟}{" {3430 10 /xy A}xy8缟}{" {56.90521 19.91682 l}xy8缟}{" {0.0 0.02223 l}xy'3Exercise23.3: 5T!ypMesetfthesearrows:?ۯps: SDict begin xyc endg%AݝA0Ph0" {8.50903 0 360 o}xyh0? " {-0.02345 0.01247 l}xy -Lb" {-2389 10 /xy AB}xyh0 -LO" {-14.84233 22.26146 l}xyh0 -L2" {-0.0936 0.0 l}xyݝA00 Ph0" {9.66182 0 360 o}xyh0QB>" {0.0 0.0 l}xyh0!OB>" {0.0 0.0 l}xy P" {-3072 /XT tt}xyh0Q)m" {0.0 17.09694 l}xyh0!O)m" {0.0 17.09694 l}xy0ǟݝA0008Ph0" {10.81459 0 360 o}xyOA#URAf" {0.0 0.0033 l}xy&pAf" {0.0 0.0033 l}xyh0%aAf" {0.0 0.0033 l}xy/ " {341 F d}xy24r" {-3755 /Xt tT}xyOA/%" {11.81378 17.72397 l}xy2}ğ" {11.81378 17.72397 l}xyh00ѵ" {11.81378 17.72397 l}xydޟ%BJŸݝB0PPh0" {8.8303 0 360 o}xyeΟV}" {-2389 st}xydn" {-2389 st}xyh0c? " {-0.02345 0.01247 dt}xyVL>" {-2389 10 /xy AB}xyUZk&" {-2389 10 /xy AB}xyh0UZkB" {-14.66608 21.99725 dt}xyh0UZka" {-0.09625 0.0 dt}xyaݝB00hPh0" {9.98308 0 360 o}xygQm" {-3072 st}xygQn" {-3072 st}xyiOm" {-3072 st}xyiOn" {-3072 st}xyh0gQB>" {0.0 0.0 dt}xyh0iOB>" {0.0 0.0 dt}xyhPc" {-3072 /XT tt}xyhPc" {-3072 /XT tt}xyh0gQ{" {0.0 16.77568 dt}xyh0iO{" {0.0 16.77568 dt}xyx_ݝB000Ph0" {11.13586 0 360 o}xyj}{!/4.5pt/\dir{|}:*:(1,-.2)\dir^{>}:*:(1,+.2)\dir_{>}}Ќde nesfanewarro!wtipthatmakes\xy(0,0)*+{A}K\ar@{=|>}(20,3)*+{B}\endxyЌt!ypMesetҍps: SDict begin xyc end%A;}BY" {0.01605 0.0 l}xyb S" {0.01605 0.0 l}xy6\aU " {3226 st}xy:Ι " {3029 10 /xy A}xy:Ι " {3449 10 /xy B}xy64ڟU" {40.14835 6.01572 l}xy6O" {40.14835 6.01572 l}xyNotice؇thatthefactthatthedirectionalusesonlyhtipMc!haricharactersmeansthatitblendsnat-urallyfwiththeexistingtips.!l,Exercise"3.4: 5OftenCtipsusedas`tails'ha!veCtheirinkonthewrongsideofthepMoin!twheretheyare\placed.FeortunatelyspaceisalsoahtipMc!harisowecande ne\dir{>}6ܹtogeneratea`tail'arro!w.Dofthissuchthat\xy(0,0)*+{A}="a",(20,3)*+{B}="b"K\ar@{>->} T"a";"b"<2pt>K\ar@{>->}"a";"b"<-2pt>\endxyЌt!ypMesetsҍps: SDict begin xyc end%A;}B W\" {3226 10 /xy AB}xy s\" {0.01605 0.0 l}xy8Fm" {3226 10 /xy AB}xy8Fm" {42.37143 6.35005 l}xy8Fm" {0.01688 0.0 l}xyϟ" {3226 10 /xy AB}xy8䍟" {3226 10 /xy AB}xy8䍟" {39.90134 5.97858 l}xy8䍟" {0.01688 0.0 l}xy9̠*tj3.3.CARR!OWfANDPeATHfFEATURE313??hw3.3n.SpMecifyingZahdiriasahtipiorhconnimeansthat\dirhdiriisusedforthathtipiorhconni.lFeor example,P\xy\ar@{<^{|}>}(20,7)\endxy䍑t!ypMesetsmps: SDict begin xyc endh0" {-666 10 /xy AB}xy8缟}{" {3430 10 /xy AB}xy7G" {-2714 F d}xy3)*" {-2714 F d}xy0*Bz" {-2714 F d}xy,3" {-2714 F d}xy) " {-2714 F d}xy%=j" {-2714 F d}xy!Ÿ;" {-2714 F d}xybGz " {-2714 F d}xy̟Z" {-2714 F d}xyEQ" {-2714 F d}xy֟4" {-2714 F d}xy([sJ" {-2714 F d}xy " {-2714 F d}xy e" {-2714 F d}xy|.:" {-2714 F d}xyol" {-2714 F d}xy_" {-2714 F d}xyƮWhenusingthisy!oumustspMecifya{}dummyhdiriectionalinordertoignoreoneofthetail,stem,fortipcompMonen!ts,e.g.,\xy\ar@{{}{+}>}(20,7)\endxy䍑t!ypMesetsmps: SDict begin xyc end8缟}{" {3430 10 /xy AB}xy8缟遽 " {3430 st}xy6~Q" {3430 F d}xy3fP{ " {3430 st}xy1^( " {3430 F d}xy.9 " {3430 st}xy,1ҟE" {3430 F d}xy)b " {3430 st}xy'|" {3430 F d}xy$6d " {3430 st}xy!&" {3430 F d}xy s " {3430 st}xyП[" {3430 F d}xyݸZ1 " {3430 st}xyz*=" {3430 F d}xyb( " {3430 st}xyT$" {3430 F d}xy " {3430 st}xy 'Οǹ" {3430 F d}xy Xk " {3430 st}xyxw" {3430 F d}xy,`) " {3430 st}xy"e5" {3430 F d}xy c " {3430 st}xy̟3" {3430 F d}xyƮInLparticular*hobjectiisahdirisoan!yhobjecticanbMeusedforeitherofthetail,stem,orLheadcompMonen!t:\xy\ar@{*{x}*{y}*{z}}(20,7)\endxy䍑t!ypMesetsS,ps: SDict begin xyc endçx9?Vz3|hëy-]y&RIy GyyƮNote:ݹAf* vin!troMducesfanhobjectiwhereasthedirectional`ps: SDict begin xyc end334'istypMesetbythehdiri{*}d.!6kExercise23.5: 5T!ypMesetmps: SDict begin xyc end)a" {3430 10 /xy AB}xyh0" {3430 10 /xy AB}xy;" {-666 10 /xy AB}xy8缟}{" {-666 10 /xy AB}xy8缟遽" {-3572 st}xy7Ʉ)" {-3572 F d}xy8缟遽 " {3430 st}xy6~Q" {3430 F d}xy3fP{" {-3572 st}xy2." {-3572 F d}xy3fP{ " {3430 st}xy1^( " {3430 F d}xy.9" {-3572 st}xy-p؟[" {-3572 F d}xy.9 " {3430 st}xy,1ҟE" {3430 F d}xy)b" {-3572 st}xy(D*c" {-3572 F d}xy)b " {3430 st}xy'|" {3430 F d}xy$6d" {-3572 st}xy#,!" {-3572 F d}xy$6d " {3430 st}xy!&" {3430 F d}xy s" {-3572 st}xy֟" {-3572 F d}xy s " {3430 st}xyП[" {3430 F d}xyݸZ1" {-3572 st}xy" {-3572 F d}xyݸZ1 " {3430 st}xyz*=" {3430 F d}xyb(" {-3572 st}xy*e[" {-3572 F d}xyb( " {3430 st}xyT$" {3430 F d}xy " {-3572 st}xyfԟ4" {-3572 F d}xy " {3430 st}xy 'Οǹ" {3430 F d}xy Xk" {-3572 st}xy :~" {-3572 F d}xy Xk " {3430 st}xyxw" {3430 F d}xy,`)" {-3572 st}xy(ѕ" {-3572 F d}xy,`) " {3430 st}xy"e5" {3430 F d}xy c" {-3572 st}xyҞS" {-3572 F d}xy c " {3430 st}xy̟3" {3430 F d}xyusingfonlyone\arʹcommand.bR3.3o.=Curvingthearro!wusing/ d`/,wheredisahdirectioniand`ahdimenision,mak!esthestema curv!eg]whichissimilartoastraightlinebuthashadit'scenterpMoint`dragged'thedistance`ind:.獍}ps: SDict begin xyc endR" {2.0 0 360 o}xy:缟" {2.0 0 360 o}xyh0G" {mark 56.90521 -28.4526 35.11974 6.66765 0.0 28.4526 1.0 0.02417 q}xyA"h0K" {mark 56.90521 -28.4526 35.11974 6.66765 0.0 28.4526 0.02417 0.46298 q}xy9Y8" {1673 10 /xy AB}xyh0K" {mark 56.90521 -28.4526 35.11974 6.66765 0.0 28.4526 0.53769 0.97144 q}xyh0G" {mark 56.90521 -28.4526 35.11974 6.66765 0.0 28.4526 1.0 0.97137 q}xyh0H" {mark 56.90521 -28.4526 21.78496 -6.66713 0.0 28.4526 1.0 0.02417 q}xyg#h0L" {mark 56.90521 -28.4526 21.78496 -6.66713 0.0 28.4526 0.02417 0.46231 q}xy8" {2423 10 /xy AB}xyh0L" {mark 56.90521 -28.4526 21.78496 -6.66713 0.0 28.4526 0.53702 0.97144 q}xyh0H" {mark 56.90521 -28.4526 21.78496 -6.66713 0.0 28.4526 1.0 0.97137 q}xy:缟R" {2.0 0 360 o}xysx" {2.0 0 360 o}xyh0L" {mark 113.81042 -28.4526 85.35756 9.4294 56.90521 28.4526 1.0 0.02905 q}xyT壟juh0P" {mark 113.81042 -28.4526 85.35756 9.4294 56.90521 28.4526 0.02905 0.46945 q}xyrKΟW" {1811 10 /xy AB}xyh0P" {mark 113.81042 -28.4526 85.35756 9.4294 56.90521 28.4526 0.52994 0.97339 q}xyh0L" {mark 113.81042 -28.4526 85.35756 9.4294 56.90521 28.4526 1.0 0.97345 q}xyh0N" {mark 113.81042 -28.4526 85.35756 -9.42888 56.90521 28.4526 1.0 0.02124 q}xyU+3dh0R" {mark 113.81042 -28.4526 85.35756 -9.42888 56.90521 28.4526 0.02124 0.46158 q}xyqT" {2365 10 /xy AB}xyh0R" {mark 113.81042 -28.4526 85.35756 -9.42888 56.90521 28.4526 0.53842 0.96484 q}xyh0M" {mark 113.81042 -28.4526 85.35756 -9.42888 56.90521 28.4526 1.0 0.9649 q}xy.w!asftypMesetby\xyK\POS(0,10) T*\cir<2pt>{}="a" ,(20,-10)*\cir<2pt>{}="b"K\POS"a"\ar@/^1ex/"b"|\uparrowK\POS"a"\ar@/_1ex/"b"|\downarrow%K\POS(20,10)*\cir<2pt>{}="a" ,(40,-10)*\cir<2pt>{}="b"K\POS"a"\ar@/u1ex/"b"|uK\POS"a"\ar@/d1ex/"b"|d\endxy:A*tj314KCHAPTERf3.CFEAeTURES??hw`fdefaultsto.5pcKtifomitted.ԪThisisreallyjustashorthandforcurvingusingthemoregeneralformdescribMednext:@/!id`/ ,is the'sameas@`{{**{}?+/Id2`/}}Lwhic!hmakesthe(quadratic)curvepassthroughthepMointde nedfb!ythehpMosi**{}?+/1d`/.P1673\xydef@\ar@curveslash/#1/{\expandafter\ar@curve@\ar@slashing{#1}}1675\xydef@\ar@slashing#1{{\xy@{**{}?+/#1/+/#1/@+c}{\setupDirection@ 1676\vfromslide@{#1}%1677\X@c=2\X@c\advance\X@c\X@p\advance\X@c.5\d@X1678\Y@c=2\Y@c\advance\Y@c\Y@p\advance\Y@c.5\d@Y1679\czeroEdge@1680\spushc@}}}ƨ3.3p.Using2@(dz2, dz2)wheredz1;1dz2aresimplehdirectionis(asdescribMedinnote1.4lexceptitisnotpMossible,ltouse()s)willt!ypesetthearro!wcurvedsuchthatitleavesthesourceindirectiondz1panden!tersfthetargetfromdirectiondz2. /Exercise23.6: 5T!ypMeset-5ps: SDict begin xyc end  Zh0N" {mark 0.0 0.0 25.45587 25.45587 -25.45587 25.45587 0.0 0.0 1.0 0.03296 bz}xy tL" {1900 10 /xy AB}xy Zh0R" {mark 0.0 0.0 25.45587 25.45587 -25.45587 25.45587 0.0 0.0 0.03296 0.96704 bz}xy Zh0M" {mark 0.0 0.0 25.45587 25.45587 -25.45587 25.45587 0.0 0.0 1.0 0.9671 bz}xyBI Zh0S" {mark 0.0 0.0 25.45587 -25.45587 31.44934 25.45587 56.90521 0.0 1.0 0.03564 bt}xyB " {2210 10 /xy AB}xy Zh0W" {mark 0.0 0.0 25.45587 -25.45587 31.44934 25.45587 56.90521 0.0 0.03564 0.96448 bt}xy Zh0S" {mark 0.0 0.0 25.45587 -25.45587 31.44934 25.45587 56.90521 0.0 1.0 0.96448 bt}xyJɩP1708{\xyuncatcodes\catcode`\#=6%1709K\gdef\next(#1,#2){{+/#13pc/,p+/#23pc/}}}1710\xylet@\ar@curveinout@=\next1712\xydef@\ar@curveinout{\expandafter\ar@curve@load\ar@curveinout@}T\o2Do:ݹimplemen!tfthisecientlyandpropMerlygetridoftheno-()%restriction!3.3q.\The) nalcurv!eformisthemostgeneralone:@`{#hcontrolpMointlistsi} 郹setsthecontrolpMointsexplicitlytotheonesinthehcon!trolpMointlistsi(wheretheyshouldbMeseparatedby, q).Seethecurv!eextensiondescribMedinx2.1forthewaythecontrolpMointsareused;whenthecontrolpMointslistfisparsedpisthesourceandcthetargetofthearro!w.ԪCurvingA#simplyuses\crviinsteadof\dir.Theonlytric!kybitistoputthecontrolpMointsonthestac!kfright.1736\xydef@\ar@curve{%1737K\ifx\space@\next\expandafter\DN@\space{\xyFN@\ar@curve}%gobblespaces1738K\else\ifx\bgroup\next\let\next@=\ar@curve@load1739K\else\ifx"\next\DN@"##1"{\ar@curve@{"##1"}}%1740K\else\xyerror@{@=mustbefollowedby\string"\string"or1741#i{}}{}%1742K\fi\fi\fi\next@}1744{\xyuncatcodes\gdef\next#1#2{\def#1##1{#2{;@={##1}}}}}1745\next\ar@curve@load\ar@curve@1747\xydef@\ar@curve@#1{\curve@check1748K\setcurvearinit@{#1}\setcurvearexit@\arexit@@1749K\def\arstemprefix@@{\crvi}\xyFN@\ar@}1751{\xyuncatcodes\gdef\next#1{\save@(,#1\restore}};y*tj3.3.CARR!OWfANDPeATHfFEATURE315??hw1752\xylet@\setcurvearinit@i=\next 1753\xydef@\setcurvearinit@#1{%1754K\expandafter\addtoarinit@\expandafter{\setcurvearinit@i{#1}}}P1756{\xyuncatcodes\gdef\next#1{\def#1{\POS@i@)}}}1757\xylet@\setcurvearexit@=\next1759\xydef@\curve@check{%1760K\xyerror@{Forms@/.../,@(...),and@`{...},onlyavailablewhencurve1761#iextensionloaded}{}}1762\xywithoption{curve}{\let\curve@check=\relax}T\o4Do:The`parsingistrivialandshouldbMeextendedtoincludemoreexoticcon!trolpoin!tforms.Ȅ3.3r.ޏ@[ ].3..] ]and@*{ ...}formationsde newhatobjecthmoMdi erisshouldbeusedwhenbuildingobjectsthatarepartofthearro!w.Thisismostlyusefulinconjunctionwithextensionsthatde neadditional[ hshapMei]modi ers,)e.g.,ifa[red]$Vhmodi eric!hangesthecolourofanobjecttoredthenz@[red]+willzmak!etheentirearrowred;similarlyifitisdesiredtomakeandentirearrowin!visiblefthen@*{i}$ canbMeused.1781\xydef@\ar@modifiers#1{%1782K\expandafter\def\expandafter\armodifiers@@\expandafter{\armodifiers@@#1}%1783K\xyFN@\ar@}r3.3s.X@ willfslide(eac!hsegmentof)thearrowthedimensionDDasexplainedinnote3.3h.1794{\xyuncatcodes\catcode`\#=6\catcode`\@=11%1795K\gdef\next<#1>{\def\arafterPOS@@{<#1>}\xyFN@\ar@}}1796\xylet@\ar@slide=\nextr3.3t.@?ݹrev!ersefthemeaningof`abMove'and`bMelow'forthisparticulararrow.1807\xydef@\ar@upsidedown{\let\next=\PATHlabelabove@@1808K\let\PATHlabelabove@@=\PATHlabelbelow@@\let\PATHlabelbelow@@=\next}-AllfthefeaturesofhpathisdescribMedabo!vefarea!vdDailableforarrows.End&logm1823\xyendinput1825%$Log:xyarrow.doc,v$1826%Revision3.5 T1997/05/2813:05:01krisrose1827%Fixedmissingbreaksbug.1828%1829%Revision3.4 T1997/05/1801:14:25krisrose1830%Essentialbugfixes.1831%1832%Revision3.3 T1996/12/1903:31:56krisrose1833%Maintenancerelease1834%1835%Revision3.2 T1995/09/1918:22:27kris1836%Bugfixrelease.1837%<*tj316KCHAPTERf3.CFEAeTURES??hw1838%Revision3.1 T1995/09/0520:31:32kris 1839%Releasing!1840%1841%Revision3.0 T1995/07/0720:14:21kris1842%Majorreleasew/newUser'sGuide!1843%1844%Revision2.13 T1995/07/0415:11:17kris1845%Readytoreleasev3?1846%1847%Revision2.12 T1994/10/2511:34:25kris1848%Interimreleasejustbeforev3[workswithAMS-LaTeX1.2]...1849%1850%Revision2.11 T1994/07/0510:37:32kris1851%Third3betarelease[bugfixes].1852%Experimentalgraphfeatureincluded(forECCT-94presentation).1853%1854%Revision2.10 T1994/06/1512:55:07kris1855%Second3betarelease:bugfixes.1856%1857%Revision2.9 T1994/06/0914:59:19kris1858%Release3beta.1859%1860%Revision2.8 T1994/04/0804:30:00kris1861%Second(bugfix)3alpharelease.1862%1863%Revision2.7 T1994/03/0810:25:18kris1864%Release3alpha.1865%1866%Revision2.6.9.1 T1994/03/0704:22:46kris1867%Lastinternal3alphaandpre-2.7release.1868%1869%NEWforversion2.7basedofpathandarrowcodeinxypic.doc2.6.1.1.3.4r|Two-cellfffeatureqV ers.p3.3Tb9yRossMoQorehross@mpGce.mq.edu.auiThisfeatureisdesignedtofacilitatethet!ypMesettingofcurvedarrows,eithersinglyorinpairs,togetherwithClabMelsoneac!hpartandbet!ween.TheCintendedmathematicalusageisfortypMesettingcategorical\2-cell"morphismsand\pastingdiagrams",5dforwhic!hspMecialfeaturesareprovided.5 Thesefeaturesalsofallo!wattractivenon-mathematicale ects.]Header:P1%%$Id:xy2cell.doc,v3.31996/12/1814:21:23rossExp$2%%3%%Xy-pic``2-cell''feature.4%%Copyright(c)1993-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.=ޔ*tj3.4.CTW!O-CELLfFEAeTUREDw)317??hw8%%Copyright(c)1991-1996KristofferH.Rose 9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,22%%Inc.,675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{2cell}{Two-cellfeature}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}QThe2-cellfeaturemak!esuseoffacilitiesfromthe`curve'extensionwhichisthereforeautomaticallyloaded.49\xyrequire{curve}\xycatcodes!ɍ3.4.1 Typ`esetting2-cellsinDiagramsCategoricalL\2-cell"morphismsareusedinthestudyoftensorcategoriesandelsewhere.;Themor-phismsaredispla!yedasapairofcurv!edarrows,;symmetricallyplaced,togetherwithanorien!tationindicatedfb!yashortbroadarrow,orA\rrpow.LabMelsmaybMeplacedonallthreecomponen!ts.64\message{two-cells,}Bug:ݹThisfdoMcumen!tstillusesversion2-stylecommmands,asdescribMedinappendixB.1.鍍P;kps: SDict begin xyc endA3<" {mark 73.7934 0.0 36.8967 17.5 0.0 0.0 0.09628 0.9046 q}xy)1@fIT" {2681 10 /xy AB}xy3=" {mark 73.7934 0.0 36.8967 -17.5 0.0 0.0 0.09628 0.9046 q}xy)BgI" {3463 10 /xy AB}xy-" {1024 F d}xy+Ÿ" {1024 F d}xy-~" {1024 F d}xy+Ÿ~" {1024 F d}xy," {1024 /XT tt}xyLxݟB#Z\diagramA\rtwocell^f_g&B\\\enddiagram&̍C4;kps: SDict begin xyc endA3<" {mark 73.7934 0.0 36.8967 35.0 0.0 0.0 0.09628 0.9046 q}xy)1fI" {2289 10 /xy AB}xy->" {1024 F d}xy+Ÿ>" {1024 F d}xy-" {1024 F d}xy+Ÿ" {1024 F d}xy,>" {1024 /XT tt}xy/E 3=" {mark 73.7934 0.0 36.8967 -35.0 0.0 0.0 0.09628 0.9046 q}xyI V" {3855 10 /xy AB}xy)ɟGh-" {1024 F d}xy+Ÿ" {1024 F d}xy->" {1024 F d}xy+Ÿ>" {1024 F d}xy, " {1024 /XT tt}xy/i 6g" {0.0 0.0 l}xyĴqgI3" {3072 10 /xy AB}xyI3" {59.64374 0.0 l}xyI3" {0.0 0.0 l}xyLxݟB3>\diagramA\ruppertwocell^f{\alpha}>_*tj318KCHAPTERf3.CFEAeTURES??hw m\rlowertwocell_h{\beta} m\rto_(.35)g&B\\\enddiagramPThese_categoricaldiagramsfrequen!tlyhaveamatrix-likelayout,9aswithcommutativediagrams.Teofacilitatethistherearecon!trolsequencesoftheform:\rtwocell<,LJ\ultwocellA,LJ\xtwocell;Eh,LJ.3..analogousctothenamesde nedinxyv2nforuseindiagramsproMducedusingxymatrix0.Asthisin!volvesthe=de nitionof21newcon!trolsequences,22manyofwhichmayneverbMeused,22thesearenotde nedimmediatelyfupMonloadingxy2cell+ .Insteadtheuserm!ust rstspecify\UseTwocellsH^.As:inthesecondexampleabMo!ve,Pwjust:theupperorlo!wer:curvedarrowmaybMesetusingcontrolse-quencesnoftheform\..uppertwocell[Թand\..lowertwocellX.v Thesetogetherwiththe\..compositemapfamilye,҃inwhic!htwoabuttingarrowsaresetwithanemptyobjectatthejoin,҃allowfortheconstructionoffcomplicated\pastingdiagrams"(see gure3.3foranexample).Theffollo!winginitialisethefamiliesofcontrolsequencesforuseinmatrixdiagrams. Tffd hER\UseTwocellsyt!wofcurvesER\UseHalfTwocellsyonefcurv!eER\UseCompositeMapsy2farro!ws,end-to-endER\UseAllTwocellsy(allftheabMo!ve)]ffd Q126\xydef@\UseTwocells{\definesupermorphism{twocell}{%127\xy@{startof2-cell}{\begingroup}%128\twocell@}}130\xydef@\UseHalfTwocells{%131\definesupermorphism{uppertwocell}{%132T\xy@{startof2-cell}{\begingroup}%133T\uppertwocell@}%134\definesupermorphism{lowertwocell}{%135T\xy@{startof2-cell}{\begingroup}%136T\lowertwocell@}}138\xydef@\UseCompositeMaps{\definesupermorphism{compositemap}{%139T\xy@{startcomposite-map}{\begingroup}%140T\compositemap@}}142\xydef@\UseAllTwocells{%143\UseTwocells\UseHalfTwocells\UseCompositeMaps}TheFhfamiliesofconnectionsarede nedusingtheutilit!ymacro.3..\definesupermorphismywhichde nesfcon!trolsequencesformorphismsbMetweenneighbMouringcells,andnext-to-neighbMouringcells.More=distan!tcellsuse\xtwocell7ڹ,c\xcompositemapT ,cetc.Kwithhhopise.g.\xtwocell[1,3][]wand\xtwocell[llddd][.160\xydef@\supermorphism#1[#2]#3{\def\afterMORPHISM{[#2]#3}#1}161\xydef@\afterMORPHISM{}163\xydef@\definesupermorphism#1#2{%164\expandafter\def\csnamex#1\endcsname{\supermorphism{#2}}%165\expandafter\def\csnameu#1\endcsname{\supermorphism{#2}[-1,0]{}}%166\expandafter\def\csnamed#1\endcsname{\supermorphism{#2}[1,0]{}}%167\expandafter\def\csnamel#1\endcsname{\supermorphism{#2}[0,-1]{}}%168\expandafter\def\csnamer#1\endcsname{\supermorphism{#2}[0,1]{}}%?*tj3.4.CTW!O-CELLfFEAeTUREDw)319??hw169K\expandafter\def\csnameuu#1\endcsname{\supermorphism{#2}[-2,0]{}}% 170K\expandafter\def\csnamedd#1\endcsname{\supermorphism{#2}[2,0]{}}%171K\expandafter\def\csnamell#1\endcsname{\supermorphism{#2}[0,-2]{}}%172K\expandafter\def\csnamerr#1\endcsname{\supermorphism{#2}[0,2]{}}%173K\expandafter\def\csnameur#1\endcsname{\supermorphism{#2}[-1,1]{}}%174K\expandafter\def\csnameul#1\endcsname{\supermorphism{#2}[-1,-1]{}}%175K\expandafter\def\csnamedr#1\endcsname{\supermorphism{#2}[1,1]{}}%176K\expandafter\def\csnamedl#1\endcsname{\supermorphism{#2}[1,-1]{}}%177K\expandafter\def\csnameuul#1\endcsname{\supermorphism{#2}[-2,-1]{}}%178K\expandafter\def\csnameuur#1\endcsname{\supermorphism{#2}[-2,1]{}}%179K\expandafter\def\csnameull#1\endcsname{\supermorphism{#2}[-1,-2]{}}%180K\expandafter\def\csnameurr#1\endcsname{\supermorphism{#2}[-1,2]{}}%181K\expandafter\def\csnameddl#1\endcsname{\supermorphism{#2}[2,-1]{}}%182K\expandafter\def\csnameddr#1\endcsname{\supermorphism{#2}[2,1]{}}%183K\expandafter\def\csnamedll#1\endcsname{\supermorphism{#2}[1,-2]{}}%184K\expandafter\def\csnamedrr#1\endcsname{\supermorphism{#2}[1,2]{}}%185K\expandafter\def\csnameuull#1\endcsname{\supermorphism{#2}[-2,-2]{}}%186K\expandafter\def\csnameuurr#1\endcsname{\supermorphism{#2}[-2,2]{}}%187K\expandafter\def\csnameddll#1\endcsname{\supermorphism{#2}[2,-2]{}}%188K\expandafter\def\csnameddrr#1\endcsname{\supermorphism{#2}[2,2]{}}}Alternativ!elyS2-cellscanbMesetdirectlyin;XY-pictureswithoutusingthematrixfeature.EInthiscaseftheabMo!vefcommandsarenotneeded.Thisisdescribedinx3.4.6.Feurthermore_anewdirectional\dir{=>}5<canbMeusedtoplacean\Arro!w"anywhereinapicture,afterfthedirectionhasbMeenestablishedappropriatelye.Itisusedwithallofthe2-cellt!ypes.P205\newdir{=>}{!/5pt/\dir{=}!/2.5pt/\dir{=}*!/-5pt/\dir2{>}}207\xydef@\arrowobject#1{\def\Arrowobject@{#1}} 208\xydef@\Arrowobject@{\dir{=>}}!4DefaultCpYositions: 5ThesejsetupdefaultvdDaluesfortheparameterswhic!hspMecifythepositionofeac!hfcompMonentaswellasthe agstoindicatewhattypMeof2-cellistobet!ypeset. ffd<qa썍Vm\toks6녹pMositionfofcon!trolpoin!t,normaltolinefe ?vpcBatmidpoin!t Vm\toks5녹pMositionfofcen!tralArrowVm\toks7녹pMositionfof^ vlabelVm\toks8녹pMositionfof_ vlabelVm\toks3녹 agfforn!umbMerfofpieces...jFLf녹f녟feXDull:i.e.bMothfcurv!edarrowsjFLo녹o녟feyene:\uppertwocellS?orf\lowertwocelljFLt녹t녟feB#-w!ofmaps:\compositemaps7?ffd @ fmeansftocalculatefromthevdDaluein\toks6&$b,see\tw@cell@@@Bⴹ.P267\xydef@\twocell@{\toks6={3.5}\toks5={@}\toks7={@}\toks8={@}\toks3={f}%268\tw@cell@}269\xydef@\uppertwocell@{\toks6={7}\toks5={@}\toks7={@}\toks8={@}\toks3={o}%270\tw@cell@}271\xydef@\lowertwocell@{\toks6={-7}\toks5={@}\toks7={@}\toks8={@}\toks3={o}%@*tj320KCHAPTERf3.CFEAeTURES??hw272K\tw@cell@} 273\xydef@\compositemap@{\toks6={3.5}\toks5={@}\toks7={@}\toks8={@}\toks3={t}%274K\tw@cell@}jUThisfcollectstogetheralltherelevdDan!tdata,andresolvesthedefaultpMositions.P281\xydef@\tw@cell@@@{%282K\expandafter\ifx\the\toks6\omit\relax\toks6={}\else283%284%defaultpositionoflabelonupperarrow,285%relativetowhereitmeetstheperpendicularbisector286%287K\expandafter\ifx\expandafter@\the\toks7\relax\expandafter\dimen@\the\toks6\p@288 m\expandafter\if\the\toks3t\relax\dimen@=\p@289 m\else\expandafter\if\the\toks3o\divide\dimen@\tw@290\ifdim\dimen@<\z@\dimen@ii-\p@\advance\dimen@ii\dimen@291 \dimen@=\dimen@ii\else\dimen@\p@\fi292\else\dimen@\p@293 m\fi\fi294 m\edef\tmp@{\expandafter\removePT@\the\dimen@}%295 m\expandafter\toks\expandafter7\expandafter{\tmp@}\fi296%297%defaultpositionoflabelonlowerarrow,298%relativetowhereitmeetstheperpendicularbisector299%300K\expandafter\ifx\expandafter@\the\toks8\relax301 m\expandafter\dimen@\the\toks6\p@302 m\expandafter\if\the\toks3t\relax\dimen@\p@303 m\else\expandafter\if\the\toks3o\divide\dimen@\tw@304\ifdim\dimen@<\z@\dimen@ii-\p@\advance\dimen@ii\dimen@305 \dimen@=\dimen@ii\else\dimen@\p@\fi306\else\dimen@\p@307 m\fi\fi308 m\edef\tmp@{\expandafter\removePT@\the\dimen@}%309 m\expandafter\toks\expandafter8\expandafter{\tmp@}\fi310%311% TdefaultpositionoftheArrow,relativetomidpoint312%313K\expandafter\ifx\expandafter@\the\toks5\relax314 m\expandafter\dimen@\the\toks6\p@315 m\expandafter\if\the\toks3o\divide\dimen@by-4\relax316\else\dimen@\z@\fi317 m\edef\tmp@{\expandafter\removePT@\the\dimen@}%318 m\expandafter\toks\expandafter5\expandafter{\tmp@}\fi319K\fi320%321%>possiblemodificationsformodulemaps322%323K\twocellmod@324%325%>passalltheparametersto T|\twocell@@@@|A}*tj3.4.CTW!O-CELLfFEAeTUREDw)321??hw326% 327K\expandafter\if\the\toks3t\relax328%329%>composedmaps:^:firstmap_:secondmap330%331 m\edef\tmp@{.[\noexpand\twocell@@@@{\the\toks6}{\the\toks5}%332{\the\toks7}{\the\toks8}{\the\toks3}%333{\the\toks2}{\the\toks1}{\the\toks@}{\the\toks4}!!!].\afterMORPHISM}%334K\else335%336%curvedarrow(s)337%338 m\edef\tmp@{.[\noexpand\twocell@@@@{\the\toks6}{\the\toks5}%339{\the\toks7}{\the\toks8}{\the\toks3}%340{\the\toks1}{\the\toks2}{\the\toks@}{\the\toks4}!!!].\afterMORPHISM}%341K\fi342K\toks@={\endgroup}%343K\expandafter\def\expandafter\next@\expandafter{%344K\expandafter\def\expandafter\twocellhead@\expandafter{\twocellhead@}}%345K\expandafter\addtotoks@\expandafter{\next@}%346K\expandafter\def\expandafter\next@\expandafter{%347K\expandafter\def\expandafter\twocelltail@\expandafter{\twocelltail@}}%348K\expandafter\addtotoks@\expandafter{\next@}%349K\expandafter\addtotoks@\expandafter{\expandafter\twocellPATH\tmp@}%350K\the\toks@}%3SeefbMelo!wforthepossibleformsof\twocellPATHH^.}LabMelsB7areplacedlabelsontheupperandlo!werB7arrows,V@morecorrectly`anti-cloMckwise'and`cloMck-wise',using(^and(_ ?ҹ.k#These(areen!tirelyoptionalwiththefollowingtoken,orgrouping,givingthecon!tentsofthelabMel.]Whenusedwith\..compositemap^¹the^ vand_spMecifylabelsforthe rstandsecondfarro!ws,respMectivelye.P365\xydef@\twocellstyle{\scriptstyle}367\xydef@\droptwocelllabel@#1{\xyFN@\droptwocelllabel@@#1@!} 368\xydef@\droptwocelllabel@@{%369K\ifx*\next\DN@*{\droptwocelldrop@}%370K\else\DN@##1@!{\droptwocelltext@{##1}}%371K\fi\next@}P373{\xyuncatcodes\gdef\next#1{\drop+!C{\twocellstyle#1}}}374\xylet@\droptwocelltext@=\next376\xydef@\droptwocelldrop@#1@!{\bgroup\let\xy@=\oxy@377K\let\objectstyle=\twocellstyle\drop#1{}%378K\edef\tmp@{\egroup\X@min=\the\X@min\X@max=\the\X@max379 m\Y@min=\the\Y@min\Y@max=\the\Y@max}\tmp@}3NormallythelabMelisbalancedtext,}setinT,[wEB X'smathmode,}with\twocellstyleSȹsettingthest!yle.Thefdefaultde nitionisgivenby.3..}\def\twocellstyle{\scriptstyle}ThisjcanbMealteredusing\defԠinv!ersionsofT,[wEB Xor\redefineQor*:inthek!ernellanguage.ǺThecurren!tdirectionistangentialtothecurvedarrows.T>Extrabracesareneededtogeta* [basthelabMel,asfin^{{{*}}}5Jor_{{}*}&$b.ThepMositionofalabelnormaltothetangen!tialdirectioncanalsobealteredb!ynudging(seebMelo!w).AlthoughdWitispossibletospecifym!ultiplelabels,onlythelastusageofeac!hof^Xand_isactuallyfset,previousspMeci cationsbeingignored.SimilarlyValabMelforthecen!tralArrowmustbMegiven,faftertheotherlabMels,b!yenclosingitwithinbraces4{...} .FAn4empt!ygroup{}cgivesanemptylabMel;thisisnecessarytoavoidmisinterpretationof subsequen!ttokens.MXAsabMoveifthe rstcharacteris*rthenthelabMelissetasanXY-pichobjecti,thefcurren!tdirectionbMeingalongtheArrow.'Ptarsing: 5OpMenanewgroupsothefollo!wingregisterscanbeusedlocallye...\toks@=\toks0OX, \toks1%,...,f\toks8)ȹthef nalparametersetisstoredbrie yin\tmp@$ bMeforebeingused.OPTIONS: jffdD]эspacesfareignored OTэdeterminesfpMositionofcurv!escontrolpMointx:<0>эusesfasinglesolidline,l<\omit>эcausesfonlythecen!tralArrow(withlabMel)tobesetCՔ\omitэomitsfthecurv!edarrows,butallowstheirlabMelsOT^эplacef\abMo!ve"labMel(morecorrectly\anti-cloMckwise")OT_эplacef\bMelo!w"label(morecorrectly\cloc!kwise")Lu~'эc!hangefthearrowheadLu~`эplace/c!hangefthearrowtail?Jˉffd LabMelddatae.g.^{#1})f_{#1}JCisstoredtemporarilyin\toks@+Ĺthenpassedvia\tw@@cell@@Hto\tw@cell@@=# forffurtherparsing,as:\the\toks@@~' gandI~`Oc!hangeIthevdDaluesof\twocellhead@R4and\twocelltail@Normally\twocelltail@is{} T,fso~` alsoc!hangesa agtoindicatethat\twocelltail@Rnisindeedrequired.WhenРthenexttok!enisagrouping{...}$_thenitgivesthelabMelforthecentralArrow.\NootherlabMelfspeci cationsma!yfollow.Defaultfheadandtailornamen!ts...P453\xydef@\twocellhead#1{\def\twocellhead@{#1}}454\xydef@\twocelltail#1{\def\twocelltail@{#1}}455\xydef@\twocellhead@{\dir{>}}456\xydef@\twocelltail@{}clearf\toks../rregistersfforthenewconnectionlabMels.462\xywarnifdefined\twocellmod@463\xydef@\tw@cell@{\begingroup464\toks@={{}}\toks1={{}}\toks2={{}}\toks4={{}}%465\def\twocellmod@{}\xyFN@\tw@@cell@}%467\xydef@\tw@@cell@{%468\ifx\space@\next\expandafter\DN@\space{\xyFN@\tw@@cell@}%469\else\ifx\bgroup\next\let\next@=\toks@\afterassignment\tw@@cell@@470\else\ifx^\next\DN@^##1{\toks@={##1}\nudgepos@71\tw@@cell@}%471\else\ifx_\next\DN@_##1{\toks@={##1}\nudgepos@82\tw@@cell@}%472\else\addLT@\ifx\next\addGT@{\addLT@\DN@##1}{%C-*tj3.4.CTW!O-CELLfFEAeTUREDw)323??hw473 m\toks6={##1}\ifx\omit##1\relax\toks3={t}\toks5={0}\fi\xyFN@\tw@@cell@}% 474K\else\ifx\omit\next\DN@\omit{\omitarrows@\xyFN@\tw@@cell@}%475K\else\ifx~\next\DN@~{\xyFN@\whichCurveObject@}%476K\else\DN@{\xyFN@\tw@cell@@\empty@}%477K\fi\fi\fi\fi\fi\fi\fi%478K\next@}P480\xydef@\whichCurveObject@{%481K\ifx\space@\next\expandafter\DN@\space{\xyFN@\whichCurveObject@}%482K\else\ifx\next^\DN@^##1{\xy@{~^{##1}}{\uppercurveobject{##1}}\xyFN@\tw@@cell@}%483K\else\ifx\next_\DN@_##1{\xy@{~_{##1}}{\lowercurveobject{##1}}\xyFN@\tw@@cell@}%484K\else\addRQ@\ifx\next\addRQ@\DN@##1{%485 m\xy@{~'{##1}}{\def\twocellhead@{##1}}\xyFN@\tw@@cell@}%486K\else\addLQ@\ifx\next\addLQ@\DN@##1{%487 m\xy@{~`{##1}}{\def\twocelltail@{##1}}\xyFN@\tw@@cell@}%488K\else\ifx!\next\DN@!{\xyFN@\checkmodmap@}%489K\else\ifx\next\bgroup\DN@##1{\xy@{~{##1}}{\curveobject{##1}}\xyFN@\tw@@cell@}%490K\else\DN@##1{\xy@{~##1}{\curveobject{##1}}\xyFN@\tw@@cell@}%491K\fi\fi\fi\fi\fi\fi\fi492K\next@}494\xydef@\checkmodmap@{%495K\ifx\space@\next\expandafter\DN@\space{\xyFN@\checkmodmap@}%496K\else\def\twocellmod@{\modmap@}%497 m\ifx\next!\DN@!##1{%498\xy@{~!!{##1}}{\def\modmapobject@{##1}}\xyFN@\tw@@cell@}%499 m\else\DN@{\xyFN@\tw@@cell@}\fi500K\fi\next@}z5Withd*noarro!ws,stillallowlabMels:Yddefaultpositionsareat0,+X,X,withd*X"=defaultvalue.ThesefvdDaluesarealteredb!y\nudging".508\xydef@\omitarrows@{\toks5={0}\toks6={}\toks7={0}\toks8={0}}"3.4.2 StandardOptionsTheorien!tationofthecentralArrowmaybMereversed,`turnedintoanequalitye,`oromittedaltogether.Infeac!hcasealabMelmaystillbMespeci ed,soine ecttheArro!wmaybMereplacedbyanythingatall. GThese1e ectsarespMeci edb!ythe rsttokeninthecentrallabMel,swhichthushastheform:{KhtokihlabMeli} fwherefhtokima!ybeoneof.3.. mffd!_Arro!wfpMointscloMckwise ^Arro!wfpMointsanti-cloMckwise=noftip,denotesequalit!y\omitnofArro!watall.yffd }When[9noneoftheseoMccursthenthedefaultof_ visassumed.Ifthelabelitselfstartswithoneofthesec!haractersthenspMecify_ explicitlye, orenclosethelabelwithinagroup{...} W.̻SeeExtrpa4+Options1,for|(morevdDaluesofhtoki.Alsonotethat* hasaspMecialrolewhenusedasthe rstc!haracter;=howeveritfisconsideredtobMepartofthehlabeli,seeabo!ve.OPTIONSfforthecen!tralArrow:D=*tj324KCHAPTERf3.CFEAeTURES??hw xffd :gУcflignorefspaces gУ^pMoin!tsfanti-clockwisegУ_pMoin!tsfclockwisef(default)gУ=nof\Tip,fequalit!ygУ\omitnofArro!watall,smjustsquine(s)orcompMosedarrowsgУ'nofArro!w,oppMositesquinereversedgУ`nofArro!w,forwardsquinereversedgУ"nofArro!w,tipsonbMothendsgУ!nofArro!w,notipsonsquinesffd Y thepMositionoftheArro!wisdeterminedby\nudging"(seebMelow)e.g.I{^label}O,wheretheactualfdimenis\xydashl@O%C4lps: SDict begin xyc endA3?" {mark 62.53377 0.0 31.26688 17.5 0.0 0.0 0.11362 0.88123 q}xy>6pV-" {2646 10 /xy AB}xy3@" {mark 62.53377 0.0 31.26688 -17.5 0.0 0.0 0.11362 0.88123 q}xy>6p" {3498 10 /xy AB}xy'_" {1024 F d}xy%_" {1024 F d}xy'_~" {1024 F d}xy%_~" {1024 F d}xy&_" {1024 /XT tt}xy) A6fB3D" {mark 125.26599 0.0 93.89987 17.5 62.53377 0.0 0.11838 0.8836 q}xy}f" {2629 10 /xy AB}xy3E" {mark 125.26599 0.0 93.89987 -17.5 62.53377 0.0 0.11838 0.8836 q}xy}" {3515 10 /xy AB}xyd@" {-3072 T d}xyf@" {-3072 T d}xyd@" {-3072 T d}xyf@" {-3072 T d}xye@" {-3072 /XT tt}xy\jt JC3F" {mark 188.25562 0.0 156.7608 17.5 125.26599 0.0 0.11594 0.87805 q}xy1@" {2650 10 /xy AB}xy3G" {mark 188.25562 0.0 156.7608 -17.5 125.26599 0.0 0.11594 0.87805 q}xy1j" {3494 10 /xy AB}xy" {0.0 10.0 l}xy" {0.0 10.0 l}xyq" LD3F" {mark 251.29771 0.0 219.77666 17.5 188.25562 0.0 0.12192 0.8833 q}xy de" {2637 10 /xy AB}xy3G" {mark 251.29771 0.0 219.77666 -17.5 188.25562 0.0 0.12192 0.8833 q}xy " {3507 10 /xy AB}xyߓʟ E"3\xymatrixcolsep{4pc}\xymatrixrowsep{1pc}\diagramA\rtwocell{_\alpha}&B\rtwocell{^\beta}&C\rtwocell{=\gamma}&D\rtwocell{\omit\Psi}&E\\\enddiagram&vЍ691\xydef@\tw@@cell@@{\expandafter\xyFN@\expandafter\tw@cell@@\the\toks@@}P693\xydef@\tw@cell@@{\ifx\space@\next\expandafter\DN@\space{\xyFN@\tw@cell@@}%694\else\ifx^\next695T\DN@^##1@{\toks@={##1}\toks4={^}\nudgepos@50\tw@cell@@@}%696\else\addEQ@\ifx\next697T\addEQ@\DN@##1@{\toks@={##1}\toks4={=}\nudgepos@50\tw@cell@@@}%698\else\ifx_\next699T\DN@_##1@{\toks@={##1}\toks4={_}\nudgepos@50\tw@cell@@@}%700\else\addLT@\ifx\next701#>\DN@##1@{\toks@={##1}\toks4={_}\nudgepos@50\tw@cell@@@}%702\else\ifx\omit\next\DN@\omit##1@{\toks4={@}\toks@={##1}\tw@cell@@@}%703\else\addRQ@\ifx\next\addRQ@\DN@##1@{\toks4={@}\toks3={/}\toks@={##1}%704T\nudgepos@50\tw@cell@@@}%705\else\addLQ@\ifx\next\addLQ@\DN@##1@{\toks4={@}\toks3={b}\toks@={##1}%706T\nudgepos@50\tw@cell@@@}%707\else\ifx"\next\DN@"##1@{\toks4={@}\toks3={B}\toks@={##1}%708T\nudgepos@50\tw@cell@@@}%709\else\ifx!\next\DN@!##1@{\toks4={@}\toks3={@}\toks@={##1}%710T\nudgepos@50\tw@cell@@@}%711\else\ifx\next\empty\DN@##1@{\toks@={{}}\toks4={_}\tw@cell@@@}%712\else\DN@##1@{\toks@={##1}\toks4={_}\tw@cell@@@}%713\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\next@}VPtarsing2oftheArrow'slabYelEJe*tj3.4.CTW!O-CELLfFEAeTUREDw)325??hw3.4.3 NudgingP!ositions'ofalllabMelsmaybMeadjusted,GascantheamountofcurvdDatureforthecurvedarrows.aeThe w!ay thisisdoneisb!yspMecifyinga\nudge"factorhnumiatthebMeginningofthelabel.JHerehn!umiisan!umbMerwhichspMeci estheactualpositionofthelabelinunitsof\xydashl@<Ԥ(thelengthofasingledash,normally5pt)exceptwith\..compositemapY,seebMelo!w.MovementisconstrainedtothepMerpendicular7bisectorofthelinefe ?vcpw.Whenn!udgingthelabMelforthecentralArrowitisthewholeArro!wfwhichismoved,alongwithitslabMel.CurvdDature=ofthearro!wsthemselvesisalteredbyanudgeoftheform\..twocell=hnumi....Theseparationofthearro!ws,nalongthebisector,issettobMehn!umi\xydashl@3.$Whenhnumiiszero,nthatisE\..twocell<0>..._,LtheEresultisasinglestraigh!tarrow,Litsmid-pMointbMeingtheoriginfornudginglabMels.Aunegativ!evdDalueforhnumiisalsoacceptable;butchecktheorientationontheArrowandwhic!hfof^ vand_correspMondtowhic!hcomponen!t.TheDoriginforn!udginglabMelsiswherethearrowcrossesthebisector.PositivenudgesmovethelabMelout!wardswhilenegativenudgesmovetowardsfe ?vpctandpMossiblybey!ond.'ThedefaultpositionofaflabMelisontheoutside,withedgeattheorigin.The:originforn!udgingtheArrowisatthemidpMointoffe ?vpc A.$ApMositivenudgemovesinthecloMckwisedirection.ThisfwillbMethedirectionofthearro!whead,unlessithasbeenrev!ersedusing^ f.LabMelsona\..compositemap[fܹareplacedrelativ!etothemidpoin!tofthecomponen!tarrows. Nudgesare7inunitsof1pt.OMo!vement7isintheusualXYWA-picabpoveandbelowdirections,suc!hthatapMositiven!udgefisalwaysoutsidethetriangleformedbythearrowsandlinefe ?vpc ܹ.pThespMecialn!udgevdDalue<\omit>1typMesetsjusttheArrow,omittingthecurvedarrowsentirelye.WhenfusedwithlabMels,then!udgevdDalue<\omit>/rcausesthefollowinglabMeltobeignored. *Exercise23.7: 5Giv!efcoMdetotypMeset gure3.3.Suc!hўcoMdeisrelativelystraight-forward,,using\nudging"and\omit"atohelppMositionthearrows,,curvesandfArro!ws.Italsousesanexcursion,asdescribMedbelo!winthesubsectionExtrpaOptions3.NUDGE%¹pMositionfoflabelsP825\xywarnifdefined\whichnudge826\xywarnifdefined\whichinfo827\xywarnifdefined\afternudge828\xydef@\nudgepos@#1#2#3{\def\whichnudge{\toks#1}\def\whichinfo{\toks#2}%829K\def\afternudge{#3}\expandafter\xyFN@\expandafter\nudgepos@@\the\toks@@}ffd4aꍍ}#1PAwhic!hftokenregistertostorenudgeamount }#2PAwhic!hftokenregistertostorelabMel}#3PAwhatftodonext,afterparsing!jffdh *Ptarsing:hn!umihlabMeli@,fhnumi=nudgeamount,asmultipleof\xydashl@7c`.845\xydef@\nudgepos@@{\ifx\space@\next\expandafter\DN@\space{\xyFN@\nudgepos@}%846\else\addLT@\ifx\next847T\addGT@{\addLT@\DN@##1}##2@{%848(\ifx\omit##1\relax\whichnudge={0}\whichinfo={}%849(\else\whichnudge={##1}\whichinfo={##2}\fi\xyFN@\afternudge}%850\else\DN@##1@{\whichinfo={##1}\xyFN@\afternudge}%851\fi\fi\next@}FZ*tj326KCHAPTERf3.CFEAeTURES??hw3.4.4 ExtraOptionsjꍑTheffollo!wingfeaturesareusefulinnon-mathematicalapplications."1.no2ArrotwThisisdeterminedb!yspMecialvdDaluesforhtokiasthe rst(oronly)characterinthecentrallabMel,sas inftheabMo!vefdescriptionofthestandardswitc!hes.zffd!@'arro!wheadsfpMointingcloMckwise; @`arro!wheadsfpMointinganti-cloMckwise;@"arro!wftipsonbMothends;@!noftipsatall.Ӊffd ThePVcen!tralArrowisomitted,zleavingsymmetricallyplacedcurvedconnectionswitharrowheadsatthefspMeci edends.AlabelcanbeplacedwheretheArro!wwouldhavebMeen.If?aspMecialarro!wheadisspeci edusing~'{..}(z(seeExtraOptions2,5zbelo!w)thenthiswillbeusedinsteadfofthestandard\dir{>}+ .8nC4THps: SDict begin xyc endUCloudst;" {mark 99.5192 0.0 49.7596 50.0 0.0 0.0 0.0734 0.9273 q}xy/pqEprecipitationoA" {2197 10 /xy AB}xyt<" {mark 99.5192 0.0 49.7596 -50.0 0.0 0.0 0.0734 0.9273 q}xy1(qEevqap1orationϟ" {-1898 10 /xy AB}xy;bj0\H2@cmbx8HHq2=HOe.OceansF9䍍\xymatrixcolsep{5pc}\diagram\relax\txt{Clouds}\rtwocell<10>_{\hbox{\tinyevaporation}}^{\hbox{\tinyprecipitation}}{'{\mathbf{H_2O}}}&\relax\txt{Oceans}\\\enddiagram6.Jps: SDict begin xyc endU%RMathematics@" {mark 101.75482 0.0 50.87741 17.5 0.0 0.0 0.20615 0.79584 q}xy}\twocelltail{Phobjecti}\dir{}\arrowobject{Phobjecti}>\dir{=>}\curveobject{Phobjecti}\uppercurveobject{myhobjecti}}{}\lowercurveobject{myhobjecti}}{}ffZcontrolsequence,:e.g.\rtwocellswitches_mlabpels.3..L.VEac!hyUswitchiseitherasingletokenhtoki,ora~ 8htokiwithasingleargument:~Khtoki{arpg}.eP!ossibilitiesӸarelistedinthefollowingtable, inwhich{..} denotestheneedforanargumen!t.  pffd5YЍ.U\omit}nofarro!ws,ArrowandlabMelonly; b!}placefmoMdule-mapindicator;~'{..}}c!hangefarrow-headto{..};~`{..}}place/c!hangeftailonarrow(s);U~{..}}c!hangefobjectusedtosetcurves;~^{..}}usefobject{..}KttosetuppMercurv!e;~_{..}}usefobject{..}Kttosetlo!werfcurve;0Fffd CHerecw!ediscusstheuseof! ",p{~'Ϲ,p{~`RϹand\omit !R.fThedescriptionof~^T,p{~_and~{..}#Risgiv!eninExtrpa Options4.ThedefaultmoMdulemapindicatorplacesasingledashcrossingthearro!watright-angles,loMcatedroughlyWmidw!ayalongtheactualprintedpMortionofthearrow,gwhethercurvedorstraight.êThistakesin!to/kaccountthesizesoftheobjectsbMeingconnected,Qtherebygivinganaestheticresultwhenthesesizesdcdi ermark!edlye.Thisalsoworkswith\..compositemap_whereanindicatorisplacedoneacharro!w.ThefactualobjectcanbMechangedusing\modmapobjectNb.An!y5ofthestandardXYD?-pictipsmaybMeusedforarrow-heads.KThisisdoneusing~'{..}'[1,*forexamples~'{\dir{>>}}Kgiv!essdouble-headedarrows.Similarly~`{..})dcanbMeusedtoplaceanarrow-tail.Normally thearro!w-tailis,'soisnotplaced;Abutifanon-emptytailhasbMeenspeci edthenitwillcbMeplaced,dusing\drop!"P.Noguaran!teeiso eredforthedesiredresultbeingobtainedwhenanarro!w-tailfismixedwiththefeaturesofExtrpaOptions1.  .􍍍 rps: SDict begin xyc endPF?" {mark 73.94824 0.0 36.97412 20.0 0.0 0.0 0.09836 0.90979 q}xy(" ';MG" {2631 10 /xy AB}xyJ" {2631 10 /xy AB}xys " {3517 st}xyF@" {mark 73.94824 0.0 36.97412 -20.0 0.0 0.0 0.09836 0.90979 q}xy(" &eM"-:0G|L" {3513 10 /xy AB}xyJHl" {3513 10 /xy AB}xy` " {2627 st}xy+?" {0.0 10.0 l}xy-?" {0.0 10.0 l}xy$SfMSHu*tj328KCHAPTERf3.CFEAeTURES??hw\modmapobject{\objectbox{\otimes}} \xymatrixcolsep{5pc}\diagramP\rtwocell~!~'{\dir{>>}}~`{\dir{|}}K^{<1.5>M}_{<1.5>M'}{=f}&S\\\enddiagram switc!hfformoMdulemaps......placesdecorationcalled\modmapobjectRnhalfwayalongarrowsP1010\xydef@\modmap@{%1011K\expandafter\ifx\the\toks4@\toks4={!}%1012K\else\expandafter\ifx\the\toks4=\toks4={H}%1013K\else\expandafter\ifx\the\toks4^\toks4={A}%1014K\else\expandafter\ifx\the\toks4_\toks4={V}\fi\fi\fi\fi1015K\expandafter\DN@\expandafter{\the\toks6}%1016K\ifx\next@\empty\relax\else\expandafter\moddefs@\fi}alsofadjustcurvdDatureandlabMelpositionsP1022\xydef@\moddefs@{%1023K\expandafter\dimen@\the\toks6\p@1024 m\ifdim\dimen@=\z@\relax1025 m\expandafter\dimen@\the\toks7\p@1026\ifdim\dimen@<\z@\advance\dimen@.5\p@\else\advance\dimen@-.5\p@\fi1027\edef\tmp@{\noexpand\toks7={\expandafter\removePT@\the\dimen@}}\tmp@1028 m\expandafter\dimen@\the\toks8\p@1029\ifdim\dimen@<\z@\advance\dimen@-.5\p@\else\advance\dimen@.5\p@\fi1030\expandafter\ifx\the\toks3t\advance\dimen@-1\p@\fi1031\edef\tmp@{\noexpand\toks8={\expandafter\removePT@\the\dimen@}}\tmp@1032K\else1033 m\ifdim\dimen@<\z@\advance\dimen@-.5\p@\else\advance\dimen@.5\p@\fi1034 m\edef\tmp@{\noexpand\toks6={\expandafter\removePT@\the\dimen@}}\tmp@1035% T\expandafter\dimen@\the\toks5\p@1036%>\ifdim\dimen@<\z@\advance\dimen@-.5\p@\else\advance\dimen@.5\p@\fi1037%>\edef\tmp@{\noexpand\toks5={\expandafter\removePT@\the\dimen@}}\tmp@1038 m\expandafter\dimen@\the\toks7\p@1039\ifdim\dimen@<\z@\advance\dimen@-.5\p@\else\advance\dimen@.5\p@\fi1040\expandafter\ifx\the\toks3t\advance\dimen@-2\p@\fi1041\edef\tmp@{\noexpand\toks7={\expandafter\removePT@\the\dimen@}}\tmp@1042 m\expandafter\dimen@\the\toks8\p@1043\ifdim\dimen@<\z@\advance\dimen@-.5\p@\else\advance\dimen@.5\p@\fi1044\expandafter\ifx\the\toks3t\advance\dimen@-2\p@\fi1045\edef\tmp@{\noexpand\toks8={\expandafter\removePT@\the\dimen@}}\tmp@1046K\fi}%1048%\def\moddefs@{} defaultfobjectis\stop d,usercanc!hangethiswith\modmapobject#11054\xydef@\modmapobject#1{\def\modmapobject@{#1}}1055\xydef@\modmapobject@{\dir{|}}1056\xydef@\@modmapobject@{{\if\@mod@\relax\expandafter\empty1057K\else\expandafter\modmapobject@\fi}}IM*tj3.4.CTW!O-CELLfFEAeTUREDw)329??hw3.ExcursionsXύSyn!taxdHfor\xcompositemapYCܹand\x..twocellH޹typMesisalittledi erenttowhatmightbMeexpected fromfthatfor\xto,\xline&$b,etc.Feorexample,4*ffdiX\xtwocell[hhopi]{ Thdisplacei}... _ffdconnectstothehpMosidisplacedb!yhdisplaceifromtherelativecellloMcationspeci edb!yhhopi.Thedisplacemen!tՆcanbMeanystringofvdDalid0XY<-piccommands,NbuttheymustbMeenclosedwithinagroup{...}R.WhenfthecellloMcationisthetarget,an!ullgrouping{} mustbegiv!en.}֍Whenusedwiththe<\omit>.M&n!udge,'{suchexcursionsallo!walabMelledArrowtobMeplacedanywherewithinfanXY p-picdiagram;furthermoretheArro!wcanbMeorientedtopMointinanydirection.P1087\xydef@\curveobject#1{\def\ucurveObject@{~*#1}\def\dcurveObject@{~*#1}}1088\xydef@\uppercurveobject#1{\def\ucurveObject@{~*#1}}1089\xydef@\lowercurveobject#1{\def\dcurveObject@{~*#1}}1090\xydef@\ucurveObject@{}1091\xydef@\dcurveObject@{}4čThefempt!yobjectgivesthedefaultofcloselyspacedtinydots,resultingina\smoMoth"curve.TheYfollo!wingmacroisusedinconjunctionwithcompilingdiagrams,i5toincludetheglobalparam-etersfinthecompiled le.P1103\xydef@\savetwocellobjects{%1104\xy@{twocellobjects}{%1105T\expandafter\uppercurveobject\expandafter{\ucurveObject@}%1106T\expandafter\lowercurveobject\expandafter{\dcurveObject@}%1107T\expandafter\modmapobject\expandafter{\modmapobject@}%1108T\expandafter\twocellhead\expandafter{\twocellhead@}%1109T\expandafter\twocelltail\expandafter{\twocelltail@}%1110T\expandafter\arrowobject\expandafter{Arrowobject@}%1111}},r<4.F\ancy2curvtesXύBytdspMecifying\curveobjectKanarbitraryobjectma!ybeusedtoconstructthecurv!edarrows.2Indeedwithoia\..twocellD[vdi eren!tobjectscanbMeusedwiththeupperandlo!weroicurvesbyspMecifying\uppercurveobjecte`andf\lowercurveobject.These&spMeci cationsapplytoall2-cellssubsequen!tlyconstructedatthesamelevelofT,[wEB Xgrouping.Alternativ!ely9usinga~ k-switch,asinExtrpaFOptions2,allo!ws9suchaspMeci cationforasingle2-cellorcurv!edfpart.ObjectsLusedtoconstructcurv!escanbMeoftwotypMes.κEitherasinglehobjectiissetonce,umwithcopiesjplacedalongthecurv!e.AlternativelyjadirectionalobjectcanbMealignedwiththetangen!talongthefcurv!e.InthiscaseuseaspMeci cationtakestheform:\curveobject{[hspaceri~**>hobjecti}.Herefhspacerima!ybMeanyhobjectiofnon-zerosize.Typicallyitisemptyspace,e.g.+ fhdimeni{} T.'NExercise23.8: 5Giv!efcoMdetotypMesetthefollowingdiagrams.JH*tj330KCHAPTERf3.CFEAeTURES??hw,kxC4'ps: SDict begin xyc endfFUn*i U?DU?%^U?+xϟU?1 U?7U?=5U?CYU?I{ U?PU?V/U?\IU?bd U?z .%7n+Q1l.7$=FnCjIԌ.OVПn\"b= .=ן&:ahgaMES-6@kxC4pdps: SDict begin xyc end x'Ground State-=H" {3674 10 /xy AB}xy2w" {3624 10 /xy AB}xy7Gٟ" {3574 10 /xy AB}xy<}p" {3523 10 /xy AB}xy@$" {3473 10 /xy AB}xyE" {3423 10 /xy AB}xyJ劸" {3373 10 /xy AB}xyOdR" {3323 10 /xy AB}xyT4j" {3273 10 /xy AB}xyY," {3222 10 /xy AB}xy]Ι<<" {3172 10 /xy AB}xyb" {3122 10 /xy AB}xygb" {3072 10 /xy AB}xyl*gE" {3022 10 /xy AB}xyp⳰" {2972 10 /xy AB}xyup" {2922 10 /xy AB}xyzzU" {2871 10 /xy AB}xy;(" {2821 10 /xy AB}xy4" {2771 10 /xy AB}xyc" {2721 10 /xy AB}xyyݟp" {2671 10 /xy AB}xy;~|" {2621 10 /xy AB}xyџ," {2570 10 /xy AB}xyaZ(" {2520 10 /xy AB}xyr3&" {2470 10 /xy AB}xy>퍲continuousUUpGower) " {-1626 10 /xy AB}xy'-M " {-1626 10 /xy AB}xy3A}c" {-1526 10 /xy AB}xy0 " {-1526 10 /xy AB}xy<‹`" {-1425 10 /xy AB}xy9p" {-1425 10 /xy AB}xyFA=p" {-1325 10 /xy AB}xyC^;m" {-1325 10 /xy AB}xyOȩ" {-1225 10 /xy AB}xyLɟ48" {-1225 10 /xy AB}xyYSX@" {-1124 10 /xy AB}xyVW " {-1124 10 /xy AB}xyb" {-1024 10 /xy AB}xy_" {-1024 10 /xy AB}xylv" {-924 10 /xy AB}xyiz" {-924 10 /xy AB}xyv~`" {-823 10 /xy AB}xysǟ " {-823 10 /xy AB}xyR" {-723 10 /xy AB}xy|7"" {-723 10 /xy AB}xyN@" {-623 10 /xy AB}xya" {-623 10 /xy AB}xyu-" {-522 10 /xy AB}xyA" {-522 10 /xy AB}xy%`" {-422 10 /xy AB}xyCp" {-422 10 /xy AB}xy(BpulsedUUemissionW(UN^ni1CPd͍d" {22.20723 ox}xy͍d" {20.10722 ox}xy xExcited ~StateS7ƍ3.4.5 AfterParsing...VealuesEfor\twocellPATHH=,ڽdepMendsonthemodeofpicture/diagramastowhetherthe@c޹and@pare kno!wnfyet,orstillhavetobMeread.P1193\xydef@\twocell@path.[#1].{%1194K\expandafter\ifx\csnameQ@@c\endcsname\relax1195 m\DN@{\enter@{\cfromthec@\pfromthep@\basefromthebase@}%1196\xy@{}{\expandafter\edef\csnameQ@@\endcsname{\cfromthec@}}%1197\afterPOS{\xy@{}%1198 {\expandafter\edef\csnameQ@@c\endcsname{\cfromthec@}}%1199\xy@{}%1200{\cfromid@{@}\expandafter\edef\csnameQ@@p\endcsname{\cfromthec@}}%1201\xy@{twocell#1}{#1}\leave@\aftertwoCELL};p,}%1202K\else1203 m\DN@{\enter@{\cfromthec@\pfromthep@\basefromthebase@}%1204\xy@{twocell#1}{#1}\leave@\aftertwoCELL}%1205K\fi\next@}1207\xydef@\twocellpath.[#1].{%1208 m\expandafter\edef\csnameQ@@p\endcsname{\cfromthec@}%1209 m\xy@{}{\enter@{\pfromthep@}}%1210\xy@{}{\enter@{\cfromthec@\pfromthep@\basefromthebase@}%1211 \enter@{\pfromthec@}}%1212\afterPOS{\xy@{}{\leave@\setupDirection@}#1\restore\restore1213K\xy@{endof2-cell}\xysaveMinMax@}}%1215\xydef@\xysaveMinMax@{\edef\tmp@{\endgroup1216K\noexpand\ifdim\X@max<\the\X@max\X@max=\the\X@max\noexpand\fi1217K\noexpand\ifdim\X@min>\the\X@min\X@min=\the\X@min\noexpand\fi1218K\noexpand\ifdim\Y@max<\the\Y@max\Y@max=\the\Y@max\noexpand\fi1219K\noexpand\ifdim\Y@min>\the\Y@min\Y@min=\the\Y@min\noexpand\fi1220K}\tmp@}v1224\xylet@\twocellPATH=\twocellpathK *tj3.4.CTW!O-CELLfFEAeTUREDw)331??hw1225\xydef@\aftertwo@CELL{\let\twocellPATH=\twocellpath\def\aftertwoCELL{}} 1226\xydef@\aftertwoCELL{}!Itfremainstocollectev!erythingtogetherandplaceitonthequeue.P1232\xydef@\twocell@@@@#1!!!{\xy@{twocell#1}{\twocell@@#1!!!}}$T3.4.6 2-cellsingeneral&aX1"Yv-picturesTw!o-cellsRcanalsobMesetdirectlywithinanyXY I\-picture, withoutthematrixfeature,usingeither\droporf\connect1.1245\let\xystatus=\xystatus@1246\xydef@\twocell{\hbox\bgroup\@twocell}1247\xydef@\uppertwocell{\hbox\bgroup\@uppertwocell}1248\xydef@\lowertwocell{\hbox\bgroup\@lowertwocell}1249\xydef@\compositemap{\hbox\bgroup\@compositemap}1251\xydef@\twocelll#1#{\hbox\bgroup\xy@\save\save@\@twocelll{#1}}1252\xydef@\@twocelll#1#2{%1253K\afterPOS{\@twocelll@\xyFN@\twocell@#1{#2}}}1255\xydef@\uppertwocelll#1#{\hbox\bgroup\xy@\save\save@\@uppertwocelll{#1}}1256\xydef@\@uppertwocelll#1#2{%1257K\afterPOS{\@twocelll@\xyFN@\uppertwocell@#1{#2}}}1259\xydef@\lowertwocelll#1#{\hbox\bgroup\xy@\save\save@\@lowertwocelll{#1}}1260\xydef@\@lowertwocelll#1#2{%1261K\afterPOS{\@twocelll@\xyFN@\lowertwocell@#1{#2}}}1263\xydef@\compositemapp#1#{\hbox\bgroup\xy@\save\save@\@compositemapp{#1}}1264\xydef@\@compositemapp#1#2{%1265K\afterPOS{\@twocelll@\xyFN@\compositemap@#1{#2}}}1266%1267\xydef@\@twocelll@{%1268%\idfromc@{@c}\swap@\idfromc@{@p}\swap@1269K\expandafter\edef\csnameQ@@c\endcsname{\cfromthec@}\swap@1270K\expandafter\edef\csnameQ@@p\endcsname{\cfromthec@}\swap@1271K\let\twocellPATH=\twocell@path1272%\def\aftertwoCELL{\twocell@DONE}}1273K\def\aftertwoCELL{\twocell@DONE\xy@\restore\leave@1274%\cfromid@{@c}\no@@\xystatus@{end:}1275K}}1277\xydef@\@twocell#1{\DN@{\@twocell@\twocell@}\xyFN@\next@[#1]}1278\xydef@\@uppertwocell#1{\DN@{\@twocell@\uppertwocell@}\xyFN@\next@[#1]}1279\xydef@\@lowertwocell#1{\DN@{\@twocell@\lowertwocell@}\xyFN@\next@[#1]}1280\xydef@\@compositemap#1{\DN@{\@twocell@\compositemap@}\xyFN@\next@[#1]}v\def\myPOS#1{\POS}\def\goVia#1{% m\afterPOS{\connect#1\myPOS}}\xyK*+{A}="A",+<1cm,1.5cm>*+{B}="B",K+<2.0cm,0pt>*+{C}="C",K+<1cm,-1.5cm>*+{D}="D",L#*tj332KCHAPTERf3.CFEAeTURES??hw"A";\goVia{\uppertwocell^\alpha{}}"B"{} ;\goVia{\twocell^\zeta_\xi{\gamma}}"C"{};\goVia{\compositemap{}}"D"{},"A";\goVia{\lowertwocell{}}"D"{}\endxyD[!>ps: SDict begin xyc end %A'xB`ڟxC|)k%D %h0H" {mark 28.45274 42.67912 -15.03572 40.54427 0.0 0.0 0.0867 0.90906 q}xyq $ o " {3224 10 /xy AB}xyP߯" {2400 F d}xy8[" {2400 F d}xyh" {2400 F d}xyO3" {2400 F d}xy ޟ" {2400 /XT tt}xy %h0R" {mark 85.35825 42.67912 56.90549 60.17912 28.45274 42.67912 0.13052 0.87164 q}xyÈU]w" {2605 10 /xy AB}xy %h0R" {mark 85.35825 42.67912 56.90549 25.17912 28.45274 42.67912 0.13052 0.87164 q}xyE꺟zU]֥1" {3540 10 /xy AB}xyH͹" {1024 F d}xyF͹" {1024 F d}xyH9" {1024 F d}xyF9" {1024 F d}xyG׹" {1024 /XT tt}xyKӬ ?Οw" {21.55057 -8.76967 l}xy?Οw" {2655 10 /xy AB}xyh0B>" {-0.31696 -24.20068 l}xyn" {1011 10 /xy AB}xys*" {-352 F d}xyr:" {-352 F d}xyqE" {-352 F d}xyo" {-352 F d}xynpt" {-352 /XT tt}xy %h0@" {mark 113.81099 0.0 56.90549 -35.0 0.0 0.0 0.06241 0.9325 q}xyy)8" {3625 10 /xy AB}xyH&" {1024 F d}xyF&" {1024 F d}xyH" {1024 F d}xyF" {1024 F d}xyG &" {1024 /XT tt}xy2 TheMcoMdesho!wnisacompactwaytoplaceachainof2-cellswithinapicture. Itillustratesa?Mstandardtec!hniqueforusing\afterPOS>;to ndahpMositobeusedforpartofapicture,thensubsequen!tlyqreuseit.?{AlsoitispMossibletouse\drop%orhdecoristospecifythe2-cells,ggivingthesamefpicture.P\xy*+{A}="A",+<1cm,1.5cm>*+{B}="B",K+<2cm,0pt>*+{C}="C",K+<1cm,-1.5cm>*+{D}="D","A";"B",{\uppertwocell^\alpha{}},"B";"C",{\twocell^\zeta_\xi{\gamma}},"C";\afterPOS{\drop\compositemap{}}"D"\POS"A";K\afterPOS{\drop\lowertwocell{}}"D"\endxyThe7\connect5SvdDarian!t7isusuallypreferableasthismaintainsthesizeoftheobjectatc,kwhilethe\dropѹvdDarian!tfleavesarectangularobjecthavingpandconoppMositesides.DThisfisusedoutsideofdiagrams.P1338\xydef@\@twocell@#1{\ifx\next[\DN@[{\toks@={#1}\xyFN@\@@twocell@}%1339K\else\DN@{#1{}}\fi1340%%1341%\idfromc@{@c}\swap@\idfromc@{@p}\swap@1342K\expandafter\edef\csnameQ@@c\endcsname{\cfromthec@}\swap@1343K\expandafter\edef\csnameQ@@p\endcsname{\cfromthec@}\swap@1344K\let\twocellPATH=\twocell@path1345K\def\aftertwoCELL{\twocell@DONE}\next@}Thisfhac!kisnecessarye,since\DN@[##1]{#1##1}cGlwillstripbraces.P1351\xydef@\@@twocell@{\ifx\next\bgroup\DN@##1]{\the\toks@{##1}}%1352 m\else\DN@##1]{\the\toks@##1}\fi\next@}T\oKwDo: 2ThesearesuppMosedtoallo!w\dir\...twocell{...}zqjtowork.AtpresentitseemstobMeimpMossibleftodothis.P1362%\expandafter\xydefcsname@\expandafter{\codeof\twocell}{\@twocell}1363%\expandafter\xydefcsname@\expandafter{\codeof\uppertwocell}{\@uppertwocell}1364%\expandafter\xydefcsname@\expandafter{\codeof\lowertwocell}{\@lowertwocell}1365%\expandafter\xydefcsname@\expandafter{\codeof\compositemap}{\@compositemap}M*tj3.4.CTW!O-CELLfFEAeTUREDw)333??hw1366%%\DN@{\twocell}% 1367%%\expandafter\def\csname*dir@@\codeof\next@@\endcsname{\@twocell}1368%%\DN@{\uppertwocell}%1369%%\expandafter\def\csname*dir@@\codeof\next@@\endcsname{\@uppertwocell}1370%%\DN@{\lowertwocell}%1371%%\expandafter\def\csname*dir@@\codeof\next@@\endcsname{\@lowertwocell}1372%%\DN@{\compositemap}%1373%%\expandafter\def\csname*dir@@\codeof\next@@\endcsname{\@compositemap}$鍑...sincefthecon!tentsfof{..}KtisvdDariable.Finishfo thebMo!x,setuptheobjectsize,establishthe\Drop@@/rand\Connect@@@pmethods.P1384\xydef@\twocell@DONE{%1385K\edef\tmp@{\egroup\X@min=\the\X@min\X@max=\the\X@max1386 m\Y@min=\the\Y@min\Y@max=\the\Y@max}\tmp@1387K\L@c=\X@c\advance\L@c-\X@min\R@c=\X@max\advance\R@c-\X@c1388K\D@c=\Y@c\advance\D@c-\Y@min\U@c=\Y@max\advance\U@c-\Y@c1389K\ht\z@=\U@c\dp\z@=\D@c\dimen@=\L@c\advance\dimen@\R@c\wdz@=\dimen@1390K\computeLeftUpness@1391%1392\setboxz@h{\kern-\X@p\raise-\Y@c\boxz@}%1393\dimen@=\L@c\advance\dimen@\R@c\wdz@=\dimen@\ht\z@=\U@c\dp\z@=\D@c1394%1395K\Edge@c={\rectangleEdge}\Invisible@false\Hidden@false1396K\edef\Drop@@{\noexpand\drop@Twocell1397 m\noexpand\def\noexpand\Leftness@{\Leftness@}%1398 m\noexpand\def\noexpand\Upness@{\Upness@}}%1399K\edef\Connect@@{\noexpand\connect@Twocell1400 m\noexpand\ifdim\X@max<\the\X@max\X@max=\the\X@max\noexpand\fi1401 m\noexpand\ifdim\X@min>\the\X@min\X@min=\the\X@min\noexpand\fi1402 m\noexpand\ifdim\Y@max<\the\Y@max\Y@max=\the\Y@max\noexpand\fi1403 m\noexpand\ifdim\Y@min>\the\Y@min\Y@min=\the\Y@min\noexpand\fi}}%moMdi edf\Drop@@/randf\Connect@@P1409\xydef@\drop@Twocell{\boxz@}1411\xydef@\connect@Twocell{% 1412K\setboxz@h{\kern\X@p\raise\Y@c\box\lastobjectbox@}%1413K\wdz@=\z@\ht\z@=\z@\dp\z@=\z@\Drop@@}\twocell@@1 Ĺisthemainswitc!hingengine,#taking9parametersdeterminingwhichpiecestosetandwhere3topMositionthem.EThisincludescurvdDatureofthesquines,whethertodra!wtwosquinesoronlyone,6ortousestraigh!tlines,whethertoha!veacen!tralArrowanditsorientation,6contantsoflabMelsandftheirpMositions.The Zcurren!tpandcaretheextentsoftheconnectionthesearestoredas"@p"!\and"@c"forrepMeatedfuse;Nҋ*tj334KCHAPTERf3.CFEAeTURES??hw /ffdBݍɕkf8#1卹determinesfloMcationofcon!trolpoin!t"@m" kf8#2卹loMcationfof=>%,asm!ultipleof\xydashl@; ƹfrom"@m"kf8#3卹loMcationfof_ vlabel(sourcearro!w)kf8#4卹loMcationfof^ vlabel(targetarro!w)kf8#5卹 agfforho!wmanysquinestodraw&whichtipskf8#6卹labMelfforsourcearro!wkf8#7卹labMelffortargetarro!wkf8#8卹labMelffor=> (2-cellmorphism)kf8#9卹determinesforien!tationof2-cell=Ӫffd ? Theffollo!wingtokensmayappMearasparametersin#9%:! ,^ f,_,=,A,V,HP1446\xywarnifdefined\@mod@1447\xywarnifdefined\Arrowtok@1449\xydef@\twocell@@#1#2#3#4#5#6#7#8#9!!!{%1450\def\@mod@{@}\DN@{#9}%1451\ifx#9!\def\Arrowtok@{@}\else\ifx#9A\def\Arrowtok@{^}%1452T\else\ifx#9V\def\Arrowtok@{_}\else\ifx#9H\def\Arrowtok@{=}%1453T\else\def\@mod@{\relax}%1454T\ifx#5/\def\Arrowtok@{@}\else\ifx#5b\def\Arrowtok@{@}%1455#>\else\ifx#5B\def\Arrowtok@{@}\else\ifx#5@\def\Arrowtok@{@}%1456#>\else\def\Arrowtok@{#9}%1457\fi\fi\fi\fi\fi\fi\fi\fi1458#>\addEQ@\ifx#9\def\Arrowtok@{=}\fi1459\DN@{\omit}\ifx\next@\Arrowtok@\def\Arrowtok@{}\else1460T\edef\Arrowtok@{\codeof\Arrowtok@}\fi1461\save@\idfromc@{@c}\swap@\idfromc@{@p}\swap@1462\cfromid@{@c}\no@@1463%1464\ifdim\X@c<\X@p\X@min=\X@c\X@max=\X@p\else\X@min=\X@p\X@max=\X@c\fi1465\ifdim\Y@c<\Y@p\Y@min=\Y@c\Y@max=\Y@p\else\Y@min=\Y@p\Y@max=\Y@c\fi1466%1467\Calong@@{.5}\idfromc@{@m}\idfromc@{@m1}\idfromc@{@m2}%1468%1469\ifx#5t\relax1470T\enter@{\cplusthec@\pfromthep@}%1471T\enter@\DirectionfromtheDirection@\begingroup\aboveDirection@\xydashl@1472T\DN@{#1}\ifx\next@\empty\dimen@=\z@\else\dimen@=#1\p@\fi1473T\ifdim\dimen@=\z@\DN@{\vfromslide@i{\xydashl@}@}\relax1474T\else\DN@{\vfromslide@i{#1\xydashl@}@}\fi\next@1475T\czeroEdge@\leave@\no@@\drop@{+}{}\idfromc@{@m1}%1476T\DN@{#1}\ifx\next@\empty\DN@{\no@@}\else\DN@{\connect@{\dir}{-}}\fi1477\else1478T\DN@{#1}\ifx\next@\empty\dimen@=\z@\else\dimen@=#1\p@\fi1479T\ifdim\dimen@=\z@\enter@{\cplusthec@\pfromthep@}%1480#>\enter@\DirectionfromtheDirection@\begingroup\aboveDirection@\xydashl@1481(\vfromslide@i{\xydashl@}@\czeroEdge@\leave@\idfromc@{@m1}%1482(\cfromid@{@p}\swap@\cfromid@{@c}%O޽*tj3.4.CTW!O-CELLfFEAeTUREDw)335??hw1483\DN@{#1}\ifx\next@\empty\DN@{\no@@}\else\DN@{\connect@{\dir}{-}}\fi 1484 m\else\DN@{\enter@\cplusthec@1485\enter@\DirectionfromtheDirection@\begingroup\aboveDirection@\xydashl@1486 \vfromslide@i{#1\xydashl@}@\czeroEdge@\leave@1487\idfromc@{@m1}\cfromid@{@p}\swap@\cfromid@{@c}%1488\edef\next@{\codeof\ucurveObject@}%1489\ifx\next@\empty\DN@{\connect@\crv{"@m1"}}%1490\else1491 \DNii@####1{\connect@\crv{####1}}\expandafter\DN@\expandafter{%1492Jk\expandafter\nextii@\expandafter{\ucurveObject@"@m1"}}%1493\fi\next@}%1494%%>\ifx\next@\empty\def\ucurveObject@{.}\fi1495%%>\enter@\cfromthec@\sinit@\cfromid@{@m1}\senter@\leave@1496%%>\expandafter\connect@\expandafter\crvs\expandafter{\ucurveObject@}%1497%%>\sinit@\sleave@}%1498 m\fi1499K\fi\next@1500%1501K\DN@{#1}\ifx\next@\empty\relax\else1502K\if\@mod@@\relax1503 m\enter@\pfromthep@\Creset@@1504 m\ifx#5t\relax1505\PLACEedgec@\PLACEedgep@\def\PLACEf@{{.5}}%1506 m\else\def\next@{\crvreset@}%1507\ifx\next@\Creset@@1508 \gettwocelledges@\edef\PLACEf@{{\expandafter\removePT@\the\dimen@}}%1509\else\PLACEedgec@\PLACEedgep@\def\PLACEf@{{.5}}\fi1510 m\fi1511 m\expandafter\Calong@@\PLACEf@\czeroEdge@\leave@1512 m\edef\tmp@{\codeof\modmapobject@}%1513 m\ifx\tmp@\empty\DN@{\drop@{\dir}{|}}%1514 m\else\DNii@##1##{\drop@{##1}}%1515\DN@{\expandafter\nextii@\modmapobject@{}}%1516 m\fi\next@1517K\fi\fi1518%1519K\DN@{#6}\ifx\next@\empty\DN@{\relax}\else1520K\DNii@{{}}\ifx\next@\nextii@\DN@{\relax}\else1521 m\ifx@#3\relax\DN@{\relax}\else1522 m\DN@{\enter@\pfromthep@\Creset@@1523\Calong@@{.5}\czeroEdge@\leave@1524 m\enter@\cplusthec@1525\enter@\DirectionfromtheDirection@\begingroup1526 \DN@{#1}\ifx\next@\empty\dimen@\z@\else\dimen@=#1\p@\fi1527 \ifdim\dimen@<\z@\belowDirection@\xydashl@1528 \else\aboveDirection@\xydashl@\fi1529%R\vfromslide@i{#3\xydashl@}@\czeroEdge@\leave@1530% T\droptwocelllabel@{#6}}%1531 \dimen@=#3\p@\if\@mod@@\relaxPȠ*tj336KCHAPTERf3.CFEAeTURES??hw1532Jk\advance\dimen@\ifdim\dimen@<\z@-\fi.5\p@\fi 1533Jk\edef\next@{\expandafter\removePT@\the\dimen@}%1534 \expandafter\vfromslide@i\expandafter{\next@\xydashl@}@\leave@1535 \droptwocelllabel@{#6}}%1536K\fi\fi\fi\next@1537%1538%1539K\DN@{#1}\ifx\next@\empty\relax\else1540K\ifx#5b\relax3%tipatstartonly1541 m\enter@{\pfromthep@}\Creset@@\PLACEedgep@1542\Calong@@{0}\czeroEdge@\leave@1543 m\edef\next@{\codeof\twocelltail@}%1544\ifx\next@\empty\DN@{\dir{>}}%1545 \ifx\next@\twocellhead@\drop@{\dir}{<}%1546 \else1547Jk\reverseDirection@\DNii@##1##{\drop@{##1}}%1548Jk\expandafter\nextii@\twocellhead@{}\reverseDirection@1549 \fi1550\else1551 \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocelltail@{}%1552\fi1553K\else\ifx#5@\relax>%notipsatall1554K\elseaJ%tipatend...1555 m\enter@\pfromthep@\Creset@@\PLACEedgec@1556\Calong@@{1}\czeroEdge@\leave@1557 m\edef\next@{\codeof\twocellhead@}%1558\ifx\next@\empty\drop@{\dir}{>}%1559\else1560 \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocellhead@{}%1561\fi1562 m\ifx#5B\relax-P%...andalsoatstart.1563\enter@{\pfromthep@}\Creset@@\PLACEedgep@1564 \Calong@@{0}\czeroEdge@\leave@1565\edef\next@{\codeof\twocelltail@}%1566\ifx\next@\empty\DN@{\dir{>}}%1567 \ifx\next@\twocellhead@\drop@{\dir}{<}%1568 \else1569Jk\reverseDirection@\DNii@##1##{\drop@{##1}}%1570Jk\expandafter\nextii@\twocellhead@{}\reverseDirection@1571 \fi1572\else1573 \DNii@##1##{\drop@{##1}}\expandafter\drop\twocelltail@{}%1574\fi1575 m\else\ifx#5/\relax1576 m\else\edef\next@{\codeof\twocelltail@}%1577\ifx\next@\empty\relax\else1578 \enter@\pfromthep@\Creset@@\PLACEedgep@1579Jk\Calong@@{0}\czeroEdge@\leave@1580 \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocelltail@{}%Q<*tj3.4.CTW!O-CELLfFEAeTUREDw)337??hw1581 m\fi\fi\fi 1582K\fi\fi\fi1583%1584K\cfromid@{@p}\swap@\cfromid@{@c}\no@@\cfromid@{@m}%1585K\ifx#5t\relax1586 m\idfromc@{@m2}\cfromid@{@m1}\swap@\cfromid@{@c}\no@@1587 m\DN@{#1}\ifx\next@\empty\DN@{\no@@}\else\DN@{\connect@{\dir}{-}}\fi1588K\else\ifx#5o\relax1589 m\idfromc@{@m2}\DN@{}%1590K\elseR% Tsecondcurvedarrow1591 m\DN@{#1}\ifx\next@\empty\dimen@=\z@\else\dimen@=#1\p@\fi1592 m\ifdim\dimen@=\z@1593\enter@{\cplusthec@\pfromthep@}%1594\enter@\DirectionfromtheDirection@\begingroup\belowDirection@\xydashl@1595 \vfromslide@i{\xydashl@}@\czeroEdge@\leave@\idfromc@{@m2}%1596\DN@{\cfromid@{@p}\swap@\cfromid@{@c}\no@@}%1597 m\else\DN@{\enter@\cplusthec@1598\enter@\DirectionfromtheDirection@\begingroup\belowDirection@\xydashl@1599 \vfromslide@i{#1\xydashl@}@\czeroEdge@\leave@1600\idfromc@{@m2}\cfromid@{@p}\swap@\cfromid@{@c}%1601\edef\next@{\codeof\dcurveObject@}%1602\ifx\next@\empty\DN@{\connect@\crv{"@m2"}}%1603\else1604 \DNii@####1{\connect@\crv{####1}}\expandafter\DN@\expandafter{%1605Jk\expandafter\nextii@\expandafter{\dcurveObject@"@m2"}}%1606\fi\next@}\fi1607%%>\enter@\cfromthec@\sinit@\cfromid@{@m2}\senter@\leave@1608%%>\expandafter\connect@\expandafter\crvs\expandafter{\dcurveObject@}%1609%%>\sinit@\sleave@1610%% T}\fi1611K\fi\fi\next@1612%1613K\DN@{#1}\ifx\next@\empty\relax\else\ifx#5o\relax\else1614K\if\@mod@@\DN@{\enter@\pfromthep@\Creset@@1615 m\ifx#5t\relax1616\PLACEedgec@\PLACEedgep@\def\PLACEf@{{.5}}%1617 m\else\def\next@{\crvreset@}%1618\ifx\next@\Creset@@1619 \gettwocelledges@\edef\PLACEf@{{\expandafter\removePT@\the\dimen@}}%1620\else\PLACEedgec@\PLACEedgep@\def\PLACEf@{{.5}}\fi1621 m\fi1622\expandafter\Calong@@\PLACEf@\czeroEdge@\leave@1623 m\edef\tmp@{\codeof\modmapobject@}\ifx\tmp@\empty\DN@{\drop@{\dir}{|}}%1624 m\else\DNii@####1####{\drop@{####1}}%1625\DN@{\expandafter\nextii@\modmapobject@{}}\fi1626 m\next@}\else\DN@{\relax}\fi1627K\next@\fi\fi1628%1629K\DN@{#7}\ifx\next@\empty\DN@{\relax}\elseRƠ*tj338KCHAPTERf3.CFEAeTURES??hw1630K\DNii@{{}}\ifx\next@\nextii@\DN@{\relax}\else 1631 m\ifx@#4\relax\DN@{\relax}\else1632 m\DN@{\enter@\pfromthep@\Creset@@1633\Calong@@{.5}\czeroEdge@\leave@1634 m\enter@\cplusthec@1635 m\enter@\DirectionfromtheDirection@\begingroup1636\DN@{#1}\ifx\next@\empty\dimen@\z@\else\dimen@=#1\p@\fi1637\ifx#5t\relax\ifdim\dimen@<\z@\belowDirection@\xydashl@1638 \else\aboveDirection@\xydashl@\fi1639\else\ifdim\dimen@<\z@\aboveDirection@\xydashl@1640 \else\belowDirection@\xydashl@\fi1641\fi\dimen@=#4\p@\if\@mod@@\relax1642Jk\advance\dimen@\ifdim\dimen@<\z@-\fi.5\p@\fi1643Jk\edef\next@{\expandafter\removePT@\the\dimen@}%1644 \expandafter\vfromslide@i\expandafter{\next@\xydashl@}@\leave@1645\droptwocelllabel@{#7}}%1646K\fi\fi\fi\next@1647%1648K\DN@{#1}\ifx\next@\empty\relax\else1649K\ifx#5o\relax1650K\else\ifx#5b\relax T%tipatstartonly1651 m\enter@{\pfromthep@}\Creset@@\PLACEedgec@1652\Calong@@{1}\czeroEdge@\leave@1653 m\edef\next@{\codeof\twocelltail@}%1654 m\ifx\next@\empty\DN@{\dir{>}}%1655\ifx\next@\twocellhead@\drop@{\dir}{>}%1656\else1657 \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocellhead@{}%1658\fi1659 m\else1660\DNii@##1##{\drop@{##1}}\expandafter\drop\twocelltail@{}%1661 m\fi1662K\else\ifx#5/\relax1663 m\enter@{\pfromthep@}\Creset@@\PLACEedgep@1664\Calong@@{0}\czeroEdge@\leave@1665 m\edef\next@{\codeof\twocelltail@}%1666\ifx\next@\empty\DN@{\dir{>}}%1667 \ifx\next@\twocellhead@\drop@{\dir}{<}%1668 \else1669Jk\reverseDirection@\DNii@##1##{\drop@{##1}}%1670Jk\expandafter\nextii@\twocellhead@{}\reverseDirection@1671 \fi1672\else1673 \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocelltail@{}%1674\fi1675K\else\ifx#5@\relax%notipsatall1676K\elseaJ%tipatend...1677 m\enter@\pfromthep@\Creset@@\PLACEedgec@1678\Calong@@{1}\czeroEdge@\leave@S o*tj3.4.CTW!O-CELLfFEAeTUREDw)339??hw1679 m\edef\next@{\codeof\twocellhead@}% 1680\ifx\next@\empty\drop@{\dir}{>}%1681\else1682 \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocellhead@{}%1683\fi1684 m\ifx#5B\relax-P%...andalsoatstart.1685\enter@{\pfromthep@}\Creset@@\PLACEedgep@1686 \Calong@@{0}\czeroEdge@\leave@1687\edef\next@{\codeof\twocelltail@}%1688\ifx\next@\empty\DN@{\dir{>}}%1689 \ifx\next@\twocellhead@\drop@{\dir}{<}%1690 \else1691Jk\reverseDirection@\DNii@##1##{\drop@{##1}}%1692Jk\expandafter\nextii@\twocellhead@{}\reverseDirection@1693 \fi1694\else1695 \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocelltail@{}%1696\fi1697 m\else1698\edef\next@{\codeof\twocelltail@}%1699\ifx\next@\empty\relax\else1700 \enter@{\pfromthep@}\Creset@@\PLACEedgep@1701Jk\Calong@@{0}\czeroEdge@\leave@1702 \DNii@##1##{\drop@{##1}}\expandafter\nextii@\twocelltail@{}%1703\fi\fi1704 m\fi\fi\fi1705K\fi\fi1706%1707%>theArrow1708%1709K\DN@{#1}\ifx\next@\empty\dimen@=\z@\else\dimen@=#1\p@\fi1710K\ifdim\dimen@<\z@\cfromid@{@m2}\swap@\cfromid@{@m1}%1711K\else\cfromid@{@m1}\swap@\cfromid@{@m2}%1712K\fi\no@@\cfromid@{@m}%1713%1714K\ifx\Arrowtok@\empty1715%1716K\else\DN@{_}\edef\next@{\codeof\next@}\ifx\next@\Arrowtok@1717 m\enter@{\pfromthep@\cplusthec@}\dimen@=#2\xydashl@1718\enter@\DirectionfromtheDirection@\begingroup1719 \expandafter\vfromslide@i\expandafter{\the\dimen@}@\czeroEdge@1720 m\leave@\idfromc@{@m}%1721K\DNii@##1##{\drop@{##1}}\expandafter\nextii@\Arrowobject@{}%1722%\drop@{\dir}{=>}%1723%1724K\else\DN@{^}\edef\next@{\codeof\next@}\ifx\next@\Arrowtok@1725\DN@{_}\edef\Arrowtok@{\codeof\next@}%1726 m\enter@{\pfromthep@\cplusthec@}\dimen@=#2\xydashl@1727\enter@\DirectionfromtheDirection@\begingroupT\*tj340KCHAPTERf3.CFEAeTURES??hw1728 \expandafter\vfromslide@i\expandafter{\the\dimen@}@\czeroEdge@ 1729 m\leave@\idfromc@{@m}\reverseDirection@1730 m\DNii@##1##{\drop@{##1}}\expandafter\nextii@\Arrowobject@{}%1731% T\drop@{\dir}{=>}%1732%1733K\else\DN@{=}\edef\next@{\codeof\next@}\ifx\next@\Arrowtok@1734 m\enter@{\pfromthep@\cplusthec@}%1735\dimen@=#2\xydashl@\advance\dimen@\xydashl@1736\enter@\DirectionfromtheDirection@\begingroup1737 \expandafter\vfromslide@i\expandafter{\the\dimen@}@\czeroEdge@1738 m\leave@\idfromc@{@m2}%1739 m\cfromid@{@m}%1740 m\enter@{\pfromthep@\cplusthec@}%1741\dimen@=#2\xydashl@\advance\dimen@-\xydashl@1742\enter@\DirectionfromtheDirection@\begingroup1743 \expandafter\vfromslide@i\expandafter{\the\dimen@}@\czeroEdge@1744 m\leave@\idfromc@{@m1}%1745 m\cfromid@{@m2}\swap@\cfromid@{@m1}\connect@{\dir2}{-}%1746K\fi\fi\fi\fi1747%1748%>labelontheArrow1749%1750K\DN@{#8}\ifx\next@\empty\DN@{}\else\DN@{%1751 m\ifx\Arrowtok@\empty1752\Calong@@{.5}%1753 m\else\DN@{=}\edef\next@{\codeof\next@}\ifx\next@\Arrowtok@1754\Calong@@{.5}%1755 m\else\DN@{_}\edef\next@{\codeof\next@}\ifx\next@\Arrowtok@1756\cfromid@{@m}%1757 m\fi\fi\fi1758 m\enter@\cplusthec@1759\enter@\DirectionfromtheDirection@\begingroup\aboveDirection@\xydashl@1760 \ifx\Arrowtok@\empty1761Jk\def\tmp@{0pt}%1762 \else\DN@{=}\edef\next@{\codeof\next@}\ifx\next@\Arrowtok@1763Jk\def\tmp@{\xydashl@}%1764 \else\DN@{_}\edef\next@{\codeof\next@}\ifx\next@\Arrowtok@1765Jk\def\tmp@{1.2\xydashl@}%1766 \else\def\tmp@{0pt}%1767 \fi\fi\fi1768 \expandafter\vfromslide@i\expandafter{\tmp@}@\czeroEdge@\leave@1769 m\droptwocelllabel@{#8}%1770K}\fi\next@1771K\leave@}%jUTheseԿareusedtoestablishtheloMcationforthemodule-mapindicator,givingbestaestheticappeal.It$ ndstheloMcationwhoseparametervdDalueisthea!verage$ofhalf-w!ay$alongthecompletecurv!eandthefa!verageofparametervdDaluesatthetheedges.P1781\xydef@\gettwocelledges@{%1782 m\bgroup\the\crvpts@U!ʠ*tj3.5.CMAeTRIXfFEATURESŹ341??hw1783 m\edef\next@{\edges@}% 1784 m\expandafter\gettwocelledges@@\next@}P1786\xydef@\gettwocelledges@@#1;#2,#3;#4,{%1787K\dimen@=#2\advance\dimen@-#4\relax1788K\advance\dimen@2\p@\divide\dimen@by4\relax1789K\edef\next@{\egroup\dimen@=\the\dimen@}\next@}%$C{The2end&LogEDOCMODE31799\xyendinput1801%$Log:xy2cell.doc,v$1802%Revision3.3 T1996/12/1814:21:23ross1803%Ross'sversion1804%1805%Revision3.3.1.1 T1996/12/1808:49:34ross1806%***emptylogmessage***1807%1808%Revision3.1 T1995/09/0520:36:33ross1809%Release!1810%1811%Revision3.0 T1995/07/0720:13:19ross1812%Majorreleasew/newUser'sGuide!1813%1814%Revision2.14 T1995/07/0522:11:25kris1815%Buglets...1816%1817%Revision2.13 T1995/07/0415:04:51ross1818%Readyforreleaseofv3.1819%1820%Revision2.12 T1994/10/2503:01:14ross1821%Final3betarelease[bugfixes&AMS-LaTeXfitting].1822%1823%Revision2.10 T1994/07/0101:19:46ross1824%removedundefinedreferences1825%1826%Revision2.9 T1994/06/0912:51:27ross1827%Release3beta.1828%1829%NEWforversion2.9basedonunreleasedcodeforversion2.6+.0􍍑3.5r|MatrixfffeatureV)V ers.p3.4Tb9yKristo erH.Rosehkrisrose@brics.dkiThisoptionimplemen!ts\XY g -matrices",i.e.,matriceswhereitispMossibletorefertotheentryobjectsbytheirro!w/columnaddress.aWee rstdescribMethegeneralformofƚXY E-matricesinx3.5.1,theninx3.5.2wesummarise>thenewhcoMordiinateformsusedtorefertoen!tries.zInx3.5.3weexplainwhatparametersV-6*tj342KCHAPTERf3.CFEAeTURES??hwcanqbMesettoc!hangethespacingandorientationofthematrix,sandinx3.5.4weexplainhowthe appMearancefoftheen!triescanbec!hanged. mHeader:P1%%$Id:xymatrix.doc,v3.41997/05/1801:14:25krisroseExp$2%%3%%Xy-pic``Matrix''feature.4%%Copyright(c)1991-1997 TKristofferH.Rose5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997 TKristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fi26\xyprovide{matrix}{Matrixfeature}{\stripRCS$Revision:3.4$}%27K{KristofferH.~Rose}{krisrose@brics.dk}%28K{BRICS/ComputerScience,UniversityofAarhus,NyMunkegade,building540,29 mDK--8000Aarhus~C}.F3.5.1 rzX1"Y-matrices[Theffundamen!talcommandofthisfeatureis Gffd j<\xymatrixfhsetupi{ fhro!wsi}ffd2thatreadsamatrixofen!triesinthegenericT,[wEB Xrow&columnformat,i.e.,whererowsareseparatedwith\\andcon!taincolumnsseparatedwith&(wediscussinthefollowingsectionswhathsetupicanbMe).RTh!usamatrixwithmaxrpow坹rowsandmaxcpolٌcolumnswhereeachentrycontainsrpow-,ecolٌisen!teredfas)&퍍|\xymatrix{ '1,1&]1,2&11,Imaxcpol@d\\'2,1&]2,2&2,Imaxcpol@d\\K"isprin!tedforeachmatrixwithrpows"cpols en!triesJand2XY-piccomplexitysize(thenumbMerofprimitiveopMerationsperformed),tunlessthedeclarationf\SilentMatricesisissued. En!triesfstartingwitha*arespMecial(describedinx3.5.4)2,souse{*}ʹtogeta* .Feorfexample,P\xyK\xymatrix{A&B\\C&D}K\drop\frm{-}K\drop\cir<8pt>{}\endxywillft!ypMesetrps: SDict begin xyc end͟%A)>%B%FC)Y%FDh0/" {0.0 45.50868 -43.2643 -6.91075 6.40233 ov}xyh0" {8.0 0 360 o}xy7:Bug:ݹMatrixfnestingisnotsafe.Matricesnareoftenquiteslo!wtotypMesetsoasaconvenienceallmatricescanbMesettocompile(andnot)fautomaticallywiththedeclarations ljffd yߍ8\CompileMatrices8\NoCompileMatricesoffdW?MatricescanbMecompiledornotindividuallye,,b!yusingtheexplicitcommands\xymatrixcompileandD>\xymatrixnocompileasw!ellasbyencapsulatingintheusual\xycompileto{Nnameҡ}{ Q.3..} (seenotef1.5e).Note:عMatriceswillonlycompilecorrectlyifallen!triesstartwithanonexpandabletoken,i.e.,{orf\relax)ȹorfsomenon-activ!echaracter.ᇍOnAthefollotwingcoYde: 5TheQcomplexit!yofthisoptionstemsfromthefactthatwecannotbuildtheϥactualOXY6-pictureun!tilafterthematrixhasbMeentypMesetsothatweknowthesizesandplacesofallftheen!tries.ThehandlingdescribMedhereisthusseparatedintoseveralsubproMcedures.Setup: 5Notm!uch|onlytokeeptrackoftherowsandcolumns.Thesearenotaccesibletotheuser|shouldfthey?P159\xynew@{count}\Row160\xynew@{count}\Col ܉ffy̟ L͍ {-=2aIngeneralitisrecommendedthaten9triesstartwithanon-expandingtoken,ނi.e.,anordinary(non-active)character, {,Tor\relaxn,forcompilationtow9ork.XCʠ*tj344KCHAPTERf3.CFEAeTURES??hw162\xydef@\maxrow@{0}Y%highestrownumberused 163\xydef@\maxcol@{0}Y%highestcolumnnumberused164\xydef@\maxcolrow@{0}Y%arowwithmaximalnumberofcolumnsTherefaresomeuser-de nedparameterssummarisedlater. 'The^follo!wingisanexpMerimentalsetof`optimal'queueingmacrosusingtwoqueuesandtwocoun!tersftokeeptrackoftheprogress.P173\xynew@{toks}\queue@174\xynew@{toks}\queue@@176\xynew@{count}\qcount@177\xynew@{count}\qcount@@179\xydef@\clearq@{%180K\global\queue@={}\global\qcount@=\@ne181K\global\queue@@={}\global\qcount@@=\z@}183\xydef@\addq@#1{\global\advance\matrixsize@\@ne184K\ifnum\qcount@@<\qcount@\let\addq@@=\addq@i185K\else\let\addq@@=\addq@ii\fi186K\expandafter\addq@@\the\queue@@\addq@@{#1}}188\xylet@\addq@@=\relax190\xydef@\addq@i#1\addq@@#2{%191K\global\advance\qcount@@\@ne\global\queue@@={#1#2}}193\xydef@\addq@ii#1\addq@@#2{%194K\global\advance\qcount@\@ne\global\qcount@@=\z@195K\global\queue@=\expandafter{\the\queue@#1#2}\global\queue@@={}}197\xydef@\finishq@{\expandafter\addq@ii\the\queue@@\addq@@{}}Hactk:in!tendedxtomaketheadditionoftokenstothetokenlistfaster:we rstaddtothe`small'\queue@@} asman!ytimesaswehaveaddedtothe`big'\queue@0$bMeforethat.ŔSoweknowweshouldalw!aysexpand\queue@@1:fmthisisdone rst(lastinthemacrotext).Thenw!ecall\addq@@0thatwilleitherfaddtothesmalloneoraddthesmallonetothebigoneandthenclearthesmallone! 'Usageҡ:>Call—\clearq@7~ rst.2oThen—use\addq@,*asman!ytimesasdesired.Teogetthequeuein\queue@p%callf\finishq@; ƹandfuseit.Finallyclear\queue@/r(globally)orcon!tinue. MainsproYcedure: 5Here=EisthemaincoMdewhic!hisconcernedwithinitialisationsandoutputofmessagesfexplainingho!wfarthematrixconstructionhasprogressed.218\xynew@{count}\matrixsize@219\xynew@{if}\ifnoisymatrices@\noisymatrices@true221\xydef@\SilentMatrices{\noisymatrices@false}222\xydef@\NoisyMatrices{\noisymatrices@true}224\xydef@\xymatrixnocompile{\global\matrixsize@=\z@225K\ifnoisymatrices@\message{{}expected}{}}%253K\fi\fi\fi\fi\next@}255\xydef@\xymatrix@ii#1{%256%257%\W@{H@max=\meaning\H@max}%258%\W@{W@max=\meaning\W@max}%259%\W@{HW@max=\meaning\HW@max}%260%\W@{mkHrow@={\meaning\mkHrow@}}%261%\W@{mkWcol@={\meaning\mkWcol@}}%262%\W@{mkHmax@={\meaning\mkHmax@}}%263%\W@{mkWmax@={\meaning\mkWmax@}}%264%\W@{mkHWmax@={\meaning\mkHWmax@}}%265%266K\xymatrix@pretypeset{#1}%267% T\ifnum\maxcol@=\z@\mkWcol@\mkWmax@%\mkHrow@\mkHmax@268 m\ifnum\maxcol@=\z@\mkWcol@\mkWmax@\mkHrow@\mkHmax@269\xdef\maxcol@{\the\Col}\xdef\maxcolrow@{\the\Row}\fi270 m\ifnoisymatrices@\message{\maxcol@x\maxrow@}\fi271 m\xymatrix@measureit@@\the\queue@\global\queue@={}%272 m\xymatrix@typeset{#1}\restore\xymatrix@insert273 m\xy@@\leave@\leave@274 m\ifnoisymatrices@\message{\the\matrixsize@>}\fi\ignorespaces}G捑Herefiswherecompilationofmatricesisturnedon/o .280\xydef@\xymatrixcompile#1#{\xymatrixcompile@{#1}}281\xydef@\xymatrixcompile@#1#2{\xycompile{\xymatrixnocompile#1{#2}}}283\xydef@\CompileMatrices{\let\xymatrix=\xymatrixcompile}284\xydef@\NoCompileMatrices{\let\xymatrix=\xymatrixnocompile}G捑T\oDo:͹PropMer^nestingthatensuresthatthematrixstateisreestablishedafterthecurren!tonehasfbMeent!ypeset.Eac!hfsubproMcedureisexplainedbelo!w.Z^*tj346KCHAPTERf3.CFEAeTURES??hwSetF@rotw-rotation: 5This$setsthegeneraldirectionofthero!wsasthecurrentdirectionindicates. Thisfdirectionisnotkno!wnuntilXY p-timesoitgetsputintotherow/columnde nitions.P299\xydef@\xy@cossign@@{+}300\xydef@\xy@sinsign@@{+}301\xydef@\xy@cosabs@@{1}302\xydef@\xy@sinabs@@{0}303\xydef@\xy@tanabs@@{0}304\xydef@\xy@cotabs@@{100}306\xydef@\xymatrix@rotation{307K\xy@@{%308 m\edef\xy@cossign@@{\ifdim\cosDirection\p@<\z@-\else+\fi}%309 m\edef\xy@sinsign@@{\ifdim\sinDirection\p@<\z@-\else+\fi}%310 m\edef\xy@cosabs@@{%311\if\xy@cossign@@\cosDirection\else\xy@cossign@@\cosDirection\fi}%312 m\edef\xy@sinabs@@{%313\if\xy@sinsign@@\sinDirection\else\xy@sinsign@@\sinDirection\fi}%314 m\dimen@=\xy@cosabs@@\p@\dimen@ii=\xy@sinabs@@\p@315 m\ifdim\dimen@ii<.01\p@\def\xy@cotabs@@{100}%316 m\else\quotient@\xy@cotabs@@\dimen@\dimen@ii\fi317 m\dimen@=\xy@cosabs@@\p@\dimen@ii=\xy@sinabs@@\p@318 m\ifdim\dimen@<.01\p@\def\xy@tanabs@@{100}%319 m\else\quotient@\xy@tanabs@@\dimen@ii\dimen@\fi}}#ƍPrettypYeset: 5ThefpurpMoseofthisisto4setmbMo!x8toanhalignwithalltheentriespropMerlytypMesettobemeasuredinthenextstep,andstore\[inaqueuetheopMerationsthatwillde neeac!hentryasanobjectoncethemeasurementis donefandthedistancesbMet!weenfrowsandcolumnsisknown.4Thisisac!hievedasfollo!ws:Row/columncounters,imaxima,andqueuesarereset. Thetab-andin!terlineskipisremovedtomaketakingtheconstructedbMoxaparteasier.ےAndthehaligntemplateisusedftoapplyanappropriateactionforeac!hentrythatupMdatesthecountersandqueue.sThespMecial\xymatrixsavedCOORD@{visusedtostoretheoriginal\COORD@0cԹexceptwhendiagramsarefnested.346\xylet@\xymatrixsavedCOORD@=\relax348\xydef@\xymatrix@pretypeset#1{%349K\global\Row=\z@\xdef\maxcol@{0}\clearq@350K\setbox8=\vtop{%351 m\ifx\xymatrixsavedCOORD@\relax\let\xymatrixsavedCOORD@=\COORD@\fi352 m\let\COORD@=\xymatrixCOORD@353 m\everycr{}\let\\=\cr\tabskip=\z@\offinterlineskip354 m\halign{\prentry@##!@&&\xyFN@\prentry@@##!@\cr#1\crcr}%355 m\prentry@@@}%356K\xdef\maxrow@{\the\Row}%357K\finishq@}aThe"U rsten!tryineachrowisspMecial;`Linparticularitmovestheentriesfromthecolumnsofthepreviousfro!w(ifany)intothesecond-levelqueue:[j*tj3.5.CMAeTRIXfFEATURESŹ347??hw365\xydef@\prentry@{\relax 366K\ifnum\Row>\z@367 m\ifnum\maxcol@<\Col\xdef\maxcol@{\the\Col}\xdef\maxcolrow@{\the\Row}\fi368 m\expandafter\xdef\csnamemaxcol@\the\Row\endcsname{\the\Col}\fi369K\global\advance\Row\@ne\global\Col=\z@\xyFN@\prentry@@}1The;3commonpartshould rstt!ypMesettheobject."ThentheresultinghsetupicommandsshouldbeemittedfasdescribMedbelo!w.CWhile5}t!ypMesettingtheentrye,@XYM-commandsaredisablepdW'byrede ning\xy@itojust`eat'itsargu-men!ts,fsotheydon'tinterfere.3..P380\xylet@\lastprentry@@=\relax382\xydef@\xyeatall@{\let\xy@=\xyeat@\change@oxy@\xyeat@\let\xy@@ix@=\eat@}384\xydef@\prentry@@{\global\advance\Col\@ne 385K\let\next@=\prentry@@norm386K\ifoldxymatrix@\else\ifx*\next\DN@*{\xyFN@\prentry@@star}\fi\fi387K\next@}P389\xydef@\prentry@@star{\ifx*\next\DN@*{\xyFN@\prentry@@star@ii}%390K\else\DN@##1##{\prentry@@star@i{##1}}\fi\next@}392\xydef@\prentry@@star@i#1#2#3!@{\gdef\lastprentry@@{*#1{#2}#3}%393K\setbox\lastobjectbox@=\object#1{#2}%394K\prentry@@x}396\xydef@\prentry@@star@ii{%397K\ifx[\next398 m\DN@[##1]{\DN@####1{\def\entrymodifiers@{[##1]####1}}%399 \expandafter\next@\expandafter{\entrymodifiers@}\prentry@@norm}%]400K\else401 m\DN@##1{\DN@####1{\def\entrymodifiers@{##1####1}}%402 \expandafter\next@\expandafter{\entrymodifiers@}\prentry@@norm}%403K\fi\next@}405\xydef@\prentry@@norm#1!@{\gdef\lastprentry@@{#1}%406K\DN@{\setbox\lastobjectbox@=\object}%407K\expandafter\next@\entrymodifiers@{\xyeatall@\everyentry@#1}%408K\prentry@@x}410\xydef@\prentry@@x{%411K\edef\next@{{\noexpand\pre@emit{\the\Row}{\Upness@}{\the\Col}{\Leftness@}%412 m{\the\L@c}{\the\R@c}{\the\D@c}{\the\U@c}{\expandafter\noexpand\the\Edge@c}}}%413K\expandafter\addq@\next@\box\lastobjectbox@}1FinallyMjthefollo!wingensuresthatthelastrowinthediagramistreatedcorrectly:_ifthelastentryw!asGanemptyrowthenweignoretherowentirelyifthe\ifoldxymatrix@^switchissetjustasweignoref* f-en!triesfabMove.422\xynew@{if}\ifoldxymatrix@\oldxymatrix@false424\xydef@\prentry@@@{\relax\let\next@=\prentry@@@i425K\ifoldxymatrix@\ifnum\Col=\@ne\ifx\lastprentry@@\empty426 \global\advance\Row\m@ne\let\next@=\relax\fi\fi\fi427K\global\let\lastprentry@@=\relax\next@}429\xydef@\prentry@@@i{%\wA*tj348KCHAPTERf3.CFEAeTURES??hw430K\ifnum\maxcol@<\Col\xdef\maxcol@{\the\Col}\xdef\maxcolrow@{\the\Row}\fi 431K\expandafter\xdef\csnamemaxcol@\the\Row\endcsname{\the\Col}} -Feurthermore*thecoMde(l.4648չ)setstheedgeandexten!tsoftheobjectand(l.465)addstheobjecttothefsizeofthematrix.Bug:Curren!tlyfignoresupnessandleftnessparameters.P439\xydef@\xy@minX@@{\z@}440\xydef@\xy@maxX@@{\z@}441\xydef@\xy@minY@@{\z@}442\xydef@\xy@maxY@@{\z@}444\xydef@\pre@emit#1#2#3#4#5#6#7#8#9{%445K%#1=R,#2=Upn,#3=C,#4=Leftn,#5=L,#6=R,#7=D,#8=U,#9=Edge.446K\global\Row=#1\global\Col=#3\relax447K\ifnum#3=\@ne448 m\ifnum#1=\@ne\xy@@{\matrixorigin@}449 m\else\count@@=#1\advance\count@@\m@ne450\edef\next@{\noexpand\xy@@{\noexpand\cfromid@451Jk{\xymatrixprefix@@\the\count@@,1}}}\next@452\pre@emit@\W@maxout\Hrow@c@@\W@maxin\Hrow@in\xy@tanabs@@453 \X@c\xy@sinsign@@\xy@sinabs@@\xymatrixrowsep@454\pre@emit@\Hrow@c@@\W@maxout\Hrow@in\W@maxin\xy@cotabs@@455 \Y@c{-\xy@cossign@@}\xy@cosabs@@\xymatrixrowsep@456 m\fi457K\else\count@@=#3\advance\count@@\m@ne458\pre@emit@\Wcol@c@@\H@maxout\Wcol@in\H@maxin\xy@cotabs@@459 \X@c\xy@cossign@@\xy@cosabs@@\xymatrixcolsep@460\pre@emit@\H@maxout\Wcol@c@@\H@maxin\Wcol@in\xy@tanabs@@461 \Y@c\xy@sinsign@@\xy@sinabs@@\xymatrixcolsep@462K\fi463K\DN@##1{\xy@@{\L@c=#5\R@c=#6\D@c=#7\U@c=#8\Edge@c={#9}\idfromc@{##1#1,#3}}}%464K\expandafter\next@\expandafter{\xymatrixprefix@@}465K\xy@@{466 m\dimen@=\X@c\advance\dimen@-\L@c467\ifdim\dimen@<\xy@minX@@\edef\xy@minX@@{\the\dimen@}\fi468 m\dimen@=\X@c\advance\dimen@+\R@c469\ifdim\dimen@>\xy@maxX@@\edef\xy@maxX@@{\the\dimen@}\fi470 m\dimen@=\Y@c\advance\dimen@-\D@c471\ifdim\dimen@<\xy@minY@@\edef\xy@minY@@{\the\dimen@}\fi472 m\dimen@=\Y@c\advance\dimen@+\U@c473\ifdim\dimen@>\xy@maxY@@\edef\xy@maxY@@{\the\dimen@}\fi}} -The9follo!wingproMcedurerepresentsthesimilarityofthefourlinesforthecoMordinatesinthecom-putationfabMo!ve.3..T\o2Do:ݹdescribefthisproperlye.3..481\xydef@\pre@emit@#1#2#3#4{#1\A@#2\B@#3\R@#4\dimen@482K\edef\next@{{\the\A@}{\the\B@}{\the\R@}{\the\dimen@}}%483K\expandafter\pre@emit@i\next@}485\xydef@\pre@emit@i#1#2#3#4#5{\xy@@{%486 m%EmitR:=min(#1,#5#2)+min(#3,#5#4)487 m\dimen@=#2\R@=#5\dimen@\dimen@=#1\relax\ifdim\R@>\dimen@\R@=\dimen@\fi488 m\dimen@=#4\B@=#5\dimen@\dimen@=#3\relax\ifdim\B@>\dimen@\B@=\dimen@\fi]*tj3.5.CMAeTRIXfFEATURESŹ349??hw489 m\advance\R@\B@}% 490K\pre@emit@ii}P492\xydef@\pre@emit@ii#1#2#3#4{\xy@@{%493 m%Emit#1:=#1+#2*[R+#3#4]494 m\dimen@=#4\dimen@=#3\dimen@\advance\R@\dimen@\advance#1#2\R@}}496\xydef@\Wcol@in#1{#1=\csnameWcol@\the\Col\endcsname#1=.5#1}497\xydef@\Wcol@out#1{#1=\csnameWcol@\the\Col\endcsname#1=.5#1}498\xydef@\Wcol@c@@#1{#1=\csnameWcol@\the\count@@\endcsname#1=.5#1}499\xydef@\W@maxin#1{#1=\W@max#1=.5#1}500\xydef@\W@maxout#1{#1=\W@max#1=.5#1}502\xydef@\Hrow@in#1{#1=\csnameHrow@\the\Row\endcsname#1=.5#1}503\xydef@\Hrow@out#1{#1=\csnameHrow@\the\Row\endcsname#1=.5#1}504\xydef@\Hrow@c@@#1{#1=\csnameHrow@\the\count@@\endcsname#1=.5#1}505\xydef@\H@maxin#1{#1=\H@max#1=.5#1}506\xydef@\H@maxout#1{#1=\H@max#1=.5#1}MjBug:ٹIt^shouldbMepossibletoc!hangeteadjustmentmoreprofoundlyforindividualentries,`rows,andfcolumns."<Measure: 5Teak!ethecreatedbMox8aparttode nethemacros\Wcol@&_~cpol,and\Hrow@rpow=con!tainingthe widthandheigh!tofthebMoundingbo!xoftheentriesintherow/column.JFinallythecommandscollectedk+inthequeueareexecuted(hopMefullythey'llin!vokek+\pre@emit:Pak+numberk+oftimes).ThisisahoMokfbecausesomespecialcasesw!on'tneedit.3..521\xydef@\H@max{\z@}522\xydef@\W@max{\z@}523\xydef@\HW@max{\z@}525\xydef@\mkHrow@{}526\xydef@\mkWcol@{}527\xydef@\mkHmax@{}528\xydef@\mkWmax@{}529\xydef@\mkHWmax@{}531\xydef@\mkHWdefaults@{\let\xymatrix@measureit@@=\xymatrix@measureit532K\let\mkHrow@=\Hrow@R\let\mkWcol@=\Wcol@C533K\def\mkHmax@{\ifdim\dimen@>\H@max\relax\xdef\H@max{\the\dimen@}\fi}%534K\def\mkWmax@{\ifdim\dimen@>\W@max\relax\xdef\W@max{\the\dimen@}\fi}%535K\let\mkHWmax@=\HWmax@max}537\xydef@\Hrow@R{\expandafter\xdef\csnameHrow@\the\Row\endcsname{\the\dimen@}}538\xydef@\Wcol@C{\expandafter\xdef\csnameWcol@\the\Col\endcsname{\the\dimen@}}540\xydef@\Hrow@max{\expandafter\gdef\csnameHrow@\the\Row\endcsname{\H@max}}541\xydef@\Wcol@max{\expandafter\gdef\csnameWcol@\the\Col\endcsname{\W@max}}543\xydef@\Hrow@HWmax{\expandafter\gdef\csnameHrow@\the\Row\endcsname{\HW@max}}544\xydef@\Wcol@HWmax{\expandafter\gdef\csnameWcol@\the\Col\endcsname{\HW@max}}546\xydef@\HWmax@max{%547K\ifdim\H@max>\W@max\global\let\HW@max=\H@max\else\global\let\HW@max=\W@max\fi}549\xydef@\HWmax@set#1{\gdef\HW@max{#1}%550K\global\let\H@max=\HW@max\global\let\W@max=\HW@max}^*tj350KCHAPTERf3.CFEAeTURES??hw552\xydef@\xymatrix@measureit{% 553K\xdef\H@max{\z@}\xdef\W@max{\z@}%554K\setbox6=\vbox{\unvbox8\global\Row=\maxrow@555 m\loop@\dimen@ii=\lastskip\unskip\ifnum\z@<\Row556\setbox4=\lastbox\dimen@=\dp4\advance\dimen@\ht4\mkHrow@\mkHmax@557\ifnum\Row=\maxcolrow@558 \setbox2=\hbox{\unhbox4%559Jk\global\Col=\maxcol@560Jk\loop@\dimen@ii=\lastskip\unskip\ifnum\z@<\Col561 \setbox\z@=\lastbox\dimen@=\wdz@\mkWcol@\mkWmax@562 \global\advance\Col\m@ne563Jk\repeat@}\fi564 \global\advance\Row\m@ne565\repeat@}%566K\mkHWmax@}P568\xylet@\xymatrix@measureit@@=\relaxT\o2"Do:ݯAllo!w non-defaultspacingbMetweenparticularrows/columnsaswellasdi erentjusti ca- tionfoftheen!tirematrix.3..TtypYeset: 5Ret!ypMesetftheentirediagramusingahackedhalign:itstemplatetypMesetseachentryaslX\POSq"wdrpow_,@ cpol@"*fobjepcth\relax.XZY!-cpommands/y\relaxwhere5objepct?isthecon!tents5oftheen!trytranslatedintotXY -pichobjectiformand:XZY U--cpommandsentailsthefcommandsusedinthisparticularen!trye.P586\xydef@\xymatrix@typeset#1{%587K\clearq@588K\hbox{\vtop{\xyqall@589\xy@@{\ifx\xymatrixsavedCOORD@\relax590Jk\enter@{\noexpand\let\noexpand\COORD@\noexpand\xymatrixsavedCOORD@}%591Jk\let\xymatrixsavedCOORD@=\COORD@\let\COORD@=\xymatrixCOORD@592 \else\enter@{}\fi}%593\ifx\xymatrixsavedCOORD@\relax\let\xymatrixsavedCOORD@=\COORD@\fi594\let\COORD@=\xymatrixCOORD@595\kern\z@\global\Row=\z@596\everycr{}\let\\=\cr\tabskip=\z@\offinterlineskip597\halign{\entry@##!@&&\entry@@##!@\cr#1\crcr}%598\xy@@{\leave@}}}%599K\finishq@\expandafter\xy@@\expandafter{\the\queue@}\global\queue@={}}Here{arethetemplateexecutionmacros:Weeresetthe\queue@/foreac!hentrye,\drop$͹ittheusualw!ayfexcept rstallXY p-commandsare`redirected'tothequeue,andthent!ypMesetthem.607\xydef@\entry@{\relax\global\advance\Row\@ne\global\Col=\z@\entry@@}Againfsomeparsingdetermineswhetherthisisa* f-objectoranormalobject:614\xydef@\entry@@{\global\advance\Col\@ne615K\DN@##1,##2,##3@{\xy@{ENTRY"##3##1,##2"}{\Row=##1\Col=##2\relax616\cfromid@{##3##1,##2}\pfromc@}}%617K\edef\nextii@{\the\Row,\the\Col,\xymatrixprefix@@@}%618K\expandafter\next@\nextii@_*tj3.5.CMAeTRIXfFEATURESŹ351??hw619K\xyFN@\entry@@i}P621\xydef@\entry@@i{\let\next@=\entry@@norm 622K\ifoldxymatrix@\else\ifx*\next\DN@*{\xyFN@\entry@@star}\fi\fi623K\next@}625\xydef@\entry@@star{\ifx*\next\DN@*{\xyFN@\entry@@star@ii}%626K\else\DN@##1##{\entry@@star@i{##1}}\fi\next@}628\xydef@\entry@@star@i#1#2#3!@{%629K\xy@@ix@{{#1}{#2}}\xy@@{\expandafter\dropentry@\the\toks9}%630K\setboxz@h{\xyqall@631 m\ifx\xymatrixsavedCOORD@\relax\let\xymatrixsavedCOORD@=\COORD@\fi632 m\let\COORD@=\xymatrixCOORD@\everyentry@#3}%633K\setbox\z@=\copy\voidb@x}635\xydef@\entry@@star@ii{%636K\ifx[\next637 m\DN@[##1]{\DN@####1{\def\entrymodifiers@{[##1]####1}}%638 \expandafter\next@\expandafter{\entrymodifiers@}\entry@@norm}%]639K\else640 m\DN@##1{\DN@####1{\def\entrymodifiers@{##1####1}}%641 \expandafter\next@\expandafter{\entrymodifiers@}\entry@@norm}%642K\fi\next@}644\xydef@\entry@@norm#1!@{%645K\DN@##1{\expandafter\xy@@ix@646 m\expandafter{\expandafter{\entrymodifiers@}{##1}}}%647K\expandafter\next@\expandafter{\everyentry@#1}%648K\xy@@{\expandafter\dropentry@\the\toks9}%649K\setbox\z@=\expandafter\object\entrymodifiers@{\xyqall@650 m\ifx\xymatrixsavedCOORD@\relax\let\xymatrixsavedCOORD@=\COORD@\fi651 m\let\COORD@=\xymatrixCOORD@\everyentry@#1}%652K\setbox\z@=\copy\voidb@x}}Droppingftheen!tryisjustretypMesettingitattherightloMcationagainignoringtheXY p-stu :659\xydef@\dropentry@#1#2{\drop@{#1}{\xyeatall@660 m\ifx\xymatrixsavedCOORD@\relax\let\xymatrixsavedCOORD@=\COORD@\fi661 m\let\COORD@=\xymatrixCOORD@#2}}}The)macrosusedforqueuingarethese;Ronlythetoks9replacemen!tistricky;Rfurthermorequeueingisg^notqHdoneifw!earesavingbMecausethee ectwillgivethesameresultwithoutriskofextremelylonglinesfinthecompiled le!670\xydef@\xyqall@{%671K\ifxysaving@\let\xy@=\xyqs@\let\xy@@ix@=\xysave@@toksix@672K\else\let\xy@=\xyq@\let\xy@@ix@=\xyq@@toksix@\fi673K\change@oxy@\xy@}675\xydef@\xyq@#1#2{\addq@{#2}}677\xydef@\xyq@@toksix@{\begingroup678K\xyuncatcodes\afterassignment\xyq@@toksix@i\global\toks9=}680\xydef@\xyq@@toksix@i{%681K\DN@##1{\endgroup\xy@@{\global\toks9={##1}}}%`נ*tj352KCHAPTERf3.CFEAeTURES??hw682K\expandafter\next@\expandafter{\the\toks9}}P684\xydef@\xyqs@{\global\advance\matrixsize@\@ne\xysave@}%YKInsert: 5Finallysw!einsertthematrixinthe[ZXY ں-picturelogicallybyensuringthatithastherightsize693\xydef@\xymatrix@insert{% 694K\xy@@{\edef\nextii@{{\xy@minX@@}{\xy@maxX@@}{\xy@minY@@}{\xy@maxY@@}}%695 m\expandafter\xymatrix@insert@\nextii@}}P697\xydef@\xymatrix@insert@#1#2#3#4{\matrixorigin@698 m\L@c=+\X@c\advance\L@c-#1\relax699 m\R@c=-\X@c\advance\R@c+#2\relax700 m\D@c=+\Y@c\advance\D@c-#3\relax701 m\U@c=-\Y@c\advance\U@c+#4\relax702 m\Edge@c={\rectangleEdge}}эT\ofDo:ˉShouldhandleotherformsthanreferencepMoin!tatcenterof"1,1"#ιashardcoMdedhere.ѥInparticularfreferencepMoin!tatbaselineof"1,1"$ wouldbMeuseful.3..!Í3.5.2 Newco`ordinateformatsItispMossiblewithinen!triestorefertoalltheentriesoftheXYa-matrixusingthefollowingspMecialhcoMordiinatefforms: ffd +eGg9"M&rM, c"qP!ositionDandextentsofentryinrowrM޹,;columncq(topfleftis"1,1" d)ۂBg9[H&rM, c]qrDro!wsfbMelow,ccolumnsrightofcurrententryBg9[KIhhopi* ]qen!tryreachedbyhhopis;eachhhopiisoneofdulrqdescribingfone`mo!ve'ftoaneigh!bMorentry?ǍBg9[KIhhopi+ hplaceif]qhplaceifonstraigh!tlinetonon-emptyg[ ^hhopi*y]!,ffdSoEthecurren!tentryhasthesynonyms[0,0] ,[]Q,[rl],[ud],[dudu]&,etc.,asEwellasits`absolute'namef" frM, c".?㍑Thesefformsareusefulforde ningdiagramswheretheen!triesarerelated,e.g.,t~ps: SDict begin xyc endR?%Arz? " {1024 g}xy5S " {1024 g}xy-q " {1024 g}xy&ʐ" {24.75284 -24.0 l}xy%FB)%FCx"=" {-23.99998 0.0 dt}xy>ʍw!asftypMesetby$$\xy\xymatrix{A\POS[];[d]**\dir{~},(=[];[dr]**\dir{-}\\B&C\POS[];[l]**\dir{.}}\endxy$$эIffanen!tryoutsidetheXY p-matrixisreferencedthenanerrorisrepMorted.?㍑Indcasesev!eralmatricesareusedinthesamediagram,andtheyrefertoeachother,thenitisuseful&evenZinsidethematrixitselfR.Herefisanexampleusingthis:R1ps: SDict begin xyc end! ȟ%AF9%B %FCFT%FD1&;3232Ym" {3072 F d}xy*" {3072 F d}xy A" {3072 F d}xy" {3072 F d}xy 8" {3072 F d}xy832321ȍ΃j?" {1024 F d}xy (32" {1024 F d}xy32" {1024 F d}xy32" {1024 F d}xy 32" {1024 F d}xy΃jRg" {1024 F d}xyR5 (32" {1024 F d}xy32" {1024 F d}xy32" {1024 F d}xy 32" {1024 F d}xy32&;3232Ym" {3072 F d}xy*" {3072 F d}xy A" {3072 F d}xy" {3072 F d}xy 8" {3072 F d}xy832322͟ &A07mb" {0.0 0.00557 dt}xyhn@" {13.19357 3.96106 dt}xyhn@" {0.0 0.00557 dt}xy+w &B0DS" {9.77336 3.24973 dt}xy/nCȁ0:$|" {12.81387 4.14993 dt}xy+/nDMޟ0:y(0" {0.0 0.0034 dt}xyDa$"" {9.28088 3.33871 dt}xyDa$"" {0.0 0.00339 dt}xy*#F3232z" {3072 F d}xy ȍ" {3072 F d}xy " {3072 F d}xy" {3072 F d}xy" {3072 F d}xy " {3072 F d}xy32323@$`~" {1024 F d}xy-L vƍ32" {1024 F d}xy32" {1024 F d}xy32" {1024 F d}xy v32" {1024 F d}xy$:" {1024 F d}xy:hP vƍ32" {1024 F d}xy32" {1024 F d}xy32" {1024 F d}xy v32" {1024 F d}xy32F3232z" {3072 F d}xy ȍ" {3072 F d}xy " {3072 F d}xy" {3072 F d}xy" {3072 F d}xy " {3072 F d}xy3232B:w!asftypMeset(usingthe`frame'extensionand`arrow'feature)byP\xy T\xymatrix"*"{%>A&B\\>C&D}% T\POS*\frm{--} T\POS-(10,3) T\xymatrix{%>A'\ar@{.}["*"]&B'\ar@{.}["*"]\\>C'\ar@{.}["*"]&D'\ar@{.}["*"]}% T\POS*\frm{--}\endxyTheseXhandletheparsingandin!terpretationofbracketedhcoMordiinates;QthenumbMeriscomputedalreadyfatparsetime:804\xylet@\thematrixCOORD@@=\relax805\xylet@\thematrixprefix@@=\relax807\xydef@\xymatrixCOORD@{%808\ifx[\next%]809T\DN@[##1]{\xy@{[##1]}{\def\thematrixCOORD@@{[##1]}}%810#>\xyFN@\xymatrixCOORD@i##1]}%811\else\let\next@=\xymatrixsavedCOORD@\fi\next@}813\xydef@\xymatrixCOORD@i{\count@=\Row\count@@=\Col814\let\thematrixprefix@@=\xymatrixprefix@@815\ifcatA\noexpand\next816T\DN@##1{\expandafter\notrelaxorelse@\csnamexymatrixCOORD@i@##1\endcsname817#>\xymatrixCOORD@other}%[[818\else\ifx]\next\DN@]{\xymatrixCOORD@x}%819\else\ifx"\next\DN@"##1"{\DN@{##1}\edef\thematrixprefix@@{\codeof\next@}%820(\xyFN@\xymatrixCOORD@ii}%821\else\let\next@=\xymatrixCOORD@other\fi\fi\fi\next@}823\xydef@\xymatrixCOORD@i@u{\advance\count@\m@ne\xyFN@\xymatrixCOORD@ii}824\xydef@\xymatrixCOORD@i@d{\advance\count@\@ne\xyFN@\xymatrixCOORD@ii}b *tj354KCHAPTERf3.CFEAeTURES??hw825\xydef@\xymatrixCOORD@i@l{\advance\count@@\m@ne\xyFN@\xymatrixCOORD@ii} 826\xydef@\xymatrixCOORD@i@r{\advance\count@@\@ne\xyFN@\xymatrixCOORD@ii}P828\xydef@\xymatrixCOORD@ii{%829K\ifcatA\noexpand\next830 m\DN@##1{\expandafter\notrelaxorelse@\csnamexymatrixCOORD@i@##1\endcsname831\xymatrixCOORD@error}%832K\else\ifx]\next\DN@]{\xymatrixCOORD@x}%833K\else\let\next@=\xymatrixCOORD@xx\fi\fi\next@}835\xydef@\xymatrixCOORD@error#1{\DN@{#1}%836K\xyerror@{illegal(\codeof\next@):illegal[...]targetform}{}%837K\xyFN@\xymatrixCOORD@ii}839\xydef@\xymatrixCOORD@other#1,#2]{%840K\advance\count@#1\advance\count@@#2\xymatrixCOORD@x}TheEnextdoMestheactuallookupat,XY-timewherew!ecanstillprintanerrormessageusingthesa!vedforiginalform.847\xydef@\xymatrixCOORD@x{%848K\DN@##1{\xy@@{%849\expandafter\let\expandafter\next@\csnameQ@##1\endcsname850\ifx\next@\relax\xyerror@RC{##1}\else\next@\fi}%851 m\afterCOORD@}%852K\edef\nextii@{{\thematrixprefix@@\the\count@,\the\count@@}}%853K\expandafter\next@\nextii@}855\xydef@\xymatrixCOORD@xx{%856K\DN@##1{\xy@@{%857\expandafter\let\expandafter\next@\csnameQ@##1\endcsname858\ifx\next@\relax\xyerror@RC{##1}\else\next@\no@@\fi}%859 m\afterPLACE\xymatrixCOORD@after}%860K\edef\nextii@{{\thematrixprefix@@\the\count@,\the\count@@}}%861K\expandafter\next@\nextii@}863\xydef@\xymatrixCOORD@after{%864K\ifx]\next\DN@]{\afterCOORD@}%865K\else\let\next@=\xymatrixCOORD@error\fi\next@}867\xydef@\xyerror@RC#1{\xyerror@{inentry\string"\the\Row,\the\Col\string":868#iNo\codeof\thematrixCOORD@@\space(is\string"#1\string")fromhere}{}}!Cȍ3.5.3 SpacingandrotationAn!ymatrixcanhaveitsspacingandorientationchangedbyaddinghsetupi`switches'bMetween\xymatrixyandftheopMening{ f.ThefdefaultspacingbMet!weenfentriesofmatrixischangedwiththeswitchesffd w»@Rhaddfopihdimeni»@Chaddfopihdimeni»@fhaddopihdimeni>ffdLthatQc!hangerowspacing,|columnspacing,andbMoth,respectiv!elye,asQindicatedb!ythehaddopiandhdimeni,4wherethehdimenima!ybMeomittedandcanbegiv!enasoneofR ̹andCtoindicatethecurren!tvdDaluefoftheparameterinquestion.Note:therefisnodefault .c*tj3.5.CMAeTRIXfFEATURESŹ355??hwInfaddition,XY p-piccanbMeinstructedtousea` xedgrid'forthematrixwiththeswitc!hes ffd G9@!R 9@!C9@!ffd,thatensurethatthero!wspacing,columnspacing,andbMoth,respectiv!elye,pretendingthatalFlƹen!triesha!ve"thesizeofthelargesten!try(withoutmoMdifyingtherealsizeoftheentries,8Qofcourse,onlythespacing5{togettheen!triestorpealFly-have5thesamesizeusea@*.3..hsetupi5describMedinx3.5.4belo!w).ThefspMecialvdDarian!tsffd G]@!0]@!=hdimeniffdr荹pretendpthaten!trieshavezeroorhdimeniheightandwidthforcomputingrowandcolumnspacing;asabMo!veinsertingR orCjustafterthe!mak!esthisa ectonlytheroworncolumnspacing, e.g.,@!R0meansfthatthero!wspacingonlyisbMetweenthecentersoftherows. ōFinallye,fthespacingofthingsthataret!ypMesetcanbeadjustedseparately:ffd G»@Mhaddfopihdimeni»@Whaddfopihdimeni»@Hhaddfopihdimeni»@Lhaddfopihdimeniffdr荹will$adjusttheen!trymargin,entrywidth,entryheight,andlabMelseparationused(thelatterisactuallypassedftothearro!wfeature).P942\xylet@\xymatrix@addop@@=\relax944\xydef@\xymatrix@at{\def\xymatrix@addop@@{\xymatrix@R\xymatrix@C}% 945\ifx\space@\next\expandafter\DN@\space{\xyFN@\xymatrix@at}%gobblespaces946\else\ifx!\next\DN@!{\xyFN@\xymatrix@fix}%947\else\addPLUS@\ifx\next\let\next@=\xymatrix@addop948\else\addDASH@\ifx\next\let\next@=\xymatrix@addop949\else\addEQ@\ifx\next\let\next@=\xymatrix@addop950\else\ifx1\next\DN@1{\def\everyentry@{\vphantom(}%)951T\let\objectmargin@=\p@\xyFN@\xymatrix@setup}%952\else\ifxR\next\def\xymatrix@addop@@{\xymatrix@R}\DN@R{\xymatrix@addop}%953\else\ifxC\next\def\xymatrix@addop@@{\xymatrix@C}\DN@C{\xymatrix@addop}%954\else\ifxM\next\def\xymatrix@addop@@{\xymatrix@M}\DN@M{\xymatrix@addop}%955\else\ifxL\next\def\xymatrix@addop@@{\xymatrix@L}\DN@L{\xymatrix@addop}%956\else\ifxH\next\def\xymatrix@addop@@{\xymatrix@H}\DN@H{\xymatrix@addop}%957\else\ifxW\next\def\xymatrix@addop@@{\xymatrix@W}\DN@W{\xymatrix@addop}%958\else\ifx*\next\DN@*{\xyFN@\xymatrix@mods}%959\else\DN@{\afterDIRECTIONorEMPTY960({\xymatrix@rotation\xyFN@\xymatrix@setup}{%961.R\xyerror@{ororoneofRCMLHW*!expected}{}%962.R\xyFN@\xymatrix@setup}}%963\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\next@}P965\xydef@\xymatrix@fix{%966\ifx\space@\next\expandafter\DN@\space{\xyFN@\xymatrix@fix}%gobblespacesd}*tj356KCHAPTERf3.CFEAeTURES??hw967K\else\ifxR\next\let\mkHrow@=\Hrow@max\DN@R{\xyFN@\xymatrix@fix@}% 968K\else\ifxC\next\let\mkWcol@=\Wcol@max\DN@C{\xyFN@\xymatrix@fix@}%969K\else\let\mkHrow@=\Hrow@HWmax\let\mkWcol@=\Wcol@HWmax970 m\let\next@=\xymatrix@fix@971K\fi\fi\fi\next@}P973\xydef@\xymatrix@fix@{%974K\ifx\space@\next\expandafter\DN@\space{\xyFN@\xymatrix@fix@}%gobblespaces975K\else\ifx0\next\def\mkHWmax@{\HWmax@set\z@}\DN@0{\xyFN@\xymatrix@setup}%976K\else\addEQ@\ifx\next\addEQ@\DN@{\afterassignment\xymatrix@fix@x\dimen@ii=}%977K\else\let\mkHWmax@=\HWmax@max\let\next@=\xymatrix@setup\fi\fi\fi\next@}979\xydef@\xymatrix@fix@x{%980K\edef\mkHWmax@{\noexpand\HWmax@set{\the\dimen@ii}}\xyFN@\xymatrix@setup}982\xydef@\xymatrix@addop{\afterADDOP{\xyFN@\xymatrix@addop@}}983\xydef@\xymatrix@addop@{%984K\ifx\space@\next\expandafter\DN@\space{\xyFN@\xymatrix@addop@}%gobblespaces985K\else\ifxR\next\DN@R{\xy@{R}{}\dimen@ii=\xymatrixrowsep@\xymatrix@addop@x}%986K\else\ifxC\next\DN@C{\xy@{C}{}\dimen@ii=\xymatrixcolsep@\xymatrix@addop@x}%987K\else\DN@{\afterassignment\xymatrix@addop@x\dimen@ii=}\fi\fi\fi\next@}989\xydef@\xymatrix@addop@x{\expandafter\xy@\expandafter{\the\dimen@ii}{}%990K\xymatrix@addop@@\xyFN@\xymatrix@setup}992\xydef@\xymatrix@R{\Addop@@\xymatrixrowsep@\dimen@ii}993\xydef@\xymatrix@C{\Addop@@\xymatrixcolsep@\dimen@ii}995\xydef@\xymatrix@M{\Addop@@\objectmargin@\dimen@ii}996\xydef@\xymatrix@L{\Addop@@\labelmargin@\dimen@ii}998\xydef@\xymatrix@H{\Addop@@\objectheight@\dimen@ii}999\xydef@\xymatrix@W{\Addop@@\objectwidth@\dimen@ii}pThefspacingcanalsobMec!hangedforenentireT,[wEB Xgroupbythedeclarations8ffd\xymatrixrowsepThaddfopi{ fhdimeni}\xymatrixcolsepThaddfopi{ fhdimeni}ˉffdcThefdefaultspacingforbMothis2pcd.1014\xydef@\xymatrixrowsep@{2pc}1015\xydef@\xymatrixcolsep@{2pc}1017\xydef@\xymatrixrowsep{\afterADDOP{\Addop@@\xymatrixrowsep@}}1018\xydef@\xymatrixcolsep{\afterADDOP{\Addop@@\xymatrixcolsep@}}pT\o2Do:ݹoptimizefproMcessingofmatriceswithconstan!tgrid.Anfen!tirematrixcanbMerotatedbyaddingarotationhsetupioftheformffdն@v1hdirectioniˉffdThis$willsettheorien!tationoftherowstohdirectioni(thedefaultcorrespMondstor Cι,i.e.,rows$areorien!tedflefttoright).ThecoMdeisthe rstprocedureofthemainmatrixcodeabo!ve(l.3068չ);dfactorsareusedb!y\pre@emit6ݹ.e쏠*tj3.5.CMAeTRIXfFEATURESŹ357??hw3.5.4 EntriesThefappMearanceofasingleen!trycanbemodi edb!yenteringitas ffd pD*fhobjectihpMosihdecorifffd!ݍThispmak!estheparticularentryignoretheentrymoMdi ersandtypMesetasakernelobjectwiththe samefreferencepMoin!tasthe(centerof)thedefaultobjectwouldhavehad.AdditionalfobjecthmoMdi erisma!ybeaddedtoanotherwiseordinaryen!trybyusingtheforms effd&**[hshapMei] fhen!tryi&**{ehmoMdi eri*} fhen!tryifffdThej rstsetsthedefaulthshapMeiforobjects(cf.note1.4j),]jthesecondadefaultsize(c!hange,cf.note1.4g),andthelastmak!esitpMossibletoaddanyhobjectimoMdi erofx1.4,e.g.,forrecen-teringen!triesafterthedefaultentryformwhichisequivdDalentto`!C,+<28objepctmarpgin@>F'(withthee ectfofcen!teringtheobjectandaddtheobjepct margin )ftoallsides.#Exercise23.9: 5T!ypMesetfthefollowingdiagram:@˜Xps: SDict begin xyc end%AnB$shh0" {0.0 0.0 l}xy*.Xh0=A:5h0" {3072 10 /xy AB}xy:5h0" {21.75912 0.0 l}xy:5h0" {0.0 0.0 l}xyh0@ڟ2" {0.0 0.0 l}xy2h0=B@ڟ" {1024 10 /xy AB}xyh0@ڟV" {0.0 -22.38585 l}xyh0@ڟV" {0.0 0.0 l}xyorder-.Only&en!triesstartingwithasingle* completelyoverridethemoMdi ershsetupiwitha@* T-construction.ft*tj358KCHAPTERf3.CFEAeTURES??hw1143\xydef@\xymatrix@mods{% 1144K\ifx\space@\next\expandafter\DN@\space{\xyFN@\xymatrix@mods}%gobblespaces1145K\else\ifx[\next1146 m\DN@[##1]{\xy@{[##1]}{}\DN@####1{\def\entrymodifiers@{[##1]####1}}%1147 \expandafter\next@\expandafter{\entrymodifiers@}\xyFN@\xymatrix@setup}%]1148K\else\addPLUS@\ifx\next\DN@##1{\DNii@{##1}\xyFN@\xymatrix@change}%1149K\else\addDASH@\ifx\next\DN@##1{\DNii@{##1}\xyFN@\xymatrix@change}%1150K\else\addEQ@\ifx\next\DN@##1{\DNii@{##1}\xymatrix@set}%1151K\else\let\next@=\xymatrix@mods@error\fi\fi\fi\fi\fi\next@}P1153\xydef@\xymatrix@set{%1154K\begingroup\plainxy@1155K\afterVECTORorEMPTY\xymatrix@mods@x\xymatrix@mods@error}1157\xydef@\xymatrix@change{%1158K\addEQ@\ifx\next\DN@##1{\expandafter\DNii@\expandafter{\nextii@##1}%1159\expandafter\xy@\expandafter{\nextii@}{}\begingroup\plainxy@1160\afterVECTORorEMPTY\xymatrix@mods@x\xymatrix@mods@xx}%1161K\else\DN@{\expandafter\xy@\expandafter{\nextii@}{}\begingroup\plainxy@1162\afterVECTORorEMPTY\xymatrix@mods@x\xymatrix@mods@xx}\fi1163K\next@}1165\xydef@\xymatrix@mods@x{\expandafter\xy@\expandafter{\nextii@}{}%1166K\def\next@##1##2##3{\def\nextii@####1{##1##2####1##3}}%1167K\addGT@{\addLT@{\expandafter\next@\expandafter{\nextii@}}}%1168K\DN@##1{\gdef\tmp@@@{{##1}}}%1169K\edef\nextiii@{{\the\X@c,\the\Y@c}}%1170K\expandafter\expandafter\expandafter\next@1171 m\expandafter\expandafter\expandafter{\expandafter\nextii@\nextiii@}%1172K\endgroup1173K\DN@##1{\xy@{##1}{}\DN@####1{\def\entrymodifiers@{##1####1}}%1174\expandafter\next@\expandafter{\entrymodifiers@}\xyFN@\xymatrix@setup}%1175K\expandafter\next@\tmp@@@}1177\xydef@\xymatrix@mods@xx{\expandafter\xy@\expandafter{\nextii@}{}%1178K\expandafter\gdef\expandafter\tmp@@@\expandafter{\expandafter{\nextii@}}%1179K\endgroup1180K\DN@##1{\xy@{##1}{}\DN@####1{\def\entrymodifiers@{##1####1}}%1181\expandafter\next@\expandafter{\entrymodifiers@}\xyFN@\xymatrix@setup}%1182K\expandafter\next@\tmp@@@}1184\xydef@\xymatrix@mods@error{\endgroup1185K\xyerror@{Impossible@*.}{}\xyFN@\xymatrix@setup}1187\xywarnifdefined\entrymodifiers1188\expandafter\def\addEQ@\entrymodifiers#1{\def\entrymodifiers@{#1}\ignorespaces}1190\xydef@\entrymodifiers@{\entrybox}1192\xydef@\entrybox#1{\hbox{\setbox\z@=\objectbox{#1}%1193 m\L@p=\wdz@\D@p=\ht\z@\advance\D@p\dp\z@1194 m\dimen@=\objectwidth@\advance\dimen@-\L@p1195 m\ifdim\dimen@>\z@\advance\L@p\dimen@\R@p=.5\dimen@\else\R@p=\z@\fi1196 m\dimen@=\objectheight@\advance\dimen@-\D@p1197 m\ifdim\dimen@>\z@\advance\D@p\dimen@\fig*tj3.5.CMAeTRIXfFEATURESŹ359??hw1198 m\dimen@=\objectmargin@\advance\L@p2\dimen@\advance\D@p2\dimen@ 1199 m\U@p=-.5\ht\z@\advance\U@p.5\dp\z@\advance\R@p\objectmargin@1200 m\setboxz@h{\kern\R@p\raise\U@p\boxz@}%1201 m\wdz@=\L@p\ht\z@=.5\D@p\dp\z@=.5\D@p\boxz@}}pፑFinallye,fthefollo!wingisspMeciallysuitedfor`one-line'matricesincludedintext:肉ffd u@1<ffdqwillfinserta`mathstrut'(\vphantom(9|)in!toeachentrytomakeitscenteringappropriatefortext.Thisisjustanabbreviationusingthefollo!wingdeclarationwhichwillsetuphdecorithatshouldbMefinsertedbeforeev!erythingelseineachentrye.Initiallyitisemptybutffd u\everyentry={%hdecorif}<ffdqwillMinserthdecori rstineac!hentry;k'insidethecounterregisters\Rowand\Colaresettothecurrenten!try'sfrowandcolumn,respMectivelye.Forexample,P\everyentry={{\the\Row,\the\Col}}\xymatrix@*[F]@*[o]{{}\POS[];[r]**\dir{..}&\\{}\POS[];[ur]**\dir{--}}p፹willft!ypMesetзps: SDict begin xyc end4 (" {7.5929 7.5929 10.90833 10.90833 ox}xy1;11-h0" {23.97119 0.0 dt}xy47ZN(" {7.5929 7.5929 10.90833 10.90833 ox}xy/qƞ1;12# (" {7.5929 7.5929 10.90833 10.90833 ox}xy&Bv2;110#" {31.63843 27.18234 dd}xyC&V1243\xywarnifdefined\everyentry1244\expandafter\def\addEQ@\everyentry#1{\def\everyentry@{#1}\ignorespaces}1246\xylet@\everyentry@=\emptypNote:ѹWhenusingcompilation,>c!hangesto\everyentryH|and\entrymodifiers_zwillnotʹresultinrecompilationev!enwhentheconstructedmatrixchanges{youmayhavetoremovethe.xyc leman!uallye.#[Exercise23.11: 5Ho!wfdidtheauthortypMesetthefollowingdiagram?#xD%ps: SDict begin xyc endh09* " {0.0 21.0 -9.0 -21.0 9.0 ov}xy7Ğç:IrpootT5m" {0.0 -0.04689 l}xy$*-p" {2816 10 /xy AB}xy$*-p" {17.83553 -4.48834 l}xy$*-p" {0.0 -0.04688 l}xyh09* " {0.0 21.0 -9.0 -21.0 9.0 ov}xy6mM_*g" {10.0 0 90 o}xy9*g" {0.0 0.00098 l}xy_*g" {38.0 0.00098 l}xy_))h0" {10.0 -90 0 o}xyh0i)," {-0.00195 -16.00098 l}xyN*3h0" {-1024 10 /xy AB}xyN*3h0" {-16.99805 0.0 l}xyN*3h0" {0.0 0.0 l}xy!h09* " {0.0 21.0 -9.0 -21.0 9.0 ov}xy6mM#S*+h" {10.0 0 90 o}xy9*!h" {0.0 -0.00195 l}xyS*!h" {26.0 -0.00195 l}xyS*ZAh0" {10.0 -90 0 o}xyh0]*ZD" {0.00098 -21.99805 l}xy*Ag" {10.0 -180 -90 o}xy*Kg" {-52.00098 0.00195 l}xy)ڟh0" {10.0 90 180 o}xyh0)ڟ " {-0.00098 57.99805 l}xy$*h0" {3072 10 /xy AB}xy$*h0" {5.00098 0.0 l}xy$*h0" {0.0 0.0 l}xy3h09* " {0.0 21.0 -9.0 -21.0 9.0 ov}xy6mM6p1bcHints:[Theaarro!wfeaturewasusedtomakethebMendingarrowsandtheframeextensionfortheframesaroundfeac!hcell.h*tj360KCHAPTERf3.CFEAeTURES??hwEnd&loge1291\xyendinputP1293%$Log:xymatrix.doc,v$ 1294%Revision3.4 T1997/05/1801:14:25krisrose1295%Essentialbugfixes.1296%1297%Revision3.3 T1996/12/1903:31:56krisrose1298%Maintenancerelease1299%1300%Revision3.1 T1995/09/0520:31:32kris1301%Releasing!1302%1303%Revision3.0 T1995/07/0720:14:21kris1304%Majorreleasew/newUser'sGuide!1305%1306%Revision2.14 T1995/07/0602:56:02kris1307%Buglets...1308%1309%Revision2.13 T1995/07/0415:11:17kris1310%Readytoreleasev3?1311%1312%Revision2.12 T1994/10/2511:34:25kris1313%Interimreleasejustbeforev3[workswithAMS-LaTeX1.2]...1314%1315%Revision2.11 T1994/07/0510:37:32kris1316%Third3betarelease[bugfixes].1317%Experimentalgraphfeatureincluded(forECCT-94presentation).1318%1319%Revision2.9 T1994/06/0915:02:49kris1320%Release3beta.1321%1322%Revision2.8 T1994/04/0804:30:00kris1323%Second(bugfix)3alpharelease.1324%1325%Revision2.7 T1994/03/0802:06:01kris1326%Release3alpha.1327%1328%Revision2.6.9.1 T1994/03/0704:22:46kris1329%Lastinternal3alphaandpre-2.7release.1330%1331%NEWforversion2.7extractedfromdiagramcodeinxypic.doc2.6.1.1.gj3.6r|Graphfffeature׍V ers.p3.7Tb9yKristo erH.Rosehkrisrose@brics.dkiKThis/Hoptionimplemen!ts`XY g -graph',GaspMecialcpombinatoric}Tdrawinglanguagesuitable/Hfordiagramslik!e o!w=charts,cvdirectedgraphs,andvdDariousformsoftrees.Thebaseofthelanguageisreminiscen!toftheMPIC[5y]languagebMecauseitusesanotionofthe`curren!tlocation'andisbasedon`mo!ves'.Buti$*tj3.6.CGRAPHfFEAeTUREX361??hwthefcen!tralconstructionisa`map'combinatorthatisbMorrowedfromfunctionalprogramming. Header:P1%%$Id:xygraph.doc,v3.71999/02/1615:12:50krisroseExp$ 2%%3%%Xy-pic``GraphCombinatorfeature''option.4%%Copyright(c)1994-1997KristofferH.Rose5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fi26\xyprovide{graph}{Graphfeature}{\stripRCS$Revision:3.7$}%27K{KristofferH.~Rose}{krisrose@brics.dk}%28K{BRICS/ComputerScience,UniversityofAarhus,NyMunkegade,building540,29 mDK--8000Aarhus~C}׍sùXY#-graphfmak!esuseoffacilitiesofthe`arrow'featureoptionofx3.3,whichisthereforerequired.50\xyrequire{arrow}\xycatcodesSFigure߲3.5summarisesthesyn!taxofahgraphiwithnotesbMelow.AߣhgraphicanappMeareitherinan4XYP-pictureMF(ashdecori)or\stand-alone".3 Note:+Ify!ouuse\xygraph{.3..} #insideMFconstructionswhere1& #is1signi can!t(likeplainT,[wEB X's\halignorLAGT,[wEX'sarrayen!vironment)1thenmak!esuretoaddanfextralev!elofbracesaroundit. Ptarsing: 5TheqparserdoMesalmostev!erythingthatthisfeaturedoesbecauseitisallimplemen!teddirectlyfontopofotherconstructions,notablythek!ernelstackandtheharrowiconstruction.&eThegraphstatealw!ayshasthecurren!tvdDalueof?.bMothasthestacktopandinthespMecialhidi"?NODE" ɿ.162\xydef@\xygraph#1{\relax\graph#1\endgraph}164\xydef@\graph{\if\inxy@\DN@{\xy@@{\nter@{}}}% ffy̟ L͍ {-=3aInTfactL5A TuAEXuserscanuseagraphʖen9vironment.j/@*tj362KCHAPTERf3.CFEAeTURES??hw165K\else\DN@{\xy\xy@\xy{\nter@\endxy}}\fi\next@ 166K\xy@\xygraph{\senter@\idfromc@{?NODE}\spushc@167 m\expandafter\let\expandafter\next@\csnameQ@graphbase\endcsname168 m\ifx\next@\relax\setbase@\z@\z@{3pc}\z@169 m\else\expandafter\next@\fi}%170K\GRAPH[]}P172\xydef@\endgraph{\ignorespaces}174\xydef@\GRAPH{\xyFN@\GRAPH@}176\xydef@\GRAPH@{% 177%178%\W@{GRAPH:next=\meaning\next}%179%180K\ifx\space@\next\expandafter\DN@\space{\xyFN@\GRAPH@}%181K\else\ifx:\next\DN@:{\xy@:{}\expandafter\GRAPHar@\GRAPHeveryarrow@@}%182K\else\addDASH@\ifx\next183 m\addDASH@\DN@{\xy@-{}\expandafter\GRAPHar@\GRAPHeveryline@@}%184K\else\ifx(\next185 m\DN@({\xy@({\spushid@{?NODE}\idfromc@{?NODE}}\xyFN@\GRAPH@}%186K\else\ifx,\next187 m\DN@,{\xy@,{\cfromid@{?NODE}}\xyFN@\GRAPH@}%188K\else\ifx)\next189 m\DN@){\xy@){\cfromid@{?NODE}%190 \tests@\z@{\idfroms@{?NODE}\z@\spop@}{\xyerror@{)without(}{}}}%191\xyFN@\GRAPH@}%192K%HACK:ONLYPOPWHENNONEMPTY...WHYEVERNONEMPTY?193K\else\ifx\endgraph\next\DN@{\xy@@{\tests@\z@\spop@\sleave@\leave@}}%194K\else\ifx\end\next\DN@{\xy@@{\tests@\z@\spop@\sleave@\leave@}}%195K\else\ifx~\next196 m\DN@~{\xy@@{\enter@\cfromthec@}\afterNODE{\leave@\xyFN@\GRAPH@}!}%197K\else\DN@{\afterNODE{\xyFN@\GRAPH@}}%198K\fi\fi\fi\fi\fi\fi\fi\fi\fi\next@}P200\xylet@\GRAPHsaved@PATHafterPOS=\PATHafterPOS201\xylet@\GRAPHsaved@afterar@@=\afterar@@203\xydef@\GRAPHar@{%204K\let\PATHafterPOS=\afterNODE\let\afterar@@=\GRAPHafterar@\ar}206\xydef@\GRAPHafterar@{%207K\let\PATHafterPOS=\GRAPHsaved@PATHafterPOS208K\let\afterar@@=\GRAPHsaved@afterar@@209K\xy@@{\cfromid@{}}\xyFN@\GRAPH@}211\xylet@\afterNODE@@=\empty213\xydef@\afterNODE#1{\xy@@{\enter@\pfromthep@}%214K\DN@##1{\def\afterNODE@@{\xy@@\leave@\def\afterNODE@@{##1}#1}}%215K\expandafter\next@\expandafter{\afterNODE@@}%216K\xyFN@\NODE@}218\xylet@\theMOVE@@=\relax220\xydef@\NODE@{%k=*tj3.6.CGRAPHfFEAeTUREX363??hw221K\ifx\space@\next\expandafter\DN@\space{\xyFN@\NODE@}% 222K\else\ifx[\next\DN@[##1]{\xy@{[##1]}{}%223\def\theMOVE@@{[##1]}\xyFN@\MOVE@##1]}%224K\else\ifx"\next\DN@"##1"{%225\xy@{"##1"}{\cfromid@{##1}}\def\theMOVE@@{"##1"}\xyFN@\NODE@i}%226K\else\ifx?\next\DN@?{%227\xy@?{\cfromid@{?NODE}}\def\theMOVE@@{?}\xyFN@\NODE@i}%228K\else\ifx!\next\def\theMOVE@@{[]}\let\next@=\NODE@i229K\else\testAND@\iffalse230 m\DN@##1{\xy@{}{\pfromc@\advance\X@c\X@xbase\advance\Y@c\Y@xbase231 \czeroEdge@}\jumpMOVE@\xyFN@\NODE@i}%232K\else\ifx\\\next233 m\DN@\\{\xy@\\{\pfromc@\advance\X@c\X@xbase\advance\Y@c\Y@xbase234 \R@c=\X@ybase\U@c=\Y@ybase\intersect@235 \advance\X@c-\X@ybase\advance\Y@c-\Y@ybase236 \czeroEdge@}\def\theMOVE@@{\\}\xyFN@\NODE@i}%237K\else\xyerror@{Illegal:\string`\meaning\next\string'unexpected}{}%238K\fi\fi\fi\fi\fi\fi\fi\next@}P240\xydef@\jumpMOVE@@{&}241\xydef@\jumpMOVE@{\let\theMOVE@@=\jumpMOVE@@}243\xydef@\MOVE@{\xy@@{\count@=\z@\count@@=\z@}%244K\ifx\space@\next\expandafter\DN@\space{\xyFN@\MOVE@}%245K\else\ifcatA\noexpand\next\let\next@=\MOVE@letter246K\else\let\next@=\MOVE@x\fi\fi\next@}248\xydef@\MOVE@letter{%249K\ifx\space@\next\expandafter\DN@\space{\xyFN@\MOVE@letter}%250K\else\ifxu\next\DN@u{\xy@@{\advance\count@\@ne}\xyFN@\MOVE@letter}%251K\else\ifxd\next\DN@d{\xy@@{\advance\count@\m@ne}\xyFN@\MOVE@letter}%252K\else\ifxl\next\DN@l{\xy@@{\advance\count@@\m@ne}\xyFN@\MOVE@letter}%253K\else\ifxr\next\DN@r{\xy@@{\advance\count@@\@ne}\xyFN@\MOVE@letter}%254K\else\let\next@=\MOVE@x\fi\fi\fi\fi\fi\next@}256\xydef@\MOVE@x{%[[257K\ifx]\next\DN@]{\MOVE@hop\xyFN@\NODE@i}%258K\else\ifx(\next\DN@{\MOVE@hop\xyFN@\MOVE@place}%)259K\else\ifx!\next\DN@{\MOVE@hop\xyFN@\MOVE@place}%260K\else\ifx/\next\DN@{\MOVE@hop\xyFN@\MOVE@place}%261K\else\addLT@\ifx\next\DN@{\MOVE@hop\xyFN@\MOVE@place}%262K\else\addGT@\ifx\next\DN@{\MOVE@hop\xyFN@\MOVE@place}%263K\else\addDASH@\ifx\next\addDASH@\DN@{\xyerror@{-notimplementedyet}{}}%264K\else\xyerror@{illegal:\codeof\theMOVE@@}{}\let\next@=\NODE@i265K\fi\fi\fi\fi\fi\fi\fi\next@}267\xydef@\MOVE@hop{\xy@@{\pfromc@\czeroEdge@268 m\edef\next@{\the\count@@,\the\count@@}\expandafter\vfromcartesian@@\next@269 m\advance\X@c-\X@origin\advance\Y@c-\Y@origin270 m\advance\X@c\X@p\advance\Y@c\Y@p}}272\xydef@\MOVE@place{\xy@@\no@@\afterPLACE{\xyFN@\MOVE@}}274\xydef@\NODE@i{\let\next@=\NODE@xlH*tj364KCHAPTERf3.CFEAeTURES??hw275% 276%\W@{NODE@i:next=\meaning\next}%277%278K\ifx\space@\next\expandafter\DN@\space{\xyFN@\NODE@i}%279K\else\addEQ@\ifx\next280 m\addEQ@\DN@"##1"{\xy@{="##1"}{\idfromc@{##1}}\xyFN@\NODE@i}%281K\else\ifx!\next\DN@!{\xyFN@\NODE@escape}%282K\else\ifx:\next283K\else\addDASH@\ifx\next284K\else\ifx(\next285K\else\ifx,\next286K\else\ifx)\next287K\else\ifx~\next288K\else\ifx[\next289K\else\ifx"\next290K\else\ifx?\next291%292K\else\ifx^\next293K\else\ifx_\next294K\else\ifx|\next295K\else\addLQ@\ifx\next296K\else\addRQ@\ifx\next297%298K\else\testAND@\iffalse299K\else\ifx\\\next300%301K\else\ifx\endgraph\next302K\else\ifx\end\next303%304K\else\let\next@=\NODE@it305K\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\next@}P307\xydef@\NODE@x{\xy@@{\idfromc@{}}\afterNODE@@}309\xydef@\NODE@it{\let\PATHlabelit@@=\NODEit@\PATHit@}311{\xyuncatcodes\gdef\next{+}} 312\xylet@\GRAPHnodemodifiers@@=\next314\xydef@\NODEit@#1{%315K\DN@{#1}\ifx\next@\empty316 m\DN@{\expandafter\NODEit@i\expandafter{\GRAPHnodemodifiers@@}}%317K\else\DN@{\NODEit@i{#1}}\fi\next@}319\def\NODEit@i#1#2{\xy@{*#1{#2}}{\drop@{#1}{#2}}%320K\DN@{\addEQ@\ifx\next\else\xy@@{\idfromc@{#2}}\fi\NODE@i}%321K\xyFN@\next@}$5Notes썍3.6a.=Afmoveyistoestablishanewcurrpentnodeҡ.f3.6b.Teo@drpawFsomethingissimplytodra!walineorthespMeci edharrowifromthecurrentnoMdetomUo*tj3.6.CGRAPHfFEAeTUREX365??hwthespMeci edtargetnode.1Thetargetthenbecomesthecurren!tnode.1Allthefeaturesofarro!ws asFdescribMedinx3.3canbeused,Yinparticulararro!wscanbelabelledandsegmen!ted,Ybutwiththec!hangefthathpath-pMosimeanshnodeiasexplainedinnotex3.3e.z3.6c.rTeomapoveralistăissimplytosa!vethecurrentnoMdeandtheninterpretthehlistiwiththefollo!wingfconvention:) %Starteac!helementofthelistwiththecurrentnoMdeassavedandpasthepreviouslistelement, %and׊) %letfthe? vhnoMdeirefertothesa!vedfcurrentnoMdeexplicitlye.3.6d.The$& and$\\_spMecial$mo!vesareincludedtomakeitsimpletoenter`matrix-like'thingsasgraphs{ notethattheywillnotbMeautomaticallyaligned,;Jho!wever,for thaty!oushouldusethe!MZescapMe.W&չisthesameas[r]g"and\\xisthesameas[r]!{y+(0,-1)-(0,0)}z!lwhic!husesakernelescapMetomo!vestothe rstcolumninthenextro!w(wherethe rstcolumnisontheyd-axisofthecurrentcoMordinatefsystem).Note:IfLy!ouusetheform*{5.3..} I)forLnoMdesthenyoudon'thavetochangethemifyoudecidetousefanXY p-matrix.z3.6e.rT!ypMesetIhitiandmakeitthecurrentnoMde.Alsosaveshitiforlaterreferenceusing" )hidi":iifhitiisasimpleletter,:ordigit,thenjustas" ܚhiti";X5ifhitiisoftheform{text } 愹or*.3..{text } 愹thenas"Ktext "ɔ.WithȦthe= PadditionitispMossibletosa!veȦexplicitlyincasesev!eralnodesha!veȦthesametextoranoMdehasatextthatitisimpracticaltouseforreference.Infactusingtheformhiti=" Thidi" ]willonlyz1sa!ve0thenoMdeas" Ahidi"and0notas" Ahiti"!Asaspecialcon!venience0""(thus0theempt!yhidi)alw!aysOreferstothelastcompletednoMde,Isoadding="" afteranodemerelymeansitshouldnotbMefsa!vedunderitspropMername."<Exercise23.12: 5Ho!wfdidtheauthortypMesetthis?Jps: SDict begin xyc end%A'%A3h03" {mark 36.0 0.0 18.0 12.0 0.0 0.0 1.0 0.19751 q}xy$" {2660 10 /xy AB}xy3h07" {mark 36.0 0.0 18.0 12.0 0.0 0.0 0.19751 0.80261 q}xy3h03" {mark 36.0 0.0 18.0 12.0 0.0 0.0 1.0 0.80261 q}xyK%A3h04" {mark 72.0 0.0 54.0 12.0 36.0 0.0 1.0 0.19751 q}xyH" {2660 10 /xy AB}xy3h08" {mark 72.0 0.0 54.0 12.0 36.0 0.0 0.19751 0.80261 q}xy3h04" {mark 72.0 0.0 54.0 12.0 36.0 0.0 1.0 0.80261 q}xy3h04" {mark 0.0 0.0 36.0 -12.0 72.0 0.0 1.0 0.09863 q}xy53k" {-1298 10 /xy AB}xy3h08" {mark 0.0 0.0 36.0 -12.0 72.0 0.0 0.09863 0.90137 q}xy3h03" {mark 0.0 0.0 36.0 -12.0 72.0 0.0 1.0 0.9013 q}xyz3.6f.,Mo!vingnbyaseriesofhopsUissimplymovinginagridasthesequenceofdulr܆(fordown/up/left/right) indicates.TheogridisastandardcartesiancoMordinatesystemwith3pcunitunlessthecurren!tbaseisrede nedusing[]!{..3..} KcwithanappropriatehpMosiitioncon!taining: 0and::`asdescribedinfnote1.3d.T\o Do:]DescribMetheuseofhmo!veiswithhplaceisindetail.3..y&inparticular(1)`un!tilperpendiculartof.3..'and(2)`un!tilinterceptswith.3..'canbMecoded.3..z3.6g.=ThisV`escapMes'in!totheXY b`-pickernellanguageandinterpretsthehpMosihdecori.ThecurrentnoMdeisfthensettotheresultingcobjectandthegridfromtheresultingbpaseҡ.The"e ectofthehpMosihdecoricanbecompletelyhiddenfromXYF,-graphb!yenteringitas{\savehpMosifhdecori\restore}7c`.P430\xydef@\NODE@escape{%431K\ifx\space@\next\expandafter\DN@\space{\xyFN@\NODE@escape}%432K\else\ifcatA\noexpand\next\DN@##1{\rungraphescape@{##1}}%433K\else\ifcat!\noexpand\next\DN@##1{\rungraphescape@{##1}}%n^*tj366KCHAPTERf3.CFEAeTURES??hw434K\else\ifx\bgroup\next\DN@##1{\xy@{!{##1}}{}\POS##1\relax\xyFN@\NODE@i}% 435K\else\ifx~\next\let\next@=\graphsetup@436K\else\DN@{\xyerror@{Unknowngraph}{}\xyFN@\NODE@i}%437K\fi\fi\fi\fi\fi\next@}ƨ3.6h.ItbispMossibletoinsertahmatrixiinagraphpro!videdthe`matrix'optiondescribedinx3.5hasbMeengloaded:;ito!verwritesgthenodewiththeresultof\xymatrix7ahmatrixi.jAfterw!ardsthegraphgridissetasthetopleft`square'ofthematrix,i.e.,with]'4and]adjustedastheyw!orkintheftopleften!trye.ԪBug:[dr]Ւimmediately2afterthematrixwillw!orkasexpMected,Ie.g.,make2thecenterof"2,2"##thecurren!tnoMde,]butothersmightnot,]e.g.,[rr]ʹwillnotnecessarilyplacethecurrentnoMdeontopoff"1,3" d.P455\xydefcsname@{graph!M}#1#{\NODE@matrix{#1}}457\xydef@\NODE@matrix#1#2{\xyerror@{matrixfeaturenotloaded}{}\xyFN@\GRAPH@}459\xydef@\NODE@matrix@#1#2{\xy@{!M#1{#2}}{}% 460K\def\everyentry@{\GRAPHeveryentry}%461K\xymatrix#1{#2}%462K\let\everyentry@=\empty\insertmatrixingraph@\xyFN@\NODE@i}P464\xydef@\GRAPHeveryentry{\def\:{\ar}\def\="##1"{\xy@@{\idfromc@{##1}}}}466\xywithoption{matrix}{\let\NODE@matrix=\NODE@matrix@}468\xydef@\insertmatrixingraph@{% 469K\xy@@{\enter@{\cfromthec@\pfromthep@}%470K\expandafter\let\expandafter\next@\csnameQ@1,1\endcsname471K\ifx\next@\relax\else472 m\next@\swap@473 m\expandafter\let\expandafter\next@\csnameQ@1,2\endcsname474 m\ifx\next@\relax\else\next@\setbase@\X@p\Y@p\X@c\Y@c475\expandafter\let\expandafter\next@\csnameQ@2,1\endcsname476\ifx\next@\relax\else477 \next@\setbase@@{-\X@c}{-\Y@c}\fi\fi\fi478K\leave@}}3.6i.NItispMossibletoinsertahpolygonioranhellipseiinagraphpro!videdthepolyhoptiondescribedinx3.7orthearcvoptiondescribMedinx3.9hasbeenloaded,4respectiv!ely:itwillhavecasthecurren!t+noMde,pasthepreviousone,andthethecurren!tbasehasthehhopis[r]gTand[u]asbasev!ectors.ԪNote:olattices,/Oknots,etc.,canalsobMeusedbutnospecialsyn!taxisusefulsincethe!{޹.3..} gsyntaxisfadequate.P495\xydefcsname@{graph!P}#1#{\NODE@poly{#1}}496\xydef@\NODE@poly#1#2{\xyerror@{poly(gon)featurenotloaded}{}\xyFN@\GRAPH@}497\xydef@\NODE@poly@#1#2{\xy@{!P#1{#2}}{}\xypoly@#1{#2}\xyFN@\NODE@i}498\xywithoption{poly}{\let\NODE@poly=\NODE@poly@}500\xydefcsname@{graph!E}#1#{\NODE@arc{#1}!}501\xydef@\NODE@arc#1#2{\xyerror@{(ellipse+)arcfeaturenotloaded}{}%502K\xyFN@\GRAPH@}503\xydef@\NODE@arc@#1#2{\xy@{!E#1{#2}}{}\ellipse#1{#2}\xyFN@\NODE@i}orY*tj3.6.CGRAPHfFEAeTUREX367??hw504\xywithoption{arc}{\let\NODE@arc=\NODE@arc@}&t3.6j.,Thisfallo!wssettingofsomeparametersofthegraph:!~]1hsetupishouldbMeoneofthefollowing: ffѲd 0!~:{K8harro!wif}]includefwithev!ery: varrow 0!~-{K8harro!wif}]includefwithev!ery- vline0!~*{K8hmoMdi ersif}]includefwithev!erynon-* fnoMde0!~<hletteri{ fhgraphif}]de nefnewgraphescapMe! fhletteriٍffѲdpThesearedestructiv!e:!thepreviousvdDalueislost;kthedefaultisestablishedbythesequence!~:{}!~-{@{-}}-!~*{+}Semaking: ]createsimplearro!ws,&- gйplainlines,&andformattingdefaultnoMdesinmathfmoMdewiththedefaultobjectmargin.P530\xylet@\GRAPHeveryarrow@@=\empty532{\xyuncatcodes\gdef\next{@{-}}} 533\xylet@\GRAPHeveryline@@=\next535\xydef@\graphsetup@~{\xyFN@\graphsetup@i}537\xydef@\graphsetup@i{%538K\ifx:\next\DN@:##1{\def\GRAPHeveryarrow@@{##1}\xyFN@\NODE@i}%539K\else\addDASH@\ifx\next540 m\addDASH@\DN@##1{\def\GRAPHeveryline@@{##1}\xyFN@\NODE@i}%541K\else\ifx*\next\DN@*##1{\def\GRAPHnodemodifiers@@{##1}\xyFN@\NODE@i}%542K\else\ifcatA\next\DN@##1##2{\newgraphescape{##1}{##2}\xyFN@\NODE@i}%543K\else\DN@{\xyerror@{illegalgraphsetup\codeof\next@}{}\xyFN@\NODE@i}%544K\fi\fi\fi\fi\next@};~TheflastpMossibilit!yisalsoavdDailableasacommand =ffѲd \newgraphescape{hletteri}{ Thgraphi}ٍffѲd,that-mak!esthespMeci edescapegeneratethehgraphiasamacro;6withititispossibletopassargumen!tsftothehgraphiusingthestandardT,[wEB X\defKtmethoMd:Thedeclarationcode\newgraphescape{i}#1#2{K[]!{+0="o#2"*=<10pt>{};p!#1**{},"o#2" m-/4pt/*!E\cir<2pt>{} m+0;p-/:a(-30)24pt/**\dir{-}="X2" m;p-/:a(-60)24pt/="X1"**\dir{-} m;?(.5),="i#2", mp-/:a(-60)24pt/**\dir{-}, m"o#2"."i#2"."X1"."X2"}};~is2(rathercomplicatedk!ernelcoMde)thatmakesthenoMdeescape!idnt!ypesetan`in!verter'2orientedwithBthedcornerastheoutputwithinputnamed"in" Eandoutputnamed"on" Esuc!hthatthegraph\xygraph{[]!iR1("i1"[l]x-"i1")-[r]z};~willft!ypMeset|!ps: SDict begin xyc endA h0" {2.0 0 360 o}xy*! " {-20.91797 11.7627 l}xyh0*! <" {0.0 -24.0 l}xy? M" {20.91504 11.7627 l}xygx B" {0.0 0.0 l}xy*! " {29.87088 0.0 l}xy*! " {0.0 0.0 l}xydBçzC h0" {0.0 0.0 l}xyaBh0" {30.21307 0.0 l}xyaBh0" {0.0 0.0 l}xy/The3\newgraphescapehletterideclarationde nesamacrowithname\graph!3hletteri. DItissligh!tlycomplicatedbythefactthatweacceptLAGT,[wEB X-style[n]arguments(whenusingLAGT,[wEB X,p\*tj368KCHAPTERf3.CFEAeTURES??hwthat5is !^ ).KTh!usaninternalmacronamed\G!3hletteriisde nedusingtheappropriatecommand de nition5primitv!e;Zthisisinturninvokedby\graph!12WhletteriafteractivdDatingthehgraphiparser.P598\xydef@\newgraphescape#1{%599K\expandafter\let\expandafter\next\csnamegraph!#1\endcsname600K\ifx\next\relax\else\expandafter\let\csnameG!#1\endcsname=\undefined601 m\xywarning@{Redefininggraph!#1}\fi602K\expandafter\gdef\csnamegraph!#1\endcsname{%603 m\expandafter\let\expandafter\next\csnameG!#1\endcsname604 m\expandafter\xyFN@\expandafter\NODE@\next}%605K\DN@{\newgraphescape@{#1}}\xyFN@\next@}607\xydef@\newgraphescape@#1{%608K\ifx[\next%]609 m\ifx\newcommand\undefined\xyerror@{[n]onlywithLaTeX}%610 m\else611\def\nextiv@{\expandafter\newcommand\expandafter{\csnameG!#1\endcsname}}\fi612K\else\def\nextiv@{\expandafter\gdef\csnameG!#1\endcsname}\fi\nextiv@}614\xydef@\rungraphescape@#1{%615K\expandafter\let\expandafter\next\csnamegraph!#1\endcsname616K\ifx\next\relax\xyerror@{Undefinedgraph!#1}\fi\next}Thef nalexerciseillustratesm!uchfoftheabMo!ve.׍Exercise23.13: 5T!ypMesetps: SDict begin xyc end1çw@Mҟ;xz18ٟ"" {0.01625 -0.00969 l}xy=}" {2048 10 /cm AB}xy= -" {4.97017 -4.96689 l}xyA9 M" {4.14975 -4.14566 l}xyA9 M" {0.01627 -0.00809 l}xy@|zh01љ[w" {0.0 0.0 l}xy'P DU" {0 10 /cm AB}xyh0'P %" {-10.50266 -10.50266 l}xyh0+\" {-10.50293 -10.50293 l}xyh0+\" {0.0 0.0 l}xy2K6#yCD" {0.02708 -0.02052 l}xy'Pٟ&" {2048 10 /cm AB}xy'TQ')" {10.51949 -10.5162 l}xy1K0j" {9.99304 -9.99684 l}xy1K0j" {0.01949 -0.02708 l}xy@Mҟ%Qxz2h093A" {0.0 0.0 l}xy=}," {4096 10 /cm AB}xyh0=}/" {4.43532 4.43532 l}xyh0A-*" {4.13753 4.13753 l}xyh0A-*" {0.0 0.0 l}xyh0E"3" {0.0 0.0 l}xyE " {-3072 10 /cm AB}xyh0E\" {0.0 6.90953 l}xyh0Eυ" {0.0 6.90953 l}xyh0Eυ" {0.0 0.0 l}xy?MҟE" {0.0 -0.00002 l}xy/˟F" {-768 10 /cm AB}xy/˟G" {-15.67198 -3.91801 l}xy>)./" {-18.38922 -4.5973 l}xy>)./" {0.0 0.0 l}xy5-h0h" {mark -27.72015 -27.72015 -53.17603 -53.17603 -53.17603 -2.26428 -27.72015 -27.72015 1.0 0.05176 bz}xy]- " {-3072 10 /cm AB}xy5-h0h" {mark -27.72015 -27.72015 -53.17603 -53.17603 -53.17603 -2.26428 -27.72015 -27.72015 0.05176 0.5 bz}xy5-h0h" {mark -27.72015 -27.72015 -53.17603 -53.17603 -53.17603 -2.26428 -27.72015 -27.72015 0.5 0.94824 bz}xy5-h0g" {mark -27.72015 -27.72015 -53.17603 -53.17603 -53.17603 -2.26428 -27.72015 -27.72015 1.0 0.9483 bz}xy>)" {0.0 -0.04333 l}xy/ʟ" {2816 10 /cm AB}xy/,]" {18.39458 -4.62267 l}xy?Mҟ"t" {15.67744 -3.94601 l}xy?Mҟ"t" {0.0 -0.04332 l}xyAB =End&logލ662\xyendinput664%$Log:xygraph.doc,v$665%Revision3.7 T1999/02/1615:12:50krisrose666%Interimrelease(Y&Yfontsnowfree).667%668%Revision3.6 T1998/03/0601:28:05krisrose669%Releasing(withY&Yfonts).670%671%Revision3.4 T1997/05/1801:14:25krisrose672%Essentialbugfixes.673%674%Revision3.3 T1996/12/1903:31:56krisrose675%Maintenancerelease676%677%Revision3.2 T1995/09/1918:22:27kris678%Bugfixrelease.qؠ*tj3.7.CPOLeYGONfFEATUREI369??hw679% 680%Revision3.1 T1995/09/0520:31:32kris681%Releasing!682%683%Revision3.0 T1995/07/0720:14:21kris684%Majorreleasew/newUser'sGuide!685%686%Revision2.13 T1995/07/0415:11:17kris687%Readytoreleasev3?688%689%Revision2.12 T1994/10/2511:34:25kris690%Interimreleasejustbeforev3[workswithAMS-LaTeX1.2]...691%692%Revision2.11 T1994/07/0510:37:32kris693%Third3betarelease[bugfixes].694%Experimentalgraphfeatureincluded(forECCT-94presentation).695%696%Newforv3...3.7r|PolygonfffeatureqV ers.p3.7Tb9yRossMoQorehross@mpGce.mq.edu.auiThiskfeaturepro!videsameansforspMecifyingthelocationsofv!erticesforregularpolygons,3withan!yn!umbMera(A3)ofsides. P!olygonscanbeeasilydra!wnand/orthevertexpMositionsusedtoconstuctcomplex ~graphicswithinan(XY-picture. L$Man!ynon-regularpMolygonscanbespeci edb!ysettinganon-squarefbasis.]Header:P1%%$Id:xypoly.doc,v3.71999/02/1615:12:50krisroseExp$2%%3%%Xy-pic``Polygon''feature.4%%Copyright(c)1994-1997RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,re*tj370KCHAPTERf3.CFEAeTURES??hw22%%Inc.,675MassAve,Cambridge,MA02139,USA. 23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{poly}{Polygonfeature}{\stripRCS$Revision:3.7$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}Somefofthee ectsuse\arʹsomak!esurethe`arrow'featureisloaded.45\xyrequire{arrow}\xycatcodesv51\message{polygons,}=͍AfpMolygonismosteasilyspeci edusing.3.. OGffd {=R\xypolygonv[hn!umbMeri{}ywithfhn!umbMerisides;=R\xypolygonv[hn!umbMeri{htoki}lhtokifatv!ertices;=R\xypolygonv[hn!umbMeri{hobjecti}V߇withfageneralhobjectiateac!hvertex;Չffd6HereX hn!umbMeriisasequenceofdigits,vgivingthenumbMerofsides.Ifusedwithinan\xy .3..\endxyen!vironment thenthepMolygonwillbecen!tredonc,>thecurrenthpMosi.JHoweveran\xypolygonAйcanbMeފusedoutsidesuc!hanenvironment,as\stand-alone"pMolygon;thewholepicturemustbMespeci edwithinfthe\xypolygon@pcommand.IneithercasetheshapMeisobtainedb!yspacingverticesequallyaroundthe\unitcircle"withrespMectto thecurren!tbasis.Ifthisbasisisnon-squarethentheverticeswilllieonanellipse.NormallythepMolygon,Swith>Natmost12v!ertices,isorien!tedsoastohavea atbasewhenspMeci edusingastandardsquarebasis.WWithmorethan12v!erticestheorientationissuchthatthelinefromthecentretothe rst rv!ertexishorizontal,%pMointingtotheright.AnyotherdesiredorientationcanbMeobtained,%withan!yfnumbMerofvertices,byusingthe~={d.3..} 9CasdescribMedbelo!w.ߍThefgeneralformfor\xypolygon@pis.3.. %ffd0n\xypolygonhn!umbMeri"hpre xi"{ Thswitchesi.3..}qffd6wherefthe" fhpre xi"andfhswitc!hesiareoptional.TheiruseswillbMedescribedshortlye.Aq]\xypolygon@_kestablishesqjpMositionsforthev!erticesofapolygon.4A!tthesametimevdDariousthings ma!yDbMetypMeset,laccordingtothespeci edhswitc!hesi.AnhobjectimaybMedroppedateac!hvertex,\spMok!es"drawntothecentreandsuccessiveverticesmaybMeconnectedasthepolygon's\sides".^LabelsandfbreakscanbMespeci edalongthespok!esandsides.Eac!hvertexisautomaticallynamed:K2"1"0,"2",.3..,"{chn!umbMeri"@with"0"Aascentre.|Whenahpre xihas5)bMeengiv!en,names" hpre xi0" T,.3..," Xhpre xihn!umbMeri" ӹare5)usedinstead. %WhilethepolygoniseCbMeingconstructedthemacro\xypolynumDG*expandstothen!umbereCofsides,while\xypolynodeexpands)tothen!umbMer)ofeac!hvertex,spMokeandsideatthetimeitisproMcessed.'ThisoccursinthesLfollo!wingorder:wvertex11,sppoke1,vertex2,sppoke2,side1,vertex3,sppoke3,side2,.3..,vertex`$n,sppoke n,fsidenn1,side nwherethe nalsidejoinsthelastv!ertextothe rst.Themacro\xypolynameFMholdsthenameofthepMolygon,whic!hishpre xiifsupplied.InthiscasethefvdDalueof\xypolynum@pisalsostoredas\ fhpre xiNUMSIDES-P,accessibleoutsidethepMolygon.As9statedabMo!ve,Oua9polygonwithupto12v!erticesisorientedsoastohavea atbase,Ouwhendrawnusingbastandardsquarebasis.Itsv!erticesarenumbMeredinanti-cloMckwiseorder,#commencingwiththeoneathorizon!tal-rightofcen!tre,+orthesmallestangleabMovethis(seeexamplebMelow).Withs$*tj3.7.CPOLeYGONfFEATUREI371??hwmorel)than12v!erticesthenvertex"1"PisloMcatedonthehorizontal,wextendingtotherightfromcentre (assumingastandardsquarebasis).8Bypro!vidingaswitchoftheform~={Xhanglei} ٧thenthevertex"1"willbMelocatedontheunitcircleathangleian!ti-clockwisefrom\horizon!tal"|morecorrectlye,fromxtheX-directioninthebasistobMeusedwhensettingthepolygon, whic!hmaybMeestablishedusingaf~:{d.3..} 9Cswitc!h. n+*ops: SDict begin xyc endݟh hh0 " {-20.78467 -36.0 l}xy1Q h3{}}},{\xypolygon5"C"{~:{(-2.95,0):}~>{}}},{\xypolygon5"D"{~:{(-3.75,0):}}},{"A1"\PATH~={**@{-}}'"B1"'"C4"'"B2"},{"A2"\PATH~={**@{-}}'"B2"'"C5"'"B3"},{"A3"\PATH~={**@{-}}'"B3"'"C1"'"B4"},{"A4"\PATH~={**@{-}}'"B4"'"C2"'"B5"},{"A5"\PATH~={**@{-}}'"B5"'"C3"'"B1"},"C1";"D1"**@{-},"C2";"D2"**@{-},"C3";"D3"**@{-},"C4";"D4"**@{-},"C5";"D5"**@{-}\endxy^\Nextaahexagonalp!yramid,oharectangularbMoxandanoMctahedralcrystalspeci edasatriangularan!ti-prism.eNoticeӥho!wthe~:{.3..} fswitchӥisusedtocreatenon-squarebases,allowingtheillusionof3D-pMerspectiv!efintheresultingdiagrams:(VmIps: SDict begin xyc endh0ȟ" {-19.20007 38.40015 l}xyh0ȟ" {-7.88599 30.3411 l}xy$" {-11.31409 8.05905 l}xyh0ȟ" {16.11401 27.94095 l}xy Y" {-24.0 2.40015 l}xyh0ȟ" {28.79993 33.59985 l}xy" {-12.68591 -5.6589 l}xyh0ȟ" {17.48584 41.6589 l}xy Ph" {11.31409 -8.05905 l}xyh0ȟ" {-6.51416 44.05905 l}xy#PhwN" {24.0 -2.40015 l}xy0Π" {12.68591 5.6589 l}xy~ps: SDict begin xyc end" {-33.94116 0.0 l}xyh0 " {0.0 -23.7587 l}xy! IM" {33.94116 0.0 l}xyh0!" {0.0 23.7587 l}xy1" {-27.15302 0.0 l}xyh01@" {0.0 -20.36475 l}xy/X֟0p" {27.15302 0.0 l}xyh0/X֟j" {0.0 20.36475 l}xyh0/X֟j" {13.40585 24.70317 dt}xyh01j" {20.194 24.70317 dt}xyh01@" {20.194 28.09712 dt}xyh0/X֟@" {13.40585 28.09712 dt}xy(ps: SDict begin xyc endh0fd" {-20.78467 -25.19989 l}xy)Δ" {41.56934 0.0 l}xyh038" {-20.78467 25.19989 l}xyh05ğp" {13.07726 24.48026 l}xyc8" {-35.33417 0.0 l}xyh0(" {22.25691 -24.48026 l}xy5ğ" {32.93707 17.7603 dt}xyh0)fd" {-12.1524 -42.96019 dt}xyh0(" {-0.92485 18.47993 dt}xyΔ" {-40.64449 -18.47993 dt}xyh0c8p" {18.38757 42.96019 dt}xyh038" {2.3971 -17.7603 dt}xyh038" {0.0 0.0 dt}xyKL\xy/r2pc/:="A",+(.2,1.5)="B","A",{\xypolygon6{~:{(1,-.1):(0,.33)::}t!*tj372KCHAPTERf3.CFEAeTURES??hwK~<>{;"B"**@{-}}}}\endxy \quad\xy/r2pc/:{\xypolygon4"A"{~:{(0,.7)::}}},+(.7,1.1),{\xypolygon4"B"{~:{(.8,0):(0,.75)::}}},"A1";"B1"**@{.},"A2";"B2"**@{.},"A3";"B3"**@{.},"A4";"B4"**@{.}\endxy\quad\xy/r2pc/:{\xypolygon3"A"{~:{(0,.7)::}}},+(.7,1.1),{\xypolygon3"B"{~:{(-.85,0):(-.15,.8)::}}},"A1"\PATH~={**@{.}}'"B2"'"A3"'"B1"'"A2"'"B3"'"A1"\endxyG捍\xypolynode7zsimplyreadsthevdDalueofacoun!tercalled\xypolynode@H.Itissetinitiallyat-1,toindicatefnopMolygony!et.Thisisusedtoestablishthedefaultnamingincasepolygonsarenested.P211\xynew@{count}\xypolynode@\xypolynode@=\m@ne212\xydef@\xypolynode{\the\xypolynode@}214\xydef@\xypolyNUMSIDES@{}215\xydef@\xypolynum{\xypolyNUMSIDES@}G捑TeoIallo!wrecursionthevdDaluesof\xypolyNUMSIDES@dԹand\xypolynode@M,aresavedupMonenteringanf\xypolygon=# ,ftobMerestoredattheend.222\xydef@\xypolygon{\xypoly@}%224\xydef@\xypoly@{%225K\if\inxy@226 m\if\inxypoly@227\edef\next@{\noexpand\xy@@{\noexpand\nter@{\xypolynode@=\the\xypolynode@228 \noexpand\def\noexpand\xypolyNUMSIDES@{\xypolyNUMSIDES@}}}}%229 m\else230\DN@{\xy@@{\def\inxypoly@{TT}%231 \nter@{\def\inxypoly@{TF}\xypolynode@=\m@ne}}}%232 m\fi233K\else234 m\if\inxypoly@235\edef\next@{\noexpand\xy236 \noexpand\xy@@{\noexpand\nter@{\xypolyside=\the\xypolyside237Jk\noexpand\def\noexpand\xypolyNUMSIDES@{\xypolyNUMSIDES@}\endxy}}}%238 m\else239\DN@{\xy\xy@@{\def\inxypoly@{TT}%240 \nter@{\def\inxypoly@{TF}\xypolynode@=\m@ne\endxy}}}%241 m\fi242K\fi243K\next@\count@=\z@\xyFN@\xypoly@n}245\xydef@\inxypoly@{TF}%246\xydef@\xypoly@x{\xy@@{\leave@\leave@}}G捑Readfthen!umbMerfofv!erticesbyparsingdigits.252\xydef@\xypoly@n{%253K\DN@##1{\multiply\count@10\relax\advance\count@##1\relax\xyFN@\xypoly@n}%254K\ifx\space@\nextuD*tj3.7.CPOLeYGONfFEATUREI373??hw255 m\ifnum\count@>\z@\expandafter\DN@\space@{\xyFN@\xypoly@i}% 256 m\else\expandafter\DN@\space@{\xyFN@\xypoly@n}\fi257K\else\ifx0\next\else\ifx1\next\else\ifx2\next\else\ifx3\next258K\else\ifx4\next\else\ifx5\next\else\ifx6\next\else\ifx7\next259K\else\ifx8\next\else\ifx9\next260K\else\let\next@=\xypoly@i\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\next@}P262\xydef@\xypoly@i{\edef\xypolyNUMSIDES@{\the\count@}\xyFN@\xygetpolyprefix@}G捑Nextw!echeckwhetherapre xhasbMeensuppliedforcreatingthevertexnames.ۯIfsoitisstoredasX\xypolyPREFIX@T,whic!hXotherwiseexpandstoemptye..ThenumbMerofsidesisalsostoredusingthepre x.270\xydef@\xypolyPREFIX@{}%271\xydef@\xypolyPREFIX@@{}%272\xydef@\xypolyname{\xypolyPREFIX@}%274\xydef@\xygetpolyprefix@{%275K\ifx\next"\DN@"##1"{\def\xypolyPREFIX@@{##1}\expandafter276 m\edef\csname\xypolyPREFIX@@NUMSIDES\endcsname{\xypolyNUMSIDES@}%277 m\xypolyprefix@@}%278K\else279 m\ifnum\xypolynode@<\z@\def\xypolyPREFIX@@{}%280 m\else281\edef\xypolyPREFIX@@{\xypolyPREFIX@\the\xypolynode@,}%282 m\fi\DN@{\xypolyprefix@@}%283K\fi\next@}285\xydef@\xypolyprefix@@{%286K\expandafter\toks@\expandafter{\addEQ@\POS"}%287K\expandafter\addtotoks@\expandafter{\xypolyPREFIX@@0"\relax}%288K\the\toks@289K\ifnum\xypolynode@<\z@290 m\expandafter\def\expandafter\xypolyPREFIX@\expandafter{\xypolyPREFIX@@}%291 m\xy@@{\enter@{\xypolynode@=\the\xypolynode@292\noexpand\def\noexpand\xypolyPREFIX@{\xypolyPREFIX@}}\xypolynode@=\z@}%293K\else294 m\xy@@{\enter@{\xypolynode@=\the\xypolynode@295\noexpand\def\noexpand\xypolyPREFIX@{\xypolyPREFIX@}}\xypolynode@=\z@}%296 m\expandafter\def\expandafter\xypolyPREFIX@\expandafter{\xypolyPREFIX@@}%297K\fi298K\xypoly@@i}G捑Curren!tlyanytokensremainingbMeforetheopeningbracearediscarded,awithanaccompan!yingmessage.305\xydef@\xypoly@@i#1#{\begingroup306K\DN@{#1}\ifx\next@\empty\else307K\xywarning@{discardingunusedtokens:#1}\fi\xypoly@@}G捑Nextgitistimetoanalysethebracedinformation,'e.g.Rtosetswitc!hesand/oradjustthescale.Ifthisfinformationisempt!y{} thenthedefaultvdDaluesareused.316\xydef@\xypoly@@#1{\xypolydefaults@317K\DN@{#1}\ifx\next@\empty\DN@{\xypoly@@@}%v}*tj374KCHAPTERf3.CFEAeTURES??hw318K\else\DN@{\xyFN@\xypolyparams@#1~!}\fi\next@}P320\xydef@\xypolydefaults@{\def\xypolySCALE@{}% 321K\def\xypolySPOKES@{{}}\def\xypostSPOKES@{}\let\xypreSPOKES@\relax322K\def\xypolySIDES@{{-}}\def\xypostSIDES@{}\let\xypreSIDES@\relax323K\def\xypolyVERTEX@{}\def\xypolyALIGN@{}}$3V\ertexhobject: 5Unlessպthe rstc!haracteris~ d,signifyinga\switch",thenthewholeofthebracedmaterialw$istak!enasspMecifyingthehobjectiforeachvertex.PItwillbMetypMesetwithacircularedgeusing\drop[o]...DL,kexceptwhenthereisjustasingletok!enhtoki. gInthiscaseitisdroppMedas\drop=0{ihtoki},ha!vingzerosize.XAnobjectcanalsobMedroppedateac!hvertexusingtheswitch~*{.3..}ݹ,finwhic!hcaseitwillbMecircular,withthecurrentobjepctmargin}qapplied.'2Thefnextexampleillustratesthreedi eren!twaysofspMecifyinga\circ$ atthevertices. ύmps: SDict begin xyc end+%jSާh0(' " {-6.21167 10.75891 l}xy wd؟9" {-10.75891 6.21167 l}xy;wx9" {-12.42334 0.0 l}xyycާ60o" {-10.75891 -6.21167 l}xyC3h0" {-6.21167 -10.75891 l}xyC3 Oh060" {0.0 -12.42334 l}xyycϗh060x" {6.21167 -10.75891 l}xy;x" {10.75891 -6.21167 l}xy d؟" {12.42334 0.0 l}xy%jSϗ(' `" {10.75891 6.21167 l}xy+ Oh0.]P60" {6.21167 10.75891 l}xyh0.]P" {0.0 12.42334 l}xyhq۞hq۟h0" {21.2625 0.0 l}xyc{dy`Փ" {17.29187 12.57271 l}xyW{h0YۊD" {6.67532 20.48334 l}xyI;h0LD" {-6.67566 20.48334 l}xy=;AڟՓ" {-17.2922 12.57271 l}xy8q۞=uh0" {-21.2625 0.0 l}xy=; wAڟ " {-17.2922 -12.573 l}xyI;_h0L{" {-6.67566 -20.48364 l}xyW{_h0Yۊ{" {6.67532 -20.48364 l}xyc{ wdy` " {17.29187 -12.573 l}xy#y" {16.91664 7.00583 l}xyyS" {16.91664 7.00583 l}xyٍmg" {7.17029 17.08437 l}xyȇGog" {7.17029 17.08437 l}xyJS2" {-5.14069 5.0596 l}xyBg" {-7.17099 17.08437 l}xyፍg" {-7.17099 17.08437 l}xy5;" {-6.89413 0.0 l}xyvE}zS" {-16.91734 7.00583 l}xy~(y" {-16.91734 7.00583 l}xyh0|˟" {-5.14069 -5.0596 l}xyvE _~ W" {-16.91734 -7.0065 l}xy}ゟ|" {-16.91734 -7.0065 l}xyh0y`" {0.0 -7.49927 l}xyBg " {-7.17099 -17.08502 l}xyፍ" {-7.17099 -17.08502 l}xyϟ" {5.14069 -5.0596 l}xygٍGg" {7.17029 -17.08502 l}xyȇm" {7.17029 -17.08502 l}xyx" {6.89413 0.0 l}xy# _y|" {16.91664 -7.0065 l}xyW " {16.91664 -7.0065 l}xyh0nW &9" {5.14069 5.0596 l}xyh0Z@" {0.0 7.49927 l}xy.ē\xy/r2pc/:{\xypolygon12{\circ}}, +/r5pc/,{\xypolygon10{~<{-}~>{}{\circ}}},+/r5pc/,{\xypolygon8{~*{\circ}~<=}}\endxyv352{\xyuncatcodes\gdef\next{*=0}}353\xylet@\xypolynullvertex@=\next355{\xyuncatcodes\gdef\next{*[o]}}356\xylet@\xypolyvertex@=\next358{\xyuncatcodes\gdef\next{*+[o]}}359\xylet@\xypolywidevertex@=\next361\xydef@\xypolyparams@{%362K\ifx\space@\next\expandafter\DN@\space{\xyFN@\xypolyparams@}%363K\else\ifx\next~\DN@~{\xyFN@\xypolywhich@}%364K\else\ifx\next\bgroup\DN@##1~!{%365% T\ifx\empty\xypolyVERTEX@\def\xypolyVERTEX@{*[o]{##1}}%366 m\ifx\empty\xypolyVERTEX@\expandafter367\def\expandafter\xypolyVERTEX@\expandafter{\xypolyvertex@{##1}}%368 m\else\xypolyVERTEXerror@{##1}\fi\xypoly@@@}%369K\else\DN@##1~!{\DN@{##1}\ifx\next@\empty\else370\ifx\empty\xypolyVERTEX@\def\xypolyVERTEX@{*##1}%371%\checkpolytok@\xypolyVERTEX@{*=0}##1@@!\relax372 \expandafter\checkpolytok@\expandafter\xypolyVERTEX@373Jk\expandafter{\xypolynullvertex@}##1@@!\relax374\else\xypolyVERTEXerror@{##1}\fi\fi\xypoly@@@}%375K\fi\fi\fi\next@}377\xydef@\xypolyVERTEXerror@#1{\xywarning@{%378Kvertexalreadyspecified,discardingunusedtokens:#1}}$3Switctheswﱠ*tj3.7.CPOLeYGONfFEATUREI375??hwThefallo!wableswitchesaregiveninthefollowingtable:ffd U~:{g<.3..}ۍusefulfforrescaling. U~*{g{lM.3..}ۍlabMelsf&breaksonspok!es.U~>{g<.3..}ۍdirectionalffor\sides";U~><{lMharro!wi}ۍusefharro!wiforsides;U~>>{lM.3..}ۍlabMelsf&breaksonsides.ffd?Using~<<{harro!wi} Nor~><{harro!wi} NismostappropriatewhenarrowheadsarerequiredonthesidesorspMok!es,'corwhenlabels/breaksarerequired.Hereharro!wiisasin gure3.2,'csoitcanbeusedsimplytoospMecifythest!yleofdirectionaltobeused.pTh!us~<<{}#setseachspMokeasadefaultarrow,z,pMointingout!wardsGfromthecen!tre;f~<<{@{-}}:jsuppressesthearrowhead,Z$while~><{@{}}4xusesanemptyarrowalongLthesides.LabMelsandbreaksarespeci edwith~<>{J.3..} andL~>>{...}ݹ,^whereLthe{ .3..} useLthenotationfforahlabMeli,asin gure3.1.mWhenKnotipsorbreaksarerequiredthentheswitc!hes~<{I.3..} 0(andK~>{...} 0(areKsomewhatfaster,since~VlessproMcessingisneeded.eLabelscanstillbespeci edwith~<>{|.3..} 3and~V~>>{...}ݹ,Rbut~Vno!wusingthek!ernel'shplaceinotationof gure1.1.jInfactanykernelcoMdecanbeincludedusingtheseswitc!hes.Withy~<>otheycurrentpandcarethecentreandvertexrespMectivelye,whilefor~>>otheyareQthecurren!tvertexandthepreviousvertex.K(Theconnectionfromvertex" hnumbMeri"toQvertex"1"isdonelast.) Thep!yramidabMoveisanexampleofhowthiscanbMeused. Both~<{.3..} Jand~<<{harro!wi} ݹcan3bMespeci edtogether,Цbutonlythelastwillactuallybeused;similarlyfor~>{1.3..}andf~><{harro!wi}./ C"ps: SDict begin xyc end|" {-61.40643 -10.82813 l}xyh0*- #s" {40.08032 -47.76581 l}xyh0?" {21.32611 58.59393 l}xy Ƞd" {-50.71838 4.43628 dd}xyh0X$" {-4.43628 -50.71838 dd}xy;؟" {50.71838 -4.43628 dd}xyh0?" {4.43628 50.71838 dd}xypd" {-41.06415 10.23706 l}xyh0 H" {-22.40167 -36.21039 l}xyh07 "X" {27.17908 -32.09875 l}xyBt@|" {39.23877 15.85327 l}xyh0?" {-2.95203 42.21881 l}xyl@" {-33.82855 12.31183 dd}xy|" {-27.57788 -23.13995 dd}xyh0X$" {6.25177 -35.45398 dd}xy*- " {33.82855 -12.31183 dd}xyE L" {27.57788 23.13995 dd}xyh0?" {-6.25177 35.45398 dd}xy.L" {-16.88763 11.23517 l}xyTܟڵ0" {-20.28296 0.323 l}xy TgL" {-17.23645 -10.69574 l}xyh0`TO" {-8.71875 -18.31586 l}xyh0o4" {2.5686 -20.12201 l}xyh04" {13.03912 -15.53906 l}xy#Z!g" {19.37 -6.02216 l}xy6," {19.55127 5.40582 l}xyh0Dny " {13.52472 15.11664 l}xyh0G|q" {3.20471 20.03137 l}xyh0?" {-8.13263 18.58282 l}xyh0d\" {-2.15167 -3.9776 dt}xyh0," {-1.63367 -4.2138 dt}xyh0 h" {-1.09424 -4.38794 dt}xyh00" {-0.51581 -4.16711 dt}xyh0 H" {0.03625 -5.16357 dt}xyh0<" {0.57404 -4.15997 dt}xyh0ԟ \" {1.15466 -4.37091 dt}xyh0u8" {1.69409 -4.19238 dt}xyh00" {2.20496 -3.94519 dt}xyh0X̟$" {2.68286 -3.64032 dt}xyh0 vj" {3.11792 -3.27338 dt}xy" {3.50244 -2.857 dt}xy," {3.83423 -2.39612 dt}xy" {4.10449 -1.89679 dt}xy6 Vd" {4.30884 -1.36615 dt}xy!'" {4.44781 -0.81683 dt}xy$-!h " {4.51318 -0.25214 dt}xy(П!0" {4.51099 0.31586 dt}xy- 6x" {4.43463 0.8778 dt}xy1i\" {4.29016 1.42767 dt}xy5|" {4.07648 1.95282 dt}xy9IbL" {3.79962 2.4483 dt}xy{{--}}}},{\xypolygon5{~={40}}},{\xypolygon6{~={40}~>{{--}}}},{\xypolygon11{~={40}}},{\xypolygon50{~={40}~>.}},+/r8pc/,{\xypolygon7{~<<{@{-}}~><{}~<>{|*@{x}}~*{\alphanum}~>>{_{\alpha_\xypolynode^{}}}}}\endxy[UseHofthe~={F.3..} E%switc!hHwasdescribMedearlier.Whenusingthe~:{F.3..} E%morecanbMedonethanjustsettingthebase.bInfactan!ykernelcoMdecanbesuppliedhere.bItisprocessedpriortoan!yother0opartofthepMolygon.{Thegraphicsstatehascatthecen!treofthepolygon,Rpattheoriginofx *tj376KCHAPTERf3.CFEAeTURES??hwcoMordinates+withinthepictureandhasbasisunc!hangedfromwhathaspreviouslybeenestablished. Thefcurren!tpMointcwillbMeresettothecentrefollowinganycoMdeinterpretedusingthisswitch. $Note~that~!|vw!asappMendedby\xypoly@@7;,inordertoindicatetheendofthebracedtokens.ЖThemacro\xypolywhich@Qisthemainparser,with\xypoly@SPOKES@]Jdand\xypoly@SIDES@WhandlingthesubMcasesffor~< and~>%.P463\xydef@\xypolywhich@{%464Fe\ifx\next!\DN@!{\xypoly@@@}%465K\else\addLT@\ifx\next\addLT@\DN@{\xyFN@\xypoly@SPOKES@}%466K\else\addGT@\ifx\next\addGT@\DN@{\xyFN@\xypoly@SIDES@}%467K\else\addEQ@\ifx\next\addEQ@\DN@##1{%468 m\def\xypolyALIGN@{##1}\xyFN@\xypolyparams@}%469K\else\ifx:\next\DN@:##1{%470 m\def\xypolySCALE@{##1}\xyFN@\xypolyparams@}%471%\else\ifx\next*\DN@*##1{\def\xypolyVERTEX@{*+[o]{##1}}\xyFN@\xypolyparams@}%472K\else\ifx\next*\DN@*##1{\expandafter473\def\expandafter\xypolyVERTEX@\expandafter{\xypolywidevertex@{##1}}%474 m\xyFN@\xypolyparams@}%475K\fi\fi\fi\fi\fi\fi\next@}477\xydef@\xypoly@SPOKES@{%478ɿ\addLT@\ifx\next\addLT@\DN@##1{%479 m\def\xypreSPOKES@{##1}\def\xypolySPOKES@{}\xyFN@\xypolyparams@}%480K\else\addGT@\ifx\next\addGT@\DN@##1{%481 m\def\xypostSPOKES@{##1}\xyFN@\xypolyparams@}%482K\else\ifx\next\bgroup\DN@##1{%483 m\def\xypolySPOKES@{##1}\let\xypreSPOKES@\relax484 m\checkpolytok@\xypolySPOKES@{}##1@@!{\xyFN@\xypolyparams@}}%485K\else\DN@##1{%486 m\let\xypreSPOKES@\relax\def\xypolySPOKES@{{##1}}\xyFN@\xypolyparams@}%487K\fi\fi\fi\next@}489\xydef@\xypoly@SIDES@{%490ɿ\addLT@\ifx\next\addLT@\DN@##1{%491 m\def\xypreSIDES@{##1}\def\xypolySIDES@{}\xyFN@\xypolyparams@}%492K\else\addGT@\ifx\next\addGT@\DN@##1{%493 m\def\xypostSIDES@{##1}\xyFN@\xypolyparams@}%494K\else\ifx\next\bgroup\DN@##1{%495 m\def\xypolySIDES@{##1}\let\xypreSIDES@\relax496 m\checkpolytok@\xypolySIDES@{}##1@@!{\xyFN@\xypolyparams@}}%497K\else\DN@##1{%498 m\let\xypreSIDES@\relax\def\xypolySIDES@{{##1}}\xyFN@\xypolyparams@}%499K\fi\fi\fi\next@}Afurthersimpli cationexistsforsidesandspMok!eswithoutharrowis.ٙIfhtokiisasinglecharacterthen{~>1htoki,;~>{9htoki},;~>{{htoki}}all{spMecifythedirectional\dir{!:/htoki};similarlywiththe~<switc!h.#On7theotherhand,@compMounddirectionalsrequireallthebraces,e.g.#~>{{--}}5Nand~>{2{.}}0. $ThisDisac!hievedDwiththemacro\checkpolytok@#1#2#3#4@!#5whic!hhandlesthebarehtokicaseb!y:addingbracesaroundhtokiwhichhasbMeenpassedas#3z,vpreceedingitwith#2.Thisisthen\def'dtofthecon!trol-sequencenamepassedas#1%.Finallycontinuewiththecommandpassedas#5%.519\xydef@\checkpolytok@#1#2#3#4@!#5{\DNii@{#1}\DN@{#4}%520K\ifx\next@\empty\expandafter\def\nextii@{{}}%y-*tj3.7.CPOLeYGONfFEATUREI377??hw521K\else\ifx#4@\expandafter\def\nextii@{#2{#3}}\fi\fi#5}SAftercpallswitc!heshavebMeenprocessed,Ҳremainingtok!ensareusedtospecifythehobjectifor eac!hvertex..SuchtokenswillbMeuseddirectlyaftera\drop (,!rsocanincludeobjecthmodi erisasin gurey1.5.IfanhobjectihasalreadybMeenspeci ed,>usingthe~*BFswitc!h,thenthefollo!wingmessagewillfbMewrittentotheT,[wEB Xlog:#Xy-picWarning: Tvertexalreadyspecified,discardingunusedtokens:!withtok!ensattheendindicatingwhatremainsunproMcessed.ݽSimilarlyextratokensbMeforethe{ e.3..}generatefamessage:\YXy-picWarning:discardingunusedtokens:&xNested2PtolygonsElWhent\xypolygon@fistspMeci edwithineithera~<>{s.3..} Թort~>>{...} Թswitc!htforanotherpMolygon,~thenthe{innerpMolygoninheritsanamewhic!hincorporatesalsothen!umber{ofthepartonwhic!hitoccurs,as61giv!enby\xypolynodeCr.>Thisnameisaccessedusing\xypolyname.>Inthefollo!wingexampletheinnerlpMolygonisplacedusing~<>ֹinordertoeasilyadjustitsorien!tationtotheoutwarddirectionofthefspMok!es.R>ps: SDict begin xyc enduւE1эw " {8.0 ox}xyoZq1;11\q1;12h0؟4" {11.64162 11.48239 l}xyoZq1;13}=b" {-11.64162 11.48239 l}xyWXq1;14h0eP" {-11.64162 -11.48239 l}xyq֟" {11.64162 -11.48239 l}xy +ւE2э" " {8.0 ox}xy3q2;11q2;12)?=b" {-11.64162 11.48239 l}xyq2;13h0=P" {-11.64162 -11.48239 l}xyq2;14~" {11.64162 -11.48239 l}xyh044" {11.64162 11.48239 l}xy@芟" {-24.8529 0.0 l}xy ++\3')" " {8.0 ox}xyL3;11*L3;12h0=$+" {-11.64162 -11.48239 l}xyBL3;13~9:" {11.64162 -11.48239 l}xy3*L3;14h040" {11.64162 11.48239 l}xy)?" {-11.64162 11.48239 l}xyh0"芟 m," {0.0 -24.8529 l}xyu+\4')w " {8.0 ox}xyWX*L4;11oZBL4;12q֟9:" {11.64162 -11.48239 l}xy\*L4;13h0؟0" {11.64162 11.48239 l}xyoZL4;14}" {-11.64162 11.48239 l}xyh0e$+" {-11.64162 -11.48239 l}xyY'\" {24.8529 0.0 l}xyh0w" {0.0 24.8529 l}xya \xypolygon4{~:{/r5pc/:}K~<>{*\frm<8pt>{o}\xypolygon4{~:{/-2pc/:}~*{\xypolyname\xypolynode}}}K[o]=<5pc>{\xypolynode}}ZNoticew_ho!wnestedpMolygonsinheritnames"1,1" 5,"1,2" ?,.3..,"4,1" ?,...,"4,4"#xforw_theirv!ertices.Ifdahpre xiissuppliedattheoutermostlev!elthenthenamesbMecome:Z" hpre xii;1jv"` .~Specifyingdahpre xifortheinnerpMolygono!verridesthisnamingsc!heme.oThesamenamesmaythenbMerepeatedforNeac!hoftheinnerpMolygons,allowingaccessafterwardsonlytothelast|pMossiblyusefulasamemorysa!vingffeaturewhentheverticesarenotrequiredsubsequentlye.Feour@lev!elsofnestinggivesaquiteacceptable\Sierpinskigasket". Theinnermosttriangleispro!vided4by\blacktriangleV䲹fromtheA,[wM SsymbMolfontmsam5,Kqat5-pMointsize.FeurtherlevelscanbMeac!hievedAusingthePostScriptbac!kend,hNotherwiseAlinesegmen!tsbMecometoosmalltoberenderedusingXY p-fon!ts.z{}~<>{?\xypolygon3"a"{~:{(.5,0):}K~>{}~<>{?\xypolygon3"b"{~:{(.5,0):}K~>{}~<>{?\xypolygon3"c"{~:{(.5,0):}K~>{}~<>{?\xypolygon3"d"{~:{(.5,0):}~<>{?*!/d.5pt/=0\hbox{\blacktriangle}}}}}}}}}}}Notetheuseofnaminginthisexample;whenproMcessingthisman!ualitsaves13,000+wordsofmainmemoryfand10,000+stringc!haractersaswellas122stringsand319multi-lettercontrolsequences.P661\xydef@\xytrigerror@#1#2{\string#1onlyworksfrom0to12}663\xydef@\cosPIon#1{\ifcase#11\or-1\or0\or.5\or\halfroottwo\or 664K.809017\or\halfrootthree\or.900969\or.92388\or.939693\or.951057\or665K.959493\or.965926\else1\xytrigerror@\cosPIon{#1}\fi}666\xydef@\sinPIon#1{\ifcase#10\or0\or1\or\halfrootthree\or\halfroottwo\or667K.587785\or.5\or.433884\or.382683\or.34202\or.309017\or668K.281733\or.258819\else0\xytrigerror@\sinPIon{#1}\fi}P670\xydef@\cosTwoPIon#1{\ifcase#11\or1\or-1\or-\cosPIon3\or\cosPIon2\or671K\sinPIon{10}\or\cosPIon3\or.62349\or\cosPIon4\or672K.766044\or\cosPIon5\or.841254\or\cosPIon6%673K\else1\xytrigerror@\cosTwoPIon{#1}\fi}674\xydef@\sinTwoPIon#1{\ifcase#10\or0\or0\or-\sinPIon3\or\sinPIon2\or675K\cosPIon{10}\or\sinPIon3\or.781831\or\sinPIon4\or676K.642788\or\sinPIon5\or.540641\or\sinPIon6%677K\else0\xytrigerror@\sinTwoPIon{#1}\fi}679\xydef@\cosThreePIon#1{\ifcase#11\or-1\or0\or-1\or-\cosPIon4\or680K-\cosPIon5\or\cosPIon2\or.222521\or\sinPIon8\or\cosPIon3\or681K\sinTwoPIon5\or.654861\or\cosPIon4%682K\else1\xytrigerror@\cosThreePIon{#1}\fi}683\xydef@\sinThreePIon#1{\ifcase#10\or0\or1\or0\or\sinPIon4\or684K\sinTwoPIon5\or\sinPIon2\or.974928\or\cosPIon8\or\sinPIon3\or685K\cosTwoPIon5\or.75575\or\sinPIon4%686K\else0\xytrigerror@\sinThreePIon{#1}\fi}688\xydef@\cosFourPIon#1{\ifcase#11\or1\or1\or-\cosPIon3\or-1\or-\cosPIon5\or689K\cosTwoPIon3\or-\cosThreePIon7\or0\or.173648\or\cosTwoPIon5\or690K.415415\or\cosPIon3%691K\else1\xytrigerror@\cosFourPIon{#1}\fi}{Mr*tj3.7.CPOLeYGONfFEATUREI379??hw692\xydef@\sinFourPIon#1{\ifcase#10\or0\or0\or-\sinPIon3\or0\or\sinPIon5\or 693K\sinTwoPIon3\or\sinThreePIon7\or1\or.984808\or\sinTwoPIon5\or694K.909632\or\sinPIon3%695K\else0\xytrigerror@\sinFourPIon{#1}\fi}P697\xydef@\cosFivePIon#1{\ifcase#11\or-1\or0\or\cosPIon3\or-\cosPIon4\or698K-1\or-\cosPIon6\or-\cosTwoPIon7\or-\cosThreePIon8\or-\cosFourPIon9\or699K0\or.142315\or\sinPIon{12}%700K\else1\xytrigerror@\cosFivePIon{#1}\fi}701\xydef@\sinFivePIon#1{\ifcase#10\or0\or1\or-\sinPIon3\or-\sinPIon4\or702K0\or\sinPIon6\or\sinTwoPIon7\or\sinThreePIon8\or\sinFourPIon9\or1\or703K.989821\or\cosPIon{12}%704K\else0\xytrigerror@\sinFivePIon{#1}\fi}CoMordinatesfforthev!erticesarereadfromtrigonometrytablesusingcontrolsequences ,Ήffd KUM\cosPIon{nP\sinPIonMnM\cosTwoPIonnP\sinTwoPIonnM\cosThreePIonDSnP\sinThreePIon #nM\cosFourPIonnP\sinFourPIonLynM\cosFivePIonnP\sinFivePIonLynAffdߍwhic!h!expandtothevdDaluesofcosKttfe+ PA]n/,{...}pp"#6ipre-edge/arro!w,fsetby~><{...}pp"#7ipMost-edge:empt!yfwith\arsKtelse**@{...}ܹwheref{...}$ isfsetb!y~>{...}pp"#8ipMost-arro!w/edge,fsetby~>>{...}Affd WTheorganisationofthisinformationisdoneb!y\xyPolygon@@@#1[twhichtakesasasingleparameterafmacroappropriatetothen!umbMerfofsides,suppliedb!y\xypoly@@@=# .P751\xydef@\xypoly@@@{\count@=\xypolyNUMSIDES@\relax752\ifx\xypolyALIGN@\empty753T\ifnum\count@<\thr@@\relax\DN@{\xypolytoosmall@{\the\count@}}%754T\else\advance\count@-\thr@@755#>\ifcase\count@\DN@{\xyPolygon@@@\xytriangle@@}%756#>\or\DN@{\xyPolygon@@@\xysquare@@}%757#>\or\DN@{\xyPolygon@@@\xypentagon@@}%758#>\or\DN@{\xyPolygon@@@\xyhexagon@@}%|*tj380KCHAPTERf3.CFEAeTURES??hw759\or\DN@{\xyPolygon@@@\xyheptagon@@}% 760\or\DN@{\xyPolygon@@@\xyoctagon@@}%761\or\DN@{\xyPolygon@@@\xynonagon@@}%762\or\DN@{\xyPolygon@@@\xydecagon@@}%763\or\DN@{\xyPolygon@@@\xyundecagon@@}%764\or\DN@{\xyPolygon@@@\xydodecagon@@}%765\else\DN@{\xylargePolygon@{0}{\xypolyNUMSIDES@}}%766 m\fi\fi767K\else768 m\DN@{\xylargePolygon@{\xypolyALIGN@}{\xypolyNUMSIDES@}}%769K\fi\next@\xypoly@@@x}P771\xydef@\xypoly@@@x{\restore\xypoly@x}773\xydef@\xypolytoosmall@#1{\xyerror@{#1sidesistoofewforapolygon}}Here_12\addtotoks@{{0}}\fi822K\else823 m\expandafter\addtotoks@\expandafter{\expandafter{\xypolyALIGN@}}%824K\fi825K\expandafter\DN@\expandafter{\expandafter\endgroup\the\toks@}%826K\next@}PNoteho!w\endgroup= Fclosesthegrouping.AlltheinformationforthelayoutofthepMolygoniscon!tainedfin\xypolyNUMSIDES@cGlandthespMeci cpolygonmacrocon!tainedinthe nal\next@&$b.%HerefiswherethepMolygonsarede ned,individuallye.839\xydef@\xytriangle@@#1#2#3#4#5#6#7#8{%840K\xy@@{\xypolynode@=\@ne}%841K\POS#1"#30"+(0,1)#2="#31"#4#5\relax842K\xy@@{\advance\xypolynode@\@ne}%843K\POS"#30"#1"#30"+(-\cosPIon6,-.5)#2="#32"#4#5\relax844K\xy@@{\advance\xypolynode@\m@ne}%845K\POS"#31"#6"#32"#7#8\relax846K\xy@@{\advance\xypolynode@\tw@}%847K\POS"#30"#1"#30"+(\cosPIon6,-.5)#2="#33"#4#5\relax848K\xy@@{\advance\xypolynode@\m@ne}%849K\POS"#32"#6"#33"#7#8\relax850K\xy@@{\advance\xypolynode@\@ne}%851K\POS"#33"#6"#31"#7#8\relax}853\xydef@\xysquare@@#1#2#3#4#5#6#7#8{%854K\xy@@{\xypolynode@=\@ne}%855K\POS#1"#30"+(\halfroottwo,\halfroottwo)#2="#31"#4#5\relax856K\xy@@{\advance\xypolynode@\@ne}%857K\POS"#30"#1"#30"+(-\halfroottwo,\halfroottwo)#2="#32"#4#5\relax858K\xy@@{\advance\xypolynode@\m@ne}%859K\POS"#31"#6"#32"#7#8\relax860K\xy@@{\advance\xypolynode@\tw@}%861K\POS"#30"#1"#30"-(\halfroottwo,\halfroottwo)#2="#33"#4#5\relax862K\xy@@{\advance\xypolynode@\m@ne}%863K\POS"#32"#6"#33"#7#8\relax864K\xy@@{\advance\xypolynode@\tw@}%865K\POS"#30"#1"#30"-(-\halfroottwo,\halfroottwo)#2="#34"#4#5\relax866K\xy@@{\advance\xypolynode@\m@ne}%867K\POS"#33"#6"#34"#7#8\relax868K\xy@@{\advance\xypolynode@\@ne}%869K\POS"#34"#6"#31"#7#8\relax}871\xydef@\xypentagon@@#1#2#3#4#5#6#7#8{%872K\xy@@{\xypolynode@=\@ne}%873K\POS#1"#30"+(\cosPIon{10},\sinPIon{10})#2="#31"#4#5\relax874K\xy@@{\advance\xypolynode@\@ne}%~n*tj382KCHAPTERf3.CFEAeTURES??hw875K\POS"#30"#1"#30"+(0,1)#2="#32"#4#5\relax 876K\xy@@{\advance\xypolynode@\m@ne}%877K\POS"#31"#6"#32"#7#8\relax878K\xy@@{\advance\xypolynode@\tw@}%879K\POS"#30"#1"#30"+(-\cosPIon{10},\sinPIon{10})#2="#33"#4#5\relax880K\xy@@{\advance\xypolynode@\m@ne}%881K\POS"#32"#6"#33"#7#8\relax882K\xy@@{\advance\xypolynode@\tw@}%883K\POS"#30"#1"#30"-(\sinPIon5,\cosPIon5)#2="#34"#4#5\relax884K\xy@@{\advance\xypolynode@\m@ne}%885K\POS"#33"#6"#34"#7#8\relax886K\xy@@{\advance\xypolynode@\tw@}%887K\POS"#30"#1"#30"+(\sinPIon5,-\cosPIon5)#2="#35"#4#5\relax888K\xy@@{\advance\xypolynode@\m@ne}%889K\POS"#34"#6"#35"#7#8\relax890K\xy@@{\advance\xypolynode@\@ne}%891K\POS"#35"#6"#31"#7#8\relax}P893\xydef@\xyhexagon@@#1#2#3#4#5#6#7#8{%894K\xy@@{\xypolynode@=\@ne}%895K\POS#1"#30"+(1,0)#2="#31"#4#5\relax896K\xy@@{\advance\xypolynode@\@ne}%897K\POS"#30"#1"#30"+(.5,\halfrootthree)#2="#32"#4#5\relax898K\xy@@{\advance\xypolynode@\m@ne}%899K\POS"#31"#6"#32"#7#8\relax900K\xy@@{\advance\xypolynode@\tw@}%901K\POS"#30"#1"#30"+(-.5,\halfrootthree)#2="#33"#4#5\relax902K\xy@@{\advance\xypolynode@\m@ne}%903K\POS"#32"#6"#33"#7#8\relax904K\xy@@{\advance\xypolynode@\tw@}%905K\POS"#30"#1"#30"-(1,0)#2="#34"#4#5\relax906K\xy@@{\advance\xypolynode@\m@ne}%907K\POS"#33"#6"#34"#7#8\relax908K\xy@@{\advance\xypolynode@\tw@}%909K\POS"#30"#1"#30"-(.5,\halfrootthree)#2="#35"#4#5\relax910K\xy@@{\advance\xypolynode@\m@ne}%911K\POS"#34"#6"#35"#7#8\relax912K\xy@@{\advance\xypolynode@\tw@}%913K\POS"#30"#1"#30"-(-.5,\halfrootthree)#2="#36"#4#5\relax914K\xy@@{\advance\xypolynode@\m@ne}%915K\POS"#35"#6"#36"#7#8\relax916K\xy@@{\advance\xypolynode@\@ne}%917K\POS"#36"#6"#31"#7#8\relax}919\xydef@\xyheptagon@@#1#2#3#4#5#6#7#8{%920K\xy@@{\xypolynode@=\@ne}%921K\POS#1"#30"+(\sinTwoPIon7,\cosTwoPIon7)#2="#31"#4#5\relax922K\xy@@{\advance\xypolynode@\@ne}%923K\POS"#30"#1"#30"+(0,1)#2="#32"#4#5\relax924K\xy@@{\advance\xypolynode@\m@ne}%925K\POS"#31"#6"#32"#7#8\relax*tj3.7.CPOLeYGONfFEATUREI383??hw926K\xy@@{\advance\xypolynode@\tw@}% 927K\POS"#30"#1"#30"+(-\sinTwoPIon7,\cosTwoPIon7)#2="#33"#4#5\relax928K\xy@@{\advance\xypolynode@\m@ne}%929K\POS"#32"#6"#33"#7#8\relax930K\xy@@{\advance\xypolynode@\tw@}%931K\POS"#30"#1"#30"-(\sinThreePIon7,\cosThreePIon7)#2="#34"#4#5\relax932K\xy@@{\advance\xypolynode@\m@ne}%933K\POS"#33"#6"#34"#7#8\relax934K\xy@@{\advance\xypolynode@\tw@}%935K\POS"#30"#1"#30"-(\sinPIon7,\cosPIon7)#2="#35"#4#5\relax936K\xy@@{\advance\xypolynode@\m@ne}%937K\POS"#34"#6"#35"#7#8\relax938K\xy@@{\advance\xypolynode@\tw@}%939K\POS"#30"#1"#30"+(\sinPIon7,-\cosPIon7)#2="#36"#4#5\relax940K\xy@@{\advance\xypolynode@\m@ne}%941K\POS"#35"#6"#36"#7#8\relax942K\xy@@{\advance\xypolynode@\tw@}%943K\POS"#30"#1"#30"+(\sinThreePIon7,-\cosThreePIon7)#2="#37"#4#5\relax944K\xy@@{\advance\xypolynode@\m@ne}%945K\POS"#36"#6"#37"#7#8\relax946K\xy@@{\advance\xypolynode@\@ne}%947K\POS"#37"#6"#31"#7#8\relax}P949\xydef@\xyoctagon@@#1#2#3#4#5#6#7#8{%950K\xy@@{\xypolynode@=\@ne}%951K\POS#1"#30"+(\cosPIon8,\sinPIon8)#2="#31"#4#5\relax952K\xy@@{\advance\xypolynode@\@ne}%953K\POS"#30"#1"#30"+(\sinPIon8,\cosPIon8)#2="#32"#4#5\relax954K\xy@@{\advance\xypolynode@\m@ne}%955K\POS"#31"#6"#32"#7#8\relax956K\xy@@{\advance\xypolynode@\tw@}%957K\POS"#30"#1"#30"-(\sinPIon8,-\cosPIon8)#2="#33"#4#5\relax958K\xy@@{\advance\xypolynode@\m@ne}%959K\POS"#32"#6"#33"#7#8\relax960K\xy@@{\advance\xypolynode@\tw@}%961K\POS"#30"#1"#30"-(\cosPIon8,-\sinPIon8)#2="#34"#4#5\relax962K\xy@@{\advance\xypolynode@\m@ne}%963K\POS"#33"#6"#34"#7#8\relax964K\xy@@{\advance\xypolynode@\tw@}%965K\POS"#30"#1"#30"-(\cosPIon8,\sinPIon8)#2="#35"#4#5\relax966K\xy@@{\advance\xypolynode@\m@ne}%967K\POS"#34"#6"#35"#7#8\relax968K\xy@@{\advance\xypolynode@\tw@}%969K\POS"#30"#1"#30"-(\sinPIon8,\cosPIon8)#2="#36"#4#5\relax970K\xy@@{\advance\xypolynode@\m@ne}%971K\POS"#35"#6"#36"#7#8\relax972K\xy@@{\advance\xypolynode@\tw@}%973K\POS"#30"#1"#30"+(\sinPIon8,-\cosPIon8)#2="#37"#4#5\relax974K\xy@@{\advance\xypolynode@\m@ne}%975K\POS"#36"#6"#37"#7#8\relax)*tj384KCHAPTERf3.CFEAeTURES??hw976K\xy@@{\advance\xypolynode@\tw@}% 977K\POS"#30"#1"#30"+(\cosPIon8,-\sinPIon8)#2="#38"#4#5\relax978K\xy@@{\advance\xypolynode@\m@ne}%979K\POS"#37"#6"#38"#7#8\relax980K\xy@@{\advance\xypolynode@\@ne}%981K\POS"#38"#6"#31"#7#8\relax}P983\xydef@\xynonagon@@#1#2#3#4#5#6#7#8{%984K\xy@@{\xypolynode@=\@ne}%985K\POS#1"#30"+(\sinFourPIon9,\cosFourPIon9)#2="#31"#4#5\relax986K\xy@@{\advance\xypolynode@\@ne}%987K\POS"#30"#1"#30"+(\sinTwoPIon9,\cosTwoPIon9)#2="#32"#4#5\relax988K\xy@@{\advance\xypolynode@\m@ne}%989K\POS"#31"#6"#32"#7#8\relax990K\xy@@{\advance\xypolynode@\tw@}%991K\POS"#30"#1"#30"+(0,1)#2="#33"#4#5\relax992K\xy@@{\advance\xypolynode@\m@ne}%993K\POS"#32"#6"#33"#7#8\relax994K\xy@@{\advance\xypolynode@\tw@}%995K\POS"#30"#1"#30"+(-\sinTwoPIon9,\cosTwoPIon9)#2="#34"#4#5\relax996K\xy@@{\advance\xypolynode@\m@ne}%997K\POS"#33"#6"#34"#7#8\relax998K\xy@@{\advance\xypolynode@\tw@}%999K\POS"#30"#1"#30"+(-\sinFourPIon9,\cosFourPIon9)#2="#35"#4#5\relax1000K\xy@@{\advance\xypolynode@\m@ne}%1001K\POS"#34"#6"#35"#7#8\relax1002K\xy@@{\advance\xypolynode@\tw@}%1003K\POS"#30"#1"#30"-(\cosPIon6,\sinPIon6)#2="#36"#4#5\relax1004K\xy@@{\advance\xypolynode@\m@ne}%1005K\POS"#35"#6"#36"#7#8\relax1006K\xy@@{\advance\xypolynode@\tw@}%1007K\POS"#30"#1"#30"-(\sinPIon9,\cosPIon9)#2="#37"#4#5\relax1008K\xy@@{\advance\xypolynode@\m@ne}%1009K\POS"#36"#6"#37"#7#8\relax1010K\xy@@{\advance\xypolynode@\tw@}%1011K\POS"#30"#1"#30"+(\sinPIon9,-\cosPIon9)#2="#38"#4#5\relax1012K\xy@@{\advance\xypolynode@\m@ne}%1013K\POS"#37"#6"#38"#7#8\relax1014K\xy@@{\advance\xypolynode@\tw@}%1015K\POS"#30"#1"#30"+(\cosPIon6,-\sinPIon6)#2="#39"#4#5\relax1016K\xy@@{\advance\xypolynode@\m@ne}%1017K\POS"#38"#6"#39"#7#8\relax1018K\xy@@{\advance\xypolynode@\@ne}%1019K\POS"#39"#6"#31"#7#8\relax}1021\xydef@\xydecagon@@#1#2#3#4#5#6#7#8{%1022K\xy@@{\xypolynode@=\@ne}%1023K\POS#1"#30"+(1,0)#2="#31"#4#5\relax1024K\xy@@{\advance\xypolynode@\@ne}%1025K\POS"#30"#1"#30"+(\cosPIon5,\sinPIon5)#2="#32"#4#5\relax1026K\xy@@{\advance\xypolynode@\m@ne}%ʚ*tj3.7.CPOLeYGONfFEATUREI385??hw1027K\POS"#31"#6"#32"#7#8\relax 1028K\xy@@{\advance\xypolynode@\tw@}%1029K\POS"#30"#1"#30"+(\sinPIon{10},\cosPIon{10})#2="#33"#4#5\relax1030K\xy@@{\advance\xypolynode@\m@ne}%1031K\POS"#32"#6"#33"#7#8\relax1032K\xy@@{\advance\xypolynode@\tw@}%1033K\POS"#30"#1"#30"-(\sinPIon{10},-\cosPIon{10})#2="#34"#4#5\relax1034K\xy@@{\advance\xypolynode@\m@ne}%1035K\POS"#33"#6"#34"#7#8\relax1036K\xy@@{\advance\xypolynode@\tw@}%1037K\POS"#30"#1"#30"-(\cosPIon5,-\sinPIon5)#2="#35"#4#5\relax1038K\xy@@{\advance\xypolynode@\m@ne}%1039K\POS"#34"#6"#35"#7#8\relax1040K\xy@@{\advance\xypolynode@\tw@}%1041K\POS"#30"#1"#30"-(1,0)#2="#36"#4#5\relax1042K\xy@@{\advance\xypolynode@\m@ne}%1043K\POS"#35"#6"#36"#7#8\relax1044K\xy@@{\advance\xypolynode@\tw@}%1045K\POS"#30"#1"#30"-(\cosPIon5,\sinPIon5)#2="#37"#4#5\relax1046K\xy@@{\advance\xypolynode@\m@ne}%1047K\POS"#36"#6"#37"#7#8\relax1048K\xy@@{\advance\xypolynode@\tw@}%1049K\POS"#30"#1"#30"-(\sinPIon{10},\cosPIon{10})#2="#38"#4#5\relax1050K\xy@@{\advance\xypolynode@\m@ne}%1051K\POS"#37"#6"#38"#7#8\relax1052K\xy@@{\advance\xypolynode@\tw@}%1053K\POS"#30"#1"#30"+(\sinPIon{10},-\cosPIon{10})#2="#39"#4#5\relax1054K\xy@@{\advance\xypolynode@\m@ne}%1055K\POS"#38"#6"#39"#7#8\relax1056K\xy@@{\advance\xypolynode@\tw@}%1057K\POS"#30"#1"#30"+(\cosPIon5,-\sinPIon5)#2="#310"#4#5\relax1058K\xy@@{\advance\xypolynode@\m@ne}%1059K\POS"#39"#6"#310"#7#8\relax1060K\xy@@{\advance\xypolynode@\@ne}%1061K\POS"#310"#6"#31"#7#8\relax}P1063\xydef@\xyundecagon@@#1#2#3#4#5#6#7#8{%1064K\xy@@{\xypolynode@=\@ne}%1065K\POS#1"#30"+(\sinFourPIon{11},\cosFourPIon{11})#2="#31"#4#5\relax1066K\xy@@{\advance\xypolynode@\@ne}%1067K\POS"#30"#1"#30"+(\sinTwoPIon{11},\cosTwoPIon{11})#2="#32"#4#5\relax1068K\xy@@{\advance\xypolynode@\m@ne}%1069K\POS"#31"#6"#32"#7#8\relax1070K\xy@@{\advance\xypolynode@\tw@}%1071K\POS"#30"#1"#30"+(0,1)#2="#33"#4#5\relax1072K\xy@@{\advance\xypolynode@\m@ne}%1073K\POS"#32"#6"#33"#7#8\relax1074K\xy@@{\advance\xypolynode@\tw@}%1075K\POS"#30"#1"#30"+(-\sinTwoPIon{11},\cosTwoPIon{11})#2="#34"#4#5\relax1076K\xy@@{\advance\xypolynode@\m@ne}%*tj386KCHAPTERf3.CFEAeTURES??hw1077K\POS"#33"#6"#34"#7#8\relax 1078K\xy@@{\advance\xypolynode@\tw@}%1079K\POS"#30"#1"#30"+(-\sinFourPIon{11},\cosFourPIon{11})#2="#35"#4#5\relax1080K\xy@@{\advance\xypolynode@\m@ne}%1081K\POS"#34"#6"#35"#7#8\relax1082K\xy@@{\advance\xypolynode@\tw@}%1083K\POS"#30"#1"#30"-(\sinFivePIon{11},\cosFivePIon{11})#2="#36"#4#5\relax1084K\xy@@{\advance\xypolynode@\m@ne}%1085K\POS"#35"#6"#36"#7#8\relax1086K\xy@@{\advance\xypolynode@\tw@}%1087K\POS"#30"#1"#30"-(\sinThreePIon{11},\cosThreePIon{11})#2="#37"#4#5\relax1088K\xy@@{\advance\xypolynode@\m@ne}%1089K\POS"#36"#6"#37"#7#8\relax1090K\xy@@{\advance\xypolynode@\tw@}%1091K\POS"#30"#1"#30"-(\sinPIon{11},\cosPIon{11})#2="#38"#4#5\relax1092K\xy@@{\advance\xypolynode@\m@ne}%1093K\POS"#37"#6"#38"#7#8\relax1094K\xy@@{\advance\xypolynode@\tw@}%1095K\POS"#30"#1"#30"+(\sinPIon{11},-\cosPIon{11})#2="#39"#4#5\relax1096K\xy@@{\advance\xypolynode@\m@ne}%1097K\POS"#38"#6"#39"#7#8\relax1098K\xy@@{\advance\xypolynode@\tw@}%1099K\POS"#30"#1"#30"+(\sinThreePIon{11},-\cosThreePIon{11})#2="#310"#4#5\relax1100K\xy@@{\advance\xypolynode@\m@ne}%1101K\POS"#39"#6"#310"#7#8\relax1102K\xy@@{\advance\xypolynode@\tw@}%1103K\POS"#30"#1"#30"+(\sinFivePIon{11},-\cosFivePIon{11})#2="#311"#4#5\relax1104K\xy@@{\advance\xypolynode@\m@ne}%1105K\POS"#310"#6"#311"#7#8\relax1106K\xy@@{\advance\xypolynode@\@ne}%1107K\POS"#311"#6"#31"#7#8\relax}P1109\xydef@\xydodecagon@@#1#2#3#4#5#6#7#8{%1110 m\xy@@{\xypolynode@=\@ne}%1111K\POS#1"#30"+(\cosPIon{12},\sinPIon{12})#2="#31"#4#5\relax1112K\xy@@{\advance\xypolynode@\@ne}%1113K\POS"#30"#1"#30"+(\halfroottwo,\halfroottwo)#2="#32"#4#5\relax1114K\xy@@{\advance\xypolynode@\m@ne}%1115K\POS"#31"#6"#32"#7#8\relax1116K\xy@@{\advance\xypolynode@\tw@}%1117K\POS"#30"#1"#30"+(\sinPIon{12},\cosPIon{12})#2="#33"#4#5\relax1118K\xy@@{\advance\xypolynode@\m@ne}%1119K\POS"#32"#6"#33"#7#8\relax1120K\xy@@{\advance\xypolynode@\tw@}%1121K\POS"#30"#1"#30"-(\sinPIon{12},-\cosPIon{12})#2="#34"#4#5\relax1122K\xy@@{\advance\xypolynode@\m@ne}%1123K\POS"#33"#6"#34"#7#8\relax1124K\xy@@{\advance\xypolynode@\tw@}%1125K\POS"#30"#1"#30"-(\halfroottwo,-\halfroottwo)#2="#35"#4#5\relax1126K\xy@@{\advance\xypolynode@\m@ne}%ᱠ*tj3.7.CPOLeYGONfFEATUREI387??hw1127K\POS"#34"#6"#35"#7#8\relax 1128K\xy@@{\advance\xypolynode@\tw@}%1129K\POS"#30"#1"#30"-(\cosPIon{12},-\sinPIon{12})#2="#36"#4#5\relax1130K\xy@@{\advance\xypolynode@\m@ne}%1131K\POS"#35"#6"#36"#7#8\relax1132K\xy@@{\advance\xypolynode@\tw@}%1133K\POS"#30"#1"#30"-(\cosPIon{12},\sinPIon{12})#2="#37"#4#5\relax1134K\xy@@{\advance\xypolynode@\m@ne}%1135K\POS"#36"#6"#37"#7#8\relax1136K\xy@@{\advance\xypolynode@\tw@}%1137K\POS"#30"#1"#30"-(\halfroottwo,\halfroottwo)#2="#38"#4#5\relax1138K\xy@@{\advance\xypolynode@\m@ne}%1139K\POS"#37"#6"#38"#7#8\relax1140K\xy@@{\advance\xypolynode@\tw@}%1141K\POS"#30"#1"#30"-(\sinPIon{12},\cosPIon{12})#2="#39"#4#5\relax1142K\xy@@{\advance\xypolynode@\m@ne}%1143K\POS"#38"#6"#39"#7#8\relax1144K\xy@@{\advance\xypolynode@\tw@}%1145K\POS"#30"#1"#30"+(\sinPIon{12},-\cosPIon{12})#2="#310"#4#5\relax1146K\xy@@{\advance\xypolynode@\m@ne}%1147K\POS"#39"#6"#310"#7#8\relax1148K\xy@@{\advance\xypolynode@\tw@}%1149K\POS"#30"#1"#30"+(\halfroottwo,-\halfroottwo)#2="#311"#4#5\relax1150K\xy@@{\advance\xypolynode@\m@ne}%1151K\POS"#310"#6"#311"#7#8\relax1152K\xy@@{\advance\xypolynode@\tw@}%1153K\POS"#30"#1"#30"+(\cosPIon{12},-\sinPIon{12})#2="#312"#4#5\relax1154K\xy@@{\advance\xypolynode@\m@ne}%1155K\POS"#311"#6"#312"#7#8\relax1156K\xy@@{\advance\xypolynode@\@ne}%1157K\POS"#312"#6"#31"#7#8\relax}v1161\xydef@\xylargePolygon@#1#2{%1162K\dimen@=#1\p@1163K\xyPolygon@@@\xypolygon@@}1164%\xyerror@{Sorry,polygonswith#2sidesarenotimplemented;maximum12.}{}} -WeefneedaloMopingconstructionthatwillnotin!terferewithothersusedatahighlevel.P1171\xydef@\xypolyrepeat@{\fi}1172\xydef@\xypolybody@{}1173\xydef@\xypolyiterate@{\xypolybody@\expandafter\xypolyiterate@\else\fi}1174\xydef@\xypolyloop@#1\xypolyrepeat@{\def\xypolybody@{#1}\xypolyiterate@}Thecoun!ter\xypolynode@Le.keepstrackofthecurrentvertex,(spMokeandside.{Sincetheusermayc!hoMoseWetoplaceanother\xypolygonB+nalonganysuchpiece,itisnecessarytocalculatetheangleforeac!hfvertexafresh,usingonlyinformationpassedviatheparameters#1%,.3..,#9 T.P1183\xydef@\xypolygon@@#1#2#3#4#5#6#7#8#9{\save1184K\vfromcartesianangle@{#9}\edef\next@{\the\X@c,\the\Y@c\addGT@\empty}%1185 m\xy@@{\xypolynode@=\@ne}%1186 m\toks@={\POS#1"#30"+}%*tj388KCHAPTERf3.CFEAeTURES??hw1187 m\expandafter\expandafter\expandafter\addtotoks@\expandafter 1188\expandafter\expandafter{\addLT@\empty}%1189 m\expandafter\addtotoks@\expandafter{\next@#2="#31"#4#5\relax}%1190 m\xy@@\dontleave@\the\toks@1191%1192K\xypolyloop@1193 m\dimen@=360\p@\count@@=\xypolyNUMSIDES@\relax\advance\dimen@.5\count@@1194 m\divide\dimen@\xypolyNUMSIDES@\relax1195 m\multiply\dimen@\xypolynode@\relax\advance\dimen@#9\p@1196 m\edef\tmp@{%1197 \noexpand\vfromcartesianangle@{\expandafter\removePT@\the\dimen@}}%1198 m\tmp@\edef\next@{\the\X@c,\the\Y@c\addGT@\empty}%1199 m\xy@@{\advance\xypolynode@\@ne}\count@=\xypolynode@1200 m\toks@={\POS"#30"#1"#30"+}\edef\nextii@{\the\count@}%1201 m\expandafter\expandafter\expandafter\addtotoks@\expandafter1202\expandafter\expandafter{\addLT@\space}%1203 m\expandafter\addtotoks@\expandafter{\next@#2="#3}%1204 m\expandafter\addtotoks@\expandafter{\nextii@"#4#5\relax}%1205 m\the\toks@1206%1207 m\count@=\xypolynode@\xy@@{\advance\xypolynode@\m@ne}%1208 m\toks@={\POS"#3}\expandafter\addtotoks@\expandafter{\the\xypolynode@"#6"#3}%1209 m\expandafter\addtotoks@\expandafter{\the\count@"#7#8\relax}%1210 m\the\toks@1211 m\xy@@{\advance\xypolynode@\@ne}\count@=\xypolyNUMSIDES@\relax1212 m\ifnum\xypolynode@<\count@\relax\xypolyrepeat@1213%1214 m\toks@={\POS"#3}%1215 m\expandafter\addtotoks@\expandafter{\xypolyNUMSIDES@"#6"#31"#7#8\relax}%1216 m\the\toks@\restore}(The2end&LogԬDOCMODE3P12261227\xyendinput1229%$Log:xypoly.doc,v$1230%Revision3.7 T1999/02/1615:12:50krisrose1231%Interimrelease(Y&Yfontsnowfree).1232%1233%Revision3.4 T1997/05/1801:13:24ross1234%Essentialbugfixes.1235%1236%Revision3.3 T1996/12/1809:28:35ross1237%cosmeticchangesindocumentation1238%1239%Revision3.1 T1995/09/0520:28:57ross1240%Releasingversion3.1!1241%(*tj3.8.CLAeTTICEfANDWEBFEATURE389??hw1242%Revision3.0 T1995/07/0720:13:19ross 1243%Majorreleasew/newUser'sGuide!1244%1245%Revision2.13 T1995/07/0415:04:51ross1246%Readyforreleaseofv3.1247%1248%Revision2.12 T1994/10/2503:01:14ross1249%Final3betarelease[bugfixes&AMS-LaTeXfitting].1250%1251%CreatedbyRossMoore,September1994.8<3.8r|LatticeffandwebfeatureV ers.p3.3Tb9yRossMoQorehross@mpGce.mq.edu.auiW)Thisfeaturepro!videsmacrostofacilitatetypMesettingofarrangementsofpMointswithina2-dimensionallatticefor\w!eb-like"fstructure.!ԆHeader:P1%%$Id:xyweb.doc,v3.31996/12/1809:52:11rossExp$2%%3%%Xy-pic``Latticeandweb''feature.4%%Copyright(c)1994-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fi26\xyprovide{web}{Latticeandwebfeature}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}Ϡ*tj390KCHAPTERf3.CFEAeTURES??hw42\message{lattices,}PWeefneedt!wofcountersandmacrostoaccesstheirvdDalues.50\xynew@{count}\lattice@A 51\xynew@{count}\lattice@B52\xydef@\latticeA{\lattice@A}53\xydef@\latticeB{\lattice@B}PCurren!tlytheonlyroutinesimplementedwiththisfeaturearesome\quickanddirty"macrosfordroppingobjectsatthepMoin!tsofanintegerlattice.T\oDo:YMoresophisticatedroutineswillbMedev!elopMedfforlaterversionsofXY p-pic,astheneedarises.MathematicallyspMeaking,let~u4andN~v*عbev!ectorspoin!tinginindependen!tdirectionswithintheplane.Thenfthelatticespannedb!y;~u and9~v &isthein nitesetofpMointsLgivenby:ꍑ"LN=f a~1u ӹ+nbfX~1v 2;>forfa,bin!tegersS.gZL:WithiniXY!-picthev!ectors]~uHand>~vcanbMeestablishedasthecurrentcoMordinatebasisvectors.pThe follo!wingfmacrostypMeseta nitesubsetofanabstractlattice. rljffd ;\xylattice#1#2#3#4$pMoin!tsfinlattice;\croplattice#1#2#3#4#5#6#7#8$.3..infspMeci crectangle.wpffd;Theparameters#1ʹ.3..#4¹are;tobMein!tegersazmin,0azmaxQֹ,bzmin@and;bzmax,so;thatthepMortionofthelatticetobMet!ypesetisthatcollectionofv!ectorsinLforwhichazmin_ aazmax_andbzminbbzmaxQֹ.dmSps: SDict begin xyc endA8c/8Ɵ8) 8 a898R8>`Hc,`HƟ`H)`Ha`H 9`H#R`H$;&c))Ɵ,)/a295Rχ688c&;Ɵ>)AaD9ޯGR̯H5Jc#MƟP)SaV9YRZ2\c b)eah9kRl0&Ync&YqƟ &Yt)&Ywa&Yz9&Y}R&Y~-McMƟ M)MaM9MRM*ucuƟu)uau9uRu_ƟcmFa@D3232EU3232P32323232323232323232323232323232323232323232Pܞ3232TZC' 323273232323232323232323232323232323232323232323232323232bm 32327323232323232323232323232323232323232323232323232323232D3232EU3232P32323232323232323232323232323232323232323232Pܞ3232ds(1)h0" {0.0 0.0 l}xyh0" {3072 10 /xy AB}xyh0" {166.54657 0.0 l}xyh0" {0.0 0.0 l}xyKs(2)h0SEC{" {0.0 0.0 l}xySE" {-3072 10 /xy AB}xyh0SE/" {0.0 135.62875 l}xyh0SE/" {0.0 0.0 l}xyYu\def\latticebody{%\ifnum\latticeA=1\ifnum\latticeB=-1%\else\drop{\circ}\fi\else\drop{\circ}\fi}\xy*\xybox{0;<1.5pc,1mm>:<1mm,1.5pc>::,0,{\xylattice{-4}4{-3}3},(1,-1)="a"*{\bullet}*+<2pt>!UL{a},(-1,1)."a"*\frm{.}}="L",{"L"+L\ar"L"+R*+!L{s^{(1)}}},{"L"+D\ar"L"+U*+!D{s^{(2)}}}\endxyIn theabMo!ve code,noticeho!wthebasisis rstestablishedthenthe\xylattice?typMeset.Doingthiswithinan\xybox(allo!wsaxestobMesizedandplacedappropriatelye.Sincelatticepoin!tsaredeterminedb!y@their(integer)coMordinatedisplacements,theycanbMerevisitedtoaddextrahobjectisintotheoverall̠*tj3.8.CLAeTTICEfANDWEBFEATURE391??hwpicture.@More5generallye,L theoriginforlattice-coMordinatesisthecurren!thposic,L whenthe\xylattice commandfisencoun!tered.Easyaccessibilityismaintained,asseeninthenextexample.捑When>thebasisv!ectors~u޹and;~v/arenotpMerpendicular>thecollectionofpMointswitha;1bintheserangesNHwill lloutask!ewparallelogram.~GenerallyitisusefultoplotonlythosepMointslyingwithina xed=rectangle.ThisisthepurpMoseof\croplatticeH9,R'withitsextraparameters#5.3..#8determiningthe`cropping'rectanglewithinwhic!hlatticepMointswillbMetypMeset.i Otherpoin!tswillnotbet!ypesetev!ensAwhenaandbarewithinthespMeci edranges.DoExplicitlythehorizontalrangeofthecroppingrectangle isXzminYĹtoXzmaxQֹ,5withXzminbMeingtheX-coordinateofthev!ector#5M/~Zu d,5where#5lisahn!umbMeritb(notnecessarilyanin!teger).GSimilarlyXzmax8istheX-coordinateof#6~>u <.GThev!erticalexten!tsfareYzminQandYzmaxQֹ,givenbytheYn-coMordinatesof#7~nv Ȭand#8~nv ȬrespMectiv!elye._1lfps: SDict begin xyc end$\cˏ;+*J 9}۟6$$n,cJ%+&.9916۟li?꟡H$Pc@S5,I+!dR9 Z۟'l$ҎDtc|dS1Im+|~۟?w$IS-+8:9kr۟$S(m+c[ b v9 {П if=r" {0.0 39.59985 dt}xyiTП" {0.0 -39.59985 dt}xyxПA" {54.71997 0.0 dt}xyB=0" {-54.71997 0.0 dt}xyB3232Ce,3232E3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232E3232'Bڧ3232"32323232323232323232323232323232323232323232323232323232323232323232xڧ3232"3232323232323232323232323232323232323232323232323232323232323232323232B3232Ce,3232E3232323232323232323232323232323232323232323232323232323232323232323232323232323232323232E32323P s(1)j" {0.0 0.0 l}xy3Pj" {3072 10 /xy AB}xy3Pj" {187.20044 0.0 l}xy3Pj" {0.0 0.0 l}xyU`cRs(2)h0]5 " {0.0 0.0 l}xy]R" {-3072 10 /xy AB}xyh0]]" {0.0 118.79956 l}xyh0]]" {0.0 0.0 l}xyHں\def\latticebody{%\ifnum\latticeA=1\ifnum\latticeB=-1%\else\drop{\circ}\fi\else\ifnum\latticeA=0\ifnum\latticeB=1\else\drop{\circ}\fi\else\drop{\circ}\fi\fi}\xy+(2,2)="o",0*\xybox{%K0;<3pc,1.5mm>:<0.72pc,1.65pc>::,{"o"K\croplattice{-4}4{-4}4{-2.6}{2.6}{-3}3}K,"o"+(0,1)="a"*{\bullet}*+!D{\alpha}K,"o"+(1,-1)="b"*{\bullet}*+!L{\beta}K,"o"+(0,-1)="c","o"+(-1,1)="d"K,"a"."c"="e",!DR*{};"a"**\dir{.}K,"e",!UL*{};"c"**\dir{.}K,"b"."d"="f",!DL*{};"b"**\dir{.}K,"f",!UR*{};"d"**\dir{.}K,"e"."f"*\frm{.}}="L","o"."L"="L"K,{"L"+L\ar"L"+R*+!L{s^{(1)}}}K,{"L"+D\ar"L"+U*+!D{s^{(2)}}}\endxyPThe%routines\xylatticeApand\croplatticeMGĹsimplycyclethroughtheallo!wable%rangeofvdDaluesforf\lattice@A@pandf\lattice@B=# ,fwith\lattice@BvdDaryingwithintheinnerloMop.161\xydef@\xylattice#1#2#3#4{\xy@{LATTICE}{\xylattice@{#1}{#2}{#3}{#4}}}%163\xydef@\xylattice@#1#2#3#4{%164K\lattice@A=#1\relax165K\loop\bgroup\lattice@B=#3\relax166 m\innerlatticeloop@{#4}%167 m\edef\tmp@{\egroup%*tj392KCHAPTERf3.CFEAeTURES??hw168\X@min=\the\X@min\X@max=\the\X@max 169\Y@min=\the\Y@min\Y@max=\the\Y@max170 m}\tmp@\ifnum\lattice@A<#2\relax\advance\lattice@A\@ne171K\repeat}P173\xydef@\innerlatticeloop@#1{%174K\loop\enter@{\cfromthec@}\enter@{\cplusthec@}%175 m\vfromcartesian@@\the\lattice@A,\the\lattice@B@%176 m\edef\latticeX{\expandafter\removePT@\the\X@c}%177 m\edef\latticeY{\expandafter\removePT@\the\Y@c}%178 m\leave@\latticebody\leave@179K\ifnum\lattice@B<#1\relax\advance\lattice@B\@ne180K\repeat}%With{\xylatticeBt0getting{thepicturesizecorrectissimplyamatterofpassing\X@min&¹,X@max!op,etc.routsideoftheinnergroup.Ho!weverwith\croplatticeLtheseare rstsettocorrespMondtothe`croppingfrectangle'thensubsequen!tlymergedwiththeiroriginalvdDalues.190\xydef@\croplattice#1#2#3#4#5#6#7#8{\xy@{LATTICE}%191K{\xycroplattice@{#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8}}}%193\xydef@\xycroplattice@#1#2#3#4#5#6#7#8{%194K\enter@{\X@min=\the\X@min\X@max=\the\X@max195 m\Y@min=\the\Y@min\Y@max=\the\Y@max}%196K\enter@{\cfromthec@}\enter@{\cplusthec@}%197 m\vfromcartesian@@#5,0@\leave@\X@min=\X@c\leave@198K\enter@{\cfromthec@}\enter@{\cplusthec@}%199 m\vfromcartesian@@#6,0@\leave@\X@max=\X@c\leave@200K\enter@{\cfromthec@}\enter@{\cplusthec@}%201 m\vfromcartesian@@0,#7@\leave@\Y@min=\Y@c\leave@202K\enter@{\cfromthec@}\enter@{\cplusthec@}%203 m\vfromcartesian@@0,#8@\leave@\Y@max=\Y@c\leave@204K\lattice@A=#1\relax205K\loop206 m\bgroup\lattice@B=#3\relax207\enter@{\cfromthec@}\innercroplatticeloop@{#4}\leave@208 m\egroup209 m\ifnum\lattice@A<#2\relax\advance\lattice@A\@ne210K\repeat\mergecropextents@}212\xydef@\innercroplatticeloop@#1{%213K\loop214 m\enter@{\cfromthec@}\enter@{\cplusthec@}%215\vfromcartesian@@\the\lattice@A,\the\lattice@B@%216\edef\latticeX{\expandafter\removePT@\the\X@c}%217\edef\latticeY{\expandafter\removePT@\the\Y@c}%218 m\leave@\DN@{\latticebody}%219 m\ifdim\X@c<\X@min\DN@{}%220 m\else\ifdim\X@c>\X@max\DN@{}%221 m\else\ifdim\Y@c<\Y@min\DN@{}%222 m\else\ifdim\Y@c>\Y@max\DN@{}%223 m\fi\fi\fi\fi\next@\leave@224K\ifnum\lattice@B<#1\relax\advance\lattice@B\@ne=b*tj3.8.CLAeTTICEfANDWEBFEATURE393??hw225K\repeat}P227\xydef@\mergecropextents@{% 228K\edef\tmp@{%229 m\noexpand\ifdim\X@min>\the\X@min\X@min=\the\X@min\noexpand\fi230 m\noexpand\ifdim\X@max<\the\X@max\X@max=\the\X@max\noexpand\fi231 m\noexpand\ifdim\Y@min>\the\Y@min\Y@min=\the\Y@min\noexpand\fi232 m\noexpand\ifdim\Y@max<\the\Y@max\Y@max=\the\Y@max\noexpand\fi}%233K\leave@\tmp@}!s΍The\latticebodyL.macro. 5A!tjeachlatticepMointwithinthespMeci edrangefora;1b(andwithinthecroppingrectanglewhen\croplatticeLisused),amacrocalled\latticebodyisexpanded.)Thisismean!tqtobMeuser-de nable,soastobeabletoadapttoan!yspeci crequiremen!t.@Ithasadefaultexpansionfgiv!enby.3..v\def\latticebody{\drop{\bullet}}0.:HTheffollo!wingmacrosmaybMeusefulwhenspecifyingwhattodoateac!hpoin!tofthelattice. ZӉffd SI\latticebodyF5expandedfatlatticepMoin!tsI\defaultlatticebodyF5resetsftodefaultI\latticeAF5a-vdDaluefoflatticepMoin!tI\latticeBF5b-vdDaluefoflatticepMoin!tI\latticeXF5X-coMord,fo setinpt%s.3..I\latticeYF5Yn-coMord,f.3..fromlatticeorigin.Hȉffdn7Asintheexamplespresen!tedabMove,theobjectdroppMedatthelatticepoin!tcanbevdDariedaccordingtofitsloMcation,oromittedaltogether.Thefdefault\latticebodyLHĹmacro.3..266\xydef@\deflatticebody@{\def\latticebody{\drop{\bullet}}}267\xydef@\defaultlatticebody{\deflatticebody@}268\deflatticebody@In the nalexamplethe\latticebodyKmacropMerformsacalculationtodecidewhic!hlatticepoin!tsshouldfbMeemphasised:e&}q\ps: SDict begin xyc end(˟-: -:Q 95: G95:=C95:395:'(˟95:/2f3N=:[3=:#Q=:-G=:6˟:A3=:K(˟=:U=:2.ItB=[,E:FCtBPtB[=CۙE:e3E:o(˟E:yE:Wf3@IM:a[%IM:kQ IM:uGIM:=CIM:3IM:(˟IM:qpoSU:{f38U:[U:CRGU:=CU:3U:(˟U:poL]:f31]:[]:CZG]:=Cũ]:poEYe:f3*Ye:[Ye:ԟdd(1)h0" {0.0 0.0 l}xyԟh0" {3072 10 /xy AB}xyԟh0" {208.80011 0.0 l}xyԟh0" {0.0 0.0 l}xy%䕟d(2)h0.[" {0.0 0.0 l}xy." {-3072 10 /xy AB}xyh0. Y" {0.0 210.59967 l}xyh0. Y" {0.0 0.0 l}xyIt*tj394KCHAPTERf3.CFEAeTURES??hw\def\latticebody{\dimen0=\latticeXpt K\ifdim\dimen0>0pt\divide\dimen0by64K\dimen0=\latticeY\dimen0\relaxK\ifdim0pt>\dimen0\dimen0=-\dimen0\fiK\ifdim10pt>\dimen0\drop{\bullet}%K\else\drop{.}\fi\else\drop{.}\fi}\xy*\xybox{0;<3pc,2.57mm>:<.83pc,2.25pc>::,0,{\croplattice{-3}5{-5}5 m{-1.3}{4.5}{-3.4}{4.4}}}="L",{"L"+L\ar"L"+!R*+!L{\sigma^{(1)}}},{"L"+D\ar"L"+!U*+!D{\sigma^{(2)}}}\endxy#*mThe2end&Log DOCMODE3P302\xyendinput304%$Log:xyweb.doc,v$ 305%Revision3.3 T1996/12/1809:52:11ross306%nochanges307%308%Revision3.1 T1995/09/0520:36:33ross309%Release!310%311%Revision3.0 T1995/07/0720:13:19ross312%Majorreleasew/newUser'sGuide!313%314%Revision2.13 T1995/07/0510:36:22ross315%Readyforv3release?316%317%NEWforversion3./G3.9r|Circle,ffEllipse,ArcfeatureV ers.p3.4Tb9yRossMoQorehross@mpGce.mq.edu.aui1Thisfeaturepro!videsameanstoaspMecifycirclesofarbitraryradius,drawnwithavdDarietyoflinestyles.Similarlyellipsesma!ybMespeci ed,ha!vingarbitrarymajor/minoraxesalignedinanydirection.{Acircularfarcjoiningt!wofpMointscanbMeconstructedwithspeci edtangen!tdirectionatoneend.Alluthecurv!esdescribMedhere|circles,hxellipsesandsectorsofthese|areconstructedusingthecurv!esfromthexycurve0=fextension.JAssuchanycommentsgiventhereconcerningmemoryrequire-men!tsareequallyvdDalidhere, pMerhapsevenmoreso.ۡUseofthexyps> PostScriptback-endishighlyrecommended.sHeader:P1%%$Id:xyarc.doc,v3.41997/05/1801:13:24rossExp$2%%3%%Xy-pic``Circles,EllipsesandArcs''feature.W3*tj3.9.CCIR!CLE,fELLIPSE,ARCFEAeTURE_395??hw4%%Copyright(c)1995-1997RossMoore 5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997KristofferH.Rose9%%10%%TheXY-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXY-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{arc}{Circle,Ellipse,Arcfeature}{\stripRCS$Revision:3.4$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}6The~arcsarenottrulycircularorelliptical, Fbutareappro!ximationsgivenbycubicB"Deziersegments.Hencefthexycurve/rfeaturem!ustbMeloaded.53\xyrequire{curve}54\xycatcodesThei'basichobjectide nedhereis\arcgϹ.& Sofaritisonlyimplemen!tedasahdecoriation,called\ellipsei.62\xydef@\ellipse#1#{\xy@{ELLIPSE}{\hbox\bgroup\save@}%63K\let\endarc@=\endellipse@@\xyFN@\preARC@#1@}65\xydef@\endellipse@@{\xy@{endELLIPSE}{\leave@\origDirection@66K\edef\next@{\egroup\X@min=\the\X@min\X@max=\the\X@max67 m\Y@min=\the\Y@min\Y@max=\the\Y@max}\next@}\let\bstartPLACE@=\relax}69\xydef@\preARC@{%70K\ifx\next\space@\expandafter\DN@\space{\xyFN@\preARC@}%71K\else\ifx\next@\DN@{\xy@{ellipseARC}\ellipticARC@\arc@}%72K\else\ifx\next~\DN@~##1{\tildeARC@{##1}}%73K\else\DN@{\xy@{ellipticARC}\ellipticARC@\arc@}%74K\fi\fi\fi\next@}76%\xydef@\arc#1#{\xy@{ARC}{\hbox\bgroup\save@}%77% T\let\endarc@=\endarc@@\arc@{#1}}78%\xydef@\endarc@@{\xy@{endARC}{\leave@\origDirection@Wee_(startb!yrecordingthecurvehstyleiandinitialisingsomemethoMdsandhposinames,mhtobeabletofeasilyaccessimpMortan!thposiandhdirectioniinformation.`*tj396KCHAPTERf3.CFEAeTURES??hwWhenthe...jin\arc...{2hst!ylei} r`isparticularlysimple,e.g.hemptyior^%or_ r`,thenwecan branc!hfimmediatelyto\fullCircle@H^.Otherwisemoreparsingisrequired.P91\xydef@\arc@#1@#2{\DN@{#2}%92K\ifx\next@\empty\xy@{arcSTYLE}{\def\arcSTYLE{-}}%93K\else\xy@{arcSTYLE}{\def\arcSTYLE{#2}}\fi\arc@i94K\DNii@{#1}%95K\ifx\nextii@\empty\DN@{\fullCircle@}%96K\else\DN@{_}%97 m\ifx\next@\nextii@\xy@{_}{\def\arcOrient@@{_}}%98\let\arcOrient@@=\next@\DN@{\fullCircle@}%99K\else\DN@{^}%100 m\ifx\next@\nextii@\xy@{^}{\def\arcOrient@@{^}}%101\let\arcOrient@@=\next@\DN@{\fullCircle@}%102K\else\DN@{\def\afterARCextents@@{%103\xy@{aftARCext}{\let\doCircleArc@=\doCircleArc@@}%104\ellipseArc@\xy@{doCircARCs}{\doCircleArcs@}\endarc@}%105%>\xy@{doCircARCs}{\leave@\doCircleArcs@}\endarc@}%106 m\xyFN@\getarcparams@#1@}\fi\fi\fi107K\next@}When>furtherparsingisrequired,Susing\getarcparams@S,thenan@ =Jtok!enisusedtomarktheendofftherelevdDan!ttokens.ٶBeforean!yparsingatallthecurrentpandcarerecordedasnamedhpMosiitions0@pmyand0@cu,asw!ell4NasapMoint0@m Yalongthelineinthecurrentdirectionfromp.A4*methoMd\origDirection@^isde nedtoarti ciallyre-impMosethisdirectionindependen!tofthepandcthatmaybMecurrentatthetime.o9\startDirection@fis,/initialisedtothismethoMd,Mthoughparsingma!ychangeitsvdDalue.o9OthermethoMdsareinitialised,winparticularthedefaultorien!tation;.theirvdDaluescanbeexpectedtoc!hangewithfsubsequen!tparsing.123\xydef@\arc@i{\xy@{ARCi}{%124K\save@\idfromc@{0@c}\cfromp@\idfromc@{0@p}%125K\enter@\cplusthec@\enter@\relax\begingroup\vfromslide@i{}@\czeroEdge@126K\leave@\idfromc@{0@m}\leave@\zeroDivideLimit@{50}%127K\edef\origDirection@{\Direction=\the\Direction128 m\relax\noexpand\imposeDirection@}%129K\let\startDirection@=\origDirection@\def\startDirection@@{}%130K\def\endDirection@{}\def\endDirection@@{}\def\arcOrient@@{^}}%131K\def\arcOrient@@{^}\let\processDirections@=\checkstartDirection@132K\def\arcRadius@{}\def\ellipseRatio@{}\def\arcScale@{\arcScale@@}}v138\message{circles,}:S3.9.1 FullCirclesThexyarc$Lfeatureallo!wsamuchwiderrangeofpMossibilitiesfortypMesettingcirclesthanisavdDailablewith\cirG.EFirstlytheradiusisnolongerrestrictedtoa nitecollectionofsizes.Secondlyfancyline(curv!e)%DstylesareavdDailable,Daswithcurvedarrows.ZxFinallythereareavdDarietyofwaysofspMecifyingthefdesiredradius,relativ!etootherpartsofthepicturebMeingbuilt,asinthefollowingexample.n*tj3.9.CCIR!CLE,fELLIPSE,ARCFEAeTURE_397??hwS׏ps: SDict begin xyc end4 `Gp,47çc.h0" {30.0 -30.0 l}xykzA" {p}xy ," {p}xy :" {p}xy I<" {p}xy $=" {p}xy4" {p}xy+* ]" {p}xyPܟ " {p}xyʟ;" {p}xy " {p}xy嫟|B" {p}xy}" {p}xySn" {p}xyVB>" {p}xy#fh0" {p}xy#xh0" {p}xySa" {p}xyVB" {p}xy嫟#T" {p}xy}#v" {p}xyʟ'8!" {p}xy'¿" {p}xy+**" {p}xyPܟ+" {p}xy ." {p}xy/L" {p}xy :24" {p}xy I<3M" {p}xykz5v" {p}xy ,6T" {p}xyB8)" {p}xyؽ:7" {p}xyص:/" {p}xyBß81" {p}xygq;l" {p}xy$=" {p}xy >" {p}xy/?" {p}xyIɟ@" {p}xyYA" {p}xyAʻ" {p}xy5KC" {p}xy"ǟC" {p}xy"39E " {p}xy&ΟD:" {p}xy&CFx" {p}xy*0D" {p}xy*drF" {p}xy.D~" {p}xy.F|" {p}xy2BD" {p}xy2F" {p}xy6yD:" {p}xy6Fx" {p}xy:]C" {p}xy:KE " {p}xy>%Aʻ" {p}xy>7C" {p}xyAѪ@" {p}xyB؟A" {p}xyEZe>" {p}xyFsS?" {p}xyH;l" {p}xyI=" {p}xyKص8)" {p}xyMBß:7" {p}xyMB:/" {p}xyKؽ81" {p}xyN5v" {p}xyP=V6T" {p}xyQ&824" {p}xyRF3M" {p}xyS" {p}xyW5Ɵ|B" {p}xyY-" {p}xyVB;" {p}xyX/ " {p}xyTG ]" {p}xyVʥ " {p}xyS%" {p}xy>7+O" {p}xy:]<" {p}xy:Kn" {p}xy6y" {p}xy6" {p}xy2B.b" {p}xy20" {p}xy." {p}xy." {p}xy*0.b" {p}xy*dr0" {p}xy&Ο" {p}xy&C" {p}xy"ǟ<" {p}xy"39n" {p}xy" {p}xy5K+O" {p}xyIɟv" {p}xyYX" {p}xy Ϭ" {p}xy/#" {p}xygqE" {p}xy$" {p}xyԍh0H" {mark 120.0 -30.0 120.0 -13.44635 106.55365 0.0 90.0 0.0 0.0 1.0 bz}xyԍh0E" {mark 90.0 0.0 73.44635 0.0 60.0 -13.44635 60.0 -30.0 0.0 1.0 bz}xyԍh0I" {mark 60.0 -30.0 60.0 -46.55365 73.44635 -60.0 90.0 -60.0 0.0 1.0 bz}xyԍh0L" {mark 90.0 -60.0 106.55365 -60.0 120.0 -46.55365 120.0 -30.0 0.0 1.0 bz}xyԍh0Q" {mark 120.0 -30.0 128.27682 -21.72318 121.55365 -15.0 105.0 -15.0 0.0 1.0 bt}xyԍh0N" {mark 105.0 -15.0 88.44635 -15.0 68.27682 -21.72318 60.0 -30.0 0.0 1.0 bt}xyԍh0M" {mark 60.0 -30.0 51.72318 -38.27682 58.44635 -45.0 75.0 -45.0 0.0 1.0 bt}xyԍh0O" {mark 75.0 -45.0 91.55365 -45.0 111.72318 -38.27682 120.0 -30.0 0.0 1.0 bt}xy*O*" {p}xy+" {p}xy+" {p}xy*b" {p}xy+s" {p}xy)3" {p}xy+R  " {p}xy)ٶ" {p}xy+6ß46" {p}xy)şX" {p}xy+5`R" {p}xy)c[" {p}xy+s" {p}xy)>U" {p}xy*_" {p}xy)џx" {p}xy*ޟ" {p}xy(&" {p}xy*ԟ" {p}xy(㶟mr" {p}xy*'@" {p}xy(Y`" {p}xy*ul" {p}xy(YN" {p}xy*" {p}xy(D}" {p}xy*%" {p}xy(W" {p}xy*ğT" {p}xy(Ֆ" {p}xy*:" {p}xy(" {p}xy* h0" {p}xy(h0" {p}xy*" {p}xy(" {p}xy*ğ" {p}xy(" {p}xy*%{" {p}xy(WG" {p}xy*-" {p}xy(" {p}xy*Z" {p}xy(Y" {p}xy*'n" {p}xy(Y " {p}xy*ԟ" {p}xy(㶟b" {p}xy*ޟ" {p}xy(S" {p}xy*_" {p}xy)џ" {p}xy+sC~" {p}xy)>U3" {p}xy+5p " {p}xy)cui" {p}xy+6ß$" {p}xy)ş" {p}xy+R È" {p}xy)" {p}xy+s" {p}xy)31" {p}xy+" {p}xy*mz" {p}xy+{:}},{\ellipse(.5){}},0;(.5,.5)::,"p";"c",{\ellipse(.5){.}},{\ellipse<5pt>{=}}\endxy_㍑Theffollo!winggivecirclescentredatc. ffd w5&\ellipse<>{tthst!ylei}% radiusf= dist(p;1c)5&\ellipse{..}% radiusfisthehdimeni5&\ellipse(iq hn!umi){ Thstylei}% unitfcirclescaledhn!umi,% infthecurren!tbasis.[ffddvNoteothatifthecurren!tbasisisnotsquarethenthelattervdDariant,/namely\ellipse(8,hnumi),/willt!ypMeset&anellipseratherthanacircle._Ontheotherhandthe rsttwovdDariantsalwaysspMecifytruecircles.)InbJthe2ndcase,oi.e.whenhdimeniishempt!yi,othesizeoftheobjectatpistakenintoaccountwhenfdra!wingthecircle;ifthisisnotdesiredthenkillthesizeusinganullobject,e.g.;*{};!/. Curren!tlythe\ellipse4macroworksonlyasahdecori.InfutureversionstherewillbMeanhobjecticalledCF\arc4ha!vingCFellipticalshapMe,j}via\circleEdgeGڹwithpossiblyunequalexten!ts.|AlsoitwillbepMossibleto\connect\arcH,whic!hwillsetthecurrentconnectionsothatanyplaceonthefullellipse,notfjustthevisiblesector,willbMeaccessibleusinganextensiontotheusualhplaceimec!hanism.T\o2Do:ݹmak!efthisbMe!!Thefsimplestcasesoffullcirclesgostraigh!tto\circleArc@Bⴹ.P191\xydef@\fullCircle@{\xy@{fullCIRC}{\let\endDirection@=\relax192\let\doCircleArc@=\doMergeEndArc@@}\circleArc@}%_㍑Ifsthe rstnon-spacetok!enfollowing\arc is<BthenthecurrentcistakentobMethecentreoftheDcircleorellipse,lorsectorthereof.The rstparsingisdonetoin!terpretinformationconcerningtheradius,q(oraxesofanellipse)alongwithanorien!tation.*ThiscanbMespeci edeitherasabsolutedimensions,enclosedin< n.3..>ݹ,orrelativ!etothecurrentbasisby( n.3..)ݹ,orbasedonthelinefe ?vpc%orf<,hdimeni> forf(,hn!umi).204\xydef@\getarcparams@{%205\ifx\space@\next\expandafter\DN@\space{\xyFN@\getarcparams@}%gobblespaces206\else\addLT@\ifx\next\xy@{<}{}%207T\addGT@{\addLT@\DN@##1}{\splitRadius@dim##1,,@}%208%\else\ifx\next(\xy@{(}{}\DN@(##1){\splitRadius@##1,,@}%209\else\ifx\next(\DN@({\xyFN@\checkRadOpen@}%210\else\ifx\next@\xy@{@}{}\DN@@{\fullEllipse@}%211\else\addLQ@\ifx\next\addLQ@\DN@{\xy@`{}\ARCturn@}%212\else\DN@{\getarcExtents@}%213\fi\fi\fi\fi\fi\next@}215\xydef@\checkRadOpen@{%|*tj398KCHAPTERf3.CFEAeTURES??hw216K\ifx\next*\DN@{\xyFN@\getarcExtents@(}% 217K\else\xy@{(}{}\DN@##1){\splitRadius@##1,,@}%218K\fi\next@}Thecen!treisnowstoredas"0@0" l-,sincethevdDalueof"0@c"$willbMechangedtoagreewith"0@p" l-.Thisissothatstart/ nishdirectionswillagree,ensuringallfourquadran!tsbMedrawn.ThefollowingmethoMdfisactuallyexecutedafteralltheradius/axesinformationhasbeenparsed.P228\xydef@\fixedRadiusArc@{%229K\xy@{fixRadArc}{\save@\idfromc@{0@0}\cfromp@\idfromc@{0@c}\leave@}%230K\xyFN@\fixedRadiusArc@i}232\xydef@\fixedRadiusArc@i{%233K\ifx\next\space@\expandafter\DN@\space{\xyFN@\fixedRadiusArc@i}%234K\else\ifx\next@\xy@{@}{}\DN@@{\fullEllipse@}%235K\else\DN@{\let\processDirections@=\processArcDirections@236 m\def\afterARCextents@@{\xy@{aftARCext}{\let\doCircleArc@=\doCircleArc@@237 \ellipseSector@}}\xyFN@\getarcExtents@}%238K\fi\fi\next@}Whenj$afullcircleorellipseisrequiredthentherearethreemethoMdswhic!hmustbMeinvokedwhenestablishingftheloMcalbasisc!hange.c\arcScale@InitiallyAthishasvdDalue\arcScale@@I*whic!hisbasedonfe ?vpcd. tItischangedonlyby( hnumi)andM( |hn!umi,hnumi);seeMthecoMdefor\splitRadius@R6andto\arcScale@dimPwhichgetsftheradiusb!yahslideiofgivenhdimenialongthelinefe ?vpc ܹ.262\xydef@\arcScale@dim#1{\xy@{arcSCALEdim}{\save@263K\cfromid@{0@0}\pfromc@\cfromid@{0@p}\setupDirection@\cfromp@264K\enter@\cplusthec@\begingroup\vfromslide@i#1@%265K\setbase@\X@p\Y@p\X@c\Y@c\idfromc@{0@p}}}7\ellipseRatio@Initiallyhempt!yi,/thischangeswith<hdimeni,hdimeni>to\ellipseScale@dimgvwhichestablishsthes(\X@basey-P;1\Y@basey/Ё)b!yahslideipMerpendicularstothelinefe ?vpc , orto\ellipseScale@W2with(, kqhn!umi) ftofsimplysetthepMerpendicularfbasisdirectionusinghnumiasacoMordinate.277\xydef@\ellipseScale@dim#1{\xy@{ellSCALEdim}{\setupDirection@\cfromp@278K\enter@\cplusthec@\aboveDirection@\xydashl@\vfromslide@{#1}\leave@279K\setbase@@\X@c\Y@c}}281\xydef@\ellipseScale@#1{\xy@{ellSCALE@}%282K{\vfromcartesian@@0,#1@\setbase@@\X@c\Y@c}} vThenmethoMds\splitRadius@dim`~and\splitRadius@Ocompletethein!terpretationoftheradius/axesspMeci cation.hTheym!ustdeterminewhetheroneortwopiecesofinformationhavebMeenexplicitlypro-vided,fandactaccordinglye.293\xydef@\splitRadius@dim#1,#2,#3@{%294K\DN@{#1}\ifx\next@\empty\dimen@=\z@\else\dimen@=#1\relax%\splinetracingO*tj3.9.CCIR!CLE,fELLIPSE,ARCFEAeTURE_399??hw295 m\expandafter\def\expandafter\arcRadius@ 296\expandafter{\arcScale@dim{#1}}\fi297K\DN@{#2}\ifx\next@\empty\dimen@ii=\z@\def\ellipseRatio@{}%298K\else\dimen@ii=#2\relax\expandafter299 m\def\expandafter\ellipseRatio@\expandafter{\ellipseScale@dim{#2}}%300K\fi\fixedRadiusArc@}P302\xydef@\splitRadius@#1,#2,#3@{%303K\DN@{#1}\ifx\next@\empty\dimen@=\z@\else\dimen@=#1\p@\relax\fi304K\DN@{#2}\ifx\next@\empty\dimen@ii=\z@\else\dimen@ii=#2\p@\relax\fi305K\ifdim\dimen@=\z@\ifdim\dimen@ii=\z@\else\expandafter306 m\def\expandafter\ellipseRatio@\expandafter{\ellipseScale@{#2}}\fi307K\else308 m\ifdim\dimen@ii=\z@309\def\arcScale@{\xy@{arcSCALE@}{\save@\cfromid@{0@0}%310 \X@origin=\X@c\Y@origin=\Y@c311 \X@xbase=#1\X@xbase\Y@xbase=#1\Y@xbase312 \X@ybase=#1\X@ybase\Y@ybase=#1\Y@ybase313 \advance\X@c\X@xbase\advance\Y@c\Y@xbase\czeroEdge@314 \idfromc@{0@p}\idfromc@{0@c}}}%315 m\else316\def\arcScale@{\xy@{arcSCALE@}{\save@\cfromid@{0@0}%317 \X@origin=\X@c\Y@origin=\Y@c318 \X@xbase=#1\X@xbase\Y@xbase=#1\Y@xbase319 \X@ybase=#2\X@ybase\Y@ybase=#2\Y@ybase320 \advance\X@c\X@xbase\advance\Y@c\Y@xbase\czeroEdge@321 \idfromc@{0@p}\idfromc@{0@c}}}%322 m\fi323K\fi\fixedRadiusArc@}325\xydef@\baseOrient@{\DN@{_}\ifx\next@\arcOrient@@326K\X@ybase=-\X@ybase\Y@ybase=-\Y@ybase\fi}v333\message{ellipses,}%3.9.2 EllipsesBTherearesev!eralwaystospMecifyanellipse,apartfromthemethodillustratedabo!veinwhic!hthebasisZm!ustbMechangedfromsquare.}BasicallywemustspMecifythelengthsofthemajorandminoraxes.AlsofitisnecessarytospMecifyanalignmen!tforoneaxis.-Inthefollo!wing, theellipseiscentredoncandoneaxisisalignedalongthelinefe ?vpc6j, exceptwiththe nalvdDarian!twhereitalignswiththecurrentbasis.;Whenusedhnumiistreatedasascalefactor,m!ultiplyingfanappropriatelength. ffd 6M(\ellipse<[hdimeni,hdimeni>{ T..}^giv!enfaxeslengths(\ellipse<,axhdimeni>{ Thst!ylei}^onefaxisisfe ?vpc(\ellipse(,axhn!umi){ Thstylei}^...pMerp.axisfscaled(\ellipse([hn!umi,hnumi){ T..}^scaledfaxesaligned^withfbasis.1ffd ̀*tj400KCHAPTERf3.CFEAeTURES??hwInjthelattervdDarian!t,vifthesecondhnumiishemptyithenthisisequivdDalenttobMothhnumishaving thefsamevdDalue,whic!hisinturnequivalen!ttothe nalvarian!tforcircles.ύeKps: SDict begin xyc end334;ph0." {0.0 4.3773 -4.71094 -13.13191 14.1328 ov}xy:334<h0" {25.6227 -25.62698 l}xy?#cxh0" {p}xyw h0" {p}xyvG2" {p}xyxu" {p}xyu⪟R" {p}xyw d" {p}xyt " {p}xyv" {p}xyrƟ̵" {p}xysWG" {p}xyp'" {p}xyqZ1,8" {p}xym<ڂ" {p}xynAn "T" {p}xyij %" {p}xyj =" {p}xyf ^" {p}xyfʤ " {p}xycӟ " {p}xyd" {p}xya N" {p}xybzp0" {p}xy_~ "" {p}xy`/<9u" {p}xy]CDx" {p}xy]" {p}xyZ@" {p}xy[Wn+" {p}xyX_fH" {p}xyXԟTa" {p}xyUвA" {p}xyV/" {p}xyS0Ho" {p}xySN" {p}xyPvX" {p}xyPß" {p}xyMz" {p}xyM~" {p}xyJC(" {p}xyK+" {p}xyG}" {p}xyH-Ke" {p}xyEu" {p}xyE1c" {p}xyB9" {p}xyB)73" {p}xy? ßp " {p}xy?pr" {p}xy<h?" {p}xy<hQ" {p}xy<hI" {p}xy<hG" {p}xy88p " {p}xy8Jpr" {p}xy5" {p}xy5ӟ3" {p}xy2" {p}xy2Ψ" {p}xy0}" {p}xy/ҿe" {p}xy-(" {p}xy,+" {p}xy*Jz" {p}xy* ~" {p}xy'FX" {p}xy':H" {p}xy$Ho" {p}xy$N" {p}xy"/IA" {p}xy!" {p}xyH" {p}xy37Ta" {p}xy$" {p}xy+" {p}xyx" {p}xy2(" {p}xyi~ "" {p}xyП9u" {p}xy+ N" {p}xy0" {p}xy( " {p}xyQz" {p}xy ^" {p}xy5d " {p}xy(i M" {p}xy C{ @o" {p}xy ڂ" {p}xy "T" {p}xy" {p}xyڟ,8" {p}xyg3̵" {p}xy WG" {p}xy|" {p}xy速" {p}xyPR" {p}xySr d" {p}xyG2" {p}xyWu" {p}xyh0" {p}xy h0" {p}xyh0" {p}xyh0" {p}xyG" {p}xyW" {p}xyP" {p}xySr " {p}xy|!{" {p}xy速#'" {p}xyg3$" {p}xy %y"" {p}xy& " {p}xyڟ'3" {p}xy '" {p}xy )" {p}xy")6" {p}xy IS+" {p}xy+rB" {p}xy5d-L" {p}xy(,;E" {p}xyQz." {p}xy+," {p}xy.<" {p}xyi~-J" {p}xyП/" {p}xy.W" {p}xy2(0Dr" {p}xy$." {p}xy0B" {p}xy/" {p}xy371| " {p}xy"/I0" {p}xy!2Y" {p}xy$0" {p}xy$2" {p}xy'F0" {p}xy':H2" {p}xy*J1U" {p}xy* 3Q" {p}xy-1" {p}xy,3\" {p}xy0}1G" {p}xy/ҿ3" {p}xy22!" {p}xy2Ψ4 " {p}xy52Hy" {p}xy5ӟ4H7" {p}xy882`9" {p}xy8J4_" {p}xy<2h" {p}xy<4h" {p}xy<4h" {p}xy<2h!" {p}xy? ß2`9" {p}xy?4_" {p}xyB92Hy" {p}xyB)74H7" {p}xyEu2!" {p}xyE1c4 " {p}xyG}1G" {p}xyH-K3" {p}xyJC1" {p}xyK3\" {p}xyM1U" {p}xyM3Q" {p}xyPv0" {p}xyPß2" {p}xyS00" {p}xyS2" {p}xyUв0" {p}xyV/2Y" {p}xyX_f/" {p}xyXԟ1| " {p}xyZ@." {p}xy[Wn0B" {p}xy]CD.W" {p}xy]0Dr" {p}xy_~-J" {p}xy`/#&̦" {p}xy=~(T" {p}xy>i&" {p}xy=-(-" {p}xy>&" {p}xy>P(" {p}xy>&." {p}xy>M(l" {p}xy?@*'z" {p}xy>,(X" {p}xy?('&" {p}xy?D) 4" {p}xy?ǝ'7" {p}xy?ߟ)" {p}xy@j'G" {p}xy?⬟)" {p}xy@T'"" {p}xy@4۟)!" {p}xy@m'%" {p}xy@)%" {p}xy@׃''" {p}xy@׃)'" {p}xyA'&" {p}xyA')&" {p}xyA_'$t" {p}xyAo)$2" {p}xyA' " {p}xyA)" {p}xyA'" {p}xyB ß)" {p}xyB'" {p}xyBZ )" {p}xyBWb' " {p}xyBp)" {p}xyBy'`" {p}xyBן(" {p}xyBȟ&" {p}xyC<6(<" {p}xyC Q&" {p}xyC(ֳ" {p}xyCC&/" {p}xyCͦ( " {p}xyC{&ĕ" {p}xyD(C" {p}xyCF&" {p}xyDa(" {p}xyC䝟&r" {p}xyDK(x" {p}xyD&|" {p}xyDB(\" {p}xyDJ&qs" {p}xyE/(;a" {p}xyDm&V" {p}xyEo(" {p}xyD'&:" {p}xyE%'[" {p}xyDԟ&" {p}xyE2'й" {p}xyE&" {p}xyF0'" {p}xyE:%" {p}xyFm'{1" {p}xyEj%" {p}xyF͟'Px" {p}xyE%^" {p}xyFG'" {p}xyE%v" {p}xyGҟ&" {p}xyED%Nt" {p}xyGPR&" {p}xyGPJ&z" {p}xyEL%N|" {p}xyFX%$" {p}xyG֟&" {p}xyF1.$" {p}xyG|&G" {p}xyFTʟ$" {p}xyGH& " {p}xyFvS$" {p}xyH%" {p}xyFޟ$v@" {p}xyH>̟%N" {p}xyF[$I" {p}xyHh%Xb" {p}xyF$W" {p}xyH+%U" {p}xyF#" {p}xyH$" {p}xyG C#" {p}xyH1$" {p}xyGL#4" {p}xyHZ$Pr" {p}xyG6B#L" {p}xyI$ {" {p}xyGKc#v" {p}xyI*#4" {p}xyG\e"" {p}xyIE#|" {p}xyGm"8" {p}xyIZݟ#5" {p}xyG}՟"q" {p}xyIn"" {p}xyGޟ"6" {p}xyI "f" {p}xyG0!" {p}xyIn"Z" {p}xyGɟ!" {p}xyI"" {p}xyG!" {p}xyI!=" {p}xyG!E%" {p}xyI!t" {p}xyGh!" {p}xyIf!&" {p}xyGD " {p}xyI " {p}xyG " {p}xyIY " {p}xyG ?" {p}xyI ?" {p}xyG" {p}xyIY" {p}xyG" {p}xyI " {p}xyGz" {p}xyI՟J" {p}xyG/" {p}xyIş" {p}xyGX" {p}xyI" {p}xyGJZ" {p}xyI(Y\" {p}xyGc" {p}xyI<}" {p}xyG-" {p}xyIzɟ" {p}xyGtϟѻ" {p}xyIhd]" {p}xyGdv" {p}xyIU$" {p}xyGRuEj" {p}xyI?S" {p}xyG<" {p}xyI)l" {p}xyG'Q" {p}xyI" {p}xyGAi" {p}xyHo»" {p}xyF(" {p}xyHVtN" {p}xyFگ" {p}xyH " {p}xyF" {p}xyH" {p}xyFȟB@" {p}xyHu֟u" {p}xyF~" {p}xyHS&e" {p}xyF]h" {p}xyH-Ѷ" {p}xyF:b7" {p}xyH}I" {p}xyF/" {p}xyG." {p}xyE" {p}xyG" {p}xyE 0" {p}xyGIB" {p}xyE|9g" {p}xyGS4" {p}xyEm5" {p}xyG%s\" {p}xyE@D5" {p}xyFr" {p}xyEZ" {p}xyFA" {p}xyD_" {p}xyFM" {p}xyDnʏ" {p}xyFO," {p}xyDx~" {p}xyFwS" {p}xyDCj75" {p}xyE" {p}xyD t*" {p}xyE " {p}xyCן{" {p}xyEa5f" {p}xyCc." {p}xyE ۟" {p}xyC]P" {p}xyD2" {p}xyC" {p}xyDX)" {p}xyBൟ" {p}xyDV34" {p}xyBßN" {p}xyD" {p}xyB]+ " {p}xyC9" {p}xyC1" {p}xyB]3 " {p}xyBwh" {p}xyC}X" {p}xyA$v" {p}xyC3R" {p}xyAFH2" {p}xyB" {p}xyAJ۟ " {p}xyB U" {p}xyAΟ" {p}xyBO-Ga" {p}xy@U" {p}xyB" {p}xy@x[" {p}xyA1J" {p}xy@0$" {p}xyAd#2" {p}xy?霟r" {p}xyAjO" {p}xy?" {p}xy@j" {p}xy?U" {p}xy@w" {p}xy? UV" {p}xy@&C" {p}xy>'" {p}xy?Vu" {p}xy>|" {p}xy?B" {p}xy>.ş̱" {p}xy?4#" {p}xy=" {p}xy>" {p}xy=5{?" {p}xy>c!" {p}xy=TrT" {p}xy>9p" {p}xy=-" {p}xy=c" {p}xy<8 " {p}xy=;6" {p}xy>" {p}xy:"ğ" {p}xy:b(" {p}xy9`" {p}xy:X" {p}xy9q^" {p}xy:ߟ @" {p}xy9P" {p}xy9[ q" {p}xy9a/" {p}xy9b " {p}xy8ҟ" {p}xy9 " {p}xy8{ԟ7" {p}xy8R 9" {p}xy88^$" {p}xy8h, v" {p}xy7픟" {p}xy8b h" {p}xy7C" {p}xy71 " {p}xy7i" {p}xy7y " {p}xy7(@" {p}xy7( R" {p}xy6" {p}xy6# " {p}xy6Z" {p}xy6l ;" {p}xy6aT" {p}xy6Av " {p}xy6#I" {p}xy5I " {p}xy5o" {p}xy5 " {p}xy5d" {p}xy5Y ˖" {p}xy5l" {p}xy56 " {p}xy512L" {p}xy4ԟ ." {p}xy4W" {p}xy4z " {p}xy4," {p}xy42f ^" {p}xy4 " {p}xy3j#)" {p}xy4R" {p}xy3=z" {p}xy4`1" {p}xy3ZŸW" {p}xy3H" {p}xy3ʟs" {p}xy3O^" {p}xy2a " {p}xy3y" {p}xy2o" {p}xy3L՟?" {p}xy2Q" {p}xy3'" {p}xy2ٟ" {p}xy2M" {p}xy1)o" {p}xy2=" {p}xy1U9" {p}xy2\a" {p}xy1Z>" {p}xy2m3" {p}xy1ß" {p}xy2CWY" {p}xy09e" {p}xyh0V" {mark 60.0 0.0 56.09827 -3.90173 66.37527 -20.51743 82.92892 -37.07108 0.0 1.0 bt}xyh0[" {mark 82.92892 -37.07108 99.48257 -53.62473 116.09827 -63.90173 120.0 -60.0 0.0 1.0 bt}xyh0\" {mark 120.0 -60.0 123.90173 -56.09827 113.62473 -39.48257 97.07108 -22.92892 0.0 1.0 bt}xyh0T" {mark 97.07108 -22.92892 80.51743 -6.37527 63.90173 3.90173 60.0 0.0 0.0 1.0 bt}xyVm\xy0;/r5pc/:*\dir{*},*++!DR(.5){p}*\frm{-};p+(.5,-.5)*\dir{*}="c",**\dir{-},*+!UL{c},"c",,{\ellipse(1,.4){:}},{\ellipse(,.75){}},{\ellipse<15pt,10pt>{=}};*{};{\ellipse<,10pt>{.}}\endxyPAsfwithfullcircles,fullellipsesrequirelittlepreparation.377\xydef@\fullEllipse@{\xy@{fullELLIPSE}% 378K{\def\startDirection@{}\let\doCircleArc@=\doMergeEndArc@@}%379K\ellipseArc@380K\xy@{doCIRCarcs}{\leave@\doCircleArcs@}\endarc@}!3.9.3 DrawingarcsThis"methoMdiscommontofullcircles, ellipsesandcirculararcs. It rstexecutesthemethods\arcScale@,D\arcRadius@D7,D\ellipseRatio@Z-wherenecessarye,Dthenexamines\arcOrient@@Nj(tode-cidefifthearcistobMet!ypesetcloc!kwiseorcounter-cloMckwise.P393\xydef@\ellipseArc@{%394K\arcScale@\arcRadius@\ellipseRatio@395K\xy@{arcCONTROLS}{\baseOrient@\arcControls@\let\bstartPLACE@=\relax}}HereWiswherethe\con!trolpMoints"arede ned,4foreachofthefourB"Deziercubicsegments,4usingcoMordinateswintheconstructedbasis.Theendpoin!tsofthesegments|though,;notnecessarilyofthearc|arefstoredas0p,1cu,2c,3cD۹andthetangen!tialcontrolpMointsarestoredas1m ,2m,.3..,f8m.405\xydef@\cubicARCcontrols@@{\czeroEdge@406K\vfromcartesian@@0,1@\idfromc@{1@c}%407K\vfromcartesian@@-1,0@\idfromc@{2@c}%408K\vfromcartesian@@0,-1@\idfromc@{3@c}%409K\vfromcartesian@@1,\arcparam@@\idfromc@{1@m}%410K\vfromcartesian@@\arcparam@,1@\idfromc@{2@m}%411K\vfromcartesian@@-\arcparam@,1@\idfromc@{3@m}%412K\vfromcartesian@@-1,\arcparam@@\idfromc@{4@m}%413K\vfromcartesian@@-1,-\arcparam@@\idfromc@{5@m}%414K\vfromcartesian@@-\arcparam@,-1@\idfromc@{6@m}%415K\vfromcartesian@@\arcparam@,-1@\idfromc@{7@m}%416K\vfromcartesian@@1,-\arcparam@@\idfromc@{8@m}%417K}Dra!wing!thecircle/ellipse/arcmeanstracingalongtherequisitecubicsegments. PThemethoMd\doCircleArc@@9pishusedforfullcircles/ellipseswhencompletesegmen!tsaretobMetypMeset. $The*tj3.9.CCIR!CLE,fELLIPSE,ARCFEAeTURE_401??hwmethoMds\doMergeStartArc@e4, \doMergeEndArc@@cTand\doMergeBothArc@ctareusedwhenasegmen!t iswxnotcomplete. QThew!orkby\merging"theinitial/ nalpMointofthecurvedsegmentwiththeappropriateBpMoin!trequiredtobeattheextremit!yofthearc.TypMesettingofthecurveshouldnottakeplacefwithintheregionco!veredfbythismergedobject. ㍑Teoo!vercomethedicultyofthecurveleavingthenre-enteringthisregion,9kasecondmergeispMerformed(toextenditsuitablye.dThisisthepurposeof\cfromcontrols@Zc.dDuetothe\con!vex-hullpropMert!y"QoftheB"Deziercubicsegment,|oapMointcanbMeconstructedfromtheend-poin!tsandcontrolpMoin!tsfwhichcanbMeusedtoextendtherectangletocoverasuitablepMortionofthecurve.P437\xydef@\doCircleArc@@#1#2{\save@\ifcase#2\relax438K\doCircleArc@@@{0@p}{1@m}{2@m}{1@c}{#1}\or439K\doCircleArc@@@{1@c}{3@m}{4@m}{2@c}{#1}\or440K\doCircleArc@@@{2@c}{5@m}{6@m}{3@c}{#1}\or441K\doCircleArc@@@{3@c}{7@m}{8@m}{0@p}{#1}\or442K\doCircleArc@@@{0@p}{1@m}{2@m}{1@c}{#1}\or443K\doCircleArc@@@{1@c}{3@m}{4@m}{2@c}{#1}\or444K\doCircleArc@@@{2@c}{5@m}{6@m}{3@c}{#1}\or445K\doCircleArc@@@{3@c}{7@m}{8@m}{0@p}{#1}\fi\leave@}447\xydef@\doCircleArc@@@#1#2#3#4#5{%448K\cfromid@{#1}\pfromc@\senter@449K\cfromid@{#2}\spushc@\cfromid@{#3}\spushc@\cfromid@{#4}%450K\connect@\crvs{#5}\relax\sinit@\sleave@}452\xydef@\doMergeEndArc@@#1#2{\save@\ifcase#2\relax453K\doMergeEnd@@@{0@p}{1@m}{2@m}{1@c}{#1}\relax\or454K\doMergeEnd@@@{1@c}{3@m}{4@m}{2@c}{#1}\relax\or455K\doMergeEnd@@@{2@c}{5@m}{6@m}{3@c}{#1}\relax\or456K\doMergeEnd@@@{3@c}{7@m}{8@m}{0@p}{#1}@\fi\leave@}458\xydef@\doMergeEnd@@@#1#2#3#4#5#6{%459K\cfromid@{#1}\pfromc@\senter@460K\cfromid@{#2}\spushc@\cfromid@{#3}\spushc@\cfromid@{#4}%461K\ifx#6\relax462 m\L@c=.1\p@\R@c=\L@c\U@c=\L@c\D@c=\L@c\Edge@c={\rectangleEdge}\fi463K\enter@\cmergethec@\cfromid@{0@c}\leave@464K\enter@\cmergethec@\cfromcontrols@{#1}{#2}{#3}{#4}\leave@465K\connect@\crvs{#5}\relax466K\sinit@\sleave@}468\xydef@\doMergeStartArc@#1#2{\save@\ifcase#2\relax469K\doMergeStart@@{0@p}{1@m}{2@m}{1@c}{#1}@\or470K\doMergeStart@@{1@c}{3@m}{4@m}{2@c}{#1}\relax\or471K\doMergeStart@@{2@c}{5@m}{6@m}{3@c}{#1}\relax\or472K\doMergeStart@@{3@c}{7@m}{8@m}{0@p}{#1}\relax\fi\leave@}474\xydef@\doMergeStart@@#1#2#3#4#5#6{%475K\cfromid@{#1}\ifx#6\relax476 m\L@c=.1\p@\R@c=\L@c\U@c=\L@c\D@c=\L@c\Edge@c={\rectangleEdge}\fi477K\enter@\cmergethec@\cfromid@{0@x}\leave@478K\enter@\cmergethec@\cfromcontrols@{#4}{#3}{#2}{#1}\leave@479K\pfromc@480K\senter@\cfromid@{#2}\spushc@\cfromid@{#3}\spushc@\cfromid@{#4}%C*tj402KCHAPTERf3.CFEAeTURES??hw481K\connect@\crvs{#5}\relax\sinit@\sleave@}P483\xydef@\doMergeBothArc@#1#2{\save@\ifcase#2\relax 484K\doMergeBoth@@{0@p}{1@m}{2@m}{1@c}{#1}@\or485K\doMergeBoth@@{1@c}{3@m}{4@m}{2@c}{#1}\relax\or486K\doMergeBoth@@{2@c}{5@m}{6@m}{3@c}{#1}\relax\or487K\doMergeBoth@@{3@c}{7@m}{8@m}{0@p}{#1}\relax\fi\leave@}489\xydef@\doMergeBoth@@#1#2#3#4#5#6{%490K\cfromid@{#1}\ifx#6\relax491 m\L@c=.1\p@\R@c=\L@c\U@c=\L@c\D@c=\L@c\Edge@c={\rectangleEdge}\fi492K\enter@\cmergethec@\cfromid@{0@x}\leave@493K\enter@\cmergethec@\cfromcontrols@{#4}{#3}{#2}{#1}\leave@494K\pfromc@495K\senter@\cfromid@{#2}\spushc@\cfromid@{#3}\spushc@\cfromid@{#4}%496K\enter@\cmergethec@\cfromid@{0@c}\leave@497K\enter@\cmergethec@\cfromcontrols@{#1}{#2}{#3}{#4}\leave@498K\connect@\crvs{#5}\relax\sinit@\sleave@}500\xydef@\doMergeEndArc@#1#2{\count@@=#2\relax501K\ifnum\count@@>\thr@@\advance\count@@-4\fi\relax502K\doMergeEndArc@@{#1}\count@@}504\xydef@\doStraightArc@@#1{\xy@{STRAITarc}{\save@505K\cfromid@{0@p}\pfromc@\cfromid@{0@c}%506K\senter@\connect@\crvs{#1}\sinit@\sleave@\leave@}}508\xydef@\cfromcontrols@#1#2#3#4{\bgroup509 m\cfromid@{#1}\L@p=\X@c\U@p=\Y@c510 m\cfromid@{#4}\R@p=\X@c\D@p=\Y@c511 m\cfromid@{#3}\A@=\X@c\B@=\Y@c\cfromid@{#2}%512 m\ifdim\R@p>\L@p\ifdim\A@>\R@p\R@p=\A@513 \ifdim\X@c>\R@p\R@p=\X@c\fi\fi514 m\else\ifdim\A@<\R@p\R@p=\A@515 \ifdim\X@c<\R@p\R@p=\X@c\fi\fi516 m\fi517 m\ifdim\D@p>\U@p\ifdim\B@>\D@p\D@p=\B@518 \ifdim\Y@p>\D@p\D@p=\Y@p\fi\fi519 m\else\ifdim\B@<\D@p\D@p=\B@520 \ifdim\Y@p<\D@p\D@p=\Y@p\fi\fi521 m\fi522 m\edef\next@{\egroup\X@c=\the\R@p\Y@c=\the\D@p}\next@}vKThe@ nextmethoMdcon!trolswhichsegmentsaretypMeset.ItisratherprimitiveandcouldwellbMeim-pro!ved;e.g.tosbMemorelik!e\doEllipseSectors@navwith\forwardSectors@b"and\backwardSectors@e. .]FirstG:itcalculatesthe\startDirection@@hHasan!umbMer,ZCusingG:thecurren!tbase.$Nextitcalculates\quadDirection@>Awhic!hyrecordstheangleoftheyd-axisinthecurrentbase.XDepMendingonthere-quired~orien!tation,readfrom\arcOrient@@Gv,thislattern!umbMer~isadjustedtobeminimalgreaterthan\startDirection@@IforGacoun!ter-cloMckwiseGarc,oormaximallessthanitforacloc!kwiseone.oSimi-larlyrVthevdDalueof\endDirection@@]ismadelargerorsmallerthan\startDirection@@e,,|accordingtoorien!tation,fbyadding8192ifnecessarye.Eac!horequiredsegmentistypMesetusing\doCircleArc@@Y[,exceptthatthe nalsegmentusesthevdDalueof\doCircleArc@N~.3sWhentheend-pMoin!tistheoriginalcthenthisvalueis\doMergeEndArc@@_,Q*tj3.9.CCIR!CLE,fELLIPSE,ARCFEAeTURE_403??hwsofthatthearcwillstopattheedgeofthishpMosi,otherwise\doCircleArc@@Wisused.jU(Thefollo!wingmacrocanbMeshortenedbymakinguseofthemethoMds\forwardSectors@e|:and \backwardSectors@EFc,fasin\doEllipseSectors@k Z.P548\xydef@\doCircleArcs@{\save@549K\cfromid@{0@0}\pfromc@\cfromid@{0@p}\setupDirection@550K\startDirection@\edef\startDirection@@{\the\Direction}%551K\cfromid@{1@c}\setupDirection@\edef\quadDirection@{\the\Direction}\relax552K\count@=\quadDirection@\relax\def\nextii@{^}%553K\let\preDirection@@=\startDirection@@554K\ifx\nextii@\arcOrient@@555 m\ifnum\quadDirection@>\startDirection@@\relax556 m\else\advance\count@by8192\relax\edef\quadDirection@{\the\count@}\fi557 m\ifx\endDirection@@\empty558\ifx\endDirection@\relax559 \bgroup\cfromid@{0@c}\setupDirection@560Jk\edef\next@{\egroup\count@@=\the\Direction}\next@\relax561 \ifnum\count@@<\startDirection@@\advance\count@@8192\fi562 \edef\endDirection@@{\the\count@@}%563\else564 \count@@=\startDirection@@565 \advance\count@@by8192\edef\endDirection@@{\the\count@@}%566\fi567 m\else568\count@@=\endDirection@@\relax\ifnum\count@@<\startDirection@@\relax569 \advance\count@@by8192\edef\endDirection@@{\the\count@@}\fi570 m\fi%\forwardSectors@571K\ifnum\endDirection@@>\quadDirection@572 m\DN@{\expandafter\doCircleArc@@\expandafter{\arcSTYLE}{0}}%573K\else574 m\DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{0}}%575K\fi576%577K\else%\arcOrient@@=_578%579 m\ifnum\count@<\startDirection@@\relax\else\advance\count@by-8192\relax580 m\edef\quadDirection@{\the\count@}\fi581 m\ifx\endDirection@@\empty582\ifx\endDirection@\relax583 \bgroup\cfromid@{0@c}\setupDirection@584Jk\edef\next@{\egroup\count@@=\the\Direction}\next@\relax585 \ifnum\count@@>\startDirection@@\advance\count@@-8192\fi586 \edef\endDirection@@{\the\count@@}%587\else588 \count@@=\startDirection@@589 \advance\count@@by-8192\edef\endDirection@@{\the\count@@}%590\fi591 m\else592\count@@=\endDirection@@\relax\ifnum\count@@>\startDirection@@593 \advance\count@@by-8192\edef\endDirection@@{\the\count@@}\fi_*tj404KCHAPTERf3.CFEAeTURES??hw594 m\fi%\backwardSectors@ 595 m\ifnum\endDirection@@<\quadDirection@596\DN@{\expandafter\doCircleArc@@\expandafter{\arcSTYLE}{0}}%597 m\else\DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{0}}\fi598K\fi599K\next@\relax600%601K\count@=\quadDirection@\relax\def\nextii@{^}\DN@{}%602K\ifx\nextii@\arcOrient@@603 m\count@@=\startDirection@@\advance\count@@by4096\relax604K\ifnum\count@<\endDirection@@\relax605K\ifnum\endDirection@@>\count@@606 m\DN@{\expandafter\doCircleArc@@\expandafter{\arcSTYLE}{1}}%607K\else\DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{1}}\fi608K\fi609K\else610 m\count@@=\startDirection@@\advance\count@@by-4096\relax611K\ifnum\count@>\endDirection@@\relax612K\ifnum\endDirection@@<\count@@613 m\DN@{\expandafter\doCircleArc@@\expandafter{\arcSTYLE}{1}}%614K\else\DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{1}}\fi615K\fi\fi616K\next@\relax617%618K\ifx\next@\empty\else\relax619K\count@=\startDirection@@\relax\def\nextii@{^}\DN@{}%620K\ifx\nextii@\arcOrient@@\advance\count@by4096\relax621 m\count@@=\quadDirection@\advance\count@@by4096\relax622K\ifnum\count@<\endDirection@@623K\ifnum\endDirection@@>\count@@624 m\DN@{\expandafter\doCircleArc@@\expandafter{\arcSTYLE}{2}}%625K\else\DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{2}}\fi626K\fi627K\else\advance\count@by-4096\relax628 m\count@@=\quadDirection@\advance\count@@by-4096\relax629K\ifnum\count@>\endDirection@@\relax630K\ifnum\endDirection@@<\count@@631 m\DN@{\expandafter\doCircleArc@@\expandafter{\arcSTYLE}{2}}%632K\else\DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{2}}\fi633K\fi\fi634K\next@\relax635K\fi636%637K\ifx\next@\empty\else\relax638K\count@=\quadDirection@\def\nextii@{^}\DN@{}%639K\ifx\nextii@\arcOrient@@\advance\count@by4096\relax640K\ifnum\count@<\endDirection@@641K\DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{3}}\fi642K\else\advance\count@by-4096\relaxk*tj3.9.CCIR!CLE,fELLIPSE,ARCFEAeTURE_405??hw643K\ifnum\count@>\endDirection@@ 644K\DN@{\expandafter\doCircleArc@\expandafter{\arcSTYLE}{3}}\fi645K\fi\next@\relax646K\fi647%648K\leave@}v654\message{ellipticalarcs,}"33.9.4 CircularandEllipticalArcsThesUxyarc%featuresUhandlesarcstobMespeci edint!wosUessentiallydi erentways,accordingtowhatinformationispro!videdbytheuser.+Weecallthesethe\radius-unknown/end-pMointsknown"andthe\radius-kno!wn/end-pMointsfunknown"cases.ߍradius2unknotwn,end-pYointsknownTheGsimplestcase,Zthoughnotnecessarilythemostcommon,isthatofacirculararcfromptoc,withradiusandcen!treunspMeci ed.Teouniquelyspecifythearc,Mthetangen!tdirectionatpistakentobMealong%thecurren!tdirection,givenby\Direction=:ɹ,assetbythelatesthconnectiion.%IfnoconnectionhasfbMeenused,thenthedefaulthdirectioniis\up".@ffd ɍGT\ellipse_{)hst!ylei}cloMc!kwisefarcfromptocGT\ellipse^{)hst!ylei}coun!ter-cloMckwisefarcGT\ellipse{{hst!ylei}alsofcoun!ter-cloMckwiseyffdWiththisinformationonlye, auniquecirclecanbMefoundwhoseradiusandcen!treneednotbespeci edinfadvdDance.Feorauniquearcitissucien!ttospMecifytheorientationaroundthecircle.Therexceptioniswhenthecurren!tdirectionisfromptoc,4inwhichcasenocircleexists.Insteadafstraigh!tlineistypMesetaccompaniedbythefollowingmessage:|Xy-picWarning:straightarcencounteredThewfollo!wingexampleshowshow,&;giventhreepMointso,&;pandc,tocon!tinuewthelinefe "opb!ya circularfarctocjoiningsmoMothlyatp.$Fjps: SDict begin xyc end 4p'4,\#o'mΠ)\"" {0.0 3.05 -3.05 -3.05 3.05 ov}xy,\Πc)\h0" {30.0 -30.0 l}xyς\h0V" {mark 60.0 0.0 52.93272 7.06697 52.93246 18.5481 59.99944 25.61537 0.00003 1.0 bz}xyς\h0Z" {mark 59.99944 25.61537 67.0664 32.68265 78.54753 32.6829 85.6148 25.61594 0.0 1.0 bz}xyς\h0^" {mark 85.6148 25.61594 92.68208 18.54897 92.68234 7.06784 85.61537 0.00056 0.0 0.17096 bz}xyς\h0V" {mark 60.0 0.0 67.06728 -7.06697 78.5484 -7.06671 85.61537 0.00056 0.00003 1.0 bt}xyς\h0^" {mark 85.61537 0.00056 92.68234 7.06784 92.68208 18.54897 85.6148 25.61594 0.0 0.59888 bt}xy5 \*aς\h0\" {mark 90.0 -30.0 118.84901 -1.15007 165.71727 -1.1493 194.5672 -29.99832 0.0 0.84515 bz}xy9콍\xy0;/r5pc/:*=+\dir{*}*+!UR{p};p+(.5,-.5)*\dir{*}="o",*+!UL{o},+(0,.81)*=<6.1pt>\dir{*}*\frm{-}="c",*+!DL{c},"o",**\dir{-},"c",{\ellipse_{}},{\ellipse^{.}}%,"o"+(1.5,.2)*\dir{*}="a"*+!UL{a},"o";p+/_1pc/,**{},"a",{\ellipse_{}}\endxyw*tj406KCHAPTERf3.CFEAeTURES??hwNoteho!wtheremainderofthecirclecanbMespeci edseparatelye.iTheexamplealsosho!wshowto spMecifyfanarcwhic!hleavesaparticularpMointpMerpendicularftoaspMeci cdirection.KSligh!tly@morecomplicatediswhenthetangentdirectionatpisspMeci ed,gZbutdi erentfromthecurren!t,direction;auniquecirculararccanstillbMede ned./Morecomplicatediswhenaspeci ctangen!tfdirectionisrequiredalsoatc.ȫInthiscasethearcproMducedisasegmentofanellipse.ȫ(Iftherequired(tangen!tatppMointstocthenastraightsegmentisdrawn,asinthecircularcasedescribMedabMo!ve.) Dffd +􍍍m\ellipseLhdirizp], horien!ti{..}TŹcircularm\ellipseLhdirizp], horien!ti,hdirizc.y{..}TŹellipticalm\ellipseLhdirizp], horien!tihdirizc.y{..}TŹellipticalm\ellipseLhdirizp], horien!ti,=hdirizc.y{..}TŹellipticalm\ellipse`RAghcoMordihorien!ti{..}TŹelliptical!ffdxInthesecaseshdirizp$andhdirizc @arehdirectionispMeci cations,asin gure1.5andnote1.4l,andhorien!tim!ustbMeeither^ضor_foran!ti-/cloMckwiserespectivelye,defaultingto^ضifhempt!yi.=Bewarethatthe(* ThpMosihdecori*)%formfmustPbeusedforthishdirectionivdDarian!t,asifanobjectmodi er.The/secondandthirdcasesintheabMo!ve/tablegenerallygiv!eidenticalresults.yThesecond`,'isth!usfoptional,exceptintwospMeci csituations:Ӎ b%1.`horien!tifisemptyandhdirizc߹has^ vor_asthe rsttok!en;J b%2.`horien!ti\is^ yjandhdirizcYhas^as rsttok!en.[Withoutthe,then^ ^9w!ouldbMeinterpretedbyT,[wEB X`asfpartofaspMecialligatureforahexadecimalc!haractercode.ԍIffbMothhorien!tiandhdirizc߹arehemptyitheneventhe rst`,'canbMeomitted.IMps: SDict begin xyc end= 4h0>ֱ"" {0.0 4.05 -4.05 -4.05 4.05 ov}xy<p[ 4_ֱ#o[ mΠ\ֱ"" {0.0 4.05 -4.05 -4.05 4.05 ov}xybֱ*c\ֱh0" {30.0 -30.0 l}xy>ʟiQ" {p}xy>g" {p}xy<" {p}xye" {p}xy yj O" {p}xy?CXi" {p}xy?w9 " {p}xy> m." {p}xy?:" {p}xy>ꜟ" {p}xy?ܟ" {p}xy?%>," {p}xy@Y." {p}xy?f" {p}xy@Ny" {p}xy?ҧ" {p}xy@" {p}xy?;)" {p}xy@" {p}xy@'" {p}xy@؟$"" {p}xy@jJ" {p}xyA1`5#" {p}xy@ҟ"" {p}xyAfC" {p}xy@۟3" {p}xyAO" {p}xyA/UD+" {p}xyA]" {p}xyAlQ" {p}xyB/h\" {p}xyA_" {p}xyBFnrF" {p}xyApl$" {p}xyB|_" {p}xyB5v=" {p}xyB2;" {p}xyB{ĞI" {p}xyB֟" {p}xyBh" {p}xyC0۟" {p}xyC" {p}xyCo" {p}xyC@4C" {p}xyCN\" {p}xyCpZ" {p}xyCٟY" {p}xyC랞" {p}xyD" {p}xyDW" {p}xyDV|" {p}xyDV|" {p}xyD" {p}xyD" {p}xyDԟ" {p}xyDҞ" {p}xyEB" {p}xyE@e" {p}xyEG" {p}xyEgϞ" {p}xyE" {p}xyE" {p}xyE" {p}xyE`" {p}xyFa" {p}xyF2f" {p}xyF;" {p}xyF{g" {p}xyF}/}/" {p}xyFy=" {p}xyFΟt" {p}xyGܟn" {p}xyFPj" {p}xyGG^c" {p}xyG2C_" {p}xyGV" {p}xyGsR" {p}xyGTJ(" {p}xyG8F" {p}xyH:" {p}xyG7" {p}xyH]," {p}xyH*)" {p}xyHџ{" {p}xyHl" {p}xyHϟ " {p}xyHw" {p}xyI2" {p}xyH鐟" {p}xyIt." {p}xyI$S" {p}xyIc" {p}xyIfϟo" {p}xyI" {p}xyI*" {p}xyJH" {p}xyI`" {p}xyJΟ" {p}xyJv" {p}xyJӯn" {p}xyJb*v" {p}xyKU" {p}xyJ_E" {p}xyK^9" {p}xyJ!Dw" {p}xyKϟ" {p}xyK +X" {p}xyKGf" {p}xyK^1" {p}xyL+o" {p}xyKI" {p}xyLs>" {p}xyK]" {p}xyL" {p}xyL6" {p}xyL$" {p}xyLZ" {p}xyM?a" {p}xyLlv," {p}xyMj@" {p}xyLةV" {p}xyMן" {p}xyMi3A" {p}xyN o" {p}xyMV" {p}xyNQ." {p}xyM;" {p}xyN9" {p}xyMԁɘ" {p}xyNߟ" {p}xyN۟" {p}xyO9Z" {p}xyNR}" {p}xyOas/" {p}xyN1T" {p}xyO" {p}xyNa." {p}xyOO"" {p}xyO6m" {p}xyP)${" {p}xyOLT" {p}xyPnb" {p}xyO۟" {p}xyPTt" {p}xyO֟P" {p}xyP$" {p}xyP V"" {p}xyQ3ԟ" {p}xyPDן*&" {p}xyQx" {p}xyP9" {p}xyQٟ" {p}xyPḰ" {p}xyQy_" {p}xyP" {p}xyR:.[" {p}xyQ;kq" {p}xyR}" {p}xyQz8" {p}xyRx" {p}xyQ2" {p}xyR`C" {p}xyQ" {p}xyS=Y>" {p}xyR." {p}xyS e" {p}xyRiEk_" {p}xyS" {p}xyR3" {p}xySߟ<" {p}xyRj{" {p}xyT?s" {p}xySX" {p}xyT|۟:" {p}xySXD" {p}xyT" {p}xySTS" {p}xyTA" {p}xyS՟" {p}xyU8" {p}xyT t" {p}xyUtH" {p}xyTC6" {p}xyUt" {p}xyT|iP" {p}xyU~" {p}xyT*" {p}xyV-%" {p}xyTM" {p}xyVjF" {p}xyU* " {p}xyVf" {p}xyUa4pS" {p}xyV₟" {p}xyU." {p}xyWL" {p}xyUj}" {p}xyWX9" {p}xyV z." {p}xyWȟ\" {p}xyV@!k" {p}xyW" {p}xyVxn&" {p}xyX̟i" {p}xyVEK" {p}xyX@ß y" {p}xyVȟ" {p}xyXxF2" {p}xyWX" {p}xyX`2" {p}xyWOI" {p}xyX Gw" {p}xyWş" {p}xyYc" {p}xyW" {p}xyYXJ" {p}xyW<" {p}xyYg" {p}xyXΟ" {p}xyYż" {p}xyXTN" {p}xyY<͍" {p}xyXY_" {p}xyZ.G" {p}xyX۟g" {p}xyZd0U" {p}xyX " {p}xyZ" {p}xyY{" {p}xyZʠ" {p}xyYM2 " {p}xyZҟAk" {p}xyYE" {p}xy[1s" {p}xyY^" {p}xy[e" {p}xy\dir{*}="p",*\frm{-},*++!U{p},"p";p+(.5,-.5)*+\dir{*}="o",*+!UL{o},+(0,.81)*=<8.1pt>\dir{*}="c",*\frm{-},*++!L{c},"o"**\dir{-},"c",{\ellipse:a(50),_:0{:}},{\ellipse:a(30),_:a(-45){}},{\ellipse:a(40),_{.}},;*{};{\ellipse:a(20),^=_{=}}\endxyPNotefthatonlytheslopMeofhdirizpmùandhdirizc߹issigni can!t;rotationsby180fjbMeingimmaterial.2Nkps: SDict begin xyc end 4p'4/\ço)\h0" {30.0 -30.0 l}xy'4'#ϟh0cc4k\ڳqe\h" {60.0 6.00037 l}xyς\h0M" {mark 60.0 0.0 46.28673 13.71564 59.73308 27.162 90.0 30.0 0.0 0.9989 bz}xyς\h0Y" {mark 60.0 0.0 73.71098 -13.71335 109.43193 -22.54543 139.69656 -19.70514 0.0 1.0 bt}xyς\h0b" {mark 139.69656 -19.70514 169.9612 -16.86485 183.40755 -3.41849 169.69656 10.29486 0.0 1.0 bt}xyς\h0[" {mark 169.69656 10.29486 155.98558 24.00821 120.26463 32.84029 90.0 30.0 0.0 0.9989 bt}xy*tj3.9.CCIR!CLE,fELLIPSE,ARCFEAeTURE_407??hw\xy0;/r5pc/:*\dir{*}="p",*+!UR{p} ;p+(.5,-.5)*\dir{*}="o",*++!L{o}**\dir{-},p+(.5,.5)*\dir{*}="c",*++!D{c},"c";p+(1,.1)*\dir{*}="q",*++!L{q}**\dir{-},"o";"p",**{};"c",{\ellipse![["o";"p"]],_![["q";"c"]]{}},{\ellipse![["o";"p"]],![["c";"q"]]{.}}\endxyThe= OvdDarian!testablishesthehdirectioniparsingtobMeginwiththedirectionresultingfromhdirizpinsteadaoftheoriginaldirection.1IfhdirizcEڹisrequiredtobMetheoriginaldirectionthenuse:0.ItcannotbMeghempt!yisincethisisinterpretedasrequiringacirculararcwithunspMeci edtangentatc;seetheexampleabMo!ve.Howeverwhenhdirizpݹandhdirizc%areparallelthereisawholefamily4ofpMossibleellipseswithfthespMeci edtangen!ts. Withb@nofurtherhin!tavdDailable,7achoiceismadebasedonthedistancebMetweenpandc.lIftherequired'directionispMerpendicular'tofe ?vpcthisc!hoiceresultsinacirculararc._Theoptionalfactorin=( mhn!umi) is;usedtoalterthischoice;othedefault(1),isassumedwhennothingfollowsthe= .Thisfactorisusedto\stretc!h"theellipsealongthespMeci eddirection.Feoranegativehnumitheorientationrev!erses.'v"#ps: SDict begin xyc end64h0p"" {0.0 5.05 -5.05 -5.05 5.05 ov}xy p4646ph0" {30.0 -30.0 l}xy9p#o46mΠ6p"" {0.0 4.05 -4.05 -4.05 4.05 ov}xy\dir{*}="p";p*\frm{-},*++!UR{p},p+(.5,-.5)*\dir{*}="o",**\dir{-},*+!UL{o},+(0,.81)*=<8.1pt>\dir{*}="c",*\frm{-},*++!DL{c},"c",{\ellipser,={}},{\ellipser,=(2){.}},{\ellipser,^=(3){.}},{\ellipser,=(-2){}},{\ellipser,=(-1){.}}\endxyThe{ nalvdDarian!tusesthedirectionsfrompandctothegivenhcoMordi.kIfhorientiishemptyithentheuorien!tationisdeterminedtogivetheshortestpathalongtheellipse.1 SpMecifyinganhorientiof^or_ҹwillforcetheorien!tation,evenifthismeanstra!velling`thelongw!ay'aroundtheellipse.hFeorexample,fseenext gure.4Alternativte'curves 5In{zsomecasesthecircularorellipticcurv!ecanbMereplacedbyacurvewithdi eren!tXshapMe,Thavingthesametangentdirectionsattheend-pMoints.}Whenafullcircle/ellipseisspMeci edthenonegetsinsteadaclosedcurv!econstructedfrom4splinesegments.OthervdDariantsuseaicsinglesegmen!t,"2or3segments,"orsomepMortionofall4segments.&Possibilitiesaregiveninthefollo!wingftable.Ɖffd 9EO\ellipse~e...{Eh..i}elliptical,fasabMo!ve9EO\ellipse~q...{Eh..i}parabMolicfsegmen!ts9EO\ellipse~c...{Eh..i}cubicfsegmen!ts9EO\ellipse~i...{Eh..i}in!terpMolatingfcubic9EO\ellipse~p...{Eh..i}cuspidalfcubic 8ffy̟ L͍ {-=4aIndeedTthisisalw9aysTso.pThealgorithmusedforthegeneralcasetendsto9wardTparallellines|clearlyunsuitable.*tj408KCHAPTERf3.CFEAeTURES??hwh\ellipse~c(\ hn!umi)...{Rh..i}cubicfsegmen!ts, withf\loMoseness"~ffdInthelattercasethehn!umi,typicallybMetween0and1,controlshowsoMonthecurvebMeginstobend a!waymfromthetangen!tdirection.SmallervdDaluesgivetightercurves|0forstraightlines|with~cbMeingfthesameas~c(1)$ and~q is~c(.66667)=# ,thatishn!umi=K=2=ڟfe@PA3 .!TheD2curv!eproMducedbythe\interpMolating"vdDariant~iactuallypassesthroughthecontrolpMoint"x">,Owith:\slopMeparalleltothelinefe ?vpc yҹ.Sincethetangen!tsatpandcpoin!ttoward"x"thecurvdDatureisquitegen!tleuntilnear"x"LwherethecurvebMendsrapidlye,&yetsmoMothlye.Thisisobtainedalsobyusing~c(1.33333)?$mN>\1the\convexhullpropMerty"doMesnothold;5#JU> 2thecurv!eisso\loMose"fthatitexhibitsloops.(Theauthoro ersnoguaran!teesontheusefulnessofsuchcurvesforan!yfparticularpurpMose;howevertheydoloMoknice. 53^ s;))dq߅ps: SDict begin xyc endO4pO#4)cth0" {-3072 st}xyt 0" {-3072 T d}xyHh0U" {mark 72.0 0.0 104.34972 -10.10747 120.48534 -26.2431 108.0 -36.0 0.0 0.90326 bz}xyHh0R" {mark 72.0 0.0 32.91501 12.21187 5.83069 12.42365 -9.25412 0.63535 0.0 1.0 bt}xyHh0a" {mark -9.25412 0.63535 -24.33893 -11.15295 -12.33911 -23.15279 26.74588 -35.36465 0.0 1.0 bt}xyHh0]" {mark 26.74588 -35.36465 65.83087 -47.57652 92.91519 -47.7883 108.0 -36.0 0.0 0.93689 bt}xyHh0S" {mark 72.0 0.0 130.62706 -18.31767 130.62706 -18.31767 108.0 -36.0 0.0 0.94 bt}xyss" {p}xy5ş\" {p}xyi" {p}xyOu" {p}xyj:X" {p}xyȘ*" {p}xyT}" {p}xyfb" {p}xyb2" {p}xy6" {p}xy﫟d" {p}xy/)f" {p}xy+I" {p}xyZϟ" {p}xy}@=$" {p}xy}p?v" {p}xyz=[" {p}xyzm)&" {p}xyw," {p}xywLv" {p}xyt{" {p}xyt"" {p}xypdC" {p}xyp d" {p}xymA" {p}xymA" {p}xyjP'" {p}xyj`'S" {p}xyg j" {p}xyg" {p}xycƟ " {p}xycƟ " {p}xy`" {p}xy`" {p}xy]p K" {p}xy]p ]" {p}xyZ] " {p}xyZM\" {p}xyWW1" {p}xyWG#1p" {p}xyTqKO " {p}xyTQmP" {p}xyQu" {p}xyQv" {p}xyN#x" {p}xyNE" {p}xyLo " {p}xyL?L]" {p}xyJx" {p}xyI " {p}xyG룟`" {p}xyGf" {p}xyD/ɟ" {p}xyCk" {p}xyAqh" {p}xy@u" {p}xy?ޝA" {p}xy>" {p}xy>w" {p}xy?ޥI" {p}xy? 融" {p}xy=!" {p}xy@lϟd" {p}xy>T" {p}xyAl" {p}xy@:z" {p}xyCm" {p}xyB4096\def\arcOrient@@{_}%982 m\else\ifnum\count@<-4096\def\arcOrient@@{^}%983 m\else\ifnum\count@>\z@\def\arcOrient@@{^}%984 m\else\def\arcOrient@@{_}\fi\fi\fi985K\fi}v991\xydef@\circleArc@{%992K\xy@{circARC@}{\cfromid@{0@p}\pfromc@\cfromp@\startDirection@993 m\arcCenter@\idfromc@{0@0}%994 m\def\startDirection@{\bgroup995 \cfromid@{0@0}\pfromc@\cfromid@{0@p}\setupDirection@996 \edef\next@{\egroup\Direction=\the\Direction}\next@997\relax\imposeDirection@}}%998K\ifx\endDirection@@\empty999 m\ifx\arcRadius@\empty\ifx\ellipseRatio@\empty\else1000\DN@{\arcScale@@}\ifx\arcScale@\next@\else1001\xy@@{\bgroup\cfromid@{0@0}\pfromc@\cfromid@{0@c}\setupDirection@1002Jk\edef\next@{\egroup\Direction=\the\Direction}\next@1003\edef\endDirection@@{\the\Direction}}\fi\fi\fi\fi1004K\ellipseArc@\xy@@{\leave@\doCircleArcs@}\endarc@}1005%\ellipseArc@\xy@@{\doCircleArcs@}\endarc@}эThefollo!wingmethoMdscalculatethecentreofacircleusingthepMerpendiculartotherequiredangleatfpandthepMerpendicularfbisectorofthelinefe ?vpc ܹ.P1013\xydef@\arcbisector{%1014K\cfromid@{0@p}\pfromc@\cfromid@{0@c}\setupDirection@1015K\advance\X@c\X@p\divide\X@c\tw@1016K\advance\Y@c\Y@p\divide\Y@c\tw@\czeroEdge@\pfromc@1017K\enter@\cplusthec@\enter@\relax\begingroup1018 m\aboveDirection@\xydashl@\vfromslide@i{}@\leave@}1020\xydef@\arcCenter@{%1021K\cfromid@{0@p}\pfromc@\cfromid@{0@m}\setupDirection@1022K\cfromp@\enter@\cplusthec@\enter@\relax\begingroup1023 m\aboveDirection@\xydashl@\vfromslide@i{}@\leave@\no@@1024K\arcCenter@i}1026\xydef@\arcCenter@i{%1027K\enter@{\pfromthep@}\setupDirection@\Creset@@1028 m\let\PLACEedgep@@=\PLACEedgep@\let\PLACEedgec@@=\PLACEedgec@1029 m\enter@{\pfromthep@\basefromthebase@}\bgroup ?*tj3.9.CCIR!CLE,fELLIPSE,ARCFEAeTURE_411??hw1030\arcbisector\edef\next@{\egroup 1031Jk\X@c=\the\X@c\Y@c=\the\Y@c\X@p=\the\X@p\Y@p=\the\Y@p}%1032Jk\next@\Cintercept@@\leave@\leave@}!tradius2knotwn,end-pYointsunknownTheNlanguagefortheseisacom!binationofmostofthatusedabMove,buttheinterpretationofthehdirectionisfisdi eren!t...8ffd [Is\ellipse<mhradiusi>hdiriz1, horien!ti,hdiriz2{..}Is\ellipse<mhradiusi>hdiriz1, horien!ti,= Thdiriz2{..}"ffdL"iwherehradiusiisoneoftheformsusedabMo!veitodescribeacircleorellipse.(\NotalloftheellipsewillbMet!ypeset|onlythatarcstartingwithhdiriz1 gٹastangen!tvector,0tracingviahorientiuntilthetangen!tgpMointsindirectionhdiriz2.Thise ectivelyextendsthenotationusedwith\cirRin1.6.2.Notethatrotatingagiv!enhdirizi@by180spMeci esadi erentarconthesameellipse/circle.~EReversingthehorien!tifnolongergivesthecomplementaryarc,butthiscomplementrotated180.!2ps: SDict begin xyc end334}Gp:334?#c<h0" {30.0 -30.0 l}xy1K" {p}xy0dݟd" {p}xy1K" {p}xy0-" {p}xy1_J" {p}xy/G" {p}xy1#" {p}xy/N" {p}xy0궟" {p}xy/WH" {p}xy0"" {p}xy/" {p}xy0͟h" {p}xy.F" {p}xy0Od" {p}xy." {p}xy0" {p}xy.lw" {p}xy/;KD" {p}xy.8 E" {p}xy/ W" {p}xy.ݟi" {p}xy/" {p}xy-" {p}xy/r4" {p}xy-<O" {p}xy/LW" {p}xy-|ɟC" {p}xy/(" {p}xy-S" {p}xy/#" {p}xy-,ȟb" {p}xy.璟s" {p}xy-D" {p}xy.(ĭ" {p}xy, O" {p}xy.ǟ" {p}xy,)}i" {p}xy.og" {p}xy,I" {p}xy.|3," {p}xy,e6" {p}xy.g" {p}xy,vq" {p}xy.Sf" {p}xy,_؟>" {p}xy.B՟" {p}xy,K[b" {p}xy.3 " {p}xy,9" {p}xy.%lh@" {p}xy,+B" {p}xy.r" {p}xy,t|" {p}xy.i" {p}xy," {p}xy. [c" {p}xy, mC" {p}xy.ޟ" {p}xy," {p}xy." {p}xy,E" {p}xy.h0" {p}xy, h0" {p}xyh0T" {mark 120.0 0.0 103.44635 16.55365 76.55365 16.55365 60.0 0.0 0.00198 0.3227 bz}xyh0P" {mark 150.0 -30.0 150.0 -16.7573 123.1073 -6.00037 90.0 -6.00037 0.0 1.0 bt}xyh0M" {mark 90.0 -6.00037 56.8927 -6.00037 30.0 -16.7573 30.0 -30.0 0.0 1.0 bt}xyh0O" {mark 30.0 -30.0 30.0 -43.2427 56.8927 -53.99963 90.0 -53.99963 0.0 1.0 bt}xyh0R" {mark 90.0 -53.99963 123.1073 -53.99963 150.0 -43.2427 150.0 -30.0 0.0 1.0 bt}xyh0Q" {mark 90.0 -6.00037 56.8927 -6.00037 30.0 -16.7573 30.0 -30.0 0.75845 1.0 bz}xyh0S" {mark 30.0 -30.0 30.0 -43.2427 56.8927 -53.99963 90.0 -53.99963 0.0 0.61926 bz}xyh0S" {mark 60.0 0.0 47.58476 -12.41524 50.94635 -35.94635 67.5 -52.5 0.00003 1.0 bt}xyh0S" {mark 67.5 -52.5 84.05365 -69.05365 107.58476 -72.41524 120.0 -60.0 0.0 1.0 bt}xyh0T" {mark 120.0 -60.0 132.41524 -47.58476 129.05365 -24.05365 112.5 -7.5 0.0 1.0 bt}xyh0L" {mark 112.5 -7.5 95.94635 9.05365 72.41524 12.41524 60.0 0.0 0.0 1.0 bt}xyh0S" {mark 60.0 0.0 47.58476 -12.41524 50.94635 -35.94635 67.5 -52.5 0.00003 1.0 bz}xyh0W" {mark 67.5 -52.5 84.05365 -69.05365 107.58476 -72.41524 120.0 -60.0 0.0 0.99738 bz}xy\\xy0;/r5pc/:*\dir{*}="p",*+!DR{p};p+(.5,-.5)*\dir{*}="c",*+!UL{c}**\dir{-},"c",{\ellipse<15pt>_,=:a(45){=}} T,{\ellipse<>__,=:a(30){-}},{\ellipse(1,.4){.}} T,{\ellipse(1,.4)_,=:a(120){-}},{\ellipse(,.75){.}} T,{\ellipse(,.75)_,^,^{-}}\endxy&|#1075\xydef@\getarcExtents@{%1076\ifx\space@\next\expandafter\DN@\space{\xyFN@\getarcExtents@}%1077\else\ifx\next@\xy@{@}{}\DN@@{\fullEllipse@}%1078\else\DN@{\xy@{arcEXTENTs}{\save@1079#>\def\startDirection@{\Direction=\startDirection@@\imposeDirection@}}%1080T\xyFN@\getarcExtents@ii}\fi\fi\next@}P1082\xydef@\getarcExtents@ii{%1083\ifx\next!\xy@{![[}{}\DN@![[##1]]{\getxyDirection@{##1}\getarcExtents@iv}%1084\else\DN@{\getarcExtents@iv}\fi\next@}1086\xydef@\getarcExtents@iv{\afterDIRECTIONorEMPTY1087T{\xy@{startDIR}{\edef\startDirection@@{\the\Direction}\leave@}%1088#>\xyFN@\getarcOrientation@}%1089T{\xy@{startDIR}{\edef\startDirection@@{\the\Direction}\leave@}%1090#>\xyFN@\getarcOrientation@}}'*tj412KCHAPTERf3.CFEAeTURES??hw1092\xydef@\getarcOrientation@{% 1093K\ifx\space@\next\expandafter\DN@\space{\xyFN@\getarcOrientation@}%1094K\else\ifx\next@\xy@{@}{}\DN@{\getEndDirection@x}%1095K\else\ifx\next,\xy@{,}{}\DN@,{\xyFN@\getarcOrientation@i}%1096K\else\DN@{\getarcOrientation@i}\fi\fi\fi\next@}%P1098\xydef@\getarcOrientation@i{%1099K\ifx\space@\next\expandafter\DN@\space{\xyFN@\getarcOrientation@i}%1100K\else\ifx\next@\xy@{@}{}\DN@{\getEndDirection@x}%1101K\else\ifx\next^{}\DN@##1{\xy@{^}{\def\arcOrient@@{^}}%1102 m\def\arcOrient@@{^}\xyFN@\getEndDirection@}%1103K\else\ifx\next_\DN@##1{\xy@{_}{\def\arcOrient@@{_}}%1104\def\arcOrient@@{_}\xyFN@\getEndDirection@}%1105K\else\DN@{\xyFN@\getEndDirection@}%1106K\fi\fi\fi\fi\next@}1108\xydef@\getEndDirection@{%1109K\ifx\space@\next\expandafter\DN@\space{\xyFN@\getEndDirection@}%1110K\else\ifx\next,\DN@,{\xy@{,}{}\xyFN@\getEndDirection@}%1111K\else\addEQ@\ifx\next\addEQ@\DN@{\xy@{=}{\save@\startDirection@}%1112 m\xyFN@\getEqDirection@}%1113K\else\ifx\next!\DN@![[##1]]{\xy@{![[}{\save@}\getxyDirection@{##1}%1114\xy@{endDIR}{\edef\endDirection@@{\the\Direction}}%1115 m\xyFN@\getEndDirection@i}%1116K\else\DN@{\xy@{origDIR}{\save@\origDirection@}\getEndDirection@i}%1117K\fi\fi\fi\fi\next@}1119\xydef@\getEqDirection@{%1120K\ifx\space@\next\expandafter\DN@\space{\xyFN@\getEqDirection@}%1121K\else\ifx\next@\xy@{@}{}\DN@@{%1122 m\xy@{sameDIR}{\edef\endDirection@@{\startDirection@@}\leave@}%1123 m\parEllipse@{1}{}}%1124%\else\ifx\next(\DN@(##1)##2@{\xy@{()}{\leave@}\parEllipse@{##1}{##2}}%1125K\else\ifx\next(\DN@({\xyFN@\checkEqOpen@}%1126K\else\DN@{\getEndDirection@i}\fi\fi\fi\next@}1128\xydef@\checkEqOpen@{%1129K\ifx\next*\DN@{\getEndDirection@i(}%1130K\else\DN@##1)##2@{\xy@{()}\leave@\parEllipse@{##1}{##2}}%1131K\fi\next@}1133\xydef@\getEndDirection@i{\afterDIRECTIONorEMPTY1134 m{\xy@{endDIR}{\edef\endDirection@@{\the\Direction}\leave@}%1135\getEndDirection@x}%1136 m{\xy@{endDIR}\leave@\getEndDirection@x}}1138\xydef@\getEndDirection@x#1@{%1139K\DN@{#1}\ifx\next@\empty\relax\else\xywarning@{\omittingTokens@}\fi1140K\processDirections@}1142\xydef@\omittingTokens@{omittingunusedtokens:\codeof\next@}v1146\xydef@\processDirections@@{%1147K\ifx\endDirection@@\empty\skewCircle@.S*tj3.9.CCIR!CLE,fELLIPSE,ARCFEAeTURE_413??hw1148K\else\skewEllipse@\expandafter\afterARCextents@@\fi}P1150\xydef@\processArcDirections@{% 1151K\xy@{ARCdirs}{\ifx\endDirection@@\empty1152\origDirection@\edef\endDirection@@{\the\Direction}\fi}%1153K\ellipseArc@1154K\xy@{procARCdirs}\processArcDirections@@1155K\let\arcScale@\ellsave@\let\arcRadius@\ellsave@\def\ellipseRatio@{}%1156K\xy@{circSECTORS}{\doCircleSectors@}\endarc@}1158\xydef@\ellsave@{\xy@@{\save@}}1160\xydef@\processArcDirections@@{\save@1161K\bgroup\cfromid@{0@0}\pfromc@\Direction=\startDirection@@1162 m\DN@{_}\ifx\next@\arcOrient@@1163\advance\Direction\ifnum\Direction<\z@-\fi4096\relax\fi1164 m\imposeDirection@1165 m\d@X=\cosDirection\Y@ybase\advance\d@X-\sinDirection\X@ybase1166 m\d@Y=-\cosDirection\Y@xbase\advance\d@Y\sinDirection\X@xbase1167 m\setupDirection@i1168 m\d@X=-\cosDirection\X@ybase\advance\d@X\sinDirection\X@xbase1169 m\d@Y=-\cosDirection\Y@ybase\advance\d@Y\sinDirection\Y@xbase1170 m\enter@\cplusthec@\X@c=\d@X\Y@c=\d@Y\leave@\czeroEdge@1171 m\setupDirection@i1172 m\czeroEdge@1173K\edef\next@{\egroup\cfromthec@\count@=\the\Direction}\next@1174K\edef\startDirection@@{\the\count@}\idfromc@{0@x}%1175%1176K\bgroup\cfromid@{0@0}\pfromc@\Direction=\endDirection@@1177K\DN@{_}\ifx\next@\arcOrient@@1178 m\advance\Direction\ifnum\Direction<\z@-\fi4096\relax\fi1179K\imposeDirection@1180 m\d@X=\cosDirection\Y@ybase\advance\d@X-\sinDirection\X@ybase1181 m\d@Y=-\cosDirection\Y@xbase\advance\d@Y\sinDirection\X@xbase1182 m\setupDirection@i1183 m\d@X=-\cosDirection\X@ybase\advance\d@X\sinDirection\X@xbase1184 m\d@Y=-\cosDirection\Y@ybase\advance\d@Y\sinDirection\Y@xbase1185 m\enter@\cplusthec@\X@c=\d@X\Y@c=\d@Y\leave@1186K\czeroEdge@1187 m\setupDirection@i1188 m\edef\next@{\egroup\cfromthec@\count@=\the\Direction}\next@1189K\edef\endDirection@@{\the\count@}\idfromc@{0@c}%1190%1191K\count@=\startDirection@@\relax\count@@=\endDirection@@\relax1192K\DN@{^}\ifx\arcOrient@@\next@1193 m\ifnum\count@@>\count@\else\advance\count@@8192\relax\fi1194K\else1195 m\ifnum\count@@<\count@\else\advance\count@@-8192\relax\fi\fi1196K\edef\startDirection@@{\the\count@}%1197K\edef\endDirection@@{\the\count@@}}%1199\xydef@\doCircleSectors@{%:*tj414KCHAPTERf3.CFEAeTURES??hw1200K\let\doCircleArc@=\doMergeEndArc@@\leave@\leave@ 1201K\cfromid@{0@0}\pfromc@\cfromid@{0@p}\setupDirection@1202K\count@=\Direction\DN@{^}\ifx\arcOrient@@\next@1203 m\ifnum\count@>\startDirection@@\advance\count@-8192\fi\relax1204 m\count@@=\count@\advance\count@@8192\relax1205 m\ifnum\count@@<\endDirection@@\advance\count@@8192\fi\relax1206K\else1207 m\ifnum\count@<\startDirection@@\advance\count@8192\fi\relax1208 m\count@@=\count@\advance\count@@-8192\relax1209 m\ifnum\count@@>\endDirection@@\advance\count@@-8192\fi\relax1210K\fi\relax1211K\edef\preDirection@@{\the\count@}\edef\postDirection@@{\the\count@@}%1212K\cfromid@{1@c}\setupDirection@\count@=\Direction1213K\def\nextii@{^}\ifx\nextii@\arcOrient@@1214 m\DN@{\forwardSectors@\doEllipseSectors@}%1215 m\ifnum\count@<\preDirection@@\advance\count@8192\relax1216 m\else\count@@=\count@\advance\count@-8192\relax1217\ifnum\count@@<\preDirection@@\else\count@=\count@@\fi\fi1218K\else1219 m\DN@{\backwardSectors@\doEllipseSectors@}%1220 m\ifnum\count@>\preDirection@@\advance\count@-8192\relax1221 m\else\count@@=\count@\advance\count@8192\relax1222\ifnum\count@@>\preDirection@@\else\count@=\count@@\fi\fi1223K\fi\edef\quadDirection@{\the\count@}%1224K\next@}P1226\xydef@\forwardSectors@{%1227K\ifnum\startDirection@@<\quadDirection@\def\startSector@@{0}%1228K\else\count@=\preDirection@@\advance\count@4096\relax1229 m\ifnum\startDirection@@<\count@\def\startSector@@{1}%1230 m\else\count@=\quadDirection@\advance\count@4096\relax1231\ifnum\startDirection@@<\count@\def\startSector@@{2}%1232\else\def\startSector@@{3}\fi\fi\fi1233%1234K\ifnum\quadDirection@<\endDirection@@\relax1235 m\count@=\preDirection@@\advance\count@4096\relax1236 m\ifnum\count@<\endDirection@@\relax1237\count@=\quadDirection@\advance\count@4096\relax1238\ifnum\count@<\endDirection@@\relax1239 \count@=\preDirection@@\advance\count@8192\relax1240 \ifnum\count@<\endDirection@@\relax1241Jk\count@=\quadDirection@\advance\count@8192\relax1242Jk\ifnum\count@<\endDirection@@\relax1243 \count@=\preDirection@@\advance\count@12288\relax1244 \ifnum\count@<\endDirection@@\relax1245ɿ\count@=\quadDirection@\advance\count@12288\relax1246ɿ\ifnum\count@<\endDirection@@\def\endSector@@{7}%1247ɿ\else\def\endSector@@{6}\fi1248 \else\def\endSector@@{5}\fi1249Jk\else\def\endSector@@{4}\fiG-*tj3.9.CCIR!CLE,fELLIPSE,ARCFEAeTURE_415??hw1250 \else\def\endSector@@{3}\fi 1251\else\def\endSector@@{2}\fi1252 m\else\def\endSector@@{1}\fi1253K\else\def\endSector@@{0}\fi}P1255\xydef@\backwardSectors@{%1256K\ifnum\startDirection@@>\quadDirection@\def\startSector@@{0}%1257K\else\count@=\preDirection@@\advance\count@-4096\relax1258 m\ifnum\startDirection@@>\count@\def\startSector@@{1}%1259 m\else\count@=\quadDirection@\advance\count@-4096\relax1260\ifnum\startDirection@@>\count@\def\startSector@@{2}%1261\else\def\startSector@@{3}\fi\fi\fi1262%1263K\ifnum\quadDirection@>\endDirection@@\relax1264 m\count@=\preDirection@@\advance\count@-4096\relax1265 m\ifnum\count@>\endDirection@@\relax1266\count@=\quadDirection@\advance\count@-4096\relax1267\ifnum\count@>\endDirection@@\relax1268 \count@=\preDirection@@\advance\count@-8192\relax1269 \ifnum\count@>\endDirection@@\relax1270Jk\count@=\quadDirection@\advance\count@-8192\relax1271Jk\ifnum\count@>\endDirection@@\relax1272 \count@=\preDirection@@\advance\count@-12288\relax1273 \ifnum\count@>\endDirection@@\relax1274ɿ\count@=\quadDirection@\advance\count@-12288\relax1275ɿ\ifnum\count@>\endDirection@@\def\endSector@@{7}%1276ɿ\else\def\endSector@@{6}\fi1277 \else\def\endSector@@{5}\fi1278Jk\else\def\endSector@@{4}\fi1279 \else\def\endSector@@{3}\fi1280\else\def\endSector@@{2}\fi1281 m\else\def\endSector@@{1}\fi1282K\else\def\endSector@@{0}\fi}1284\xydef@\doEllipseSectors@{%1285K\ifx\startSector@@\endSector@@1286 m\DN@{\expandafter\doMergeBothArc@\expandafter{\arcSTYLE}{\endSector@@}}%1287K\else1288\expandafter\doMergeStartArc@\expandafter{\arcSTYLE}{\startSector@@}%1289 m\edef\countArcs@@{\startSector@@}%1290 m\loop@\count@=\countArcs@@\relax\advance\count@\@ne1291\ifnum\count@<\endSector@@\edef\countArcs@@{\the\count@}%1292 \bgroup\expandafter\doCircleArc@@\expandafter{\arcSTYLE}{\countArcs@@}%1293 \egroup1294 m\repeat@1295 m\DN@{\expandafter\doMergeEndArc@\expandafter{\arcSTYLE}{\endSector@@}}%1296K\fi\next@}parsingAofdirections 5Whenthestartingdirectionisalongthelinefe ?vpc9thenastraigh!tsegmentist!ypMeset,fignoringanyrequestedendingdirection.1303\xydef@\checkstartDirection@{%T}*tj416KCHAPTERf3.CFEAeTURES??hw1304K\bgroup\no@@\edef\next@{\egroup\count@@=\the\Direction}\next@\relax 1305K\ifnum\count@@=\startDirection@@\relax\DN@{\straightArc@}%1306K\else\advance\count@@-\startDirection@@\relax1307 m\ifnum\count@@=\ifnum\count@@<\z@-\fi4096\relax\DN@{\straightArc@}%1308 m\else\DN@{\processDirections@@}\fi\fi\next@}P1310\xydef@\straightArc@{\xywarning@{straightarcencountered}%1311K\xy@@{\let\bstartPLACE@=\relax1312 m\expandafter\doStraightArc@@\expandafter{\arcSTYLE}}\endarc@}%v1318\xydef@\skewEllipse@{\xy@@{\doskewEllipse@}%1319K\def\afterARCextents@@{\xy@{aftARCext}{\let\doCircleArc@=\doMergeEndArc@@}%1320 m\ellipseArc@\xy@{doCircARCs}{\doCircleArcs@}\endarc@}%1321K\let\arcScale@=\relax\def\arcRadius@{}\def\ellipseRatio@{}}1323\xydef@\skewCircle@{\xy@@{\setupDirection@}%1324K\ifnum\Direction=\startDirection@@\relax\DN@{\halfEllipse@{1}}%1325K\else1326 m\xy@@{\def\startDirection@{\Direction=\startDirection@@\imposeDirection@}%1327\cfromid@{0@p}\enter@\cplusthec@\startDirection@1328\enter@\relax\begingroup\vfromslide@i{}@\czeroEdge@\leave@\idfromc@{0@m}%1329\let\endDirection@=\relax\let\doCircleArc@=\doMergeEndArc@@}%1330 m\DN@{\circleArc@}%1331K\fi\next@}1333\xydef@\doskewEllipse@{%1334K\def\startDirection@{\Direction=\startDirection@@\relax1335 m\imposeDirection@}\startDirection@\cfromid@{0@p}%1336K\enter@\cplusthec@\enter@\relax\begingroup\vfromslide@i{}@\leave@1337K\idfromc@{0@x}%1338K\ifx\endDirection@@\empty\parallelDirection@1339K\else1340 m\def\endDirection@{\Direction=\endDirection@@\relax1341\imposeDirection@}\endDirection@\skewEllB@1342 m\bgroup\setupDirection@\edef\next@{\egroup\count@@=\the\Direction}\next@1343 m\edef\endDirection@@{\the\count@@}%1344K\fi1345K\cfromid@{0@p}\bgroup\setupDirection@1346 m\edef\next@{\egroup\count@@=\the\Direction}\next@1347K\edef\startDirection@@{\the\count@@}}1349\xydef@\halfEllipse@#1{\xy@@{%1350K\cfromid@{0@p}\pfromc@\cfromid@{0@c}\no@@1351K\edef\endDirection@@{\the\Direction}%1352K\advance\X@c\X@p\divide\X@c\tw@\advance\Y@c\Y@p\divide\Y@c\tw@1353K\idfromc@{0@0}\pfromc@\cfromid@{0@p}\setbase@\X@p\Y@p\X@c\Y@c1354K\dimen@=\X@origin\advance\dimen@-\X@c\dimen@ii=\cosDirection\dimen@1355K\dimen@=\Y@origin\advance\dimen@-\Y@c\advance\dimen@ii\sinDirection\dimen@1356K\X@c=\X@origin\Y@c=\Y@origin\enter@\cplusthec@1357K\dimen@=#1\p@\ifdim\dimen@<\z@\DN@{^}\dimen@ii=-#1\dimen@ii1358 m\ifx\next@\arcOrient@@\def\arcOrient@@{_}\else\def\arcOrient@@{^}\fi1359K\else\dimen@ii=#1\dimen@ii\fia*tj3.9.CCIR!CLE,fELLIPSE,ARCFEAeTURE_417??hw1360K\startDirection@\enter@\relax\begingroup\expandafter 1361 m\vfromslide@i\expandafter{\the\dimen@ii}@\leave@1362K\idfromc@{1@c}\setbase@@\X@c\Y@c\adjustBaseOrient@1363K\count@@=\endDirection@@\relax1364K\DN@{^}\advance\count@@\ifx\arcOrient@@\next@\else-\fi4096\relax1365K\edef\startDirection@@{\the\count@@}%1366K\def\startDirection@{\Direction=\startDirection@@\imposeDirection@}%1367K\let\doCircleArc@=\doMergeEndArc@@}%1368K\let\arcScale@=\relax\ellipseArc@1369%\xy@@{\leave@\doCircleArcs@}\endarc@}1370K\xy@@{\doCircleArcs@}\endarc@}P1372\xydef@\parallelDirection@{\show\parallelDirection@}%1374\xydef@\parEllipse@#1#2{\DN@{#2}\ifx\next@\empty 1375K\else\xywarning@{\omittingTokens@}\fi\halfEllipse@{#1}}1377\xydef@\skewEllB@{\cfromid@{0@c}\pfromc@\enter@\cplusthec@1378K\enter@\relax\begingroup\vfromslide@i{}@\leave@1379K\enter@{\pfromthep@\basefromthebase@}\no@@1380K\bgroup\cfromid@{0@p}\pfromc@\cfromid@{0@x}\edef\next@{\egroup1381 m\X@c=\the\X@c\Y@c=\the\Y@c\X@p=\the\X@p\Y@p=\the\Y@p}\next@1382K\Cintercept@@\leave@\idfromc@{0@x}\cfromid@{0@p}\enter@\cplusthec@1383K\cfromid@{0@c}\leave@\enter@\cplusthec@\cfromid@{0@x}%1384K\X@c=-\X@c\Y@c=-\Y@c\leave@\idfromc@{0@0}\pfromc@\cfromid@{0@p}%1385K\setbase@\X@p\Y@p\X@c\Y@c\cfromid@{0@c}\setbase@@\X@c\Y@c1386K\adjustBaseOrient@}1388\xydef@\adjustBaseOrient@{%1389K\edef\tmp@{\expandafter\removePT@\the\X@xbase}\dimen@=\Y@ybase1390K\divide\dimen@64\relax\dimen@ii=\tmp@\dimen@1391K\edef\tmp@{\expandafter\removePT@\the\X@ybase}\dimen@=\Y@xbase1392K\divide\dimen@64\relax\dimen@=\tmp@\dimen@1393K\ifdim\dimen@>\dimen@ii\X@ybase=-\X@ybase\Y@ybase=-\Y@ybase\fi}$}The2end&Log1409\xyendinput1411%$Log:xyarc.doc,v$1412%Revision3.4 T1997/05/1801:13:24ross1413%Essentialbugfixes.1414%1415%Revision3.3 T1996/12/1814:21:23ross1416%Ross'sversion1417%1418%Revision3.3.1.1 T1996/12/1808:50:58ross1419%***emptylogmessage***1420%1421%Revision3.2 T1995/09/1918:20:20ross1422%Bugfixrelease.1423%1424%Revision3.1 T1995/09/0520:36:33rossn*tj418KCHAPTERf3.CFEAeTURES??hw1425%Release! 1426%1427%Revision3.0 T1995/07/0720:13:19ross1428%Majorreleasew/newUser'sGuide!1429%1430%Revision2.13 T1995/07/0415:04:51ross1431%Readyforreleaseofv3.1432%1433%NEWforversion3.,F3.10KnotsffandLinksfeatureqV ers.p3.4Tb9yRossMoQorehross@mpGce.mq.edu.auiThis/featurepro!videsalanguageforspMecifyingknots,linksandgeneralarrangementsofcrossingstrings.Header:P1%%$Id:xyknot.doc,v3.41997/05/1801:13:24rossExp$2%%3%%Xy-pic``KnotsandLinks''feature.4%%Copyright(c)1994-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,22%%Inc.,675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fi26\xyprovide{knot}{KnotsandLinksfeature}{\stripRCS$Revision:3.4$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}?T\o2Do:ݹDoMcumen!tfthisfeature!44\message{knotsandlinks,}zl*tj3.10.CKNOTSfANDLINKSFEAeTURE 4419??hwThismknotfeaturemisreallya`constructionkit',pro!vidingpieceswhichmaybMeplacedappropriately toformknotsandlinks. fThet!ypMesofpiecesprovidedareoftwokinds:the\crossings",representingonestringcrossingo!verorunderanother;/and\joins"whic!hareusedtoconnectwhatwouldotherwisebMelooseends.Sev!eraltypMesofeachareprovided,-alongwithasimplewayofspMecifyingwheretoplacearro!wheadsfandlabMels. Allthepiecesultimatelyusecurv!esfromthecurve%˲extension,usuallyindirectlyviathearrowfeature.As@&suc!h,fproMcessingcanbememory-in!tensive@&andma!yseemratherslow.Allthewarningsandyadvicegiv!enelsewhereontechniquestohandlepagesandindividualdiagramswithmanycurvesarefespMeciallyapplicablewhenusingthisfeature.Mostfconstructionsuse\arʹsomak!esurethisfeatureisloaded.P158\xyrequire{arrow}\xycatcodesSE>&Vps: SDict begin xyc endE" {mark 18.0 0.0 22.5 0.0 25.875 -1.125 28.3125 -2.4375 0.0 0.0 bz}xyM" {mark 28.3125 -2.4375 30.75 -3.75 32.25 -5.25 33.5625 -7.6875 0.0 0.0 bz}xyJ" {mark 33.5625 -7.6875 34.875 -10.125 36.0 -13.5 36.0 -18.0 0.0 0.0 bz}xyE" {mark 18.0 0.0 22.5 0.0 25.875 -1.125 28.3125 -2.4375 0.0 1.0 bz}xyM" {mark 28.3125 -2.4375 30.75 -3.75 32.25 -5.25 33.5625 -7.6875 0.0 1.0 bz}xyJ" {mark 33.5625 -7.6875 34.875 -10.125 36.0 -13.5 36.0 -18.0 0.0 1.0 bz}xyE" {mark 18.0 0.0 22.5 0.0 25.875 -1.125 28.3125 -2.4375 1.0 1.0 bz}xyM" {mark 28.3125 -2.4375 30.75 -3.75 32.25 -5.25 33.5625 -7.6875 1.0 1.0 bz}xyJ" {mark 33.5625 -7.6875 34.875 -10.125 36.0 -13.5 36.0 -18.0 1.0 1.0 bz}xyJ" {mark 18.0 -18.0 18.0 -13.5 19.125 -10.125 20.4375 -7.6875 0.0 0.0 bz}xyM" {mark 20.4375 -7.6875 21.75 -5.25 23.25 -3.75 25.6875 -2.4375 0.0 0.0 bz}xyE" {mark 25.6875 -2.4375 28.125 -1.125 31.5 0.0 36.0 0.0 0.0 0.0 bz}xyJ" {mark 18.0 -18.0 18.0 -13.5 19.125 -10.125 20.4375 -7.6875 0.0 1.0 bz}xyQ" {mark 20.4375 -7.6875 21.75 -5.25 23.25 -3.75 25.6875 -2.4375 0.0 0.83513 bz}xyE" {mark 25.6875 -2.4375 28.125 -1.125 31.5 0.0 36.0 0.0 0.0 0.0 bz}xyJ" {mark 18.0 -18.0 18.0 -13.5 19.125 -10.125 20.4375 -7.6875 1.0 1.0 bz}xyM" {mark 20.4375 -7.6875 21.75 -5.25 23.25 -3.75 25.6875 -2.4375 1.0 1.0 bz}xyI" {mark 25.6875 -2.4375 28.125 -1.125 31.5 0.0 36.0 0.0 0.44899 1.0 bz}xyJ" {mark 18.0 -18.0 18.0 -13.5 19.125 -10.125 20.4375 -7.6875 1.0 1.0 bz}xyM" {mark 20.4375 -7.6875 21.75 -5.25 23.25 -3.75 25.6875 -2.4375 1.0 1.0 bz}xyE" {mark 25.6875 -2.4375 28.125 -1.125 31.5 0.0 36.0 0.0 1.0 1.0 bz}xy:" {mark 18.0 0.0 9.0 0.0 4.5 -4.5 2.25 -9.75 0.0 0.0 bz}xy@" {mark 2.25 -9.75 0.0 -15.0 0.0 -21.0 2.25 -26.25 0.0 0.0 bz}xy@" {mark 2.25 -26.25 4.5 -31.5 9.0 -36.0 18.0 -36.0 0.0 0.0 bz}xy G" {-3372 10 /cm AB}xy:" {mark 18.0 0.0 9.0 0.0 4.5 -4.5 2.25 -9.75 0.0 1.0 bz}xy@" {mark 2.25 -9.75 0.0 -15.0 0.0 -21.0 2.25 -26.25 0.0 1.0 bz}xy@" {mark 2.25 -26.25 4.5 -31.5 9.0 -36.0 18.0 -36.0 0.0 1.0 bz}xy:" {mark 18.0 0.0 9.0 0.0 4.5 -4.5 2.25 -9.75 1.0 1.0 bz}xy@" {mark 2.25 -9.75 0.0 -15.0 0.0 -21.0 2.25 -26.25 1.0 1.0 bz}xy@" {mark 2.25 -26.25 4.5 -31.5 9.0 -36.0 18.0 -36.0 1.0 1.0 bz}xyK" {mark 36.0 -36.0 31.5 -36.0 28.125 -34.875 25.6875 -33.5625 0.0 0.0 bz}xyQ" {mark 25.6875 -33.5625 23.25 -32.25 21.75 -30.75 20.4375 -28.3125 0.0 0.0 bz}xyK" {mark 20.4375 -28.3125 19.125 -25.875 18.0 -22.5 18.0 -18.0 0.0 0.0 bz}xyK" {mark 36.0 -36.0 31.5 -36.0 28.125 -34.875 25.6875 -33.5625 0.0 1.0 bz}xyQ" {mark 25.6875 -33.5625 23.25 -32.25 21.75 -30.75 20.4375 -28.3125 0.0 1.0 bz}xyK" {mark 20.4375 -28.3125 19.125 -25.875 18.0 -22.5 18.0 -18.0 0.0 1.0 bz}xyK" {mark 36.0 -36.0 31.5 -36.0 28.125 -34.875 25.6875 -33.5625 1.0 1.0 bz}xyQ" {mark 25.6875 -33.5625 23.25 -32.25 21.75 -30.75 20.4375 -28.3125 1.0 1.0 bz}xyK" {mark 20.4375 -28.3125 19.125 -25.875 18.0 -22.5 18.0 -18.0 1.0 1.0 bz}xyK" {mark 36.0 -18.0 36.0 -22.5 34.875 -25.875 33.5625 -28.3125 0.0 0.0 bz}xyQ" {mark 33.5625 -28.3125 32.25 -30.75 30.75 -32.25 28.3125 -33.5625 0.0 0.0 bz}xyK" {mark 28.3125 -33.5625 25.875 -34.875 22.5 -36.0 18.0 -36.0 0.0 0.0 bz}xyK" {mark 36.0 -18.0 36.0 -22.5 34.875 -25.875 33.5625 -28.3125 0.0 1.0 bz}xyU" {mark 33.5625 -28.3125 32.25 -30.75 30.75 -32.25 28.3125 -33.5625 0.0 0.83513 bz}xyK" {mark 28.3125 -33.5625 25.875 -34.875 22.5 -36.0 18.0 -36.0 0.0 0.0 bz}xyK" {mark 36.0 -18.0 36.0 -22.5 34.875 -25.875 33.5625 -28.3125 1.0 1.0 bz}xyQ" {mark 33.5625 -28.3125 32.25 -30.75 30.75 -32.25 28.3125 -33.5625 1.0 1.0 bz}xyO" {mark 28.3125 -33.5625 25.875 -34.875 22.5 -36.0 18.0 -36.0 0.44899 1.0 bz}xyK" {mark 36.0 -18.0 36.0 -22.5 34.875 -25.875 33.5625 -28.3125 1.0 1.0 bz}xyQ" {mark 33.5625 -28.3125 32.25 -30.75 30.75 -32.25 28.3125 -33.5625 1.0 1.0 bz}xyK" {mark 28.3125 -33.5625 25.875 -34.875 22.5 -36.0 18.0 -36.0 1.0 1.0 bz}xyC" {mark 36.0 -36.0 45.0 -36.0 49.5 -31.5 51.75 -26.25 0.0 0.0 bz}xyD" {mark 51.75 -26.25 54.0 -21.0 54.0 -15.0 51.75 -9.75 0.0 0.0 bz}xy=" {mark 51.75 -9.75 49.5 -4.5 45.0 0.0 36.0 0.0 0.0 0.0 bz}xyF禟 3" {1316 10 /cm AB}xyC" {mark 36.0 -36.0 45.0 -36.0 49.5 -31.5 51.75 -26.25 0.0 1.0 bz}xyD" {mark 51.75 -26.25 54.0 -21.0 54.0 -15.0 51.75 -9.75 0.0 1.0 bz}xy=" {mark 51.75 -9.75 49.5 -4.5 45.0 0.0 36.0 0.0 0.0 1.0 bz}xyC" {mark 36.0 -36.0 45.0 -36.0 49.5 -31.5 51.75 -26.25 1.0 1.0 bz}xyD" {mark 51.75 -26.25 54.0 -21.0 54.0 -15.0 51.75 -9.75 1.0 1.0 bz}xy=" {mark 51.75 -9.75 49.5 -4.5 45.0 0.0 36.0 0.0 1.0 1.0 bz}xy@<&simpleUUlinkE>,-ps: SDict begin xyc endA" {mark 36.0 18.0 36.0 31.5 33.75 36.0 31.125 38.25 0.0 0.0 bz}xyC" {mark 31.125 38.25 28.5 40.5 25.5 40.5 22.875 38.25 0.0 0.0 bz}xyA" {mark 22.875 38.25 20.25 36.0 18.0 31.5 18.0 18.0 0.0 0.0 bz}xyE" {mark 36.0 18.0 36.0 31.5 33.75 36.0 31.125 38.25 0.0 0.11824 bz}xyC" {mark 31.125 38.25 28.5 40.5 25.5 40.5 22.875 38.25 0.0 0.0 bz}xyA" {mark 22.875 38.25 20.25 36.0 18.0 31.5 18.0 18.0 0.0 0.0 bz}xyE" {mark 36.0 18.0 36.0 31.5 33.75 36.0 31.125 38.25 0.28189 1.0 bz}xyC" {mark 31.125 38.25 28.5 40.5 25.5 40.5 22.875 38.25 0.0 0.5 bz}xyA" {mark 22.875 38.25 20.25 36.0 18.0 31.5 18.0 18.0 0.0 0.0 bz}xyA" {mark 36.0 18.0 36.0 31.5 33.75 36.0 31.125 38.25 1.0 1.0 bz}xyC" {mark 31.125 38.25 28.5 40.5 25.5 40.5 22.875 38.25 0.5 1.0 bz}xyA" {mark 22.875 38.25 20.25 36.0 18.0 31.5 18.0 18.0 0.0 1.0 bz}xyA" {mark 36.0 18.0 36.0 31.5 33.75 36.0 31.125 38.25 1.0 1.0 bz}xyC" {mark 31.125 38.25 28.5 40.5 25.5 40.5 22.875 38.25 1.0 1.0 bz}xyA" {mark 22.875 38.25 20.25 36.0 18.0 31.5 18.0 18.0 1.0 1.0 bz}xyE" {mark 18.0 18.0 18.0 13.5 21.375 11.25 23.8125 10.125 0.0 0.0 bz}xyF" {mark 23.8125 10.125 26.25 9.0 27.75 9.0 30.1875 7.875 0.0 0.0 bz}xyA" {mark 30.1875 7.875 32.625 6.75 36.0 4.5 36.0 0.0 0.0 0.0 bz}xyE" {mark 18.0 18.0 18.0 13.5 21.375 11.25 23.8125 10.125 0.0 1.0 bz}xyJ" {mark 23.8125 10.125 26.25 9.0 27.75 9.0 30.1875 7.875 0.0 0.09744 bz}xyA" {mark 30.1875 7.875 32.625 6.75 36.0 4.5 36.0 0.0 0.0 0.0 bz}xyE" {mark 18.0 18.0 18.0 13.5 21.375 11.25 23.8125 10.125 1.0 1.0 bz}xyJ" {mark 23.8125 10.125 26.25 9.0 27.75 9.0 30.1875 7.875 0.90256 1.0 bz}xyA" {mark 30.1875 7.875 32.625 6.75 36.0 4.5 36.0 0.0 0.0 1.0 bz}xyE" {mark 18.0 18.0 18.0 13.5 21.375 11.25 23.8125 10.125 1.0 1.0 bz}xyF" {mark 23.8125 10.125 26.25 9.0 27.75 9.0 30.1875 7.875 1.0 1.0 bz}xyA" {mark 30.1875 7.875 32.625 6.75 36.0 4.5 36.0 0.0 1.0 1.0 bz}xyA" {mark 18.0 0.0 18.0 4.5 21.375 6.75 23.8125 7.875 0.0 0.0 bz}xyF" {mark 23.8125 7.875 26.25 9.0 27.75 9.0 30.1875 10.125 0.0 0.0 bz}xyE" {mark 30.1875 10.125 32.625 11.25 36.0 13.5 36.0 18.0 0.0 0.0 bz}xyA" {mark 18.0 0.0 18.0 4.5 21.375 6.75 23.8125 7.875 0.0 1.0 bz}xyF" {mark 23.8125 7.875 26.25 9.0 27.75 9.0 30.1875 10.125 0.0 1.0 bz}xyE" {mark 30.1875 10.125 32.625 11.25 36.0 13.5 36.0 18.0 0.0 1.0 bz}xyA" {mark 18.0 0.0 18.0 4.5 21.375 6.75 23.8125 7.875 1.0 1.0 bz}xyF" {mark 23.8125 7.875 26.25 9.0 27.75 9.0 30.1875 10.125 1.0 1.0 bz}xyE" {mark 30.1875 10.125 32.625 11.25 36.0 13.5 36.0 18.0 1.0 1.0 bz}xyK" {mark 36.0 -18.0 31.5 -18.0 28.125 -16.875 25.6875 -15.5625 0.0 0.0 bz}xyQ" {mark 25.6875 -15.5625 23.25 -14.25 21.75 -12.75 20.4375 -10.3125 0.0 0.0 bz}xyG" {mark 20.4375 -10.3125 19.125 -7.875 18.0 -4.5 18.0 0.0 0.0 0.0 bz}xyO" {mark 36.0 -18.0 31.5 -18.0 28.125 -16.875 25.6875 -15.5625 0.0 0.55101 bz}xyQ" {mark 25.6875 -15.5625 23.25 -14.25 21.75 -12.75 20.4375 -10.3125 0.0 0.0 bz}xyG" {mark 20.4375 -10.3125 19.125 -7.875 18.0 -4.5 18.0 0.0 0.0 0.0 bz}xyK" {mark 36.0 -18.0 31.5 -18.0 28.125 -16.875 25.6875 -15.5625 1.0 1.0 bz}xyU" {mark 25.6875 -15.5625 23.25 -14.25 21.75 -12.75 20.4375 -10.3125 0.16487 1.0 bz}xyG" {mark 20.4375 -10.3125 19.125 -7.875 18.0 -4.5 18.0 0.0 0.0 1.0 bz}xyK" {mark 36.0 -18.0 31.5 -18.0 28.125 -16.875 25.6875 -15.5625 1.0 1.0 bz}xyQ" {mark 25.6875 -15.5625 23.25 -14.25 21.75 -12.75 20.4375 -10.3125 1.0 1.0 bz}xyG" {mark 20.4375 -10.3125 19.125 -7.875 18.0 -4.5 18.0 0.0 1.0 1.0 bz}xyG" {mark 36.0 0.0 36.0 -4.5 34.875 -7.875 33.5625 -10.3125 0.0 0.0 bz}xyQ" {mark 33.5625 -10.3125 32.25 -12.75 30.75 -14.25 28.3125 -15.5625 0.0 0.0 bz}xyK" {mark 28.3125 -15.5625 25.875 -16.875 22.5 -18.0 18.0 -18.0 0.0 0.0 bz}xyG" {mark 36.0 0.0 36.0 -4.5 34.875 -7.875 33.5625 -10.3125 0.0 1.0 bz}xyQ" {mark 33.5625 -10.3125 32.25 -12.75 30.75 -14.25 28.3125 -15.5625 0.0 1.0 bz}xyK" {mark 28.3125 -15.5625 25.875 -16.875 22.5 -18.0 18.0 -18.0 0.0 1.0 bz}xyG" {mark 36.0 0.0 36.0 -4.5 34.875 -7.875 33.5625 -10.3125 1.0 1.0 bz}xyQ" {mark 33.5625 -10.3125 32.25 -12.75 30.75 -14.25 28.3125 -15.5625 1.0 1.0 bz}xyK" {mark 28.3125 -15.5625 25.875 -16.875 22.5 -18.0 18.0 -18.0 1.0 1.0 bz}xy1" {mark 0.0 0.0 0.0 -18.0 18.0 -18.0 0.0 0.0 q}xy1" {mark 0.0 0.0 0.0 -18.0 18.0 -18.0 0.0 1.0 q}xy1" {mark 0.0 0.0 0.0 -18.0 18.0 -18.0 1.0 1.0 q}xyB" {mark 54.0 0.0 54.0 13.5 47.25 20.25 39.375 23.625 0.0 0.0 bz}xyE" {mark 39.375 23.625 31.5 27.0 22.5 27.0 14.625 23.625 0.0 0.0 bz}xy?" {mark 14.625 23.625 6.75 20.25 0.0 13.5 0.0 0.0 0.0 0.0 bz}xyB" {mark 54.0 0.0 54.0 13.5 47.25 20.25 39.375 23.625 0.0 1.0 bz}xyI" {mark 39.375 23.625 31.5 27.0 22.5 27.0 14.625 23.625 0.0 0.74385 bz}xy?" {mark 14.625 23.625 6.75 20.25 0.0 13.5 0.0 0.0 0.0 0.0 bz}xyB" {mark 54.0 0.0 54.0 13.5 47.25 20.25 39.375 23.625 1.0 1.0 bz}xyH" {mark 39.375 23.625 31.5 27.0 22.5 27.0 14.625 23.625 0.9481 1.0 bz}xy?" {mark 14.625 23.625 6.75 20.25 0.0 13.5 0.0 0.0 0.0 1.0 bz}xyB" {mark 54.0 0.0 54.0 13.5 47.25 20.25 39.375 23.625 1.0 1.0 bz}xyE" {mark 39.375 23.625 31.5 27.0 22.5 27.0 14.625 23.625 1.0 1.0 bz}xy?" {mark 14.625 23.625 6.75 20.25 0.0 13.5 0.0 0.0 1.0 1.0 bz}xy3" {mark 36.0 -18.0 54.0 -18.0 54.0 0.0 0.0 0.0 q}xy3" {mark 36.0 -18.0 54.0 -18.0 54.0 0.0 0.0 1.0 q}xy3" {mark 36.0 -18.0 54.0 -18.0 54.0 0.0 1.0 1.0 q}xy,- gure-8UUknotg鍒Bxps: SDict begin xyc endFB" {mark 15.0 15.0 25.89813 14.99994 36.22105 15.41788 0.0 0.0 q}xyFE" {mark 15.0 15.0 25.89813 14.99994 36.22105 15.41788 0.0 0.3818 q}xyFF" {mark 15.0 15.0 25.89813 14.99994 36.22105 15.41788 0.61746 1.0 q}xyFB" {mark 15.0 15.0 25.89813 14.99994 36.22105 15.41788 1.0 1.0 q}xyFI" {mark 29.26575 4.63531 25.89813 14.99994 23.10577 24.94655 0.0 0.0 q}xyFI" {mark 29.26575 4.63531 25.89813 14.99994 23.10577 24.94655 0.0 1.0 q}xyFI" {mark 29.26575 4.63531 25.89813 14.99994 23.10577 24.94655 1.0 1.0 q}xyFF" {mark 0.73425 4.63531 4.10185 14.99992 6.89423 24.94655 0.0 0.0 q}xyFJ" {mark 0.73425 4.63531 4.10185 14.99992 6.89423 24.94655 0.0 0.37662 q}xyFJ" {mark 0.73425 4.63531 4.10185 14.99992 6.89423 24.94655 0.62277 1.0 q}xyFF" {mark 0.73425 4.63531 4.10185 14.99992 6.89423 24.94655 1.0 1.0 q}xyFA" {mark 15.0 15.0 4.10185 14.99992 -6.22105 15.41788 0.0 0.0 q}xyFA" {mark 15.0 15.0 4.10185 14.99992 -6.22105 15.41788 0.0 1.0 q}xyFA" {mark 15.0 15.0 4.10185 14.99992 -6.22105 15.41788 1.0 1.0 q}xyFF" {mark 6.18324 -12.13531 -2.63351 -5.72946 -11.23055 0.0 0.0 0.0 q}xyFJ" {mark 6.18324 -12.13531 -2.63351 -5.72946 -11.23055 0.0 0.0 0.35617 q}xyFJ" {mark 6.18324 -12.13531 -2.63351 -5.72946 -11.23055 0.0 0.64328 1.0 q}xyFF" {mark 6.18324 -12.13531 -2.63351 -5.72946 -11.23055 0.0 1.0 1.0 q}xyFI" {mark 0.73425 4.63531 -2.63351 -5.72946 -6.22105 -15.41788 0.0 0.0 q}xyFI" {mark 0.73425 4.63531 -2.63351 -5.72946 -6.22105 -15.41788 0.0 1.0 q}xyFI" {mark 0.73425 4.63531 -2.63351 -5.72946 -6.22105 -15.41788 1.0 1.0 q}xyFH" {mark 23.81676 -12.13531 15.0 -18.54092 6.89423 -24.94655 0.0 0.0 q}xyFL" {mark 23.81676 -12.13531 15.0 -18.54092 6.89423 -24.94655 0.0 0.35135 q}xyFL" {mark 23.81676 -12.13531 15.0 -18.54092 6.89423 -24.94655 0.64682 1.0 q}xyFH" {mark 23.81676 -12.13531 15.0 -18.54092 6.89423 -24.94655 1.0 1.0 q}xyFH" {mark 6.18324 -12.13531 15.0 -18.54092 23.10577 -24.94655 0.0 0.0 q}xyFH" {mark 6.18324 -12.13531 15.0 -18.54092 23.10577 -24.94655 0.0 1.0 q}xyFH" {mark 6.18324 -12.13531 15.0 -18.54092 23.10577 -24.94655 1.0 1.0 q}xyFJ" {mark 29.26575 4.63531 32.63353 -5.72946 36.22105 -15.41788 0.0 0.0 q}xyFN" {mark 29.26575 4.63531 32.63353 -5.72946 36.22105 -15.41788 0.0 0.37479 q}xyFN" {mark 29.26575 4.63531 32.63353 -5.72946 36.22105 -15.41788 0.62418 1.0 q}xyFJ" {mark 29.26575 4.63531 32.63353 -5.72946 36.22105 -15.41788 1.0 1.0 q}xyFF" {mark 23.81676 -12.13531 32.63353 -5.72946 41.23055 0.0 0.0 0.0 q}xyFF" {mark 23.81676 -12.13531 32.63353 -5.72946 41.23055 0.0 0.0 1.0 q}xyFF" {mark 23.81676 -12.13531 32.63353 -5.72946 41.23055 0.0 1.0 1.0 q}xyFS" {mark 41.23055 0.0 46.0032 3.8717 47.08163 6.73958 47.50665 8.52519 0.0 0.0 bz}xy[" {mark 47.50665 8.52519 47.93167 10.3108 47.70328 11.01418 46.30995 12.20909 0.0 0.0 bz}xy]" {mark 46.30995 12.20909 44.91663 13.40399 42.35838 15.09044 36.22105 15.41788 0.0 0.0 bz}xy2-|8>>><{x}`}|f'{y}>{z}͹.The{\x..."Hcrossings{donotstac!keasilysincetheirtangentsareat45tothecoMordinateaxes.Itistheelastletterinthenamewhic!hdenoteswhethertheparticularcrossingisverticalorhorizontal.$*tj420KCHAPTERf3.CFEAeTURES??hwOntheotherhand\vover) ,@\vunder1ȹetc.Pstac!kverticallyontopofa\vcross.̿,@\vtwist1ȹetc.; similarlyf\hover)ȹstac!ksfattheleftof\hcross-C,\htwist/retc.T29ps: SDict begin xyc endh0A" {mark 12.0 0.0 15.0 0.0 17.25 -0.75 18.875 -1.625 0.0 0.0 bz}xyE" {mark 18.875 -1.625 20.5 -2.5 21.5 -3.5 22.375 -5.125 0.0 0.0 bz}xyD" {mark 22.375 -5.125 23.25 -6.75 24.0 -9.0 24.0 -12.0 0.0 0.0 bz}xyh0E" {mark 12.0 0.0 15.0 0.0 17.25 -0.75 18.875 -1.625 0.0 0.42998 bz}xyE" {mark 18.875 -1.625 20.5 -2.5 21.5 -3.5 22.375 -5.125 0.0 0.0 bz}xyD" {mark 22.375 -5.125 23.25 -6.75 24.0 -9.0 24.0 -12.0 0.0 0.0 bz}xyh0A" {mark 12.0 0.0 15.0 0.0 17.25 -0.75 18.875 -1.625 1.0 1.0 bz}xyI" {mark 18.875 -1.625 20.5 -2.5 21.5 -3.5 22.375 -5.125 0.37434 1.0 bz}xyD" {mark 22.375 -5.125 23.25 -6.75 24.0 -9.0 24.0 -12.0 0.0 1.0 bz}xyh0A" {mark 12.0 0.0 15.0 0.0 17.25 -0.75 18.875 -1.625 1.0 1.0 bz}xyE" {mark 18.875 -1.625 20.5 -2.5 21.5 -3.5 22.375 -5.125 1.0 1.0 bz}xyD" {mark 22.375 -5.125 23.25 -6.75 24.0 -9.0 24.0 -12.0 1.0 1.0 bz}xyh0D" {mark 12.0 -12.0 12.0 -9.0 12.75 -6.75 13.625 -5.125 0.0 0.0 bz}xyE" {mark 13.625 -5.125 14.5 -3.5 15.5 -2.5 17.125 -1.625 0.0 0.0 bz}xyA" {mark 17.125 -1.625 18.75 -0.75 21.0 0.0 24.0 0.0 0.0 0.0 bz}xyh0D" {mark 12.0 -12.0 12.0 -9.0 12.75 -6.75 13.625 -5.125 0.0 1.0 bz}xyE" {mark 13.625 -5.125 14.5 -3.5 15.5 -2.5 17.125 -1.625 0.0 1.0 bz}xyA" {mark 17.125 -1.625 18.75 -0.75 21.0 0.0 24.0 0.0 0.0 1.0 bz}xyh0D" {mark 12.0 -12.0 12.0 -9.0 12.75 -6.75 13.625 -5.125 1.0 1.0 bz}xyE" {mark 13.625 -5.125 14.5 -3.5 15.5 -2.5 17.125 -1.625 1.0 1.0 bz}xyA" {mark 17.125 -1.625 18.75 -0.75 21.0 0.0 24.0 0.0 1.0 1.0 bz}xyh0E" {mark 24.0 -12.0 24.0 -15.0 21.75 -16.5 20.125 -17.25 0.0 0.0 bz}xyG" {mark 20.125 -17.25 18.5 -18.0 17.5 -18.0 15.875 -18.75 0.0 0.0 bz}xyE" {mark 15.875 -18.75 14.25 -19.5 12.0 -21.0 12.0 -24.0 0.0 0.0 bz}xyh0E" {mark 24.0 -12.0 24.0 -15.0 21.75 -16.5 20.125 -17.25 0.0 1.0 bz}xyG" {mark 20.125 -17.25 18.5 -18.0 17.5 -18.0 15.875 -18.75 0.0 1.0 bz}xyE" {mark 15.875 -18.75 14.25 -19.5 12.0 -21.0 12.0 -24.0 0.0 1.0 bz}xyh0E" {mark 24.0 -12.0 24.0 -15.0 21.75 -16.5 20.125 -17.25 1.0 1.0 bz}xyG" {mark 20.125 -17.25 18.5 -18.0 17.5 -18.0 15.875 -18.75 1.0 1.0 bz}xyE" {mark 15.875 -18.75 14.25 -19.5 12.0 -21.0 12.0 -24.0 1.0 1.0 bz}xyh0E" {mark 12.0 -12.0 12.0 -15.0 14.25 -16.5 15.875 -17.25 0.0 0.0 bz}xyG" {mark 15.875 -17.25 17.5 -18.0 18.5 -18.0 20.125 -18.75 0.0 0.0 bz}xyE" {mark 20.125 -18.75 21.75 -19.5 24.0 -21.0 24.0 -24.0 0.0 0.0 bz}xyh0G" {mark 12.0 -12.0 12.0 -15.0 14.25 -16.5 15.875 -17.25 0.0 0.925 bz}xyG" {mark 15.875 -17.25 17.5 -18.0 18.5 -18.0 20.125 -18.75 0.0 0.0 bz}xyE" {mark 20.125 -18.75 21.75 -19.5 24.0 -21.0 24.0 -24.0 0.0 0.0 bz}xyh0E" {mark 12.0 -12.0 12.0 -15.0 14.25 -16.5 15.875 -17.25 1.0 1.0 bz}xyG" {mark 15.875 -17.25 17.5 -18.0 18.5 -18.0 20.125 -18.75 1.0 1.0 bz}xyG" {mark 20.125 -18.75 21.75 -19.5 24.0 -21.0 24.0 -24.0 0.075 1.0 bz}xyh0E" {mark 12.0 -12.0 12.0 -15.0 14.25 -16.5 15.875 -17.25 1.0 1.0 bz}xyG" {mark 15.875 -17.25 17.5 -18.0 18.5 -18.0 20.125 -18.75 1.0 1.0 bz}xyE" {mark 20.125 -18.75 21.75 -19.5 24.0 -21.0 24.0 -24.0 1.0 1.0 bz}xyh0E" {mark 24.0 -24.0 24.0 -27.0 21.75 -28.5 20.125 -29.25 0.0 0.0 bz}xyG" {mark 20.125 -29.25 18.5 -30.0 17.5 -30.0 15.875 -30.75 0.0 0.0 bz}xyE" {mark 15.875 -30.75 14.25 -31.5 12.0 -33.0 12.0 -36.0 0.0 0.0 bz}xyh0E" {mark 24.0 -24.0 24.0 -27.0 21.75 -28.5 20.125 -29.25 0.0 1.0 bz}xyG" {mark 20.125 -29.25 18.5 -30.0 17.5 -30.0 15.875 -30.75 0.0 1.0 bz}xyE" {mark 15.875 -30.75 14.25 -31.5 12.0 -33.0 12.0 -36.0 0.0 1.0 bz}xyh0E" {mark 24.0 -24.0 24.0 -27.0 21.75 -28.5 20.125 -29.25 1.0 1.0 bz}xyG" {mark 20.125 -29.25 18.5 -30.0 17.5 -30.0 15.875 -30.75 1.0 1.0 bz}xyE" {mark 15.875 -30.75 14.25 -31.5 12.0 -33.0 12.0 -36.0 1.0 1.0 bz}xyh0E" {mark 12.0 -24.0 12.0 -27.0 14.25 -28.5 15.875 -29.25 0.0 0.0 bz}xyG" {mark 15.875 -29.25 17.5 -30.0 18.5 -30.0 20.125 -30.75 0.0 0.0 bz}xyE" {mark 20.125 -30.75 21.75 -31.5 24.0 -33.0 24.0 -36.0 0.0 0.0 bz}xyh0G" {mark 12.0 -24.0 12.0 -27.0 14.25 -28.5 15.875 -29.25 0.0 0.925 bz}xyG" {mark 15.875 -29.25 17.5 -30.0 18.5 -30.0 20.125 -30.75 0.0 0.0 bz}xyE" {mark 20.125 -30.75 21.75 -31.5 24.0 -33.0 24.0 -36.0 0.0 0.0 bz}xyh0E" {mark 12.0 -24.0 12.0 -27.0 14.25 -28.5 15.875 -29.25 1.0 1.0 bz}xyG" {mark 15.875 -29.25 17.5 -30.0 18.5 -30.0 20.125 -30.75 1.0 1.0 bz}xyG" {mark 20.125 -30.75 21.75 -31.5 24.0 -33.0 24.0 -36.0 0.075 1.0 bz}xyh0E" {mark 12.0 -24.0 12.0 -27.0 14.25 -28.5 15.875 -29.25 1.0 1.0 bz}xyG" {mark 15.875 -29.25 17.5 -30.0 18.5 -30.0 20.125 -30.75 1.0 1.0 bz}xyE" {mark 20.125 -30.75 21.75 -31.5 24.0 -33.0 24.0 -36.0 1.0 1.0 bz}xyh0G" {mark 24.0 -48.0 21.0 -48.0 18.75 -47.25 17.125 -46.375 0.0 0.0 bz}xyI" {mark 17.125 -46.375 15.5 -45.5 14.5 -44.5 13.625 -42.875 0.0 0.0 bz}xyG" {mark 13.625 -42.875 12.75 -41.25 12.0 -39.0 12.0 -36.0 0.0 0.0 bz}xyh0K" {mark 24.0 -48.0 21.0 -48.0 18.75 -47.25 17.125 -46.375 0.0 0.42998 bz}xyI" {mark 17.125 -46.375 15.5 -45.5 14.5 -44.5 13.625 -42.875 0.0 0.0 bz}xyG" {mark 13.625 -42.875 12.75 -41.25 12.0 -39.0 12.0 -36.0 0.0 0.0 bz}xyh0G" {mark 24.0 -48.0 21.0 -48.0 18.75 -47.25 17.125 -46.375 1.0 1.0 bz}xyM" {mark 17.125 -46.375 15.5 -45.5 14.5 -44.5 13.625 -42.875 0.37434 1.0 bz}xyG" {mark 13.625 -42.875 12.75 -41.25 12.0 -39.0 12.0 -36.0 0.0 1.0 bz}xyh0G" {mark 24.0 -48.0 21.0 -48.0 18.75 -47.25 17.125 -46.375 1.0 1.0 bz}xyI" {mark 17.125 -46.375 15.5 -45.5 14.5 -44.5 13.625 -42.875 1.0 1.0 bz}xyG" {mark 13.625 -42.875 12.75 -41.25 12.0 -39.0 12.0 -36.0 1.0 1.0 bz}xyh0G" {mark 24.0 -36.0 24.0 -39.0 23.25 -41.25 22.375 -42.875 0.0 0.0 bz}xyI" {mark 22.375 -42.875 21.5 -44.5 20.5 -45.5 18.875 -46.375 0.0 0.0 bz}xyG" {mark 18.875 -46.375 17.25 -47.25 15.0 -48.0 12.0 -48.0 0.0 0.0 bz}xyh0G" {mark 24.0 -36.0 24.0 -39.0 23.25 -41.25 22.375 -42.875 0.0 1.0 bz}xyI" {mark 22.375 -42.875 21.5 -44.5 20.5 -45.5 18.875 -46.375 0.0 1.0 bz}xyG" {mark 18.875 -46.375 17.25 -47.25 15.0 -48.0 12.0 -48.0 0.0 1.0 bz}xyh0G" {mark 24.0 -36.0 24.0 -39.0 23.25 -41.25 22.375 -42.875 1.0 1.0 bz}xyI" {mark 22.375 -42.875 21.5 -44.5 20.5 -45.5 18.875 -46.375 1.0 1.0 bz}xyG" {mark 18.875 -46.375 17.25 -47.25 15.0 -48.0 12.0 -48.0 1.0 1.0 bz}xyps: SDict begin xyc endQӟh0G" {mark 12.0 -30.0 12.0 -27.0 12.75 -24.75 13.625 -23.125 0.0 0.0 bz}xyI" {mark 13.625 -23.125 14.5 -21.5 15.5 -20.5 17.125 -19.625 0.0 0.0 bz}xyG" {mark 17.125 -19.625 18.75 -18.75 21.0 -18.0 24.0 -18.0 0.0 0.0 bz}xyQӟh0G" {mark 12.0 -30.0 12.0 -27.0 12.75 -24.75 13.625 -23.125 0.0 1.0 bz}xyI" {mark 13.625 -23.125 14.5 -21.5 15.5 -20.5 17.125 -19.625 0.0 1.0 bz}xyG" {mark 17.125 -19.625 18.75 -18.75 21.0 -18.0 24.0 -18.0 0.0 1.0 bz}xyQӟh0G" {mark 12.0 -30.0 12.0 -27.0 12.75 -24.75 13.625 -23.125 1.0 1.0 bz}xyI" {mark 13.625 -23.125 14.5 -21.5 15.5 -20.5 17.125 -19.625 1.0 1.0 bz}xyG" {mark 17.125 -19.625 18.75 -18.75 21.0 -18.0 24.0 -18.0 1.0 1.0 bz}xyQӟh0G" {mark 24.0 -30.0 21.0 -30.0 18.75 -29.25 17.125 -28.375 0.0 0.0 bz}xyI" {mark 17.125 -28.375 15.5 -27.5 14.5 -26.5 13.625 -24.875 0.0 0.0 bz}xyG" {mark 13.625 -24.875 12.75 -23.25 12.0 -21.0 12.0 -18.0 0.0 0.0 bz}xyQӟh0G" {mark 24.0 -30.0 21.0 -30.0 18.75 -29.25 17.125 -28.375 0.0 1.0 bz}xyM" {mark 17.125 -28.375 15.5 -27.5 14.5 -26.5 13.625 -24.875 0.0 0.62566 bz}xyG" {mark 13.625 -24.875 12.75 -23.25 12.0 -21.0 12.0 -18.0 0.0 0.0 bz}xyQӟh0G" {mark 24.0 -30.0 21.0 -30.0 18.75 -29.25 17.125 -28.375 1.0 1.0 bz}xyI" {mark 17.125 -28.375 15.5 -27.5 14.5 -26.5 13.625 -24.875 1.0 1.0 bz}xyK" {mark 13.625 -24.875 12.75 -23.25 12.0 -21.0 12.0 -18.0 0.57002 1.0 bz}xyQӟh0G" {mark 24.0 -30.0 21.0 -30.0 18.75 -29.25 17.125 -28.375 1.0 1.0 bz}xyI" {mark 17.125 -28.375 15.5 -27.5 14.5 -26.5 13.625 -24.875 1.0 1.0 bz}xyG" {mark 13.625 -24.875 12.75 -23.25 12.0 -21.0 12.0 -18.0 1.0 1.0 bz}xyQӟh0E" {mark 24.0 -30.0 27.0 -30.0 28.5 -27.75 29.25 -26.125 0.0 0.0 bz}xyG" {mark 29.25 -26.125 30.0 -24.5 30.0 -23.5 30.75 -21.875 0.0 0.0 bz}xyE" {mark 30.75 -21.875 31.5 -20.25 33.0 -18.0 36.0 -18.0 0.0 0.0 bz}xyQӟh0E" {mark 24.0 -30.0 27.0 -30.0 28.5 -27.75 29.25 -26.125 0.0 1.0 bz}xyG" {mark 29.25 -26.125 30.0 -24.5 30.0 -23.5 30.75 -21.875 0.0 1.0 bz}xyE" {mark 30.75 -21.875 31.5 -20.25 33.0 -18.0 36.0 -18.0 0.0 1.0 bz}xyQӟh0E" {mark 24.0 -30.0 27.0 -30.0 28.5 -27.75 29.25 -26.125 1.0 1.0 bz}xyG" {mark 29.25 -26.125 30.0 -24.5 30.0 -23.5 30.75 -21.875 1.0 1.0 bz}xyE" {mark 30.75 -21.875 31.5 -20.25 33.0 -18.0 36.0 -18.0 1.0 1.0 bz}xyQӟh0E" {mark 36.0 -30.0 33.0 -30.0 31.5 -27.75 30.75 -26.125 0.0 0.0 bz}xyG" {mark 30.75 -26.125 30.0 -24.5 30.0 -23.5 29.25 -21.875 0.0 0.0 bz}xyE" {mark 29.25 -21.875 28.5 -20.25 27.0 -18.0 24.0 -18.0 0.0 0.0 bz}xyQӟh0I" {mark 36.0 -30.0 33.0 -30.0 31.5 -27.75 30.75 -26.125 0.0 0.92505 bz}xyG" {mark 30.75 -26.125 30.0 -24.5 30.0 -23.5 29.25 -21.875 0.0 0.0 bz}xyE" {mark 29.25 -21.875 28.5 -20.25 27.0 -18.0 24.0 -18.0 0.0 0.0 bz}xyQӟh0E" {mark 36.0 -30.0 33.0 -30.0 31.5 -27.75 30.75 -26.125 1.0 1.0 bz}xyG" {mark 30.75 -26.125 30.0 -24.5 30.0 -23.5 29.25 -21.875 1.0 1.0 bz}xyI" {mark 29.25 -21.875 28.5 -20.25 27.0 -18.0 24.0 -18.0 0.07504 1.0 bz}xyQӟh0E" {mark 36.0 -30.0 33.0 -30.0 31.5 -27.75 30.75 -26.125 1.0 1.0 bz}xyG" {mark 30.75 -26.125 30.0 -24.5 30.0 -23.5 29.25 -21.875 1.0 1.0 bz}xyE" {mark 29.25 -21.875 28.5 -20.25 27.0 -18.0 24.0 -18.0 1.0 1.0 bz}xyQӟh0E" {mark 36.0 -30.0 39.0 -30.0 40.5 -27.75 41.25 -26.125 0.0 0.0 bz}xyG" {mark 41.25 -26.125 42.0 -24.5 42.0 -23.5 42.75 -21.875 0.0 0.0 bz}xyE" {mark 42.75 -21.875 43.5 -20.25 45.0 -18.0 48.0 -18.0 0.0 0.0 bz}xyQӟh0E" {mark 36.0 -30.0 39.0 -30.0 40.5 -27.75 41.25 -26.125 0.0 1.0 bz}xyG" {mark 41.25 -26.125 42.0 -24.5 42.0 -23.5 42.75 -21.875 0.0 1.0 bz}xyE" {mark 42.75 -21.875 43.5 -20.25 45.0 -18.0 48.0 -18.0 0.0 1.0 bz}xyQӟh0E" {mark 36.0 -30.0 39.0 -30.0 40.5 -27.75 41.25 -26.125 1.0 1.0 bz}xyG" {mark 41.25 -26.125 42.0 -24.5 42.0 -23.5 42.75 -21.875 1.0 1.0 bz}xyE" {mark 42.75 -21.875 43.5 -20.25 45.0 -18.0 48.0 -18.0 1.0 1.0 bz}xyQӟh0E" {mark 48.0 -30.0 45.0 -30.0 43.5 -27.75 42.75 -26.125 0.0 0.0 bz}xyG" {mark 42.75 -26.125 42.0 -24.5 42.0 -23.5 41.25 -21.875 0.0 0.0 bz}xyE" {mark 41.25 -21.875 40.5 -20.25 39.0 -18.0 36.0 -18.0 0.0 0.0 bz}xyQӟh0I" {mark 48.0 -30.0 45.0 -30.0 43.5 -27.75 42.75 -26.125 0.0 0.92505 bz}xyG" {mark 42.75 -26.125 42.0 -24.5 42.0 -23.5 41.25 -21.875 0.0 0.0 bz}xyE" {mark 41.25 -21.875 40.5 -20.25 39.0 -18.0 36.0 -18.0 0.0 0.0 bz}xyQӟh0E" {mark 48.0 -30.0 45.0 -30.0 43.5 -27.75 42.75 -26.125 1.0 1.0 bz}xyG" {mark 42.75 -26.125 42.0 -24.5 42.0 -23.5 41.25 -21.875 1.0 1.0 bz}xyI" {mark 41.25 -21.875 40.5 -20.25 39.0 -18.0 36.0 -18.0 0.07504 1.0 bz}xyQӟh0E" {mark 48.0 -30.0 45.0 -30.0 43.5 -27.75 42.75 -26.125 1.0 1.0 bz}xyG" {mark 42.75 -26.125 42.0 -24.5 42.0 -23.5 41.25 -21.875 1.0 1.0 bz}xyE" {mark 41.25 -21.875 40.5 -20.25 39.0 -18.0 36.0 -18.0 1.0 1.0 bz}xyQӟh0G" {mark 60.0 -18.0 60.0 -21.0 59.25 -23.25 58.375 -24.875 0.0 0.0 bz}xyI" {mark 58.375 -24.875 57.5 -26.5 56.5 -27.5 54.875 -28.375 0.0 0.0 bz}xyG" {mark 54.875 -28.375 53.25 -29.25 51.0 -30.0 48.0 -30.0 0.0 0.0 bz}xyQӟh0G" {mark 60.0 -18.0 60.0 -21.0 59.25 -23.25 58.375 -24.875 0.0 1.0 bz}xyI" {mark 58.375 -24.875 57.5 -26.5 56.5 -27.5 54.875 -28.375 0.0 1.0 bz}xyG" {mark 54.875 -28.375 53.25 -29.25 51.0 -30.0 48.0 -30.0 0.0 1.0 bz}xyQӟh0G" {mark 60.0 -18.0 60.0 -21.0 59.25 -23.25 58.375 -24.875 1.0 1.0 bz}xyI" {mark 58.375 -24.875 57.5 -26.5 56.5 -27.5 54.875 -28.375 1.0 1.0 bz}xyG" {mark 54.875 -28.375 53.25 -29.25 51.0 -30.0 48.0 -30.0 1.0 1.0 bz}xyQӟh0G" {mark 48.0 -18.0 51.0 -18.0 53.25 -18.75 54.875 -19.625 0.0 0.0 bz}xyI" {mark 54.875 -19.625 56.5 -20.5 57.5 -21.5 58.375 -23.125 0.0 0.0 bz}xyG" {mark 58.375 -23.125 59.25 -24.75 60.0 -27.0 60.0 -30.0 0.0 0.0 bz}xyQӟh0G" {mark 48.0 -18.0 51.0 -18.0 53.25 -18.75 54.875 -19.625 0.0 1.0 bz}xyM" {mark 54.875 -19.625 56.5 -20.5 57.5 -21.5 58.375 -23.125 0.0 0.62566 bz}xyG" {mark 58.375 -23.125 59.25 -24.75 60.0 -27.0 60.0 -30.0 0.0 0.0 bz}xyQӟh0G" {mark 48.0 -18.0 51.0 -18.0 53.25 -18.75 54.875 -19.625 1.0 1.0 bz}xyI" {mark 54.875 -19.625 56.5 -20.5 57.5 -21.5 58.375 -23.125 1.0 1.0 bz}xyK" {mark 58.375 -23.125 59.25 -24.75 60.0 -27.0 60.0 -30.0 0.57002 1.0 bz}xyQӟh0G" {mark 48.0 -18.0 51.0 -18.0 53.25 -18.75 54.875 -19.625 1.0 1.0 bz}xyI" {mark 54.875 -19.625 56.5 -20.5 57.5 -21.5 58.375 -23.125 1.0 1.0 bz}xyG" {mark 58.375 -23.125 59.25 -24.75 60.0 -27.0 60.0 -30.0 1.0 1.0 bz}xyC%$$\xy0;/r1pc/: K,{\vunder\vtwist\vtwist\vunder-}\endxy\qquad\qquad\qquad\xy0;/r1pc/:+(0,-1.5)K,{\hover\hcross\hcross\hover-}\endxy$$(~sPtarsing324\xydef@\xykparsecross@{%325K\def\xykSCALE@@{}\edef\xyknotPLACE{\xykmidPLACE@}%326K\let\xykparser@=\xykparsecross@@327K\def\xykdefaultbreak@{\let\xykbreak@=\xykforetemp@328 m\def\xyknotPLACE{(.5)}\appendtoholder@}%329K\xyFN@\xykparsescale@}P331{\xyuncatcodes\catcode`@=11332\gdef\next{%333K\ifx\space@\next\expandafter\DN@\space{\xyFN@\xykparsecross@@}%334K\else\addLT@\ifx\next\addLT@\DN@{\xyprecross@}%335K\else\addGT@\ifx\next\addGT@\DN@{\xypostcross@}%336K\else\addEQ@\ifx\next\addEQ@\DN@{\xyFN@\xykparsetips@@}%337K\else\ifx|\next\DN@|{\xymidcross@}%338K\else\addAT@\ifx\next\addAT@\DN@(##1){%339 m\xyadjustBREAK@i##1@@\xyFN@\xykparsecross@@}%340K\else\DN@{\afterknot@}%341K\fi\fi\fi\fi\fi\fi\next@}}342\xylet@\xykparsecross@@=\nextv346\xydef@\xyprecross@{%347K\def\xykholder@{\xykprebreak@@}%348K\edef\xyknotPLACE{\xykprePLACE@}%349K\xyFN@\xykparsebreak@}351\xydef@\xypostcross@{%352K\def\xykholder@{\xykpostbreak@@}%353K\edef\xyknotPLACE{\xykpostPLACE@}%354K\xyFN@\xykparsebreak@}356\xydef@\xymidcross@{%357K\def\xykholder@{\xykmidbreak@@}%358K\edef\xyknotPLACE{\xykmidPLACE@}%359K\xyFN@\xykparsebreak@}BThesefmacrosarecommontomostcrossings.*tj3.10.CKNOTSfANDLINKSFEAeTURE 4421??hw365\xydef@\xykcross@#1{\xykcheckTIPS@ 366K\expandafter\toks@\expandafter{\expandafter#1\knotSTYLE}}P368\xydef@\xykoverstring@{\addtotoks@{{}}\xykmidbreak@\xyknottips@}369\xydef@\xykunderstring@{\xykprebreak@\xykpostbreak@\xyknottips@}+_i\cross"2crossings:wtThefinitialisation.3..381\xydef@\vcross{\begingroup\def\afterknot@{\xyvcross}%382K\def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}%383K\def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}%384K\xyFN@\xykparsecross@}%385\xydef@\hcross{\begingroup\def\afterknot@{\xyhcross}%386 m\def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}%387K\def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}%388K\xyFN@\xykparsecross@}%389\xydef@\vcrossneg{\begingroup\def\afterknot@{\xyvcrossneg}%390 m\def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}%391K\def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}%392K\xyFN@\xykparsecross@}%393\xydef@\hcrossneg{\begingroup\def\afterknot@{\xyhcrossneg}%394 m\def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}%395K\def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}%396K\xyFN@\xykparsecross@}%397\xydef@\vuncross{\begingroup\def\afterknot@{\xyvuncross}%398 m\def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}%399K\def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{}%400K\xyFN@\xykparsecross@}%401\xydef@\huncross{\begingroup\def\afterknot@{\xyhuncross}%402 m\def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}%403K\def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{}%404K\xyFN@\xykparsecross@}%_ōThefin!terface.3..410\xydef@\xyvcross{\xykcross@\xykcrossv411K\xykoverstring@\xykunderstring@\xykhvobject@{+(0,-1)}}413\xydef@\xyhcross{\xykcross@\xykcrossh414K\xykoverstring@\xykunderstring@\xykhvobject@{+(1,0)}}416\xydef@\xyvcrossneg{\xykcross@\xykcrossv417K\xykunderstring@\xykoverstring@\xykhvobject@{+(0,-1)}}419\xydef@\xyhcrossneg{\xykcross@\xykcrossh420K\xykunderstring@\xykoverstring@\xykhvobject@{+(1,0)}}422\xydef@\xyvuncross{\xykcross@\xykuncrossv423K\xykoverstring@\xykunderstring@\xykhvobject@{+(0,-1)}}425\xydef@\xyhuncross{\xykcross@\xykuncrossh426K\xykoverstring@\xykunderstring@\xykhvobject@{+(1,0)}}*tj422KCHAPTERf3.CFEAeTURES??hwThefdra!wingcoMde.3..P432{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save, 433K"^<",{\xykz_\ar#1@'{"_<"**{}?(.25)@+,?+(.375,0)@+,434 m"_>";"^>"**{}?-(.375,0)@+,?(.25)@+}"_>"#3#4#5},435K"_<",{\xykz^\ar#2@'{"^<"**{}?(.25)@+,?+(.375,0)@+,436 m"^>";"_>"**{}?-(.375,0)@+,?(.25)@+}"^>"#6#7#8}437K\restore\POS#9}}438\xylet@\xykcrossv=\next440{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save,441K"_<",{\xykz_\ar#1@'{"_>"**{}?(.25)@+,?+(0,.375)@+,442 m"^>";"^<"**{}?-(0,.375)@+,?(.25)@+}"^>"#3#4#5},443K"_>",{\xykz^\ar#2@'{"_<"**{}?(.25)@+,?+(0,.375)@+,444 m"^<";"^>"**{}?-(0,.375)@+,?(.25)@+}"^<"#6#7#8}445K\restore\POS#9}}446\xylet@\xykcrossh=\next448{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save,449K"^<",{\xykz^\ar#1@'{"_<"**{}?(.25)@+,?(.375)+(.375,0)@+,450 m"^>";"_>"**{}?(.375)-(.375,0)@+,?(.25)@+}"^>"#3#4#5},451K"_<",{\xykz^\ar#2@'{"^<"**{}?(.25)@+,?(.375)+(.375,0)@+,452 m"_>";"^>"**{}?(.375)-(.375,0)@+,?(.25)@+}"_>"#6#7#8}453K\restore\POS#9}}454\xylet@\xykuncrossv=\next456{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save,457K"_<",{\xykz^\ar#1@'{"_>"**{}?(.25)@+,?(.375)+(0,.375)@+,458 m"^<";"^>"**{}?(.375)-(0,.375)@+,?(.25)@+}"^<"#3#4#5},459K"_>",{\xykz^\ar#2@'{"_<"**{}?(.25)@+,?(.375)+(0,.375)@+,460 m"^>";"^<"**{}?(.375)-(0,.375)@+,?(.25)@+}"^>"#6#7#8}461K\restore\POS#9}}462\xylet@\xykuncrossh=\next)hn\otver"2crossings:Thefinitialisation.3..474\xydef@\vover{\begingroup\def\afterknot@{\xyvover}%475K\def\xykprePLACE@{(.2)}\def\xykpostPLACE@{(.9)}%476K\def\xykmidPLACE@{(.8)}\def\xykpostbreak@@{|(.725)\knothole}%477K\xyFN@\xykparsecross@}%479\xydef@\hover{\begingroup\def\afterknot@{\xyhover}%480K\def\xykprePLACE@{(.2)}\def\xykpostPLACE@{(.9)}%481K\def\xykmidPLACE@{(.8)}\def\xykpostbreak@@{|(.725)\knothole}%482K\xyFN@\xykparsecross@}%484\xydef@\vunder{\begingroup\def\afterknot@{\xyvunder}%485K\def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.8)}%486K\def\xykmidPLACE@{(.2)}\def\xykpostbreak@@{|(.275)\knothole}%487K\xyFN@\xykparsecross@}%489\xydef@\hunder{\begingroup\def\afterknot@{\xyhunder}%"?*tj3.10.CKNOTSfANDLINKSFEAeTURE 4423??hw490K\def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.8)}% 491K\def\xykmidPLACE@{(.2)}\def\xykpostbreak@@{|(.275)\knothole}%492K\xyFN@\xykparsecross@}%P494\xydef@\vunover{\begingroup\def\afterknot@{\xyvunover}%495K\def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}%496K\def\xykmidPLACE@{(.8)}\def\xykpostbreak@@{}%497K\xyFN@\xykparsecross@}%499\xydef@\hunover{\begingroup\def\afterknot@{\xyhunover}%500K\def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}%501K\def\xykmidPLACE@{(.8)}\def\xykpostbreak@@{}%502K\xyFN@\xykparsecross@}%v505\xydef@\xoverv{\begingroup\def\afterknot@{\xyxoverv}%506K\def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.85)}%507K\def\xykmidPLACE@{(.15)}\def\xykpostbreak@@{|\knothole}%508K\xyFN@\xykparsecross@}%510\xydef@\xunderv{\begingroup\def\afterknot@{\xyxunderv}%511K\def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.85)}%512K\def\xykmidPLACE@{(.15)}\def\xykpostbreak@@{|\knothole}%513K\xyFN@\xykparsecross@}%515\xydef@\xoverh{\begingroup\def\afterknot@{\xyxoverh}%516K\def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.85)}%517K\def\xykmidPLACE@{(.15)}\def\xykpostbreak@@{|\knothole}%518K\xyFN@\xykparsecross@}%520\xydef@\xunderh{\begingroup\def\afterknot@{\xyxunderh}%521K\def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.85)}%522K\def\xykmidPLACE@{(.85)}\def\xykpostbreak@@{|\knothole}%523K\xyFN@\xykparsecross@}%525\xydef@\xunover{\begingroup\def\afterknot@{\xyxunover}%526K\def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.85)}%527K\def\xykmidPLACE@{(.15)}\def\xykpostbreak@@{}%528K\xyFN@\xykparsecross@}%530\xydef@\xunoverv{\begingroup\def\afterknot@{\xyxunoverv}%531K\def\xykprePLACE@{(.2)}\def\xykpostPLACE@{(.8)}%532K\def\xykmidPLACE@{(.2)}\def\xykpostbreak@@{}%533K\xyFN@\xykparsecross@}%535\xydef@\xunoverh{\begingroup\def\afterknot@{\xyxunoverh}%536K\def\xykprePLACE@{(.2)}\def\xykpostPLACE@{(.8)}%537K\def\xykmidPLACE@{(.8)}\def\xykpostbreak@@{}%538K\xyFN@\xykparsecross@}%#Thefin!terface.3..544\xydef@\xyvover{\xykcross@\xykoverv545K\xykoverstring@\xykunderstring@\xykhvobject@{+(0,-1)}}547\xydef@\xyhover{\xykcross@\xykoverh548K\xykoverstring@\xykunderstring@\xykhvobject@{+(1,0)}}-*tj424KCHAPTERf3.CFEAeTURES??hw550\xydef@\xyvunder{\xykcross@\xykoverv 551K\xykunderstring@\xykoverstring@\xykhvobject@{+(0,-1)}}P553\xydef@\xyhunder{\xykcross@\xykoverh554K\xykunderstring@\xykoverstring@\xykhvobject@{+(1,0)}}556\xydef@\xyvunover{\xykcross@\xykunoverv557K\xykoverstring@\xykunderstring@\xykhvobject@{+(0,-1)}}559\xydef@\xyhunover{\xykcross@\xykunoverh560K\xykoverstring@\xykunderstring@\xykhvobject@{+(1,0)}}v563\xydef@\xyxoverv{\xykcross@\xykxoverv564K\xykoverstring@\xykunderstring@\xykhvobject@{+(0,-1)}}566\xydef@\xyxunderv{\xykcross@\xykxoverv567K\xykunderstring@\xykoverstring@\xykhvobject@{+(0,-1)}}569\xydef@\xyxoverh{\xykcross@\xykxoverh570K\xykoverstring@\xykunderstring@\xykhvobject@{+(1,0)}}572\xydef@\xyxunderh{\xykcross@\xykxoverh573K\xykunderstring@\xykoverstring@\xykhvobject@{+(1,0)}}575\xydef@\xyxunover{\xykcross@\xykxoverv576K\xykoverstring@\xykunderstring@\xykhvobject@{+(1,0)}}578\xydef@\xyxunoverv{\xykcross@\xykxunoverv579K\xykoverstring@\xykunderstring@\xykhvobject@{+(0,-1)}}581\xydef@\xyxunoverh{\xykcross@\xykxunoverh582K\xykoverstring@\xykunderstring@\xykhvobject@{+(1,0)}}#퍑Thefdra!wingcoMde.3..589{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save,590K"^<",{\xykz^\ar#1@'{"^>"**{}?(.25)@+,?(.625)+(0,-.125)@+,591 m"_>";"^>"**{}?(.625)-(.125,0)@+,?(.25)@+}"_>"#3#4#5},592K"_<",{\xykz^\ar#2@'{"^<"**{}?(.25)@+,?(.625)+(.125,0)@+,593 m"^>";"^<"**{}?(.625)-(0,.125)@+,?(.25)@+}"^>"#6#7#8},\restore\POS#9}}594\xylet@\xykoverv=\next596{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save,597K"_<",{\xykz^\ar#1@'{"^<"**{}?(.25)@+,?(.625)+(.125,0)@+,598 m"^>";"^<"**{}?(.625)-(0,.125)@+,?(.25)@+}"^>"#3#4#5},599K"_>",{\xykz^\ar#2@'{"_<"**{}?(.25)@+,?(.625)+(0,.125)@+,600 m"^<";"_<"**{}?(.625)+(.125,0)@+,?(.25)@+}"^<"#6#7#8},\restore\POS#9}}601\xylet@\xykoverh=\next603{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save,604K"^<",{\xykz^\ar#1@'{"^>"**{}?(.25)@+,?-(0,.175)@+,?(.75)@+}605 m"^>"#3#4#5},606K"_<",{\xykz^\ar#2@'{"^<"**{}?(.25)@+,?+(.125,0)@+,607"_>"**{}?+(0,.7)@+,"_>";"^>"**{}?-(.125,0)@+,?(.25)@+}608 m"_>"#6#7#8},\restore\POS#9}}609\xylet@\xykunoverv=\next611{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save,9K*tj3.10.CKNOTSfANDLINKSFEAeTURE 4425??hw612K"_<",{\xykz^\ar#1@'{"^<"**{}?(.25)@+,?+(.175,0)@+,?(.75)@+} 613 m"^<"#3#4#5},614K"_>",{\xykz^\ar#2@'{"_<"**{}?(.25)@+,?+(0,.125)@+,615"^>"**{}?-(.7,0)@+,"^>";"^<"**{}?-(0,.125)@+,?(.25)@+}616 m"^>"#6#7#8},\restore\POS#9}}617\xylet@\xykunoverh=\nextP619{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save,620K"^<";"^>"**{}?="^_","_<";"_>"**{}?;"^_",**{}?="^_",621K"^>",{\xykz^\ar#1@'{"^_"@+}"_<"#3#4#5},622K"^<",{\xykz_\ar#2@'{"^_"@+}"_>"#6#7#8},\restore\POS#9}}623\xylet@\xykxoverv=\next625{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save,626K"^<";"_<"**{}?="^_","^>";"_>"**{}?;"^_",**{}?="^_",627K"^<",{\xykz_\ar#1@'{"^_"@+}"_>"#3#4#5},628K"_<",{\xykz_\ar#2@'{"^_"@+}"^>"#6#7#8},\restore\POS#9}}629\xylet@\xykxoverh=\next631{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save,632K"^<";"^>"**{}?="^_","_<";"_>"**{}?;"^_",**{}?="^_",633K"^>",{\xykz^\ar#1@'{"^_"@+}"_>"#3#4#5},634K"^<",{\xykz^\ar#2@'{"^_"@+}"_<"#6#7#8},\restore\POS#9}}635\xylet@\xykxunoverv=\next637{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save,638K"^<";"_<"**{}?="^_","^>";"_>"**{}?;"^_",**{}?="^_",639K"^<",{\xykz^\ar#1@'{"^_"@+}"^>"#3#4#5},640K"_<",{\xykz^\ar#2@'{"^_"@+}"_>"#6#7#8},641 m\restore\POS#9}}642\xylet@\xykxunoverh=\next)4\ttwist"2crossings:kThefinitialisation.3..654\xydef@\vtwist{\begingroup\def\afterknot@{\xyvtwist}%655K\def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}%656K\def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}%657K\xyFN@\xykparsecross@}%658\xydef@\htwist{\begingroup\def\afterknot@{\xyhtwist}%659K\def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}%660K\def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}%661K\xyFN@\xykparsecross@}%662\xydef@\vtwistneg{\begingroup\def\afterknot@{\xyvtwistneg}%663K\def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}%664K\def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}%665K\xyFN@\xykparsecross@}%666\xydef@\htwistneg{\begingroup\def\afterknot@{\xyhtwistneg}%667K\def\xykprePLACE@{(.1)}\def\xykpostPLACE@{(.9)}%668K\def\xykmidPLACE@{(.9)}\def\xykpostbreak@@{|\knothole}%669K\xyFN@\xykparsecross@}%E3*tj426KCHAPTERf3.CFEAeTURES??hw670\xydef@\vuntwist{\begingroup\def\afterknot@{\xyvuntwist}% 671K\def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.85)}%672K\def\xykmidPLACE@{(.85)}\def\xykpostbreak@@{}%673K\xyFN@\xykparsecross@}%674\xydef@\huntwist{\begingroup\def\afterknot@{\xyhuntwist}%675K\def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.85)}%676K\def\xykmidPLACE@{(.85)}\def\xykpostbreak@@{}%677K\xyFN@\xykparsecross@}%}Thefin!terface.3..P683\xydef@\xyvtwist{\xykcross@\xyktwistv684K\xykoverstring@\xykunderstring@\xykhvobject@{+(0,-1)}}686\xydef@\xyvtwistneg{\xykcross@\xyktwistv687K\xykunderstring@\xykoverstring@\xykhvobject@{+(0,-1)}}689\xydef@\xyvuntwist{\xykcross@\xykuntwistv690K\xykoverstring@\xykunderstring@\xykhvobject@{+(0,-1)}}692\xydef@\xyhtwist{\xykcross@\xyktwisth693K\xykoverstring@\xykunderstring@\xykhvobject@{+(1,0)}}695\xydef@\xyhuntwist{\xykcross@\xykuntwisth696K\xykoverstring@\xykunderstring@\xykhvobject@{+(1,0)}}698\xydef@\xyhtwistneg{\xykcross@\xyktwisth699K\xykunderstring@\xykoverstring@\xykhvobject@{+(1,0)}}}Thefdra!wingcoMde.3..705{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save,706K"^>",{\xykz_\ar#1@'{"_>"**{}?(.25)@+,?-(.375,0)@+,707 m"_<";"^<"**{}?+(.375,0)@+,?(.25)@+}"_<"#3#4#5},708K"^<",{\xykz^\ar#2@'{"_<"**{}?(.25)@+,?+(.375,0)@+,709 m"_>";"^>"**{}?+(-.375,0)@+,?(.25)@+}"_>"#6#7#8}710K\restore\POS#9}}711\xylet@\xyktwistv=\next713{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save,714K"^>",{\xykz^\ar#1@'{"_>"**{}?(.125)@+,?(.375)-(.25,0)@+,715 m?(.625)-(.25,0)@+,?(.875)@+}"_>"#3#4#5},716K"^<",{\xykz^\ar#2@'{"_<"**{}?(.125)@+,?(.375)+(.25,0)@+,717 m?(.625)+(.25,0)@+,?(.875)@+}"_<"#6#7#8}718K\restore\POS#9}}719\xylet@\xykuntwistv=\next721{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save,722K"^<",{\xykz_\ar#1@'{"^>"**{}?(.25)@+,?+(0,-.375)@+,723 m"_>";"_<"**{}?+(0,.375)@+,?(.25)@+}"_>"#3#4#5},724K"_<",{\xykz^\ar#2@'{"_>"**{}?(.25)@+,?+(0,.375)@+,725 m"^>";"^<"**{}?-(0,.375)@+,?(.25)@+}"^>"#6#7#8}726K\restore\POS#9}}727\xylet@\xyktwisth=\next729{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\save,730K"^<",{\xykz^\ar#1@'{"^>",**{}?(.125)@+,?(.375)+(0,-.25)@+,Pɠ*tj3.10.CKNOTSfANDLINKSFEAeTURE 4427??hw731 m?(.625)+(0,-.25)@+,?(.875)@+}"^>"#3#4#5}, 732K"_<",{\xykz^\ar#2@'{"_>",**{}?(.125)@+,?(.375)+(0,.25)@+,733 m?(.625)+(0,.25)@+,?(.875)@+}"_>"#6#7#8},\restore\POS#9}}734\xylet@\xykuntwisth=\next!썍3.10b.#TheabMo!veexamplesalsoshowhowtouse- ιtogetthemirror-imageofaparticularcrossing.An!y}numericalscalefactorcanbMeusedbyenclosingitwithin[..]e.g.c[2.3](scalingasinglepieceT#withouta ectingtherestofthepicture. Thescale-factormust^ oMccurbeforean!ylabelor,Carro!w-tipspMeci ers,Mseebelo!w).osVeerticalcrossingsremainverticalunderscalings;o1thecurrenthpMosiѹstillmo!vesby1coMordinateunitinthe`down'direction.VSimilarlyhorizontalcrossingsremainhorizon!tal.The6nsinglecharacter-,isashorthandversionfor[-1]5,Zpe ectivelygivingahalf-turnrotationfinarectangularbasis.P754\xydef@\xykparsescale@{%755K\ifx\space@\next\expandafter\DN@\space{\xyFN@\xykparsescale@}%756K\else\addDASH@\ifx\next\addDASH@\DN@{\def\xykSCALE@@{-1}%757 m\xyFN@\xykparser@}%758K\else\ifx[\next\DN@[##1]{\dimen@=##1\p@759 m\ifdim\dimen@=\z@\xywarning@{\xykscaleerror@}%760 m\else\edef\xykSCALE@@{\expandafter\removePT@\the\dimen@}\fi761 m\xyFN@\xykparser@}%762K\else\ifx~\next\DN@~##1##2##3##4{%763 m\def\xykSCALE@@{@{##1}{##2}{##3}{##4}}\xyFN@\xykparser@}%764K\else\DN@{\xyFN@\xykparser@}%765K\fi\fi\fi\fi\next@}767\xydef@\xykscaleerror@{Ignoringzeroscalefactor} 3.10c.Aknot-piece neednotbMerectangular.qByspecifying~hposiz1hposz2ihposz3ihposz4i thefourcornersUL m,fUR%,fDL,fDR arefsettothegiv!enhpMosisrespectiv!elye.ThelocalbasisisestablishedsothatrkN(rM޹{hop4$K:1:fe@PA2q(9hpMosz2iMnhpMosz1i"P+nhpMosz4inhpMosz3iṝ)jHu{hop4$K:1:fe@PA2q(9hpMosz1iMnhpMosz3i"P+nhpMosz2inhpMosz1iṝ)'.:B3.10d.#With anon-rectangularlyshapMedpieceitwillusuallybenecessarytoadjusttheplacewherethe`hole'oMccursinthe`under'string.NThisisdoneb!yspecifying@(KMhn!umi),]with0IFhnumi$1bMeingftheparametervdDalueofthenewlocationforthehole.795%\xydef@\xykobject@{%796%\ifx\xykSCALE@@\empty\DN@{\xykkeepscale@}%797%\else\DN@{\xyksavescale@{}}%798%\fi\next@}800\xydef@\xykhobject@{\aftergroup\xykhadjust@801K\ifx\xykSCALE@@\empty\DN@{\xykkeepscale@}%802K\else\DN@{\xyksavescale@{}}%803K\fi\next@}805\xydef@\xykvobject@{\aftergroup\xykvadjust@806K\ifx\xykSCALE@@\empty\DN@{\xykkeepscale@}%807K\else\DN@{\xyksavescale@{}}%808K\fi\next@}\*tj428KCHAPTERf3.CFEAeTURES??hw810\xydef@\xykhvobject@{\aftergroup\xykhvadjust@ 811K\ifx\xykSCALE@@\empty\DN@{\xykkeepscale@}%812K\else\DN@{\xyksavescale@{}}%813K\fi\next@}P815\xydef@\xykhuobject@{\aftergroup\xykhuadjust@816K\ifx\xykSCALE@@\empty\DN@{\xykkeepscale@}%817K\else\DN@{\xyksavescale@{}}%818K\fi\next@}v822\xydef@\xyksavescale@#1#2{%823K\expandafter\ifx\the\Edge@c\zeroEdge\relax\def\xyksaveEdgec{}%824K\else825 m\edef\xyksaveEdgec{\noexpand\Edge@c={\expandafter\noexpand\the\Edge@c}%826\L@c=\the\L@c\R@c=\the\R@c\D@c=\the\D@c\U@c=\the\U@c}%827K\fi828%829K\edef\next@##1##2{\endgroup830 m\def\noexpand\xyksaveEdgec{}%831 m\def\noexpand\xykSCALE@@\noexpand{##1}%832 m\def\noexpand\xykjoincontrol\noexpand{\xykjoincontrol}%833 m\noexpand\toks@\noexpand{##2}%834 m\noexpand\xy@@{\def\noexpand\xyksaveEdgec{}%835\def\noexpand\xykSCALE@@{##1}%836\def\noexpand\xykjoincontrol{\xykjoincontrol}}}%837K\expandafter\expandafter\expandafter\next@838K\expandafter\expandafter\expandafter{\expandafter\xykSCALE@@\expandafter}%839K\expandafter{\the\toks@}%840%841K\xykrescale@#1\the\toks@\restore\POS#2}843\xydef@\xykkeepscale@{%844K\edef\next@##1{\endgroup\noexpand\toks@={##1}%845 m\def\noexpand\xykjoincontrol{\xykjoincontrol}}%846K\expandafter\next@\expandafter{\the\toks@}%847K\def\xykSCALE@@{}\def\xyksaveEdgec{}%848K\xy@@{\def\xykSCALE@@{}\def\xyksaveEdgec{}}%849K\edef\next@{\def\noexpand\xykjoincontrol{\xykjoincontrol}}%850K\expandafter\xy@@\expandafter{\next@}%851K\xyknoflexscale@\the\toks@}v855\xydef@\xykrescale@{\expandafter\xykcheckscale@\xykSCALE@@!}%857\xydef@\xykcheckscale@#1#2!{%858K\expandafter\DN@\expandafter{\codeof{#1}}%859K\expandafter\DNii@\expandafter{\codeof{@}}%860K\ifx\next@\nextii@\relax\DN@{\xykflexiscale@#2%861K\xy@@{\divide\X@xbase2\divide\X@ybase2\divide\Y@xbase2\divide\Y@ybase2%862 m\def\xykSCALE@@{}}\def\xykSCALE@@{}%863 m\expandafter\toks@\expandafter{\afterFLEX@}}%864K\else\DN@{\save\xykrescale@@}\fi\next@}866\xydef@\xykflexiscale@{%k*tj3.10.CKNOTSfANDLINKSFEAeTURE 4429??hw867K\expandafter\def\expandafter\afterFLEX@\expandafter{\the\toks@}% 868K\xykflexiscale@@}P870\xydef@\xykrescale@@{%871K\edef\next@{\X@xbase=\xykSCALE@@\X@xbase\X@ybase=\xykSCALE@@\X@ybase872 m\Y@xbase=\xykSCALE@@\Y@xbase\Y@ybase=\xykSCALE@@\Y@ybase}%873K\expandafter\xy@@\expandafter{\next@}%874K\ifdim\xykSCALE@@\p@<\z@\relax\DN@{\xyknegflexscale@}%875K\else\DN@{\xyknoflexscale@}\fi\next@}v880{\xyuncatcodes\gdef\next#1#2#3#4{\save="@",881 m#1,="^<",\POS"@",#2,="^>",\POS"@",#3,="_<",\POS"@",#4,="_>",882K(0,0);"^>"-"^<"+"_>"-"_<":"^<"-"_<"+"^>"-"_>"::}}883\xylet@\xykflexiscale@@=\next885{\xyuncatcodes\gdef\next{\save="^<",886K+(1,0)="^>",-(1,1)="_<",+(1,0)="_>"\restore}}887\xylet@\xyknoflexscale@@=\next888\xylet@\xyknoflexscale@=\next890{\xyuncatcodes\gdef\next{\save="_>",891K+(-1,1)="^<",+(1,0)="^>",-(1,1)="_<"\restore}}892\xylet@\xyknegflexscale@@=\next893\xylet@\xyknegflexscale@=\next895{\xyuncatcodes\gdef\next{\save="_<",896K+(1,0)="_>",+(-1,1)="^<",+(1,0)="^>"\restore}}897\xylet@\xykhscale@@=\next899{\xyuncatcodes\gdef\next{\save="^>",900K-(1,0)="^<",+(1,-1)="_>",-(1,0)="_<"\restore}}901\xylet@\xykvscale@@=\nextv906\xydef@\xykhadjust@{%907K\let\xyknoflexscale@=\xykhscale@@908K\let\xyknegflexscale@=\xyknegflexscale@@}910\xydef@\xykvadjust@{%911K\let\xyknoflexscale@=\xyknoflexscale@@912K\let\xyknegflexscale@=\xykhscale@@}914\xydef@\xykhvadjust@{%915K\let\xyknoflexscale@=\xyknoflexscale@@916K\let\xyknegflexscale@=\xyknegflexscale@@}918\xydef@\xykhuadjust@{%919K\let\xyknoflexscale@=\xykhscale@@920K\let\xyknegflexscale@=\xykvscale@@}@3.10e.Theknottfeatureallo!wsfortheeasyplacementofthefollowingobjectsalongthestringsofacrossing:) %labMelsfonthestrings;.) %arro!wheadsffordirectionororientation;) %holesfinstrings,allo!winganotherstringtobMedrawnpassingover.v֠*tj430KCHAPTERf3.CFEAeTURES??hw3.10f.fThec!haracters< A~,$> ʢand| RareusedtoindicatetowhichstringpMortiontheobjectisassociated; with|ιdenotingthestringwhic!hcrossestheother,>whiledenotetheinitialand nalpMortionsfofthe`crossed'string.P945\xydef@\xykprebreak@{%946K\ifx\xykprebreak@@\empty\addtotoks@{{}}\else947 m\expandafter\addtotoks@\expandafter{\expandafter{\xykprebreak@@}}\fi}949\xydef@\xykpostbreak@{%950K\ifx\xykpostbreak@@\empty\addtotoks@{{}}\else951 m\expandafter\addtotoks@\expandafter{\expandafter{\xykpostbreak@@}}\fi}953\xydef@\xykmidbreak@{%954K\ifx\xykmidbreak@@\empty\addtotoks@{{}}\else955 m\expandafter\addtotoks@\expandafter{\expandafter{\xykmidbreak@@}}\fi}N3.10g.A~#simple~ZlabMelenclosedinbraces,Wforexample\vcross>{x}C,issetinmath-moMdeusingthe\labelstyle4g,_atapre-determinedplaceonthestringpMortion,shiftedineitherthe`abMo!ve'or`bMelo!w'1directionfromthecurveatthispMoint. (Feoreachcrossingdepictedin gure3.8onlydefaultfvdDaluesareusedfortheplaceandshift-direction.)3.10h.#If,the rstc!haracterwithinthebraces{..} is*Be.g..0\htwist>{*Ahobjecti},thenageneralhobjectiߋma!ybMeplacedasalabel.KFeurthermoreifthe rstc!haracteris^~or_or| 5,-thenthein!terpretation%is,e.g.\vtwist<{^?jhanchorihiti},as%in3.2toplacehitiasalabMelalongan\arAHofthefarrow$ feature.3.10i.AXsecond’c!haracter< Dιor>spMeci esthatanarro!wheadshouldappearatthepre-determinedplaceonthec!hosenstring.LHere> denotesanarrowheadpMointingwiththenaturalorientation,while<pMoin!ts0/against.uDuetothecurvdDatureofthestrings,Gitisusuallybestto\UseComputerModernTipsratherfthannormalarro!w-tips.3.10j.fTeogeneratea`hole'use\knothole8?ҹ,orsimply\khole'Թ,asfollo!wingtoken.s2Thisgeneratesa`break',ginthesenseof3.3j.^Indeedsuc!ha`hole'isusedtoseparatethetwopMortionsofthe`crossed'string.ݎDefaultysizefortheholeis5pt,whic!hisalterablevia\knotholesize{T hdimeni};normallyusedftosetthesizeforalFlholesinadiagram.3.10k.նIfJtheresulting\khole,iseithertoMolargeorperhapsnon-existen!t,wCthiscouldbeduetoatec!hnicalityinthew!aybreaksincurv!esarehandled.ThisproblemshouldnotoMccurwiththestandardIcrossings,rusingarectangularbasis,butitma!yoMccurwithnon-rectangularbases.ȆAneasyI` x'istoincludeanextranulFl-brpeakIonthestring,\Ausing< b| ,> |%Mor| b| ,whic!hshouldplacethezero-sizedWfbreakatparametervdDalue.5onthecurv!e.ÈThespMeci cationshouldprecedea\khole),ȹatafhigherparametervdDalue,orcomeafteroneatalo!werfvalue.TheaimoftheabMo!ve` x'istopositionthen!ull-breakascloseaspossibletowherethecurv!eisfarthestffromthelinejoiningitsend-pMoin!ts,whichisusuallyatparametervdDalue(.5).P1008\xydef@\xykparsebreak@{%1009K\ifx\space@\next\expandafter\DN@\space{\xyFN@\xykparsebreak@}%1010K\else\addLT@\ifx\next1011 m\expandafter\appendtoholder@\xykbacktemp@\next@1012 m\addLT@\DN@{\xyFN@\xykparser@}%1013K\else\addGT@\ifx\next1014 m\expandafter\appendtoholder@\xykforetemp@\next@1015 m\addGT@\DN@{\xyFN@\xykparser@}%*tj3.10.CKNOTSfANDLINKSFEAeTURE 4431??hw1016K\else\ifx|\next 1017 m\expandafter\appendtoholer@\xyknulltemp@\next@1018 m\DN@|{\xyFN@\xykparser@}%1019K\else\ifx\next\bgroup\DN@##1{\checkgroupbreak@##1@}%1020K\else\ifx(\next\DN@(##1){\xyadjustknotPLACE@i##1@@%1021 m\xyFN@\xykparsebreak@}%1022K\else\ifx\next\knothole@\DN@##1{\expandafter\appendtoholder@@1023\expandafter{\expandafter|\xyknotPLACE\knothole}\next@1024 m\xyFN@\xykparser@}%1025K\else1026 m\expandafter\xykdefaultbreak@\xykbreak@\next@1027 m\DN@{\xyFN@\xykparser@}%1028K\fi\fi\fi\fi\fi\fi\fi\next@}ÔTeemplatesfforarro!wheads.P1034{\xyuncatcodes\gdef\next{^>*\dir{>}}}1035\xylet@\xykforetips@=\next1037{\xyuncatcodes\gdef\next{^<*\dir{<}}}1038\xylet@\xykbacktips@=\next1040{\xyuncatcodes\gdef\next{*!/-1pt/=0\dir{>}}}1041\xylet@\xykforetemp@=\next1043{\xyuncatcodes\gdef\next{*!/1pt/=0\dir{<}}}1044\xylet@\xykbacktemp@=\next1046{\xyuncatcodes\gdef\next{*=<\xykholesize>[o]{}}}1047\xylet@\xykholetemp@=\next1048\xydef@\knothole@{\hboxto\xykholesize{%1049K\dimen@=\xykholesize\divide\dimen@\tw@1050K\hfill\vruleheight\dimen@depth\dimen@width\z@}}1051\xylet@\knothole=\knothole@1052\xylet@\khole=\knothole@1054{\xyuncatcodes\gdef\next{*=<0pt>{}}}1055\xylet@\xyknulltemp@=\next1056\xylet@\xykbreak@=\xyknulltemp@ÔWhenu=thenexttok!enisabMegin-groupcharacter{ $thenloMokatthe rsttokeninsidethegroup.zIfitܹis^ c,_orܹ| ythenܹthegroupcon!tentsܹwillbMeanhanc!horiforuser-chosenplacesalongthestring.Otherwisetheplaceistak!entobMethealreadyspeci ed\xyknotPLACELdandthegroupcon!tainsalabMel,x2tolbesetintheusualw!ayforlabMels,x2using_ duetotheorientationofthecurve.ʝHoweveriftheO rsttok!enis* bHthentheuserisassumedtobMedroppinghisownlabMel, possiblyOwithhobjectimoMdi ers.1069\xydef@\checkgroupbreak@#1#2@{%1070K\ifx|#1\DN@{\appendtoholder@@#1#2\next@\xyFN@\xykparser@}%1071K\else\ifx_#1\DN@{\appendtoholder@@_#2\next@\xyFN@\xykparser@}%1072K\else\ifx^#1\DN@{\appendtoholder@@^#2\next@\xyFN@\xykparser@}%1073K\else1074K\def\next##1\next{\expandafter\DNii@\expandafter{\xyk@@##1}}%1075K\expandafter\next\xyknotPLACE\next1076K\ifx*#1%͠*tj432KCHAPTERf3.CFEAeTURES??hw1077 m\expandafter\DN@\expandafter{% 1078 \expandafter\appendtoholder@@\nextii@#1#2\next@\xyFN@\xykparser@}%1079K\else%\expandafter\DNii@\expandafter{\expandafter\xyk@@\xyknotPLACE}%1080\expandafter\DN@\expandafter{%1081 \expandafter\appendtoholder@@\nextii@{#1#2}\next@\xyFN@\xykparser@}%1082K\fi\fi\fi\fi\next@}v1086{\xyuncatcodes\gdef\next{%1087K\expandafter{\expandafter^\xyknotPLACE##1}}}%1088K\DN@{\xydef@\xykholder@@##1}\DNii@{\expandafter\toks@}%1089K\expandafter\expandafter\expandafter\next@1090K\expandafter\expandafter\expandafter{\expandafter\nextii@\next}P1092\xydef@\appendtoholder@#1\next@{\xykholder@@{#1}%1093K\DN@##1{\expandafter\DN@\expandafter{\xykholder@##1}}%1094K\expandafter\next@\expandafter{\the\toks@}\appendtoholder@@@}1096\xydef@\appendtoholder@@#1\next@{%1097K\DN@##1\next@{\expandafter\DN@\expandafter{\xykholder@##1}}%1098 m\next@#1\next@\appendtoholder@@@}%1100\xydef@\appendtoholder@@@{%1101K\expandafter\expandafter\expandafter\DN@1102 m\expandafter\expandafter\expandafter{\next@}%1103K\DNii@{\expandafter\def\xykholder@}%1104 m\expandafter\nextii@\expandafter{\next@}}v1109{\xyuncatcodes\gdef\next{%1110K\expandafter{\expandafter|\xyknotPLACE##1}}}%1111\DN@{\xydef@\xykholer@@##1}\DNii@{\expandafter\toks@}%1112K\expandafter\expandafter\expandafter\next@1113K\expandafter\expandafter\expandafter{\expandafter\nextii@\next}1115\xydef@\appendtoholer@#1\next@{\xykholer@@{#1}%1116K\DN@##1{\expandafter\DN@\expandafter{\xykholder@##1}}%1117K\expandafter\next@\expandafter{\the\toks@}\appendtoholder@@@}dMultiplebreaks,arro!w-headsandlabMelsmaybMespeci edalongthet!wostringsofacrossing; simplyplaceftheirspMeci cationsoneafteranother;e.g.<>]1|>>><{x}>Z|D+{y}>{z}o7w!asusedin gure3.8.DvThetonlypro!visoisthatall`breaks'alongasinglestrandmustoMccurwithincreasingorderofparameter5pMosition. JOnthe`crossed'stringthisincludestheautomatic`hole'tocreatespacefortheotherstring.HHenceitisadvisabletousejustthe(+..)&R^and(-..)vdDarian!tsforsmalladjustmen!ts,fandtokeepthesecorrectlyordered.1136\xydef@\xykz#1{\let\xyk@@=#1\xy@@{\let\xyk@@=#1}}1137{\xyuncatcodes\global\let\next=_}1138\xylet@\xyk@@=\nextdAdjustmen!tofpMositionalongthestringscanbeac!hievedusingahfactori,asin\vover&p|,0T(+.1)>NP.Allo!wedsyntaxis( 7hsignihnumi)wherehsigniis+ Ĺor-toincremen!tordecrementfromthepre-de ned%vdDalue.Alsoallo!wable%are= orhempt!yitosettheparameterpMositiontohnumi,?PwhichmustliefbMet!ween0and1tohaveanymeaning.DvThisfparsesadjustmen!tsofthe\xyknotPLACEH^.!*tj3.10.CKNOTSfANDLINKSFEAeTURE 4433??hw1155\xydef@\xyadjustknotPLACE@i{% 1156K\ifx\xyknotPLACE\empty\DN@{\dimen@=.5\p@}%1157K\else\DN@{\expandafter\xygetknotPLACE@@\xyknotPLACE}%1158K\fi\next@\relax\let\xywhichknotPLACE@@=\xysetknotPLACE@@1159K\xyFN@\xyadjustknotPLACE@}P1161\xydef@\xyadjustknotPLACE@{\expandafter\ifx\space@\next1162 m\expandafter\DN@\space{\xyFN@\xyadjustknotPLACE@}%1163K\else\addDASH@\ifx\next\DN@{\xyadjustknotPLACE@@}%1164K\else\addPLUS@\ifx\next\DN@{\xyadjustknotPLACE@@}%1165K\else\addEQ@\ifx\next\addEQ@\DN@{\dimen@=\z@\xyadjustknotPLACE@@}%1166K\else\DN@{\dimen@=\z@\xyadjustknotPLACE@@}%1167K\fi\fi\fi\fi\next@}1169\xydef@\xyadjustknotPLACE@@#1@@{\advance\dimen@#1\p@1170K\expandafter\xysetknotPLACE@\expandafter{\the\dimen@}}1172\xydef@\xysetknotPLACE@#1{%1173K\expandafter\xywhichknotPLACE@@\expandafter{\removePT@#1}}1175{\xyuncatcodes\gdef\next#1{\def\xyknotPLACE{(#1)}}}%1176\xylet@\xysetknotPLACE@@=\next1178{\xyuncatcodes\catcode`@=111179K\gdef\next(#1){\DN@\next@{#1}\ifx\next@\empty1180 m\dimen@=\z@\else\dimen@=#1\p@\fi}}%1181\xylet@\xygetknotPLACE@@=\nexttThesenusethesamemec!hanismtoadjustparametersstoredin\xykpostbreak@@[Թand\xykjoincontrol@@d)9.1188%\xydef@\xyadjustJOIN@i#1@@{\xykjoincontrol@i{#1}}%1189\xydef@\xyadjustJOIN@i{%1190K\ifx\xykjoincontrol\empty\DN@{\dimen@=.75\p@}%1191K\else\DN@{\expandafter\xygetknotPLACE@@\expandafter(\xykjoincontrol)}%1192K\fi\next@\relax\let\xywhichknotPLACE@@=\xysetjoincontrol@1193K\xyFN@\xyadjustknotPLACE@}1195%\xydef@\xyadjustBREAK@i#1@@{\def\xykpostbreak@@{|(##1)\knothole}}%1196\xydef@\xyadjustBREAK@i{%1197K\ifx\xykpostbreak@@\empty\DN@{\dimen@=.5\p@}%1198K\else\DN@{\expandafter\xygetpostBREAK@\xykpostbreak@@}%1199K\fi\next@\relax\let\xywhichknotPLACE@@=\xysetpostbreak@1200K\xyFN@\xyadjustknotPLACE@}1202\xydef@\xygetpostBREAK@|#1\knothole{\DN@{#1}%1203K\ifx\next@\empty\dimen@=.5\p@\else\xygetknotPLACE@@#1\fi}1205\xydef@\xysetpostbreak@#1{\def\xykpostbreak@@{|(#1)\knothole}}1206\xydef@\xysetjoincontrol@#1{\edef\xykjoincontrol{#1}}tArro!wheadsXcanalsobMeplacedateither,orboth,endsofofthestringsformingacrossing.jThisisgo!vernedbyapairofbMooleans,initially{FF}u.?Itisc!hangedforalFlwsubsequentstringsinadiagrambYb!y\knottips{..}QTwheretherecognisedvdDaluesare{FF}a,o{FT}n,o{TF}and{TT},odenotingtipsI(T)ornot(F)atthestartandendofeac!hstring.Teoaddarrowtipsatthestartofstringsin·aparticularcrossing, appMendthe2-c!haractercombination=<B;Psimilarly=>¹addstipsattheends,RifLnotalreadyrequested.Thecom!binations==and=!spMecifyboth({TT})andnone({FF})>*tj434KCHAPTERf3.CFEAeTURES??hwrespMectiv!elye.jThese 2-characterpairscanbMemixedinwithanyspMeci cationsforlabelsandbreaks, etc.MultipleIhpairscompMoundtheire ect;inparticular=<=>xgiv!esthesameresultas==ȼ,r(while=!=<1'isfneededtoc!hange{FT}Ktinto{TF}.~1ThesefarebMestusedwithsinglepieces,asinthefollo!wingequation.tō[rhps: SDict begin xyc endh0?" {mark 12.0 0.0 15.0 0.0 16.5 -2.25 17.25 -3.875 0.0 0.0 bz}xyC" {mark 17.25 -3.875 18.0 -5.5 18.0 -6.5 18.75 -8.125 0.0 0.0 bz}xyC" {mark 18.75 -8.125 19.5 -9.75 21.0 -12.0 24.0 -12.0 0.0 0.0 bz}xy h0" {3072 10 /cm AB}xyh0?" {mark 12.0 0.0 15.0 0.0 16.5 -2.25 17.25 -3.875 0.0 1.0 bz}xyC" {mark 17.25 -3.875 18.0 -5.5 18.0 -6.5 18.75 -8.125 0.0 1.0 bz}xyC" {mark 18.75 -8.125 19.5 -9.75 21.0 -12.0 24.0 -12.0 0.0 1.0 bz}xyh0?" {mark 12.0 0.0 15.0 0.0 16.5 -2.25 17.25 -3.875 1.0 1.0 bz}xyC" {mark 17.25 -3.875 18.0 -5.5 18.0 -6.5 18.75 -8.125 1.0 1.0 bz}xyC" {mark 18.75 -8.125 19.5 -9.75 21.0 -12.0 24.0 -12.0 1.0 1.0 bz}xyh0C" {mark 12.0 -12.0 15.0 -12.0 16.5 -9.75 17.25 -8.125 0.0 0.0 bz}xyC" {mark 17.25 -8.125 18.0 -6.5 18.0 -5.5 18.75 -3.875 0.0 0.0 bz}xy?" {mark 18.75 -3.875 19.5 -2.25 21.0 0.0 24.0 0.0 0.0 0.0 bz}xyh0G" {mark 12.0 -12.0 15.0 -12.0 16.5 -9.75 17.25 -8.125 0.0 0.92505 bz}xyC" {mark 17.25 -8.125 18.0 -6.5 18.0 -5.5 18.75 -3.875 0.0 0.0 bz}xy?" {mark 18.75 -3.875 19.5 -2.25 21.0 0.0 24.0 0.0 0.0 0.0 bz}xy h0" {3072 10 /cm AB}xyh0C" {mark 12.0 -12.0 15.0 -12.0 16.5 -9.75 17.25 -8.125 1.0 1.0 bz}xyC" {mark 17.25 -8.125 18.0 -6.5 18.0 -5.5 18.75 -3.875 1.0 1.0 bz}xyC" {mark 18.75 -3.875 19.5 -2.25 21.0 0.0 24.0 0.0 0.07504 1.0 bz}xyh0C" {mark 12.0 -12.0 15.0 -12.0 16.5 -9.75 17.25 -8.125 1.0 1.0 bz}xyC" {mark 17.25 -8.125 18.0 -6.5 18.0 -5.5 18.75 -3.875 1.0 1.0 bz}xy?" {mark 18.75 -3.875 19.5 -2.25 21.0 0.0 24.0 0.0 1.0 1.0 bz}xy_Fi:rnrhps: SDict begin xyc endh0?" {mark 12.0 0.0 15.0 0.0 16.5 -2.25 17.25 -3.875 0.0 0.0 bz}xyC" {mark 17.25 -3.875 18.0 -5.5 18.0 -6.5 18.75 -8.125 0.0 0.0 bz}xyC" {mark 18.75 -8.125 19.5 -9.75 21.0 -12.0 24.0 -12.0 0.0 0.0 bz}xyh0A" {mark 12.0 0.0 15.0 0.0 16.5 -2.25 17.25 -3.875 0.0 0.925 bz}xyC" {mark 17.25 -3.875 18.0 -5.5 18.0 -6.5 18.75 -8.125 0.0 0.0 bz}xyC" {mark 18.75 -8.125 19.5 -9.75 21.0 -12.0 24.0 -12.0 0.0 0.0 bz}xy h0" {3072 10 /cm AB}xyh0?" {mark 12.0 0.0 15.0 0.0 16.5 -2.25 17.25 -3.875 1.0 1.0 bz}xyC" {mark 17.25 -3.875 18.0 -5.5 18.0 -6.5 18.75 -8.125 1.0 1.0 bz}xyE" {mark 18.75 -8.125 19.5 -9.75 21.0 -12.0 24.0 -12.0 0.075 1.0 bz}xyh0?" {mark 12.0 0.0 15.0 0.0 16.5 -2.25 17.25 -3.875 1.0 1.0 bz}xyC" {mark 17.25 -3.875 18.0 -5.5 18.0 -6.5 18.75 -8.125 1.0 1.0 bz}xyC" {mark 18.75 -8.125 19.5 -9.75 21.0 -12.0 24.0 -12.0 1.0 1.0 bz}xyh0C" {mark 12.0 -12.0 15.0 -12.0 16.5 -9.75 17.25 -8.125 0.0 0.0 bz}xyC" {mark 17.25 -8.125 18.0 -6.5 18.0 -5.5 18.75 -3.875 0.0 0.0 bz}xy?" {mark 18.75 -3.875 19.5 -2.25 21.0 0.0 24.0 0.0 0.0 0.0 bz}xy h0" {3072 10 /cm AB}xyh0C" {mark 12.0 -12.0 15.0 -12.0 16.5 -9.75 17.25 -8.125 0.0 1.0 bz}xyC" {mark 17.25 -8.125 18.0 -6.5 18.0 -5.5 18.75 -3.875 0.0 1.0 bz}xy?" {mark 18.75 -3.875 19.5 -2.25 21.0 0.0 24.0 0.0 0.0 1.0 bz}xyh0C" {mark 12.0 -12.0 15.0 -12.0 16.5 -9.75 17.25 -8.125 1.0 1.0 bz}xyC" {mark 17.25 -8.125 18.0 -6.5 18.0 -5.5 18.75 -3.875 1.0 1.0 bz}xy?" {mark 18.75 -3.875 19.5 -2.25 21.0 0.0 24.0 0.0 1.0 1.0 bz}xy_Fi-e=NzNzrhps: SDict begin xyc endh0=" {mark 12.0 0.0 13.5 0.0 15.0 -1.5 16.25 -2.25 0.0 0.0 bz}xyA" {mark 16.25 -2.25 17.5 -3.0 18.5 -3.0 19.75 -2.25 0.0 0.0 bz}xy=" {mark 19.75 -2.25 21.0 -1.5 22.5 0.0 24.0 0.0 0.0 0.0 bz}xy h0" {3072 10 /cm AB}xyh0=" {mark 12.0 0.0 13.5 0.0 15.0 -1.5 16.25 -2.25 0.0 1.0 bz}xyA" {mark 16.25 -2.25 17.5 -3.0 18.5 -3.0 19.75 -2.25 0.0 1.0 bz}xy=" {mark 19.75 -2.25 21.0 -1.5 22.5 0.0 24.0 0.0 0.0 1.0 bz}xyh0=" {mark 12.0 0.0 13.5 0.0 15.0 -1.5 16.25 -2.25 1.0 1.0 bz}xyA" {mark 16.25 -2.25 17.5 -3.0 18.5 -3.0 19.75 -2.25 1.0 1.0 bz}xy=" {mark 19.75 -2.25 21.0 -1.5 22.5 0.0 24.0 0.0 1.0 1.0 bz}xyh0B" {mark 12.0 -12.0 13.5 -12.0 15.0 -10.5 16.25 -9.75 0.0 0.0 bz}xyA" {mark 16.25 -9.75 17.5 -9.0 18.5 -9.0 19.75 -9.75 0.0 0.0 bz}xyB" {mark 19.75 -9.75 21.0 -10.5 22.5 -12.0 24.0 -12.0 0.0 0.0 bz}xy h0" {3072 10 /cm AB}xyh0B" {mark 12.0 -12.0 13.5 -12.0 15.0 -10.5 16.25 -9.75 0.0 1.0 bz}xyA" {mark 16.25 -9.75 17.5 -9.0 18.5 -9.0 19.75 -9.75 0.0 1.0 bz}xyB" {mark 19.75 -9.75 21.0 -10.5 22.5 -12.0 24.0 -12.0 0.0 1.0 bz}xyh0B" {mark 12.0 -12.0 13.5 -12.0 15.0 -10.5 16.25 -9.75 1.0 1.0 bz}xyA" {mark 16.25 -9.75 17.5 -9.0 18.5 -9.0 19.75 -9.75 1.0 1.0 bz}xyB" {mark 19.75 -9.75 21.0 -10.5 22.5 -12.0 24.0 -12.0 1.0 1.0 bz}xy_Fi P\UseComputerModernTips\knottips{FT}\def\Conway#1{\mathord{\nabla\Bigl[\,K\raise5pt\xybox{0;/r1pc/:#1}\,\Bigr]}}$$\Conway\htwist-\Conway\htwistnegK\;=\;-z\,\Conway\huntwist$$v1243\xydef@\xykparsetips@{%1244K\def\xyknotTIPS@@{}\def\xyknotPLACE{}%1245K\let\xykparser@=\xykparsetips@@1246K\xyFN@\xykparser@}P1248\xydef@\xykparsetips@@{%1249K\ifx\space@\next\expandafter\DN@\space{\xyFN@\xykparsetips@@}%1250K\else\addLT@\ifx\next1251 m\ifx\xyknotTIPS@@\empty\def\xyknotTIPS@@{TF}%1252 m\else\DN@{FF}\ifx\next@\xyknotTIPS@@\def\xyknotTIPS@@{TF}%1253 m\else\DN@{FT}\ifx\next@\xyknotTIPS@@\def\xyknotTIPS@@{TT}%1254 m\fi\fi\fi1255 m\addLT@\DN@{\xyFN@\xykparser@}%1256K\else\addGT@\ifx\next1257 m\ifx\xyknotTIPS@@\empty\def\xyknotTIPS@@{FT}%1258 m\else\DN@{FF}\ifx\next@\xyknotTIPS@@\def\xyknotTIPS@@{FT}%1259 m\else\DN@{TF}\ifx\next@\xyknotTIPS@@\def\xyknotTIPS@@{TT}%1260 m\fi\fi\fi1261 m\addGT@\DN@{\xyFN@\xykparser@}%1262K\else\addEQ@\ifx\next\def\xyknotTIPS@@{TT}%1263 m\addEQ@\DN@{\xyFN@\xykparser@}%1264K\else\ifx!\next\def\xyknotTIPS@@{FF}\DN@!{\xyFN@\xykparser@}%1265K\else\DN@{\xyFN@\xykparser@}%1266K\fi\fi\fi\fi\fi\next@}5Thisfreadsthesettingfortipsonstringends.1272\xydef@\xykcheckTIPS@{%1273K\ifx\xyknotTIPS@@\empty\edef\xyknotTIPS@@{\xyknotTIPS@}\fi1274 \DN@{FF}\ifx\next@\xyknotTIPS@@\def\tmp@{}%1275K\else\DN@{FT}\ifx\next@\xyknotTIPS@@1276 m\expandafter\def\expandafter\tmp@\expandafter{\xykforetips@}%1277K\else\DN@{TF}\ifx\next@\xyknotTIPS@@1278 m\expandafter\def\expandafter\tmp@\expandafter{\xykbacktips@}%1279K\else1280 m\DN@##1\next@{\DN@{\xykforetips@##1}}%1281\expandafter\next@\xykbacktips@\next@x*tj3.10.CKNOTSfANDLINKSFEAeTURE 4435??hw1282 m\DNii@{\expandafter\def\expandafter\tmp@\expandafter}% 1283\expandafter\nextii@\expandafter{\next@}%1284K\fi\fi\fi\def\xyknotTIPS@@{}}P1286\xydef@\xyknottips@{%1287K\ifx\tmp@\empty\addtotoks@{{}}\else1288 m\expandafter\addtotoks@\expandafter{\expandafter{\tmp@}}\fi}&Joins)3.10l.The>\joins"areusedtoconnecttheloMoseendsofcrossingstrings.1Inparticular\loops"and\caps"vareforplacingonendsofhorizon!talorvertical`twist'and`cross'crossings,leavingthecurren!t 9V|?B>>><{x}gS|m{y}>{z}Q8.Feurthermorethecurren!thpMosibeforethepieceisdra!wnismarkedusingwps: SDict begin xyc end334 ;Wthatafterwardsisindicatedbywps: SDict begin xyc endh0" {-2048 st}xy;s" {-2048 F d}xy.orwps: SDict begin xyc endh0" {-3072 st}xy0" {-3072 T d}xy .Theqabilit!ytoscaleinsizeandplacearrow-tips,breaks,labMelsqetc.@wapplyalsotohjoinipieces.Thefonlydi erenceis.3..3.10m. .>The+3threeplacesreferredtob!y< ,|,> ݹareallonasinglestring.lCInparticular|isalwaysatthe8middleofthehjoini,]whereas<1and>areateparlierandlaterparametervdDaluesrespMectiv!elye.ՍAn!yfadjustments3.10k4involvingbreaksshouldoMccurinincreasingparameterorder.!gPtarsingb퍍1391\xydef@\xykparsejoin@{%1392K\def\xykSCALE@@{}%1393K\edef\xyknotPLACE{\xykmidPLACE@}%1394K\let\xykparser@=\xykparsejoin@@1395K\def\xykdefaultbreak@{\let\xykbreak@=\xykforetemp@1396 m\def\xyknotPLACE{(.5)}\appendtoholder@}%1397% T\edef\xyknotPLACE{\xykmidPLACE@}\appendtoholder@}%1398K\xyFN@\xykparsescale@}v1402{\xyuncatcodes\catcode`@=111403\gdef\next{%1404K\ifx\space@\next\expandafter\DN@\space{\xyFN@\xykparsejoin@@}%1405K\else\addLT@\ifx\next\let\xykbreak@=\xykbacktemp@1406 m\def\xykdefaultbreak@{\def\xyknotPLACE{(.5)}%1407% T\def\xykdefaultbreak@{\edef\xyknotPLACE{\xykmidPLACE@}%1408 m\appendtoholder@}\addLT@\DN@{\xyprecross@}%1409K\else\addGT@\ifx\next\let\xykbreak@=\xykforetemp@1410 m\def\xykdefaultbreak@{\def\xyknotPLACE{(.5)}%1411% T\def\xykdefaultbreak@{\edef\xyknotPLACE{\xykmidPLACE@}%r*tj436KCHAPTERf3.CFEAeTURES??hw1412 m\appendtoholder@}\addGT@\DN@{\xypostcross@}% 1413K\else\ifx|\next\let\xykbreak@=\xyknulltemp@1414%\else\ifx|\next\let\xykbreak@=\xykholetemp@1415 m\def\xykdefaultbreak@{\def\xyknotPLACE{(.5)}%1416% T\def\xykdefaultbreak@{\edef\xyknotPLACE{\xykmidPLACE@}%1417 m\appendtoholer@}\DN@|{\xymidcross@}%1418K\else\addEQ@\ifx\next\addEQ@\DN@{\xyFN@\xykparsetips@@}%1419%\else\addAT@\ifx\next\addAT@\DN@{\xykjoincontrol@}%1420K\else\addAT@\ifx\next\addAT@\DN@(##1){%1421 m\xyadjustJOIN@i##1@@\xyFN@\xykparsejoin@@}%1422K\else\DN@{\afterknot@}%1423K\fi\fi\fi\fi\fi\fi\next@}}1424\xylet@\xykparsejoin@@=\nextO3.10n.#Aparameter#canbMealtered,Rusing@ hadjusti,toe ectsubtleadjustmen!tstotheshapMeofanyjoin. DWithinarectangularbasisthehorizon!talorverticaltangentsarepreservedandoverallre ectionJ2orrotationsymmetryispreserv!ed.@ThusJ2thisparametera ectsthe` atness'ofacaporSloMop, ortheamoun!tofcurvdDatureiss-bendsandz-bends.Feor\xcap..,sand\xbend..2sthe45 'anglegisaltered;4thisisespMeciallyusefultomatc!hthetangentswhenaknot-piecehasbMeenspMeci edfusingthetec!hniqueofnote3.10c.ThennormalrangefortheseparametersisbMet!weenn0and1. 6vOthervdDaluescanbeusedwithin!terestingresults|theparameterdeterminestheloMcationofcontrolpMointsforaB"Deziercubiccurv!e.8NRpiece5ivdDalueZ,e ectfon.3..zffG+  \..capEO.25d atnessfofcap; \..loopEO.75d atnessfofloMop;\sbend..EO.75dcurvdDaturefinthe`s';\zbend..EO.75dcurvdDaturefinthe`z';\xcap..H ɹ.5dheigh!tfofcap,slopMeatbase;\xbend..H ɹ.5dcurvdDature,fslopMeatbase.ffG+CThefollo!wingexamplegivesthreewaysofspMecifyinga`trefoil'knot,usingthepoly '̹featuretoestablish theloMcationofthev!erticesforknot-pieces. Ineachthehcrossingisarecalculatedto ttogethersmoMothly;Eadi eren!twayofcreatinghjoinisisusedineach.Alsothethirddisplayssubtlec!hangesfofthe3.10n{joincontrol. \Vps: SDict begin xyc end |Rh0W" {mark 16.68724 9.16116 17.70978 7.39005 18.112 5.85115 18.31757 4.51248 0.0 0.0 bz}xyX" {mark 18.31757 4.51248 18.52312 3.1738 18.53204 2.03537 18.34877 0.52795 0.0 0.0 bz}xyW" {mark 18.34877 0.52795 18.1655 -0.97946 17.79004 -2.85585 16.79425 -4.5 0.0 0.0 bz}xy |Rh0W" {mark 16.68724 9.16116 17.70978 7.39005 18.112 5.85115 18.31757 4.51248 0.0 1.0 bz}xyX" {mark 18.31757 4.51248 18.52312 3.1738 18.53204 2.03537 18.34877 0.52795 0.0 1.0 bz}xyW" {mark 18.34877 0.52795 18.1655 -0.97946 17.79004 -2.85585 16.79425 -4.5 0.0 1.0 bz}xy |Rh0W" {mark 16.68724 9.16116 17.70978 7.39005 18.112 5.85115 18.31757 4.51248 1.0 1.0 bz}xyX" {mark 18.31757 4.51248 18.52312 3.1738 18.53204 2.03537 18.34877 0.52795 1.0 1.0 bz}xyW" {mark 18.34877 0.52795 18.1655 -0.97946 17.79004 -2.85585 16.79425 -4.5 1.0 1.0 bz}xy |Rh0O" {mark 9.0 9.0 10.9218 9.04028 12.73454 8.42725 14.13165 7.83224 0.0 0.0 bz}xyX" {mark 14.13165 7.83224 15.52875 7.23724 16.51021 6.6603 17.56674 5.81293 0.0 0.0 bz}xyX" {mark 17.56674 5.81293 18.62328 4.96556 19.75487 3.84776 20.7774 2.07664 0.0 0.0 bz}xy |Rh0O" {mark 9.0 9.0 10.9218 9.04028 12.73454 8.42725 14.13165 7.83224 0.0 1.0 bz}xy\" {mark 14.13165 7.83224 15.52875 7.23724 16.51021 6.6603 17.56674 5.81293 0.0 0.39636 bz}xyX" {mark 17.56674 5.81293 18.62328 4.96556 19.75487 3.84776 20.7774 2.07664 0.0 0.0 bz}xy |Rh0O" {mark 9.0 9.0 10.9218 9.04028 12.73454 8.42725 14.13165 7.83224 1.0 1.0 bz}xyX" {mark 14.13165 7.83224 15.52875 7.23724 16.51021 6.6603 17.56674 5.81293 1.0 1.0 bz}xy\" {mark 17.56674 5.81293 18.62328 4.96556 19.75487 3.84776 20.7774 2.07664 0.84789 1.0 bz}xy |Rh0O" {mark 9.0 9.0 10.9218 9.04028 12.73454 8.42725 14.13165 7.83224 1.0 1.0 bz}xyX" {mark 14.13165 7.83224 15.52875 7.23724 16.51021 6.6603 17.56674 5.81293 1.0 1.0 bz}xyX" {mark 17.56674 5.81293 18.62328 4.96556 19.75487 3.84776 20.7774 2.07664 1.0 1.0 bz}xy |Rh0>" {mark 16.68724 9.16116 9.0 22.5 1.31276 9.16116 0.0 1.0 q}xy |Rh0W" {mark -2.7774 2.07664 -1.75487 3.84776 -0.62328 4.96556 0.43326 5.81293 0.0 0.0 bz}xyT" {mark 0.43326 5.81293 1.48979 6.6603 2.47125 7.23724 3.86836 7.83224 0.0 0.0 bz}xyL" {mark 3.86836 7.83224 5.26546 8.42725 7.0782 9.04028 9.0 9.0 0.0 0.0 bz}xy |Rh0W" {mark -2.7774 2.07664 -1.75487 3.84776 -0.62328 4.96556 0.43326 5.81293 0.0 1.0 bz}xyT" {mark 0.43326 5.81293 1.48979 6.6603 2.47125 7.23724 3.86836 7.83224 0.0 1.0 bz}xyL" {mark 3.86836 7.83224 5.26546 8.42725 7.0782 9.04028 9.0 9.0 0.0 1.0 bz}xy |Rh0W" {mark -2.7774 2.07664 -1.75487 3.84776 -0.62328 4.96556 0.43326 5.81293 1.0 1.0 bz}xyT" {mark 0.43326 5.81293 1.48979 6.6603 2.47125 7.23724 3.86836 7.83224 1.0 1.0 bz}xyL" {mark 3.86836 7.83224 5.26546 8.42725 7.0782 9.04028 9.0 9.0 1.0 1.0 bz}xy |Rh0U" {mark 1.20575 -4.5 0.20996 -2.85585 -0.1655 -0.97946 -0.34877 0.52795 0.0 0.0 bz}xyY" {mark -0.34877 0.52795 -0.53204 2.03537 -0.52313 3.17381 -0.31757 4.51248 0.0 0.0 bz}xyU" {mark -0.31757 4.51248 -0.112 5.85115 0.29022 7.39005 1.31276 9.16116 0.0 0.0 bz}xy |Rh0U" {mark 1.20575 -4.5 0.20996 -2.85585 -0.1655 -0.97946 -0.34877 0.52795 0.0 1.0 bz}xy]" {mark -0.34877 0.52795 -0.53204 2.03537 -0.52313 3.17381 -0.31757 4.51248 0.0 0.53932 bz}xyU" {mark -0.31757 4.51248 -0.112 5.85115 0.29022 7.39005 1.31276 9.16116 0.0 0.0 bz}xy |Rh0U" {mark 1.20575 -4.5 0.20996 -2.85585 -0.1655 -0.97946 -0.34877 0.52795 1.0 1.0 bz}xyY" {mark -0.34877 0.52795 -0.53204 2.03537 -0.52313 3.17381 -0.31757 4.51248 1.0 1.0 bz}xyY" {mark -0.31757 4.51248 -0.112 5.85115 0.29022 7.39005 1.31276 9.16116 0.72136 1.0 bz}xy |Rh0U" {mark 1.20575 -4.5 0.20996 -2.85585 -0.1655 -0.97946 -0.34877 0.52795 1.0 1.0 bz}xyY" {mark -0.34877 0.52795 -0.53204 2.03537 -0.52313 3.17381 -0.31757 4.51248 1.0 1.0 bz}xyU" {mark -0.31757 4.51248 -0.112 5.85115 0.29022 7.39005 1.31276 9.16116 1.0 1.0 bz}xy |Rh0G" {mark -2.7774 2.07664 -10.48563 -11.25 4.90967 -11.23799 0.0 1.0 q}xy |Rh0_" {mark 13.09033 -11.23799 11.04517 -11.23799 9.51129 -10.81688 8.24916 -10.32558 0.0 0.0 bz}xyY" {mark 8.24916 -10.32558 6.98703 -9.83424 5.99664 -9.27275 4.78282 -8.3603 0.0 0.0 bz}xyQ" {mark 4.78282 -8.3603 3.569 -7.44788 2.13173 -6.1845 1.20575 -4.5 0.0 0.0 bz}xy |Rh0_" {mark 13.09033 -11.23799 11.04517 -11.23799 9.51129 -10.81688 8.24916 -10.32558 0.0 1.0 bz}xyY" {mark 8.24916 -10.32558 6.98703 -9.83424 5.99664 -9.27275 4.78282 -8.3603 0.0 1.0 bz}xyQ" {mark 4.78282 -8.3603 3.569 -7.44788 2.13173 -6.1845 1.20575 -4.5 0.0 1.0 bz}xy |Rh0_" {mark 13.09033 -11.23799 11.04517 -11.23799 9.51129 -10.81688 8.24916 -10.32558 1.0 1.0 bz}xyY" {mark 8.24916 -10.32558 6.98703 -9.83424 5.99664 -9.27275 4.78282 -8.3603 1.0 1.0 bz}xyQ" {mark 4.78282 -8.3603 3.569 -7.44788 2.13173 -6.1845 1.20575 -4.5 1.0 1.0 bz}xy |Rh0W" {mark 16.79425 -4.5 15.86827 -6.1845 14.43102 -7.44788 13.2172 -8.36032 0.0 0.0 bz}xy\" {mark 13.2172 -8.36032 12.00336 -9.27275 11.01297 -9.83426 9.75084 -10.32558 0.0 0.0 bz}xy]" {mark 9.75084 -10.32558 8.48871 -10.81688 6.95483 -11.23799 4.90967 -11.23799 0.0 0.0 bz}xy |Rh0W" {mark 16.79425 -4.5 15.86827 -6.1845 14.43102 -7.44788 13.2172 -8.36032 0.0 1.0 bz}xy_" {mark 13.2172 -8.36032 12.00336 -9.27275 11.01297 -9.83426 9.75084 -10.32558 0.0 0.4822 bz}xy]" {mark 9.75084 -10.32558 8.48871 -10.81688 6.95483 -11.23799 4.90967 -11.23799 0.0 0.0 bz}xy |Rh0W" {mark 16.79425 -4.5 15.86827 -6.1845 14.43102 -7.44788 13.2172 -8.36032 1.0 1.0 bz}xy\" {mark 13.2172 -8.36032 12.00336 -9.27275 11.01297 -9.83426 9.75084 -10.32558 1.0 1.0 bz}xya" {mark 9.75084 -10.32558 8.48871 -10.81688 6.95483 -11.23799 4.90967 -11.23799 0.71078 1.0 bz}xy |Rh0W" {mark 16.79425 -4.5 15.86827 -6.1845 14.43102 -7.44788 13.2172 -8.36032 1.0 1.0 bz}xy\" {mark 13.2172 -8.36032 12.00336 -9.27275 11.01297 -9.83426 9.75084 -10.32558 1.0 1.0 bz}xy]" {mark 9.75084 -10.32558 8.48871 -10.81688 6.95483 -11.23799 4.90967 -11.23799 1.0 1.0 bz}xy |Rh0G" {mark 13.09033 -11.23799 28.48563 -11.25 20.7774 2.07664 0.0 1.0 q}xyeps: SDict begin xyc end |Rh0W" {mark 16.68724 9.16116 17.70978 7.39005 18.112 5.85115 18.31757 4.51248 0.0 0.0 bz}xyX" {mark 18.31757 4.51248 18.52312 3.1738 18.53204 2.03537 18.34877 0.52795 0.0 0.0 bz}xyW" {mark 18.34877 0.52795 18.1655 -0.97946 17.79004 -2.85585 16.79425 -4.5 0.0 0.0 bz}xy |Rh0W" {mark 16.68724 9.16116 17.70978 7.39005 18.112 5.85115 18.31757 4.51248 0.0 1.0 bz}xyX" {mark 18.31757 4.51248 18.52312 3.1738 18.53204 2.03537 18.34877 0.52795 0.0 1.0 bz}xyW" {mark 18.34877 0.52795 18.1655 -0.97946 17.79004 -2.85585 16.79425 -4.5 0.0 1.0 bz}xy |Rh0W" {mark 16.68724 9.16116 17.70978 7.39005 18.112 5.85115 18.31757 4.51248 1.0 1.0 bz}xyX" {mark 18.31757 4.51248 18.52312 3.1738 18.53204 2.03537 18.34877 0.52795 1.0 1.0 bz}xyW" {mark 18.34877 0.52795 18.1655 -0.97946 17.79004 -2.85585 16.79425 -4.5 1.0 1.0 bz}xy |Rh0O" {mark 9.0 9.0 10.9218 9.04028 12.73454 8.42725 14.13165 7.83224 0.0 0.0 bz}xyX" {mark 14.13165 7.83224 15.52875 7.23724 16.51021 6.6603 17.56674 5.81293 0.0 0.0 bz}xyX" {mark 17.56674 5.81293 18.62328 4.96556 19.75487 3.84776 20.7774 2.07664 0.0 0.0 bz}xy |Rh0O" {mark 9.0 9.0 10.9218 9.04028 12.73454 8.42725 14.13165 7.83224 0.0 1.0 bz}xy\" {mark 14.13165 7.83224 15.52875 7.23724 16.51021 6.6603 17.56674 5.81293 0.0 0.39636 bz}xyX" {mark 17.56674 5.81293 18.62328 4.96556 19.75487 3.84776 20.7774 2.07664 0.0 0.0 bz}xy |Rh0O" {mark 9.0 9.0 10.9218 9.04028 12.73454 8.42725 14.13165 7.83224 1.0 1.0 bz}xyX" {mark 14.13165 7.83224 15.52875 7.23724 16.51021 6.6603 17.56674 5.81293 1.0 1.0 bz}xy\" {mark 17.56674 5.81293 18.62328 4.96556 19.75487 3.84776 20.7774 2.07664 0.84789 1.0 bz}xy |Rh0O" {mark 9.0 9.0 10.9218 9.04028 12.73454 8.42725 14.13165 7.83224 1.0 1.0 bz}xyX" {mark 14.13165 7.83224 15.52875 7.23724 16.51021 6.6603 17.56674 5.81293 1.0 1.0 bz}xyX" {mark 17.56674 5.81293 18.62328 4.96556 19.75487 3.84776 20.7774 2.07664 1.0 1.0 bz}xy |Rh0[" {mark 16.68724 9.16116 13.99667 13.82983 12.45926 14.83022 11.04994 15.3304 0.0 0.0 bz}xyX" {mark 11.04994 15.3304 9.64061 15.83058 8.35939 15.83058 6.95007 15.3304 0.0 0.0 bz}xyW" {mark 6.95007 15.3304 5.54076 14.83022 4.00333 13.82983 1.31276 9.16116 0.0 0.0 bz}xy |Rh0[" {mark 16.68724 9.16116 13.99667 13.82983 12.45926 14.83022 11.04994 15.3304 0.0 1.0 bz}xyX" {mark 11.04994 15.3304 9.64061 15.83058 8.35939 15.83058 6.95007 15.3304 0.0 1.0 bz}xyW" {mark 6.95007 15.3304 5.54076 14.83022 4.00333 13.82983 1.31276 9.16116 0.0 1.0 bz}xy |Rh0[" {mark 16.68724 9.16116 13.99667 13.82983 12.45926 14.83022 11.04994 15.3304 1.0 1.0 bz}xyX" {mark 11.04994 15.3304 9.64061 15.83058 8.35939 15.83058 6.95007 15.3304 1.0 1.0 bz}xyW" {mark 6.95007 15.3304 5.54076 14.83022 4.00333 13.82983 1.31276 9.16116 1.0 1.0 bz}xy |Rh0W" {mark -2.7774 2.07664 -1.75487 3.84776 -0.62328 4.96556 0.43326 5.81293 0.0 0.0 bz}xyT" {mark 0.43326 5.81293 1.48979 6.6603 2.47125 7.23724 3.86836 7.83224 0.0 0.0 bz}xyL" {mark 3.86836 7.83224 5.26546 8.42725 7.0782 9.04028 9.0 9.0 0.0 0.0 bz}xy |Rh0W" {mark -2.7774 2.07664 -1.75487 3.84776 -0.62328 4.96556 0.43326 5.81293 0.0 1.0 bz}xyT" {mark 0.43326 5.81293 1.48979 6.6603 2.47125 7.23724 3.86836 7.83224 0.0 1.0 bz}xyL" {mark 3.86836 7.83224 5.26546 8.42725 7.0782 9.04028 9.0 9.0 0.0 1.0 bz}xy |Rh0W" {mark -2.7774 2.07664 -1.75487 3.84776 -0.62328 4.96556 0.43326 5.81293 1.0 1.0 bz}xyT" {mark 0.43326 5.81293 1.48979 6.6603 2.47125 7.23724 3.86836 7.83224 1.0 1.0 bz}xyL" {mark 3.86836 7.83224 5.26546 8.42725 7.0782 9.04028 9.0 9.0 1.0 1.0 bz}xy |Rh0U" {mark 1.20575 -4.5 0.20996 -2.85585 -0.1655 -0.97946 -0.34877 0.52795 0.0 0.0 bz}xyY" {mark -0.34877 0.52795 -0.53204 2.03537 -0.52313 3.17381 -0.31757 4.51248 0.0 0.0 bz}xyU" {mark -0.31757 4.51248 -0.112 5.85115 0.29022 7.39005 1.31276 9.16116 0.0 0.0 bz}xy |Rh0U" {mark 1.20575 -4.5 0.20996 -2.85585 -0.1655 -0.97946 -0.34877 0.52795 0.0 1.0 bz}xy]" {mark -0.34877 0.52795 -0.53204 2.03537 -0.52313 3.17381 -0.31757 4.51248 0.0 0.53932 bz}xyU" {mark -0.31757 4.51248 -0.112 5.85115 0.29022 7.39005 1.31276 9.16116 0.0 0.0 bz}xy |Rh0U" {mark 1.20575 -4.5 0.20996 -2.85585 -0.1655 -0.97946 -0.34877 0.52795 1.0 1.0 bz}xyY" {mark -0.34877 0.52795 -0.53204 2.03537 -0.52313 3.17381 -0.31757 4.51248 1.0 1.0 bz}xyY" {mark -0.31757 4.51248 -0.112 5.85115 0.29022 7.39005 1.31276 9.16116 0.72136 1.0 bz}xy |Rh0U" {mark 1.20575 -4.5 0.20996 -2.85585 -0.1655 -0.97946 -0.34877 0.52795 1.0 1.0 bz}xyY" {mark -0.34877 0.52795 -0.53204 2.03537 -0.52313 3.17381 -0.31757 4.51248 1.0 1.0 bz}xyU" {mark -0.31757 4.51248 -0.112 5.85115 0.29022 7.39005 1.31276 9.16116 1.0 1.0 bz}xy |Rh0X" {mark -2.7774 2.07664 -6.24608 -3.9203 -5.95836 -5.08565 -5.4942 -6.2231 0.0 0.0 bz}xy[" {mark -5.4942 -6.2231 -5.03004 -7.36055 -4.38945 -8.47011 -3.63647 -9.44083 0.0 0.0 bz}xy^" {mark -3.63647 -9.44083 -2.88351 -10.41153 -2.01816 -11.2434 4.90967 -11.23799 0.0 0.0 bz}xy |Rh0X" {mark -2.7774 2.07664 -6.24608 -3.9203 -5.95836 -5.08565 -5.4942 -6.2231 0.0 1.0 bz}xy[" {mark -5.4942 -6.2231 -5.03004 -7.36055 -4.38945 -8.47011 -3.63647 -9.44083 0.0 1.0 bz}xy^" {mark -3.63647 -9.44083 -2.88351 -10.41153 -2.01816 -11.2434 4.90967 -11.23799 0.0 1.0 bz}xy |Rh0X" {mark -2.7774 2.07664 -6.24608 -3.9203 -5.95836 -5.08565 -5.4942 -6.2231 1.0 1.0 bz}xy[" {mark -5.4942 -6.2231 -5.03004 -7.36055 -4.38945 -8.47011 -3.63647 -9.44083 1.0 1.0 bz}xy^" {mark -3.63647 -9.44083 -2.88351 -10.41153 -2.01816 -11.2434 4.90967 -11.23799 1.0 1.0 bz}xy |Rh0_" {mark 13.09033 -11.23799 11.04517 -11.23799 9.51129 -10.81688 8.24916 -10.32558 0.0 0.0 bz}xyY" {mark 8.24916 -10.32558 6.98703 -9.83424 5.99664 -9.27275 4.78282 -8.3603 0.0 0.0 bz}xyQ" {mark 4.78282 -8.3603 3.569 -7.44788 2.13173 -6.1845 1.20575 -4.5 0.0 0.0 bz}xy |Rh0_" {mark 13.09033 -11.23799 11.04517 -11.23799 9.51129 -10.81688 8.24916 -10.32558 0.0 1.0 bz}xyY" {mark 8.24916 -10.32558 6.98703 -9.83424 5.99664 -9.27275 4.78282 -8.3603 0.0 1.0 bz}xyQ" {mark 4.78282 -8.3603 3.569 -7.44788 2.13173 -6.1845 1.20575 -4.5 0.0 1.0 bz}xy |Rh0_" {mark 13.09033 -11.23799 11.04517 -11.23799 9.51129 -10.81688 8.24916 -10.32558 1.0 1.0 bz}xyY" {mark 8.24916 -10.32558 6.98703 -9.83424 5.99664 -9.27275 4.78282 -8.3603 1.0 1.0 bz}xyQ" {mark 4.78282 -8.3603 3.569 -7.44788 2.13173 -6.1845 1.20575 -4.5 1.0 1.0 bz}xy |Rh0W" {mark 16.79425 -4.5 15.86827 -6.1845 14.43102 -7.44788 13.2172 -8.36032 0.0 0.0 bz}xy\" {mark 13.2172 -8.36032 12.00336 -9.27275 11.01297 -9.83426 9.75084 -10.32558 0.0 0.0 bz}xy]" {mark 9.75084 -10.32558 8.48871 -10.81688 6.95483 -11.23799 4.90967 -11.23799 0.0 0.0 bz}xy |Rh0W" {mark 16.79425 -4.5 15.86827 -6.1845 14.43102 -7.44788 13.2172 -8.36032 0.0 1.0 bz}xy_" {mark 13.2172 -8.36032 12.00336 -9.27275 11.01297 -9.83426 9.75084 -10.32558 0.0 0.4822 bz}xy]" {mark 9.75084 -10.32558 8.48871 -10.81688 6.95483 -11.23799 4.90967 -11.23799 0.0 0.0 bz}xy |Rh0W" {mark 16.79425 -4.5 15.86827 -6.1845 14.43102 -7.44788 13.2172 -8.36032 1.0 1.0 bz}xy\" {mark 13.2172 -8.36032 12.00336 -9.27275 11.01297 -9.83426 9.75084 -10.32558 1.0 1.0 bz}xya" {mark 9.75084 -10.32558 8.48871 -10.81688 6.95483 -11.23799 4.90967 -11.23799 0.71078 1.0 bz}xy |Rh0W" {mark 16.79425 -4.5 15.86827 -6.1845 14.43102 -7.44788 13.2172 -8.36032 1.0 1.0 bz}xy\" {mark 13.2172 -8.36032 12.00336 -9.27275 11.01297 -9.83426 9.75084 -10.32558 1.0 1.0 bz}xy]" {mark 9.75084 -10.32558 8.48871 -10.81688 6.95483 -11.23799 4.90967 -11.23799 1.0 1.0 bz}xy |Rh0`" {mark 13.09033 -11.23799 16.93915 -11.24098 19.34401 -10.41032 20.86673 -9.44022 0.0 0.0 bz}xy\" {mark 20.86673 -9.44022 22.38945 -8.47011 23.03004 -7.36055 23.1088 -5.55678 0.0 0.0 bz}xyV" {mark 23.1088 -5.55678 23.18755 -3.753 22.70445 -1.255 20.7774 2.07664 0.0 0.0 bz}xy |Rh0`" {mark 13.09033 -11.23799 16.93915 -11.24098 19.34401 -10.41032 20.86673 -9.44022 0.0 1.0 bz}xy\" {mark 20.86673 -9.44022 22.38945 -8.47011 23.03004 -7.36055 23.1088 -5.55678 0.0 1.0 bz}xyV" {mark 23.1088 -5.55678 23.18755 -3.753 22.70445 -1.255 20.7774 2.07664 0.0 1.0 bz}xy |Rh0`" {mark 13.09033 -11.23799 16.93915 -11.24098 19.34401 -10.41032 20.86673 -9.44022 1.0 1.0 bz}xy\" {mark 20.86673 -9.44022 22.38945 -8.47011 23.03004 -7.36055 23.1088 -5.55678 1.0 1.0 bz}xyV" {mark 23.1088 -5.55678 23.18755 -3.753 22.70445 -1.255 20.7774 2.07664 1.0 1.0 bz}xyp>ps: SDict begin xyc endh0X" {mark 17.99866 8.99866 18.82208 7.57243 19.0179 6.25926 19.06561 5.04022 0.0 0.0 bz}xyX" {mark 19.06561 5.04022 19.11333 3.82118 19.01295 2.69629 18.71431 1.1031 0.0 0.0 bz}xyV" {mark 18.71431 1.1031 18.41568 -0.4901 17.91878 -2.55157 16.79425 -4.5 0.0 0.0 bz}xyh0X" {mark 17.99866 8.99866 18.82208 7.57243 19.0179 6.25926 19.06561 5.04022 0.0 1.0 bz}xyX" {mark 19.06561 5.04022 19.11333 3.82118 19.01295 2.69629 18.71431 1.1031 0.0 1.0 bz}xyV" {mark 18.71431 1.1031 18.41568 -0.4901 17.91878 -2.55157 16.79425 -4.5 0.0 1.0 bz}xyh0X" {mark 17.99866 8.99866 18.82208 7.57243 19.0179 6.25926 19.06561 5.04022 1.0 1.0 bz}xyX" {mark 19.06561 5.04022 19.11333 3.82118 19.01295 2.69629 18.71431 1.1031 1.0 1.0 bz}xyV" {mark 18.71431 1.1031 18.41568 -0.4901 17.91878 -2.55157 16.79425 -4.5 1.0 1.0 bz}xyh0O" {mark 9.0 9.0 11.24966 8.99966 13.28342 8.39926 14.81248 7.8613 0.0 0.0 bz}xyW" {mark 14.81248 7.8613 16.34152 7.32333 17.3659 6.84781 18.39777 6.19696 0.0 0.0 bz}xyY" {mark 18.39777 6.19696 19.42963 5.54613 20.46896 4.71996 21.29239 3.29373 0.0 0.0 bz}xyh0O" {mark 9.0 9.0 11.24966 8.99966 13.28342 8.39926 14.81248 7.8613 0.0 1.0 bz}xy[" {mark 14.81248 7.8613 16.34152 7.32333 17.3659 6.84781 18.39777 6.19696 0.0 0.40039 bz}xyY" {mark 18.39777 6.19696 19.42963 5.54613 20.46896 4.71996 21.29239 3.29373 0.0 0.0 bz}xyh0O" {mark 9.0 9.0 11.24966 8.99966 13.28342 8.39926 14.81248 7.8613 1.0 1.0 bz}xyW" {mark 14.81248 7.8613 16.34152 7.32333 17.3659 6.84781 18.39777 6.19696 1.0 1.0 bz}xy]" {mark 18.39777 6.19696 19.42963 5.54613 20.46896 4.71996 21.29239 3.29373 0.98988 1.0 bz}xyh0O" {mark 9.0 9.0 11.24966 8.99966 13.28342 8.39926 14.81248 7.8613 1.0 1.0 bz}xyW" {mark 14.81248 7.8613 16.34152 7.32333 17.3659 6.84781 18.39777 6.19696 1.0 1.0 bz}xyY" {mark 18.39777 6.19696 19.42963 5.54613 20.46896 4.71996 21.29239 3.29373 1.0 1.0 bz}xyh0B" {mark 0.00134 8.99866 9.0 19.79715 17.99866 8.99866 0.0 0.0 q}xyh0B" {mark 0.00134 8.99866 9.0 19.79715 17.99866 8.99866 0.0 1.0 q}xyh0B" {mark 0.00134 8.99866 9.0 19.79715 17.99866 8.99866 1.0 1.0 q}xyh0Y" {mark -3.29239 3.29373 -2.46896 4.71996 -1.42963 5.54613 -0.39777 6.19698 0.0 0.0 bz}xyT" {mark -0.39777 6.19698 0.6341 6.84781 1.65848 7.32333 3.18755 7.8613 0.0 0.0 bz}xyK" {mark 3.18755 7.8613 4.7166 8.39926 6.75034 8.99966 9.0 9.0 0.0 0.0 bz}xyh0Y" {mark -3.29239 3.29373 -2.46896 4.71996 -1.42963 5.54613 -0.39777 6.19698 0.0 1.0 bz}xyT" {mark -0.39777 6.19698 0.6341 6.84781 1.65848 7.32333 3.18755 7.8613 0.0 1.0 bz}xyK" {mark 3.18755 7.8613 4.7166 8.39926 6.75034 8.99966 9.0 9.0 0.0 1.0 bz}xyh0Y" {mark -3.29239 3.29373 -2.46896 4.71996 -1.42963 5.54613 -0.39777 6.19698 1.0 1.0 bz}xyT" {mark -0.39777 6.19698 0.6341 6.84781 1.65848 7.32333 3.18755 7.8613 1.0 1.0 bz}xyK" {mark 3.18755 7.8613 4.7166 8.39926 6.75034 8.99966 9.0 9.0 1.0 1.0 bz}xyh0U" {mark 1.20575 -4.5 0.08122 -2.55157 -0.41568 -0.4901 -0.71432 1.10309 0.0 0.0 bz}xyY" {mark -0.71432 1.10309 -1.01295 2.69627 -1.11333 3.82118 -1.06561 5.04022 0.0 0.0 bz}xyW" {mark -1.06561 5.04022 -1.0179 6.25926 -0.82208 7.57243 0.00134 8.99866 0.0 0.0 bz}xyh0U" {mark 1.20575 -4.5 0.08122 -2.55157 -0.41568 -0.4901 -0.71432 1.10309 0.0 1.0 bz}xy[" {mark -0.71432 1.10309 -1.01295 2.69627 -1.11333 3.82118 -1.06561 5.04022 0.0 0.494 bz}xyW" {mark -1.06561 5.04022 -1.0179 6.25926 -0.82208 7.57243 0.00134 8.99866 0.0 0.0 bz}xyh0U" {mark 1.20575 -4.5 0.08122 -2.55157 -0.41568 -0.4901 -0.71432 1.10309 1.0 1.0 bz}xyY" {mark -0.71432 1.10309 -1.01295 2.69627 -1.11333 3.82118 -1.06561 5.04022 1.0 1.0 bz}xy[" {mark -1.06561 5.04022 -1.0179 6.25926 -0.82208 7.57243 0.00134 8.99866 0.80788 1.0 bz}xyh0U" {mark 1.20575 -4.5 0.08122 -2.55157 -0.41568 -0.4901 -0.71432 1.10309 1.0 1.0 bz}xyY" {mark -0.71432 1.10309 -1.01295 2.69627 -1.11333 3.82118 -1.06561 5.04022 1.0 1.0 bz}xyW" {mark -1.06561 5.04022 -1.0179 6.25926 -0.82208 7.57243 0.00134 8.99866 1.0 1.0 bz}xyh0I" {mark 5.70627 -12.29239 -9.7033 -10.79836 -3.29239 3.29373 0.0 0.0 q}xyh0I" {mark 5.70627 -12.29239 -9.7033 -10.79836 -3.29239 3.29373 0.0 1.0 q}xyh0I" {mark 5.70627 -12.29239 -9.7033 -10.79836 -3.29239 3.29373 1.0 1.0 q}xyh0_" {mark 12.29373 -12.29239 10.64687 -12.29239 9.41173 -11.80537 8.33215 -11.23718 0.0 0.0 bz}xy[" {mark 8.33215 -11.23718 7.25256 -10.66898 6.32857 -10.0196 5.09814 -8.96439 0.0 0.0 bz}xyU" {mark 5.09814 -8.96439 3.86772 -7.90916 2.33087 -6.44809 1.20575 -4.5 0.0 0.0 bz}xyh0_" {mark 12.29373 -12.29239 10.64687 -12.29239 9.41173 -11.80537 8.33215 -11.23718 0.0 1.0 bz}xy[" {mark 8.33215 -11.23718 7.25256 -10.66898 6.32857 -10.0196 5.09814 -8.96439 0.0 1.0 bz}xyU" {mark 5.09814 -8.96439 3.86772 -7.90916 2.33087 -6.44809 1.20575 -4.5 0.0 1.0 bz}xyh0_" {mark 12.29373 -12.29239 10.64687 -12.29239 9.41173 -11.80537 8.33215 -11.23718 1.0 1.0 bz}xy[" {mark 8.33215 -11.23718 7.25256 -10.66898 6.32857 -10.0196 5.09814 -8.96439 1.0 1.0 bz}xyU" {mark 5.09814 -8.96439 3.86772 -7.90916 2.33087 -6.44809 1.20575 -4.5 1.0 1.0 bz}xyh0X" {mark 16.79425 -4.5 15.66913 -6.44809 14.1323 -7.90916 12.90187 -8.96439 0.0 0.0 bz}xy^" {mark 12.90187 -8.96439 11.67143 -10.0196 10.74744 -10.66898 9.66786 -11.23717 0.0 0.0 bz}xy]" {mark 9.66786 -11.23717 8.58829 -11.80537 7.35313 -12.29239 5.70627 -12.29239 0.0 0.0 bz}xyh0X" {mark 16.79425 -4.5 15.66913 -6.44809 14.1323 -7.90916 12.90187 -8.96439 0.0 1.0 bz}xya" {mark 12.90187 -8.96439 11.67143 -10.0196 10.74744 -10.66898 9.66786 -11.23717 0.0 0.3867 bz}xy]" {mark 9.66786 -11.23717 8.58829 -11.80537 7.35313 -12.29239 5.70627 -12.29239 0.0 0.0 bz}xyh0X" {mark 16.79425 -4.5 15.66913 -6.44809 14.1323 -7.90916 12.90187 -8.96439 1.0 1.0 bz}xy^" {mark 12.90187 -8.96439 11.67143 -10.0196 10.74744 -10.66898 9.66786 -11.23717 1.0 1.0 bz}xya" {mark 9.66786 -11.23717 8.58829 -11.80537 7.35313 -12.29239 5.70627 -12.29239 0.81374 1.0 bz}xyh0X" {mark 16.79425 -4.5 15.66913 -6.44809 14.1323 -7.90916 12.90187 -8.96439 1.0 1.0 bz}xy^" {mark 12.90187 -8.96439 11.67143 -10.0196 10.74744 -10.66898 9.66786 -11.23717 1.0 1.0 bz}xy]" {mark 9.66786 -11.23717 8.58829 -11.80537 7.35313 -12.29239 5.70627 -12.29239 1.0 1.0 bz}xyh0I" {mark 21.29239 3.29373 29.262 -11.69827 12.29373 -12.29239 0.0 0.0 q}xyh0I" {mark 21.29239 3.29373 29.262 -11.69827 12.29373 -12.29239 0.0 1.0 q}xyh0I" {mark 21.29239 3.29373 29.262 -11.69827 12.29373 -12.29239 1.0 1.0 q}xy'cq\def\TrefoilA{\xygraph{!{0;/r.75pc/:}K!P3"a"{~>{}}!P9"b"{~:{(1.3288,0):}~>{}}K!P3"c"{~:{(2.5,0):}~>{}}K!{\vover~{"b2"}{"b1"}{"a1"}{"a3"}}K!{"b4";"b2"**\crv{"c1"}}K!{\vover~{"b5"}{"b4"}{"a2"}{"a1"}}K!{"b7";"b5"**\crv{"c2"}}K!{\vover~{"b8"}{"b7"}{"a3"}{"a2"}}K!{"b1";"b8"**\crv{"c3"}}}}N*tj3.10.CKNOTSfANDLINKSFEAeTURE 4437??hw% \def\TrefoilB{\xygraph{!{0;/r.75pc/:}K!P3"a"{~>{}}!P9"b"{~:{(1.3288,0):}~>{}}K!P3"c"{~:{(2.5,0):}~>{}}K!{\vover~{"b2"}{"b1"}{"a1"}{"a3"}}K!{\vcap~{"c1"}{"c1"}{"b4"}{"b2"}@(+.1)}K!{\vover~{"b5"}{"b4"}{"a2"}{"a1"}}K!{\vcap~{"c2"}{"c2"}{"b7"}{"b5"}@(+.2)}K!{\vover~{"b8"}{"b7"}{"a3"}{"a2"}}K!{\vcap~{"c3"}{"c3"}{"b1"}{"b8"}}}}%\def\TrefoilC{\xygraph{!{0;/r.75pc/:}K!P3"a"{~>{}}K!P12"b"{~:{(1.414,0):}~>{}}K!{\vover~{"b2"}{"b1"}{"a1"}{"a3"}}K!{\save0;"b2"-"b5":"b5",\xcaph@(+.1)\restore}K!{\vover~{"b6"}{"b5"}{"a2"}{"a1"}}K!{\save0;"b6"-"b9":"b9",\xcaph@(+.2)\restore}K!{\vover~{"b10"}{"b9"}{"a3"}{"a2"}}K!{\save0;"b10"-"b1":"b1",\xcaph@(+.3)\restore}}}$$\TrefoilA\quad\TrefoilB\quad\TrefoilC$$v1507\xydef@\xykjoincontrol@@{.75}%1508\xydef@\xyk@joincontrol@#1{\DN@{#1}%1509K\ifx\next@\empty\edef\xykjoincontrol@@{.75}%1510K\else\dimen@=#1\p@1511 m\edef\xykjoincontrol@@{\expandafter\removePT@\the\dimen@}\fi}1512\xylet@\xykjoincontrol\empty%\xyk@joincontrol@P1514\xydef@\xykjoincontrol@(#1){\DN@{#1}%1515K\ifx\next@\empty\edef\xykjoincontrol{\xykjoincontrol@@}%1516K\else\dimen@=#1\p@1517 m\edef\xykjoincontrol{\expandafter\removePT@\the\dimen@}%1518K\fi\xyFN@\xykparsejoin@@}1520\xydef@\xykjoincontrol@i#1{\DN@{#1}%1521K\ifx\next@\empty\edef\xykjoincontrol{\xykjoincontrol@@}%1522K\else\dimen@=#1\p@1523 m\edef\xykjoincontrol{\expandafter\removePT@\the\dimen@}\fi}+:Thesefmacrosarecommontomostjoins.1529\xydef@\xykjoin@#1{%1530K\expandafter\toks@\expandafter{\expandafter#1\knotSTYLE}}1532\xydef@\xyksetjoin@{\xykcheckTIPS@1533K\xykprebreak@\xykmidbreak@\xykpostbreak@\xyknottips@}H*tj438KCHAPTERf3.CFEAeTURES??hw\cap"2joins:Thefinitialisation.3..P1545\xydef@\hcap{\begingroup\def\afterknot@{\xyhcap}% 1546K\def\xykprePLACE@{(.385)}\def\xykpostPLACE@{(.615)}%1547K\def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.25}%1548K\xyFN@\xykparsejoin@}%1549\xydef@\vcap{\begingroup\def\afterknot@{\xyvcap}%1550K\def\xykprePLACE@{(.385)}\def\xykpostPLACE@{(.615)}%1551K\def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.25}%1552K\xyFN@\xykparsejoin@}%1553\xydef@\xcapv{\begingroup\def\afterknot@{\xyxcapv}%1554K\def\xykprePLACE@{(.2)}\def\xykpostPLACE@{(.8)}%1555K\def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.5}%1556K\xyFN@\xykparsejoin@}%1557\xydef@\xcaph{\begingroup\def\afterknot@{\xyxcaph}%1558K\def\xykprePLACE@{(.2)}\def\xykpostPLACE@{(.8)}%1559K\def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.5}%1560K\xyFN@\xykparsejoin@}%+Thefin!terface.3..1566\xydef@\xyvcap{\xykjoin@\xykcapv\xyksetjoin@\xykhobject@{}}1567\xydef@\xyhcap{\xykjoin@\xykcaph\xyksetjoin@\xykvobject@{}}1568\xydef@\xyxcapv{\xykjoin@\xykxcapv\xyksetjoin@\xykvobject@{+(0,-1)}}1569\xydef@\xyxcaph{\xykjoin@\xykxcaph\xyksetjoin@\xykhobject@{+(1,0)}}+Thefdra!wingcoMde.3..1575{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7{\save,1576K"_>",{\xyksaveEdgec},{\xykz_\ar#1@'{"^>"**{}?(\xykjoincontrol)@+1577K,?-(.25,0)@+,"_<";"^<"**{}?+(.25,0)@+,?(\xykjoincontrol)@+}1578K"_<"#3#4#5#6},\restore\POS#7}}1579\xylet@\xykcapv=\next1581{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7{\save,1582K"_<",{\xyksaveEdgec},{\xykz_\ar#1@'{"_>"**{}?(\xykjoincontrol)@+,1583 m?+(0,.25)@+,"^<";"^>"**{}?-(0,.25)@+,?(\xykjoincontrol)@+}1584K"^<"#3#4#5#6}1585K\restore\POS#7}}1586\xylet@\xykcaph=\next1588{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7{\save,1589K"^>";"_>"**{}?="^_","^<";"_<"**{}?;"^_",**{}?(\xykjoincontrol)="^_",1590K"_<",{\xyksaveEdgec},{\xykz_\ar#1@'{"^_"@+}1591 m"^<"#3#4#5#6},\restore\POS#7}}1592\xylet@\xykxcapv=\next1594{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7{\save,1595K"^<";"^>"**{}?="^_","_<";"_>"**{}?;"^_",**{}?(\xykjoincontrol)="^_",1596K"_>",{\xyksaveEdgec},{\xykz_\ar#1@'{"^_"@+}1597 m"_<"#3#4#5#6},\restore\POS#7}}1598\xylet@\xykxcaph=\nextQݠ*tj3.10.CKNOTSfANDLINKSFEAeTURE 4439??hw\loYop"2joins:7Thefinitialisationandin!terface.3..P1608\xydef@\hloop{\begingroup\def\afterknot@{\xyhloop}% 1609K\def\xykprePLACE@{(.07)}\def\xykpostPLACE@{(.93)}%1610K\def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.75}%1611K\xyFN@\xykparsejoin@}%1612\xydef@\vloop{\begingroup\def\afterknot@{\xyvloop}%1613K\def\xykprePLACE@{(.07)}\def\xykpostPLACE@{(.93)}%1614K\def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.75}%1615K\xyFN@\xykparsejoin@}%1617\xydef@\xyvloop{\xykjoin@\xykloopv\xyksetjoin@\xykhobject@{}}1618\xydef@\xyhloop{\xykjoin@\xyklooph\xyksetjoin@\xykvobject@{}}𷍑Thefdra!wingcoMde.3..1624{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7{\save,1625K"_>",{\xykz_\ar#1@'{"^>"**{}?(\xykjoincontrol)@+,?(1.25)-(.25,0)@+,1626 m"_<";"^<"**{}?(1.25)+(.25,0)@+,?(\xykjoincontrol)@+}"_<"#3#4#5#6}1627K\restore\POS#7}}1628\xylet@\xykloopv=\next1630{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7{\save,1631K"_<",{\xykz_\ar#1@'{"_>"**{}?(\xykjoincontrol)@+,?(1.25)+(0,.25)@+,1632 m"^<";"^>"**{}?(1.25)+(0,-.25)@+,?(\xykjoincontrol)@+}"^<"#3#4#5#6}1633K\restore\POS#7}}1634\xylet@\xyklooph=\next%6m\bYend"2joins:7Thefinitialisation.3..1644\xydef@\zbendh{\begingroup\def\afterknot@{\xyzbendh}%1645K\def\xykprePLACE@{(.25)}\def\xykpostPLACE@{(.75)}%1646K\def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{\xykjoincontrol@@}%1647K\xyFN@\xykparsejoin@}%1648\xydef@\sbendv{\begingroup\def\afterknot@{\xysbendv}%1649K\def\xykprePLACE@{(.25)}\def\xykpostPLACE@{(.75)}%1650K\def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{\xykjoincontrol@@}%1651K\xyFN@\xykparsejoin@}%1652\xydef@\sbendh{\begingroup\def\afterknot@{\xysbendh}%1653K\def\xykprePLACE@{(.25)}\def\xykpostPLACE@{(.75)}%1654K\def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{\xykjoincontrol@@}%1655K\xyFN@\xykparsejoin@}%1656\xydef@\zbendv{\begingroup\def\afterknot@{\xyzbendv}%1657K\def\xykprePLACE@{(.25)}\def\xykpostPLACE@{(.75)}%1658K\def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{\xykjoincontrol@@}%1659K\xyFN@\xykparsejoin@}%v1662\xydef@\xbendr{\begingroup\def\afterknot@{\xyxbendr}%1663K\def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.75)}%1664K\def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.5}%]*tj440KCHAPTERf3.CFEAeTURES??hw1665K\xyFN@\xykparsejoin@}% 1666\xydef@\xbendl{\begingroup\def\afterknot@{\xyxbendl}%1667K\def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.75)}%1668K\def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.5}%1669K\xyFN@\xykparsejoin@}%1670\xydef@\xbendu{\begingroup\def\afterknot@{\xyxbendu}%1671K\def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.75)}%1672K\def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.5}%1673K\xyFN@\xykparsejoin@}%1674\xydef@\xbendd{\begingroup\def\afterknot@{\xyxbendd}%1675K\def\xykprePLACE@{(.15)}\def\xykpostPLACE@{(.75)}%1676K\def\xykmidPLACE@{(.5)}\edef\xykjoincontrol{.5}%1677K\xyFN@\xykparsejoin@}%R?Thefin!terface.3..P1684\xydef@\xyzbendh{\xykjoin@\xykzbendh\xyksetjoin@\xykhvobject@{+(1,-1)}}1685\xydef@\xysbendv{\xykjoin@\xyksbendv\xyksetjoin@\xykhvobject@{+(1,-1)}}1686\xydef@\xysbendh{\xykjoin@\xyksbendh\xyksetjoin@\xykhuobject@{+(1,1)}}1687\xydef@\xyzbendv{\xykjoin@\xykzbendv\xyksetjoin@\xykhuobject@{+(1,1)}}1689\xydef@\xyxbendr{\xykjoin@\xykxbendr\xyksetjoin@\xykhvobject@{+(1,-1)}}1690\xydef@\xyxbendl{\xykjoin@\xykxbendl\xyksetjoin@\xykhvobject@{+(0,-1)}}1691\xydef@\xyxbendu{\xykjoin@\xykxbendu\xyksetjoin@\xykhvobject@{+(1,0)}}1692\xydef@\xyxbendd{\xykjoin@\xykxbendd\xyksetjoin@\xykhvobject@{+(1,-1)}}R?Thefimplemen!tation.3..1699{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7{\save,1700K"^<",{\xyksaveEdgec},1701K{\xykz^\ar#1@'{"^>"**{}?(\xykjoincontrol)@+,1702 m"_>";"_<"**{}?(\xykjoincontrol)@+}"_>"#3#4#5#6}%1703K\restore\POS#7}}1704\xylet@\xykzbendh=\next1706{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7{\save,1707K"^<",{\xyksaveEdgec},1708K{\xykz_\ar#1@'{"_<"**{}?(\xykjoincontrol)@+,1709 m"_>";"^>"**{}?(\xykjoincontrol)@+}"_>"#3#4#5#6}%1710K\restore\POS#7}}1711\xylet@\xyksbendv=\next1713{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7{\save,1714K"_<",{\xyksaveEdgec},1715K{\xykz_\ar#1@'{"_>"**{}?(\xykjoincontrol)@+,1716 m"^>";"^<"**{}?(\xykjoincontrol)@+}"^>"#3#4#5#6}%1717K\restore\POS#7}}1718\xylet@\xyksbendh=\next1720{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7{\save,1721K"_<",{\xyksaveEdgec},1722K{\xykz^\ar#1@'{"^<"**{}?(\xykjoincontrol)@+,1723 m"^>";"_>"**{}?(\xykjoincontrol)@+}"^>"#3#4#5#6}%1724K\restore\POS#7}}1725\xylet@\xykzbendv=\nextiW*tj3.10.CKNOTSfANDLINKSFEAeTURE 4441??hw1728{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7{\save, 1729K"^<"-(0,.5),{\xyksaveEdgec},1730K{\xykz_\ar#1@'{"_<";"_>"**{}?(\xykjoincontrol)@+,}"_>"#3#4#5#6}%1731K\restore\POS#7}}1732\xylet@\xykxbendr=\nextP1734{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7{\save,1735K"^>"-(0,.5),{\xyksaveEdgec},1736K{\xykz^\ar#1@'{"_>";"_<"**{}?(\xykjoincontrol)@+,}"_<"#3#4#5#6}%1737K\restore\POS#7}}1738\xylet@\xykxbendl=\next1740{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7{\save,1741K"_<"+(.5,0),{\xyksaveEdgec},1742K{\xykz_\ar#1@'{"_>";"^>"**{}?(\xykjoincontrol)@+,}"^>"#3#4#5#6}%1743K\restore\POS#7}}1744\xylet@\xykxbendu=\next1746{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7{\save,1747K"^<"+(.5,0),{\xyksaveEdgec},1748K{\xykz^\ar#1@'{"^>";"_>"**{}?(\xykjoincontrol)@+,}"_>"#3#4#5#6}%1749K\restore\POS#7}}1750\xylet@\xykxbendd=\next'荑Changing2thestring-sttyle+ItPisnotnecessarytousesolidcurv!es;m4anyPstyleavdDailabletocurvesandarrowscanbMechosenusing.3..4ffd ؍.%0\knotstyle{ma~hc!hari}ôusef\dir{ dhc!hari}.%0\knotstyles{s!(hc!hari}{ Thchari}ôt!wofstyles.%0\knotSTYLE{ma~hcoMdei}ôusefhcoMdeiffdGލIneac!hcasethenewstyleappliestoalFlsubsequentknotpieces, exceptthatthetwostylesapplyonly;tocrossings.+\Thelattercaseallo!wsuseofobjecthmoMdi eris.ThehcoMdeiconsistsoft!wo;groups{..}{..}/Ї,Ueac!hcontainingharrowiforms,Uasin3.2andnotes3.3m,3.3r.זOnlythe rstharro!wiformisusedwithhjoiniswhereasthet!woformsareusedrespMectiv!elywiththetwostringsofahcrossingiinftheorderthattheyaredra!wn.1780{\xyuncatcodes\gdef\next{{@{-}}{@{-}}}}1781\xylet@\knotSTYLE=\next1783{\xyuncatcodes\gdef\next#1{\def\knotSTYLE{{@{#1}}{@{#1}}}}}1784\xylet@\knotstyle=\next1786{\xyuncatcodes\gdef\next#1#2{\def\knotSTYLE{{@{#1}}{@{#2}}}}}1787\xylet@\knotstyles=\next1789{\xyuncatcodes\gdef\next#1{\def\knotSTYLE{#1}}}1790\xylet@\KNOTstyle=\next"Initialisation:defaultfvdDaluesforthemethoMds.1798\xydef@\knotholesize@#1{\def\xykholesize{#1}}1799\xydef@\xykholesize{5pt}u*tj442KCHAPTERf3.CFEAeTURES??hw1800\xylet@\knotholesize=\knotholesize@ 1801\xylet@\holesize=\knotholesize@P1803\xydef@\knottips#1{\def\xyknotTIPS@{#1}}1804\xydef@\xyknotTIPS@{FF}1805\xydef@\xyknotTIPS@@{}1807\xydef@\xykSCALE@@{}1809%\xydef@\xyknotbreak@@{}%1810\xydef@\xykprebreak@@{}%1811\xydef@\xykpostbreak@@{}%1812\xydef@\xykmidbreak@@{}%1814\xydef@\xykprePLACE@{(.25)}%1815\xydef@\xykpostPLACE@{(.75)}%1816\xydef@\xykmidPLACE@{}%1817\xylet@\xykPLACE@=\xykmidPLACE@v1829{\gdef\next#1#2#3#4{%\message{#1:#2:#3:#4}%1830K\save(0,0);"#2"-"#1"+"#4"-"#3":(.5,0):1831K"#3"-"#1"+"#4"-"#2"::(0,.5)::}}1832\xylet@\xykflexbase@=\next1833\xylet@\xykflexbase=\xykflexbase@1837{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8{\xykflexbase{#1}{#2}{#3}{#4}%1838%\save(0,0);"#2"-"#1"+"#4"-"#3":(.5,0):1839%"#3"-"#1"+"#4"-"#2"::(0,.5)::1840K"#1",{\ar@{#5}@'{"#1"+(0,.125)@++(.1875,.125)@+,1841K"#4"-(.1875,.25)@++(.1875,.125)@+}"#4"#6},1842K"#2",{\ar@{#5}@'{"#2"+(0,.125)@++(-.1875,.125)@+,1843K"#3"+(.1875,-.25)@++(-.1875,.125)@+}"#3"#7}%1844\restore\POS#8}}1845\xylet@\Xtwist=\nextP1847{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8{\xykflexbase{#1}{#2}{#3}{#4}%1848%\save(0,0);"#2"-"#1"+"#4"-"#3":(.5,0):1849%"#3"-"#1"+"#4"-"#2"::(0,.5)::1850K"#1",{\ar@{#5}@'{"#1"+(0,.0625)@++(.1875,.0625)@+,1851K"#3"+(.1875,-.125)@++(-.1875,.0625)@+}"#3"#6},1852K"#2",{\ar@{#5}@'{"#2"+(0,.0625)@++(-.1875,.0625)@+,1853K"#4"-(.1875,.125)@++(.1875,.0625)@+}"#4"#7}%1854\restore\POS#8}}1855\xylet@\Xuntwist=\next1862{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\xykflexbase{#1}{#2}{#3}{#4}%1863%\save(0,0);"#2"-"#1"+"#4"-"#3":(.5,0):1864%"#3"-"#1"+"#4"-"#2"::(0,.5)::1865K"#1",{\ar@{#5}@'{"#1"+(.1875,.0625)@++(.1875,.1875)@+,1866K"#4"+(-#9,-.125)@+}"#4"#6},1867K"#2",{\ar@{#5}@'{"#2"+(-.1875,.0625)@++(-.1875,.1875)@+,1868K"#3"+(#9,-.125)@+}"#3"#7}%1869\restore\POS#8}}A*tj3.10.CKNOTSfANDLINKSFEAeTURE 4443??hw1870\xylet@\Xover=\nextP1872{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7#8#9{\xykflexbase{#1}{#2}{#3}{#4}% 1873%\save(0,0);"#2"-"#1"+"#4"-"#3":(.5,0):1874%"#3"-"#1"+"#4"-"#2"::(0,.5)::1875K"#1",{\ar@{#5}@'{"#1"+(.1875,.0625)@++(.1875,.1875)@+,1876K"#2"+(-.1875,.0625)@+}"#2"#6},1877%"#3"+(#9,-.125)@+}"#3"#6},1878K"#3",{\ar@{#5}@'{"#3"+(#9,-.125)@+,"#3"+(.25,-.25)@+,1879%"#2",{\ar@{#5}@'{"#2"+(-.1875,.0625)@++(-.1875,.1875)@+,1880K"#4"+(-#9,-.125)@+}"#4"#7}%1881\restore\POS#8}}1882\xylet@\Xunover=\nextv1889{\xyuncatcodes\gdef\next#1#2#3#4#5#6#7{\xykflexbase{#1}{#2}{#3}{#4}%1890%\save(0,0);"#2"-"#1"+"#3"-"#4":(.5,0):1891%"#4"-"#1"+"#3"-"#2"::(0,.5)::1892K"#1",{\ar@{#5}@'{"#1"+(0,.125)@++(.125,.25)@+,1893K"#4"+(-.125,.375)@++(.125,-.25)@+}"#4"#6},1894\restore\POS#7}}1895\xylet@\Xcap=\next1902{\xyuncatcodes\catcode`@=111903K\gdef\next#1#2#3#4#5#6#7#8#9{\dimen@=#1\p@1904K\ifdim\dimen@=\z@\DN@{\Xunover{#2}{#3}{#4}{#5}{#8}{#6}{#7}{"#5"}}%1905K\else\ifdim\dimen@>\z@1906 m\DNii@{#6}\ifx\nextii@\empty1907 \DN@{\Xover{#2}{#3}{#4}{#5}{#8}{|(.45)\knothole}{#7}{"#5"}}%1908\else\DN@{\Xover{#2}{#3}{#4}{#5}{#8}{#6}{#7}{"#5"}}\fi1909K\else1910 m\DNii@{#7}\ifx\nextii@\empty1911\DN@{\Xover{#2}{#3}{#4}{#5}{#8}{#6}{|(.45)\knothole}{"#5"}}%1912 m\else\DN@{\Xover{#2}{#3}{#4}{#5}{#8}{#6}{#7}{"#5"}}\fi1913K\fi\fi1914K\def\tmp@{{#9}}\ifx\tmp@\empty\def\tmp@{{0}}\else\dimen@=#9\p@\fi1915K\expandafter\next@\tmp@}}1916\xylet@\XXover=\nextP1918{\xyuncatcodes\catcode`@=111919K\gdef\next#1#2#3#4#5#6#7#8{\dimen@=#1\p@1920K\ifdim\dimen@=\z@\DN@{\Xuntwist{#2}{#4}{#3}{#5}{#8}{#6}{#7}{"#5"}}%1921K\else\ifdim\dimen@>\z@1922 m\DNii@{#6}\ifx\nextii@\empty1923 \DN@{\Xtwist{#2}{#4}{#3}{#5}{#8}{|(.45)\knothole}{#7}{"#5"}}%1924\else\DN@{\Xtwist{#2}{#4}{#3}{#5}{#8}{#6}{#7}{"#5"}}\fi1925K\else1926 m\DNii@{#7}\ifx\nextii@\empty1927\DN@{\Xtwist{#2}{#4}{#3}{#5}{#8}{#6}{|(.45)\knothole}{"#5"}}%1928 m\else\DN@{\Xtwist{#2}{#4}{#3}{#5}{#8}{#6}{#7}{"#5"}}\fi1929K\fi\fi\next@}}1930\xylet@\XXtwist=\next*tj444KCHAPTERf3.CFEAeTURES??hwsimpli edfswitc!h-likeinterfaceP1941{\xyuncatcodes\catcode`@=11 1942K\gdef\next#1#2#3#4{\dimen@=#1\p@1943K\ifdim\dimen@=\z@\DN@{\xykuncrossv{#4}{#2}{#3}{+(0,-1)}}%1944K\else\ifdim\dimen@>\z@1945 m\DNii@{#2}\ifx\nextii@\empty1946 \DN@{\xyktwistv{#4}{|\knothole}{#3}{+(1,0)}}%1947\else\DN@{\xyktwistv{#4}{#2}{#3}{+(1,0)}}\fi1948K\else1949 m\DNii@{#3}\ifx\nextii@\empty1950\DN@{\xyktwistv{#4}{#2}{|\knothole}{+(0,-1)}}%1951 m\else\DN@{\xyktwistv{#4}{#2}{#3}{+(0,-1)}}\fi1952K\fi\fi\next@}}1953\xylet@\Vcross=\next1955{\xyuncatcodes\catcode`@=111956K\gdef\next#1#2#3#4{\dimen@=#1\p@1957K\ifdim\dimen@=\z@\DN@{\xykuncrossh{#4}{#2}{#3}{+(0,-1)}}%1958K\else\ifdim\dimen@<\z@1959 m\DNii@{#2}\ifx\nextii@\empty1960 \DN@{\xyktwisth{#4}{|\knothole}{#3}{+(1,0)}}%1961\else\DN@{\xyktwisth{#4}{#2}{#3}{+(1,0)}}\fi1962K\else1963 m\DNii@{#3}\ifx\nextii@\empty1964\DN@{\xyktwisth{#4}{}{|\knothole}{+(1,0)}}%1965 m\else\DN@{\xyktwisth{#4}{#2}{#3}{+(1,0)}}\fi1966K\fi\fi\next@}}1967\xylet@\Hcross=\next1969{\xyuncatcodes\catcode`@=111970K\gdef\next#1#2#3{\dimen@=#1\p@\save1971K\ifdim\dimen@<\z@1972 m\DN@{\POS="@",p="@@",(0,0);(-1,0):(0,-1)::"@@";"@",}%1973K\else\DN@{}\fi1974K\next@\xykcaph{#3}{#2}\restore}}1975\xylet@\Hcap=\next1977{\xyuncatcodes\catcode`@=111978K\gdef\next#1#2#3{\dimen@=#1\p@\save1979K\ifdim\dimen@<\z@1980 m\DN@{\POS="@",p="@@",(0,0);(0,-1)::"@@";"@",}%1981K\else\DN@{}\fi1982K\next@\xykcapv{#3}{#2}\restore}}1983\xylet@\Vcap=\next$}The2end&Log1995\xyendinput1997%$Log:xyknot.doc,v$1998%Revision3.4 T1997/05/1801:13:24ross1999%Essentialbugfixes.*tj3.11.CSMAReTfPATHOPTION; L445??hw2000% 2001%Revision3.3 T1996/12/1809:20:49ross2002%nochanges2003%2004%Revision3.1 T1995/09/0520:36:33ross2005%Release!2006%2007%Revision3.0 T1995/07/0720:13:19ross2008%Majorreleasew/newUser'sGuide!2009%2010%Revision2.13 T1995/07/0415:04:51ross2011%Readyforreleaseofv3.2012%2013%CreatedbyRossMoore,September1994.1/3.11SmartffPathoptionqV ers.p0.0Tb9yGeorgeC.Neculahnecula@cs.cmu.eduiHeader:P1%%$Id$2%%3%%Xy-pic``SmartPathfeature''option.4%%Copyright(c)19989|GeorgeC.Necula5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1998 TKristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fi26\xyprovide{smartpath}{SmartPathoption}{\stripRCS$Revision:0.0$}%27K{GeorgeC.Necula}{necula@cs.cmu.edu}%28K{SchoolofComputerScience,29 mCarnegieMellonUniversity,i*tj446KCHAPTERf3.CFEAeTURES??hw30 m5000ForbesAvenue, 31 mPittsburgh,PA15213-3891,USA}z䍑Thisextendsthe`arro!w'feature,bwhichisthereforerequired,bwitha\smart"hpathibMetweentwohpMosiitions.P44\xyrequire{arrow}\xycatcodesThefhturnisyn!taxisextendedwiththeconstruction }{ffd >Ӎhturnif W{!J`sfhdiagi_ vhdiagihturnradiusi4ffd\arin _out /5pt3whic!h+drawsaconnectorleavingpinthein%hdiagionaldirectionandarrivesatcin thekZoutuDhdiagionaldirection,w)using5ptturns..Theconnectorcon!tainsonlyhorizontalorverticallinesandKٙ1ٙfe@PA8 6sectorsfofcirclesofthegiv!en(optional)hturnradiusi.Bug:ݹAn!yflabMelsareplacedattheendoftheconnection.P67%Thesmartconnectionalgorithmisasfollows:68%69%Asmartconnectorconsistsonlyofhorizontalandverticalstraight70%segmentsconnectedwith1/4circles.1/8circlesmightbeuseatthestart71%andendoftheconnectortoreachahorizontaloravertical.72%73%Allpossibleconnectorscanbereducedtoaseriesofequivalenceclasses,74%wheretwoconnectorsareconsideredequivalentiftheyareidenticalafter75%removingfromeachofthemallthehorizontalandverticalstraight76%segments.Suchaconnectoriscalledarepresentative.77%78%Thealgorithmfirstcomputes10representativesthatstartandendinthe79%givendirectionsandhaveatmostonepointwheretheorientationis80%changed.5oftherepresentativesstartcounter-clockwiseandtheother81%5startclockwise.Amongthecounter-clockwiserepresentatives,1doesnot82%haveanychangeinorientation(onearcofcirclestartingandendinginthe83%givendirections).Theother4areobtainedbychangingtheorientationin84%thefourpointswherethecircleistangenttoahorizontaloravertical.85%86%Foreachrepresentativethealgorithmdeterminesifitcanbeextendedwith87%horizontalandverticalsegmentstoreachthedestinationpointwhen88%startinginthesourcepoint(thedirectionsarealreadyrightby89%construction).Forexample,horizontalstraightlinescouldbeinserted90%inallthepointswheretherepresentativeistangenttoahorizontalline.91%Ineachsuchpointastraightlinesegmentcanbeinsertedtoextendthe92%connectorhorizontallybutonlyinthesamedirectionoftheconnectorat93%thatpoint(thedirectionoftheconnetorinapointistowardsthe94%destination).Forexample,ifthehorizontaldistancebetweenthesourceand95%destinationpointsisDxandthehorizontaldistancebetweenthestartand96%theendoftherepresentativeconnectorisdxthenthedistance``Dx-dx''97%mustbecoveredusinghorizontalstraightlines.Thisdistanceis98%distributedequallyamongallthehorizontalextensionpointsoftheright99%direction.Ifnosuchpointsexist,thentherepresentativeisdiscarded.100%Thecostofaconnectoristhelengthoftherepresentativeplusthetotal101%lengthofstraightextensionsegments,i.e.,|Dx-dx|+|Dy-dy|.*tj3.11.CSMAReTfPATHOPTION; L447??hw102% 103%Thealgorithmselectsamongalltherepresentativesthatarenotdiscarded,104%theoneleadingtotheshortestconnection.v107%ChangethePATHturn@torecognize`sasasmartPATH.108\let\origPATHturn@=\PATHturn@109\def\PATHturn@{%110K\ifx\space@\next\expandafter\DN@\space{\xyFN@\PATHturn@}%gobblespaces111K\else\ifxs\next112 \let\origPATHturn@i=\PATHturn@i\let\PATHturn@i=\PATHsmartturn@i113 \let\origPATHturn@cir=\PATHturn@cir\let\PATHturn@cir=\PATHsmartturn@cir114 \DN@s{\xyFN@\origPATHturn@}%Lettheoriginalroutinesdotheparsing115K\else116 \DN@{\origPATHturn@}%117K\fi\fi118K\next@}121%ChangedPATHturn@cirtoallowhalforfullturns122\xydef@\PATHsmartturn@cir{%123 m\edef\next@{{\CIRin@@}{\expandafter\noexpand\CIRorient@@}{\CIRout@@}}%124 m\expandafter\PATHturn@i\next@}127%Thisisthechangedfunctionforplacingtheturn128\xydef@\PATHsmartturn@i#1#2#3{%129K\DN@##1{%130\def\PATHinit@@{%131Jk\xy@@{%132#i\def\sm@CIRin{#1}\def\sm@CIRout{#3}%TheINandOUTdirections.Ignore133콧%theorientation134#i\ifx\sm@CIRout\empty%Onlyondirectionisgiven.UseitasOUTand135B[%usethepreviousdirectionasIN1364g\let\sm@CIRout=\sm@CIRin1374g\let\sm@CIRin=\PATHlastout@@138#i\fi139#i##1\relax}%140Jk\xy@@{\enter@{\basefromthebase@}}%141Jk\xy@@{\sm@conn}%Drawtheconnection142Jk\xy@@{\X@p=\X@c\Y@p=\Y@c\czeroEdge@%Savethestartofthesegment143:\count@=\sm@CIRout\count@=\the\count@%Moveforwardadashto144;%touchtheedge145:\dimen@=\xydashl@\ABfromdiag@\advance\X@c\A@\advance\Y@c\B@1464g\edef\PATHpostpos@@{\X@c=\the\X@c\Y@c=\the\Y@c\noexpand\czeroEdge@147\noexpand\PATHomitslide@@true}}%148Jk\xy@@{\leave@%1494g\edef\PATHlastout@@{\sm@CIRout}%Storethelastdirection1504g\count@=\sm@CIRout\dimen@=\xydashl@\Directionfromdiag@}}}%151K\expandafter\next@\expandafter{\the\toks@}\toks@={}%152K\let\PATHextra@@=\empty153K\def\PATHpost@@{\xy@@\PATHpostpos@@}%154K\let\PATHlabelsextra@@=\relaxi*tj448KCHAPTERf3.CFEAeTURES??hw155K\let\PATHturn@i=\origPATHturn@i 156K\let\PATHturn@cir=\origPATHturn@cir157K\xyFN@\PATHturn@ii}v160\xydef@\sm@nil{}161\xydef@\sm@nnil{\sm@nil}162\xydef@\sm@maxcost{1000mm}%AverylongconnectorP164%Thiscomputesanddrawstheconnection165\xydef@\sm@conn{166% T\xy@showthep{Source}\xy@showthec{Dest}%167% T\W@{Computingconnectorfrompin\sm@CIRin\spacetocin\sm@CIRout168%"}.Radiusis\turnradius@}%169 m%Adjusttheendpointstotheedgeoftheobjectsinthegivendirections170 m\enter@{\cfromthec@\DirectionfromtheDirection@}\cfromp@%Adjustp171 m\count@=\sm@CIRin\count@=\the\count@172 m\dimen@=\xydashl@\ABfromdiag@\advance\X@p\A@\advance\Y@p\B@173 m\setupDirection@\the\Edge@c\z@\czeroEdge@174 m\pfromc@175 m\reverseDirection@176 m%Nowleaveroomforonedashtostartwith(forplacingarrowtails)177 m\count@=\sm@CIRin\count@=\the\count@178 m\dimen@=\xydashl@\ABfromdiag@179 m%Dropthearrowtailintherightplace180 m\edef\tmp@{\noexpand\dir\artail@@}\expandafter\sm@drop@\tmp@181 m\X@c=\X@p\advance\X@c\A@\Y@c=\Y@p\advance\Y@c\B@\czeroEdge@182 m%Drawastraightconnectionfromptoc183 m\sm@stri184 m%Setptotheendoftheconnection185 m\X@p=\X@c\Y@p=\Y@c186 m\leave@187% T\xy@showthep{Afteradjust}%188 m\enter@{\pfromthep@\DirectionfromtheDirection@}\pfromc@%Adjustc189 m\count@=\sm@CIRout\count@=\the\count@190 m\dimen@=\xydashl@\ABfromdiag@\advance\X@p-\A@\advance\Y@p-\B@191 m\setupDirection@\the\Edge@c\z@192 m\advance\X@c-\A@\advance\Y@c-\B@%Leaveroomforadashtoterminatetheseg193 m\czeroEdge@[%ThefinalsegmentwillbedrawnbyPATH@segment194 m%Clearthetailsettingforthelastsegment195 m\def\PATHlabelsnext@@{}%196 m\leave@197% T\xy@showthec{Afteradjust}%198 m%Settheturnradius199 m\R@=\turnradius@200 m\cirrestrict@@%Adjusttheradiustofitthecircles201 m%Initializevariables202 m\let\sm@circles=\sm@nil203 m\edef\sm@bestcost{\sm@maxcost}%Bestsofarisverybad204 m\sm@trycircles T1%Trycounterclockwisefirst205 m\sm@trycircles{-1}%Tryclockwiseafterƭ*tj3.11.CSMAReTfPATHOPTION; L449??hw206% 207%Nowcheckthebest208%209 m\ifdim\sm@bestcost<\sm@maxcost210%\W@{}\W@{Best:\meaning\sm@bestconn}%211 \cfromp@212%\xy@showthep{Source}%213 \expandafter\sm@conndraw\sm@bestconn214 m\else215 \xyerror@{Cannotdrawthesmartconnector}{}%216 m\fi217}P219%Computeandexamine5representatives,fortheorientationgiven220%as#1(1forcounter-clockwiseand-1forclockwise).221\xydef@\sm@trycircles#1{%222 m\ifnum#1>0%Computetheoppositeorientation223Jk\def\sm@CIRorienti{-1}%224 m\else225Jk\def\sm@CIRorienti{1}%226 m\fi227 m%Generatelistsoftriples(IN,ORIENT,OUT)sothatOUT_1=IN_2and228 m%IN=IN_1andOUT=OUT_2,andsuchthatORIENT_1=#1mORIENT_2=-ORIENT_1229 m%Thentryeachlistinturn.230 m%Tryonecirclefirst(asingletonlist)231 m\edef\tmp@{{{\sm@CIRin}{#1}{\sm@CIRout}}}%232 m\expandafter\sm@trycirclelist\expandafter{\tmp@\sm@nil}%233 m%Nowtrylistsoftwocircles.234 m%Advance"in"sothatitisamultipleof90degrees(thatis,odd)235 m\count@@=\sm@CIRin\count@@=\the\count@@\count@=\count@@236 m\sm@roundcount@{#1}%237 m\edef\sm@savecount@{\the\count@}%238 m%Seeifweneedtoadda1/8startingcircle239 m\ifnum\the\count@=\the\count@@\else240%241Jk\edef\tmp@{{{\sm@CIRin}{#1}{\the\count@}}%242Q{{\the\count@}{\sm@CIRorienti}{\sm@CIRout}}}%243Jk\expandafter\sm@trycirclelist\expandafter{\tmp@\sm@nil}%244 m\fi245%246 m\count@=\sm@savecount@\count@=\the\count@247 m\sm@advancecount@2{#1}\edef\sm@savecount@{\the\count@}%Advance90deg.248 m\edef\tmp@{{{\sm@CIRin}{#1}{\the\count@}}%249@G{{\the\count@}{\sm@CIRorienti}{\sm@CIRout}}}%250 m\expandafter\sm@trycirclelist\expandafter{\tmp@\sm@nil}%251%252 m\count@=\sm@savecount@\count@=\the\count@253 m\sm@advancecount@2{#1}\edef\sm@savecount@{\the\count@}%Advance90deg.254 m\edef\tmp@{{{\sm@CIRin}{#1}{\the\count@}}%255@G{{\the\count@}{\sm@CIRorienti}{\sm@CIRout}}}%v*tj450KCHAPTERf3.CFEAeTURES??hw256 m\expandafter\sm@trycirclelist\expandafter{\tmp@\sm@nil}% 257%258 m\count@=\sm@savecount@\count@=\the\count@259 m\sm@advancecount@2{#1}\edef\sm@savecount@{\the\count@}%Advance90deg.260 m\edef\tmp@{{{\sm@CIRin}{#1}{\the\count@}}%261@G{{\the\count@}{\sm@CIRorienti}{\sm@CIRout}}}%262 m\expandafter\sm@trycirclelist\expandafter{\tmp@\sm@nil}%263}P265%Advancethedirectionin\count@by#1(eachunitis45deg)inthe266%dirction#2,takingcareofwrap-around267\xydef@\sm@advancecount@#1#2{%268% T\W@{Advancingcountfrom\the\count@\spaceby#1\space269%%.in\xy@showorient#2}%270 m\ifnum#2>0271Jk\edef\tmp@{#1}%272 m\else273Jk\edef\tmp@{-#1}%274 m\fi275 m\advance\count@\tmp@\count@=\the\count@276 m\ifnum\the\count@<0\advance\count@8\fi277 m\ifnum\the\count@>7\advance\count@-8\fi278 m\count@=\the\count@279% T\W@{Resultingcount@=\the\count@}%280}282%Roundcountertothenextoddelement(multipleof90deg)283%inthegivendirection284\xydef@\sm@roundcount@#1{%285 m\ifcase\the\count@286 \advance\count@#1\or287 m\or\advance\count@#1\or288 m\or\advance\count@#1\or289 m\or\advance\count@#1\fi290 m\count@=\the\count@291 m\ifnum\the\count@<0\advance\count@8\fi292 m\ifnum\the\count@>7\advance\count@-7\fi293 m\count@=\the\count@294}296\newif\ifsm@firstseg297\newif\ifsm@acceptable299%Givenarepresentativedescribedasalistoftripletsendingwithsm@nil,300%verifyifiscanbeextendedtotherightdestination301\xydef@\sm@trycirclelist#1{%302 m\R@p=\z@\U@p=\R@p%[Clearthedeltas303 m\def\sm@exthp{0}\def\sm@exthm{0}%304 m\def\sm@extvp{0}\def\sm@extvm{0}%Cleartheextensionpoints305 m\def\sm@dxp{0pt}\def\sm@dxm{0pt}%306 m\def\sm@dyp{0pt}\def\sm@dym{0pt}%Resettheextensions307 m\def\sm@segs{}%aJ%Clearthesegmentlistv*tj3.11.CSMAReTfPATHOPTION; L451??hw308 m\sm@firstsegtrue[%Markthefirstsegment 309 m\def\sm@connlen{0pt}%?0pt330 \ifnum\sm@exthp>0\dimen@=\A@\divide\dimen@\sm@exthp331t\edef\sm@dxp{\the\dimen@}%332 \else T\sm@acceptablefalse\fi\fi333 m\ifdim\A@<0pt334 \ifnum\sm@exthm>0\dimen@=\A@\divide\dimen@\sm@exthm335t\edef\sm@dxm{\the\dimen@}%336 \else T\sm@acceptablefalse\fi337 \A@=-\A@%Makeitpositive338 m\fi339 m\ifdim\B@>0pt340 \ifnum\sm@extvp>0\dimen@=\B@\divide\dimen@\sm@extvp341t\edef\sm@dyp{\the\dimen@}%342 \else T\sm@acceptablefalse\fi\fi343 m\ifdim\B@<0pt344 \ifnum\sm@extvm>0\dimen@=\B@\divide\dimen@\sm@extvm345t\edef\sm@dym{\the\dimen@}%346 \else T\sm@acceptablefalse\fi347 \B@=-\B@348 m\fi349 m\ifsm@acceptable350Jk%Computethecostoftheconnector351Jk\dimen@=\sm@connlen\advance\dimen@\A@\advance\dimen@\B@352%R\W@{\spaceCostis\the\dimen@}%353Jk%Seeifitisbestsofar354Jk\ifdim\dimen@<\sm@bestcost355#i\edef\sm@bestcost{\the\dimen@}%356#i\edef\sm@bestconn{{\sm@dxp}{\sm@dxm}{\sm@dyp}{\sm@dym}{\sm@segs}}%*tj452KCHAPTERf3.CFEAeTURES??hw357Jk\fi 358 m\fi359}P361\xydef@\sm@showext#1{%362 m\W@{#1\spacehp=\sm@exthp,hm=\sm@exthm,vp=\sm@extvp363>S,vm=\sm@extvm,len=\sm@connlen}}365%Processthenextelementinthelistthatdescribestherepresentative366%367\xydef@\sm@trycirclelist@i#1{%368 m\def\@tmp{#1}%369 m\ifx\@tmp\sm@nnil\let\sm@tryclcont=\relax\else370ɿ\expandafter\sm@tryclcar\@tmp\fi371 m\sm@tryclcont}373\xydef@\sm@tryclcar#1#2#3{%374% T\W@{Tryingoneturnin#1\spaceorient#2\spaceout#3}%375 m%ComputedeltaxinR@panddeltayinU@p.Movethemtocenterfirst.376 m\dimen@=\ifnum#2<0-\fi\R@377 m\count@=#1\count@=\the\count@\ABfromdiag@378 m\advance\R@p-\B@\advance\U@p\A@379% T\xy@showdim{>Aftercenter}%380 m%Movethemtoexit381 m\count@=#3\count@=\the\count@\ABfromdiag@382 m\advance\R@p\B@\advance\U@p-\A@383% T\xy@showdim{>Afterturn}%384% T\xy@showthep{9|}%385 m%Nowupdatetheextensionpoints386 m\sm@computeext{#1}{#2}{#3}%387}389%390%Computetheextensions391%392\xydef@\sm@computeext#1#2#3{%393% T\W@{Computingextentsforturnin#1\spaceorient#2\spaceout#3}%394 m\ifsm@firstseg395Jk\sm@accumext#1%396Jk\sm@firstsegfalse397 m\fi398 m\count@@=#1\count@@=\the\count@@\count@=\count@@399 m\dimen@=\sm@connlen400% T\W@{Beforeroundingcount@=\the\count@,count@@=\the\count@@}%401 m\sm@roundcount@{#2}%402% T\W@{Afterroundingcount@=\the\count@,count@@=\the\count@@}%403 m\ifnum\count@=\count@@404 \sm@advancecount@1{#2}%Advanceby90degreesifodd.By45first405 \advance\dimen@0.7854\R@%Itwasincrementedwith1/8circle406 \ifnum\count@=#3%Checkifdone407 \else408ɿ\sm@advancecount@1{#2}%Another45/*tj3.11.CSMAReTfPATHOPTION; L453??hw409ɿ\advance\dimen@0.7854\R@%Itwasincrementedwith1/8circle 410 \fi411 m\else412 \advance\dimen@0.7854\R@%Itwasincrementedwith1/8circle413 m\fi414 m\edef\sm@connlen{\the\dimen@}%Savetheconnectorlength415 m\sm@accumext{\the\count@}%416 m\edef\sm@segs{\sm@segs{{#1}{#2}{\the\count@}}}%Accumsegment417 m\ifnum\the\count@=#3\else418 \edef\tmp@{{\the\count@}{#2}{#3}}%Recursivecall419 \expandafter\sm@computeext\tmp@420 m\fi421}P423%424%Accumulatetheextensions425%426\xydef@\sm@accumext#1{%427%\W@{Accumulatingextentfor#1}%428%\sm@showext{Beforeaccum:}%429K\ifcase#1%430\or\count@@=\sm@extvm\advance\count@@by1%431/\edef\sm@extvm{\the\count@@}%1isV-432\or\or\count@@=\sm@exthp\advance\count@@by1%433/\edef\sm@exthp{\the\count@@}%3isH+434\or\or\count@@=\sm@extvp\advance\count@@by1%435/\edef\sm@extvp{\the\count@@}%5isV+436\or\or\count@@=\sm@exthm\advance\count@@by1%437/\edef\sm@exthm{\the\count@@}%7inH-438K\fi439%\sm@showext{Afteraccum:}%440}v443%Drawacomputedconnector.444%1,2,3,4-dx+,dx-,dv+,dv-(lengthsofstraightconnectorsineach445%udirection)446%5(=-alistofsegments,eachenclosedinapairofbraces.447\xydef@\sm@conndraw#1#2#3#4#5{%448\def\sm@contlist{\sm@drawseglist}%449\edef\sm@dxp{#1}%450\edef\sm@dxm{#2}%451\edef\sm@dyp{#3}%452\edef\sm@dym{#4}%Savedeltas453\sm@drawseglist#5\sm@nil}454\xydef@\sm@drawseglist#1{%Getthefirstsegment455 m\ifx#1\sm@nil\def\sm@contlist{}\else456Jk\sm@drawseg#1\fi457 m\sm@contlist}459%460%Drawasegment^*tj454KCHAPTERf3.CFEAeTURES??hw461% 462\xydef@\sm@drawseg#1#2#3{%AsegmentisCIRin+CIRorient+CIRout463% T\W@{Drawingsegmentin=#1\spaceout=\space#3}\xy@showthec{Segstart}%464 m\def\CIRin@@{#1}\def\CIRout@@{#3}%465 m\sm@straight%Seeifastraightlineisneededhere.Insertitand466Fe%resetcifneeded467 m\ifnum\CIRin@@=\CIRout@@\else468 %Computethecenterofthecircle469 \count@=\CIRin@@470 \dimen@=\ifnum#2<0-\fi\R@471 \ABfromdiag@472 \advance\X@c-\B@\advance\Y@c\A@473%"}\xy@showthec{Centerofcircle}%474%"}\xy@showdim{Beforecenter}%475 \ifnum#2>0\def\CIRorient@@{\CIRacw@}%476:\else\def\CIRorient@@{\CIRcw@}\fi477 \drop@\literal@{\hbox\bgroup\cir@i}%Placethecircle478 %Nowmovethetheendofthearc479 \dimen@=\ifnum#2<0-\fi\R@480 \count@=\CIRout@@\count@=\count@%Wierd.IfIremovethislastassignm481%Գ%\count@isnotset482 \ABfromdiag@483%"}\xy@showthec{Beforeadvance}%484%"}\xy@showdim{Beforeadvance}%485 \advance\X@c\B@\advance\Y@c-\A@486%"}\xy@showthec{Aftercircle}%487%"}\xy@showdim{Aftercircle}%488 m\fi489}P491\xydef@\sm@straight{%492 m\U@c=\z@\D@c=\U@c\L@c=\U@c\R@c=\U@c493 m\pfromc@rH%Setpatthebeginningofthesegment494 m\ifcase\CIRin@@\or%1isV-495 \A@=\sm@dym\advance\Y@c\A@%Wierd.IhavetousethetemporaryA@!!496 m\or\orP{L%3isH+497 \A@=\sm@dxp\advance\X@c\A@498 m\or\orP{L%5isV+499 \A@=\sm@dyp\advance\Y@c\A@500 m\or\orP{L%7isH-501 \A@=\sm@dxm\advance\X@c\A@\fi502 m\ifdim\X@c=\X@p\ifdim\Y@c=\Y@p\else\sm@stri\fi\else\sm@stri\fi503}505\xydef@\sm@stri{%506%>\W@{Drawingstraightconnection}\xy@showthep{StrSrc}\xy@showthec{StrDst}%507 \edef\tmp@{\expandafter\noexpand\arstemprefix@@\arstem@@}%508 \expandafter\sm@connect@\tmp@}509\xydef@\sm@connect@#1#{%510 \DN@##1{\connect@{#1}{##1}}\next@}?*tj3.11.CSMAReTfPATHOPTION; L455??hw512\xydef@\sm@drop@#1#{% 513 \DN@##1{\drop@{#1}{##1}}\next@}P515%Computeanddrawaconnector.Externalinterface516%1-in(forp)517%2-out(forc)518%3-suggestedradius519\xydef@\smconn#1#2#3{%520 m\edef\sm@CIRin{#1}\edef\sm@CIRout{#2}%Memorizethedirections521 m\R@=#3\R@=\the\R@522 m\sm@conn}524\xyendinputBug:ݹThisfcoMdeshouldprobablybemergedwiththe`arro!w'feature.Finallyfthelog.556%$Log$557%ReceivedfromGeorge.*tj456KCHAPTERf3.CFEAeTURES??R܍ ffffd {ySyn!taxActionwffd 6fy\arfharro!wihpathiֹmak!efharrowialonghpathi#2ffd yharro!wi>byE!U]hformi*harro!wifhasthehformisyhformi>byE!U]@fhvdDarian!tiֹusefhvdDarian!tiofarrowEIjU]@fhvdDarian!ti{ vhtipi}ֹbuildCarro!w3.3m}usinghvdDariantiofastandardstem andfhtipifortheheadoEIjU]@fhvdDarian!ti{ vhtipihconnihtipi}ֹbuildYarro!w3.3m/ϹusinghvdDariantiofhtipi,hconni, htipifasarro!wtail,stem,andhead(inthatorder)ۂEIjU]@fhconnc!hariֹc!hangefstemtotheindicatedhconnchari EIjU]@!ֹdashfthearro!wstembydoublingitEIjU]@/fhdirectionihdisti/ֹcurv!e3.3o톹arrowfthehdistianceto!wardsfhdirectioniEIjU]@(fhdirectioni, vhdirectioni)ֹcurv!efto twithin-outdirections3.3pEIjU]@`f{ vhcon!trolfpMointlisti}ֹcurv!efsetup3.3q4withexplicitcontrolpMointsEIjU]@[dhshapMeif]ֹadd[ dhshapMei]toobjecthmodi eris3.3rIforallob-jects%EIjU]@*f{ vhmoMdi eri* }ֹaddfobjecthmoMdi eris3.3r0forallobjectsEIjU]@<fhdimeni>ֹslidefarro!w3.3sLthehdimeniEIjU]|fhanc!horihitiֹbreakfeac!hsegmentathanchoriwithhitiEIjU]^fhanc!horihitiLjC_hanchorihitiֹlabMelfeac!hsegmentathanchoriwithhitiEIjU]@?ֹrev!ersefmeaningofabMoveandbMelow3.3tyhvdDarian!ti>byE!U]hempt!yiLjC^Lj_Y&jc~:0LjC1Lj2Lj3hvdDarian!ti:plain,fabMove,bMelow,double,ortripleyhtipi>byE!U]htipMc!hari*directionalfnamedasthesequenceofhtipMc!harisEIjU]hdiriֹan!yfhdiriectional3.3nyhtipMc!hari>byE!U]<^mje~>nju(j)+j|Bj'Zj #`q3j"D+ψTj9e/ֹrecognisedftipc!haractersEIjU]hletteriLjChspaceiֹmoreftipc!haractersyhconni>byE!U]hconnc!hari*directionalfnamedasthesequenceofhconnc!harisEIjU]hdiriֹan!yfhdiriectional3.3nyhconnc!hari>byE!U]-^mje~.nju~j=+j:ֹrecognisedfconnectorc!haracterszffd Figuref3.2:harro!wis.y8lA7;kps: SDict begin xyc end3" {36.0 0.0 l}xym^tf33" {3072 10 /xy AB}xy3" {3072 10 /xy AB}xy30j" {0.0 -45.41666 l}xy30j" {1024 10 /xy AB}xy30j" {1024 10 /xy AB}xy3J" {36.0 -20.57813 l}xy 'f43J" {2487 10 /xy AB}xy3J" {2487 10 /xy AB}xy_} " {448 F d}xyɟ " {448 F d}xy&K9 " {448 F d}xyhK " {448 F d}xy m~" {448 /XT tt}xy!<( " {384 F d}xy;Q " {384 F d}xy.>GG " {384 F d}xy|ߟ=7 " {384 F d}xy?H" {384 /XT tt}xy31vj" {36.0 -23.50845 l}xyן"f531vj" {2404 10 /xy AB}xy31vj" {2404 10 /xy AB}xy7(lA-S" {31.66376 28.01959 l}xy˟f1-S" {3978 10 /xy AB}xy[3 " {45.97998 16.06087 l}xy@HZf2[3 " {3430 10 /xy AB}xy2 w" {1632 F d}xy0͟" {1632 F d}xy3ֳ1" {1632 F d}xy27" {1632 F d}xy6ğ '" {1632 /XT tt}xy3E" {mark 87.75 0.0 59.18994 -51.50423 0.0 -51.41666 0.061 0.97046 q}xy]$e|" {-3676 10 /xy AB}xy13M " {35.64374 -21.36673 l}xy13M " {2458 10 /xy AB}xy$E-g113M " {2458 10 /xy AB}xy3" {36.0 23.5026 l}xy3" {3740 10 /xy AB}xy3" {3740 10 /xy AB}xy33j" {36.0 0.0 l}xy/qf633j" {3072 10 /xy AB}xy33j" {3072 10 /xy AB}xy3S" {mark 301.7934 -51.41666 278.7717 -66.41666 255.75 -51.41666 0.06516 0.84705 q}xy-q7M" {3515 10 /xy AB}xyŬ@Q8g4)ij" {1024 F d}xyŸ)ij" {1024 F d}xy+j" {1024 F d}xyŸ+j" {1024 F d}xy3ij" {1024 /XT tt}xyj" {20.71896 27.0 l}xy M:"yf7j" {-3858 10 /xy AB}xy/ -" {18.10269 -23.58334 l}xy)4 "yf8/ -" {1810 10 /xy AB}xy0xݟ7(lB34e*" {78.0 25.45963 l}xy34e*" {3406 10 /xy AB}xy34e*" {3406 10 /xy AB}xyTW[" {84.47443 -8.23247 l}xy\xXy#g2TW[" {2972 10 /xy AB}xy34j" {77.52557 34.6003 l}xy}J^g334j" {3529 10 /xy AB}xyKy~pFiguref3.3:P!astingdiagram.R*tj3.11.CSMAReTfPATHOPTION; L457??CH$ ffffd {ySyn!taxٞActionwffd yht!woMcelli:nA!QRh2-cellihswitc!hesihArrowiٞt!ypMesetfh2-celliwiththehswitchesiandhArrowiyh2-celli:nA!QR\..twocellٞt!ypMesetftwocurvedarrows B >jQR\..uppertwocellٞt!ypMesetfuppercurv!edarrowonlyB >jQR\..lowertwocellٞt!ypMesetflowercurvedarrowonlyB >jQR\..compositemapٞusefconsecutiv!estraightarrowsyhArro!wi:nA!QR{Whtokihtexti}ٞspMeci esforien!tationandlabelB >jQR{Whn!udgeihtexti}ٞadjustfpMosition,usedefaultorien!tationB >jQR{Whtexti}ٞusefdefaultpMositionandorien!tationB >jQR{Whtoki*hobjecti}ٞusefhobjectiasthelabMelB >jQR{Whn!udgei*hobjecti} vj{}1*hobjecti}yhtoki:nA!QR^^je_rOjyl`=ٞorien!tedfanti-/cloMckwise/equalityB >jQR\omitٞnofArro!w,defaultiscloMckwiseB >jQR`^je'rOjyl`"xj)!ٞnofArro!w;tipsontwocurvedarrowsas:ٞan!ti-/cloMckwise/double-headed/noneۂyhswitc!hesi:nA!QRhswitc!hihswitchesiٞlistfofoptionalmoMdi cationsyhswitc!hi:nA!QRhempt!yiٞusefdefaultsB >jQR^[WbhlabMeliٞplacefhlabMeliontheupperarro!wB >jQR_[WbhlabMeliٞplacefhlabMelionthelo!werfarrowB >jQRhn!udgeiٞsetfthecurvdDature,basedonhn!udgeivalueB >jQR\omitٞdofnotsetthecurv!edarrowsB >jU!ٞplacef\modmapobjectRnmidw!ayfalongarro!wsB >jQR~[Wbhwhatif{ vhobjectif}ٞusefhobjectiinplacespMeci edb!yhwhatiyhwhati:nA!QRhempt!yiٞsetfcurv!esusingthespMeci edhobjectiB >jQR^^je_ٞusefhobjectiwithuppMer/lo!werfcurveB >jQR`^je'ٞusefhobjectiforarro!whead/tailyhlabMeli:nA!QRhtextiLjChn!udgeifhtextiٞsetfhtexti,displacedb!yhnudgeiB >jQR*hobjectiLjChn!udgei*hobjectiٞsetfhobjecti,displacedb!yhnudgeiyhn!udgei:nA!QRٞuse 8hn!umbMeriinanappropriatewaye,>e.g.,topMosi-ٞtionfobjectorlabMelalonga xedaxis?ǍB >jQR<\omit>ٞdofnott!ypMesettheobject/labelzffd pFiguref3.4:ht!woMcellis.Π*tj458KCHAPTERf3.CFEAeTURES?? +㍠d ffffd { Syn!tax>v&fe7nf,sinP t3e2t3e&fe>n7cosP 2ጟ&fe>nhBsinP {3{&fe>n McosP /3/&fe>n@XsinP Nϑ4Nϑ&fe>nrecosP ݺ4ݺ&fe>n$tsinP =5=&fe>ncosP 5ԟ&fe>n 0j02u1i/0֋1}0 $1Cˬ0uҹ19011j0+V2u1i/0֋1}0 $1Cˬ0uҹ190ү12j12u0i/0֋1}1 $0Cˬ0uҹ19103j.86602542u.5ai/.8660254֋.5}0 $1<Cˬ.8660254nuҹ.59.8660254.54j.707106782u.70710678i/1֋0}.70710678 $.70710678Cˬ0nuҹ19.70710678ү.707106785j.5877852u.809017i/.951057֋.309017}.951057 $.809017Cˬ.587785nuҹ.80901790ү16j.52u.8660254i/.8660254֋.5}1 $0<Cˬ.8660254nuҹ.59.5ү.86602547j.4338842u.900969i/.781831֋.62349}.974928 $.222521Cˬ.974928nuҹ.2225219.781831ү.623498j.3826832u.92388i/.70710678֋.70710678}.92388 $.382683Cˬ1uҹ09.92388ү.3826839j.342022u.939693i/.642788֋.766044}.8660254 $.5Cˬ.984808uҹ.1736489.984808ү.17364810j.3090172u.951057i/.587785֋.809017}.309017 $.951057Cˬ.951057uҹ.30901791011j.2817332u.959493i/.540641֋.841254}.75575 $.654861Cˬ.909632uҹ.4154159.989821.14231512j.2588192u.965926i/.5֋.8660254}.70710678 $.70710678Cˬ.8660254uҹ.59.965926.258819]ZUFiguref3.6:TerigonometrytablesforP!olygonvertices.<*tj3.11.CSMAReTfPATHOPTION; L459??=占3/ ffffd {ySyn!tax Actionwffd yhknot-pieceiG#N8!^hpieceihscaleihknot-labMelsi in!terpretfknot-pieceyhpieceiG#N8!^hcrossingifj Wwhjoini piecefisacrossing3.10a퇹orajoin3.10lyhscaleiG#N8!^hempt!yifj - Sj!d['{hnumi] in!vertforscaletheknotpiece3.10bZ;bmjiM~~o (hpMosihposihposihposi alterfsizeandshapMe3.10c_Musingthehposisyhknot-labMelsiG#N8!^hempt!yifj Wwhknot-tipsihknot-labMelsi arro!wtipsfatends,alignedwithorientationbmjiM~hwhereihwhatihknot-labMelsi list3.10k4offarro!wtips,breaksandlabMels3.10ebmjiM~@o (hadjustihknot-labMelsi adjustfhole3.10d{pMositionforahcrossingi;  adjustfotherparameter3.10n{forahjoini.Aoyhknot-tipsiG#N8!i9==yj=! arro!wtips3.10k4atfbMoth/neitherendbmjiM~= arro!wtips3.10k4alsofatstart/ nishyhwhereiG#N8!i9|sOIjzZ|hadjusti `o!ver'fstringonahcrossingi;3.10f  middle3.10mBݹplacefonahjoini.AobmjiM~rjyd>$Ihadjusti  nalfpMortionof`under'stringonahcrossingi;3.10f  later3.10mBݹplacefonahjoini.yhadjustiG#N8!i9(+uhhn!umi) fj!(-uhnumi) adjustmen!t3.10k4fromfcurrentvdDalueofparameterbmjiM~(=thn!umi) fj!(hnumi) setfparametervdDalue3.10kwyhwhatiG#N8!i9>sOIjzZ< arro!wheadfalignedwith/againstorientation3.10iwbmjiM~\knotholeja\khole lea!vefholeinthestring3.10jbmjiM~{o (htexti} set3.10ghtextifaslabMel,using\labelstylebmjiM~{*thobjecti} dropfhobjecti3.10hbmjiM~{o (hanc!horihiti} hbreakiforlabMel3.10h{asonanharro!wibmjiM~| n!ull-break3.10kzffd Figuref3.7:hknot-pieceiconstructionsetQG*tj460KCHAPTERf3.CFEAeTURES??ѕ :ps: SDict begin xyc end񹄟h0>" {mark 24.0 0.0 24.0 -6.0 28.5 -9.0 31.75 -10.5 0.0 0.0 bz}xyC" {mark 31.75 -10.5 35.0 -12.0 37.0 -12.0 40.25 -13.5 0.0 0.0 bz}xyB" {mark 40.25 -13.5 43.5 -15.0 48.0 -18.0 48.0 -24.0 0.0 0.0 bz}xy!͟i" {1504 10 /cm AB}xy-Lhy񹄟h0>" {mark 24.0 0.0 24.0 -6.0 28.5 -9.0 31.75 -10.5 0.0 1.0 bz}xyC" {mark 31.75 -10.5 35.0 -12.0 37.0 -12.0 40.25 -13.5 0.0 1.0 bz}xyB" {mark 40.25 -13.5 43.5 -15.0 48.0 -18.0 48.0 -24.0 0.0 1.0 bz}xy񹄟h0>" {mark 24.0 0.0 24.0 -6.0 28.5 -9.0 31.75 -10.5 1.0 1.0 bz}xyC" {mark 31.75 -10.5 35.0 -12.0 37.0 -12.0 40.25 -13.5 1.0 1.0 bz}xyB" {mark 40.25 -13.5 43.5 -15.0 48.0 -18.0 48.0 -24.0 1.0 1.0 bz}xy񹄟h0B" {mark 24.0 -24.0 24.0 -18.0 28.5 -15.0 31.75 -13.5 0.0 0.0 bz}xyC" {mark 31.75 -13.5 35.0 -12.0 37.0 -12.0 40.25 -10.5 0.0 0.0 bz}xy>" {mark 40.25 -10.5 43.5 -9.0 48.0 -6.0 48.0 0.0 0.0 0.0 bz}xy @" {-3632 10 /cm AB}xyix񹄟h0B" {mark 24.0 -24.0 24.0 -18.0 28.5 -15.0 31.75 -13.5 0.0 1.0 bz}xyG" {mark 31.75 -13.5 35.0 -12.0 37.0 -12.0 40.25 -10.5 0.0 0.19179 bz}xy>" {mark 40.25 -10.5 43.5 -9.0 48.0 -6.0 48.0 0.0 0.0 0.0 bz}xy!"='" {-3632 10 /cm AB}xy_w-z񹄟h0B" {mark 24.0 -24.0 24.0 -18.0 28.5 -15.0 31.75 -13.5 1.0 1.0 bz}xyG" {mark 31.75 -13.5 35.0 -12.0 37.0 -12.0 40.25 -10.5 0.80812 1.0 bz}xy>" {mark 40.25 -10.5 43.5 -9.0 48.0 -6.0 48.0 0.0 0.0 1.0 bz}xy񹄟h0B" {mark 24.0 -24.0 24.0 -18.0 28.5 -15.0 31.75 -13.5 1.0 1.0 bz}xyC" {mark 31.75 -13.5 35.0 -12.0 37.0 -12.0 40.25 -10.5 1.0 1.0 bz}xy>" {mark 40.25 -10.5 43.5 -9.0 48.0 -6.0 48.0 0.0 1.0 1.0 bz}xy񹄟h0>" {mark 72.0 0.0 72.0 -6.0 76.5 -9.0 79.75 -10.5 0.0 0.0 bz}xyC" {mark 79.75 -10.5 83.0 -12.0 85.0 -12.0 88.25 -13.5 0.0 0.0 bz}xyB" {mark 88.25 -13.5 91.5 -15.0 96.0 -18.0 96.0 -24.0 0.0 0.0 bz}xy;5" {1504 10 /cm AB}xy3Ux񹄟h0>" {mark 72.0 0.0 72.0 -6.0 76.5 -9.0 79.75 -10.5 0.0 1.0 bz}xyG" {mark 79.75 -10.5 83.0 -12.0 85.0 -12.0 88.25 -13.5 0.0 0.19179 bz}xyB" {mark 88.25 -13.5 91.5 -15.0 96.0 -18.0 96.0 -24.0 0.0 0.0 bz}xyQ͟i" {1504 10 /cm AB}xyI_w0z񹄟h0>" {mark 72.0 0.0 72.0 -6.0 76.5 -9.0 79.75 -10.5 1.0 1.0 bz}xyG" {mark 79.75 -10.5 83.0 -12.0 85.0 -12.0 88.25 -13.5 0.80812 1.0 bz}xyB" {mark 88.25 -13.5 91.5 -15.0 96.0 -18.0 96.0 -24.0 0.0 1.0 bz}xy񹄟h0>" {mark 72.0 0.0 72.0 -6.0 76.5 -9.0 79.75 -10.5 1.0 1.0 bz}xyC" {mark 79.75 -10.5 83.0 -12.0 85.0 -12.0 88.25 -13.5 1.0 1.0 bz}xyB" {mark 88.25 -13.5 91.5 -15.0 96.0 -18.0 96.0 -24.0 1.0 1.0 bz}xy񹄟h0B" {mark 72.0 -24.0 72.0 -18.0 76.5 -15.0 79.75 -13.5 0.0 0.0 bz}xyC" {mark 79.75 -13.5 83.0 -12.0 85.0 -12.0 88.25 -10.5 0.0 0.0 bz}xy>" {mark 88.25 -10.5 91.5 -9.0 96.0 -6.0 96.0 0.0 0.0 0.0 bz}xyQ"='" {-3632 10 /cm AB}xyI-y񹄟h0B" {mark 72.0 -24.0 72.0 -18.0 76.5 -15.0 79.75 -13.5 0.0 1.0 bz}xyC" {mark 79.75 -13.5 83.0 -12.0 85.0 -12.0 88.25 -10.5 0.0 1.0 bz}xy>" {mark 88.25 -10.5 91.5 -9.0 96.0 -6.0 96.0 0.0 0.0 1.0 bz}xy񹄟h0B" {mark 72.0 -24.0 72.0 -18.0 76.5 -15.0 79.75 -13.5 1.0 1.0 bz}xyC" {mark 79.75 -13.5 83.0 -12.0 85.0 -12.0 88.25 -10.5 1.0 1.0 bz}xy>" {mark 88.25 -10.5 91.5 -9.0 96.0 -6.0 96.0 0.0 1.0 1.0 bz}xy񹄟h0B" {mark 120.0 0.0 120.0 -6.0 124.5 -7.5 127.75 -8.25 0.0 0.0 bz}xyE" {mark 127.75 -8.25 131.0 -9.0 133.0 -9.0 136.25 -8.25 0.0 0.0 bz}xyB" {mark 136.25 -8.25 139.5 -7.5 144.0 -6.0 144.0 0.0 0.0 0.0 bz}xy6ە" {-3744 10 /cm AB}xyy-dy񹄟h0B" {mark 120.0 0.0 120.0 -6.0 124.5 -7.5 127.75 -8.25 0.0 1.0 bz}xyE" {mark 127.75 -8.25 131.0 -9.0 133.0 -9.0 136.25 -8.25 0.0 1.0 bz}xyB" {mark 136.25 -8.25 139.5 -7.5 144.0 -6.0 144.0 0.0 0.0 1.0 bz}xy񹄟h0B" {mark 120.0 0.0 120.0 -6.0 124.5 -7.5 127.75 -8.25 1.0 1.0 bz}xyE" {mark 127.75 -8.25 131.0 -9.0 133.0 -9.0 136.25 -8.25 1.0 1.0 bz}xyB" {mark 136.25 -8.25 139.5 -7.5 144.0 -6.0 144.0 0.0 1.0 1.0 bz}xy񹄟h0G" {mark 120.0 -24.0 120.0 -18.0 124.5 -16.5 127.75 -15.75 0.0 0.0 bz}xyI" {mark 127.75 -15.75 131.0 -15.0 133.0 -15.0 136.25 -15.75 0.0 0.0 bz}xyG" {mark 136.25 -15.75 139.5 -16.5 144.0 -18.0 144.0 -24.0 0.0 0.0 bz}xykU_H" {-3744 10 /cm AB}xycXx6" {1696 10 /cm AB}xy%Xz񹄟h0G" {mark 120.0 -24.0 120.0 -18.0 124.5 -16.5 127.75 -15.75 0.0 1.0 bz}xyI" {mark 127.75 -15.75 131.0 -15.0 133.0 -15.0 136.25 -15.75 0.0 1.0 bz}xyG" {mark 136.25 -15.75 139.5 -16.5 144.0 -18.0 144.0 -24.0 0.0 1.0 bz}xy񹄟h0G" {mark 120.0 -24.0 120.0 -18.0 124.5 -16.5 127.75 -15.75 1.0 1.0 bz}xyI" {mark 127.75 -15.75 131.0 -15.0 133.0 -15.0 136.25 -15.75 1.0 1.0 bz}xyG" {mark 136.25 -15.75 139.5 -16.5 144.0 -18.0 144.0 -24.0 1.0 1.0 bz}xy񹄟h0F" {mark 192.0 -24.0 198.0 -24.0 201.0 -19.5 202.5 -16.25 0.0 0.0 bz}xyF" {mark 202.5 -16.25 204.0 -13.0 204.0 -11.0 205.5 -7.75 0.0 0.0 bz}xy@" {mark 205.5 -7.75 207.0 -4.5 210.0 0.0 216.0 0.0 0.0 0.0 bz}xyş " {3552 10 /cm AB}xyNZy񹄟h0F" {mark 192.0 -24.0 198.0 -24.0 201.0 -19.5 202.5 -16.25 0.0 1.0 bz}xyF" {mark 202.5 -16.25 204.0 -13.0 204.0 -11.0 205.5 -7.75 0.0 1.0 bz}xy@" {mark 205.5 -7.75 207.0 -4.5 210.0 0.0 216.0 0.0 0.0 1.0 bz}xy񹄟h0F" {mark 192.0 -24.0 198.0 -24.0 201.0 -19.5 202.5 -16.25 1.0 1.0 bz}xyF" {mark 202.5 -16.25 204.0 -13.0 204.0 -11.0 205.5 -7.75 1.0 1.0 bz}xy@" {mark 205.5 -7.75 207.0 -4.5 210.0 0.0 216.0 0.0 1.0 1.0 bz}xy񹄟h0F" {mark 216.0 -24.0 210.0 -24.0 207.0 -19.5 205.5 -16.25 0.0 0.0 bz}xyF" {mark 205.5 -16.25 204.0 -13.0 204.0 -11.0 202.5 -7.75 0.0 0.0 bz}xy@" {mark 202.5 -7.75 201.0 -4.5 198.0 0.0 192.0 0.0 0.0 0.0 bz}xy5" {-1584 10 /cm AB}xyʘx񹄟h0F" {mark 216.0 -24.0 210.0 -24.0 207.0 -19.5 205.5 -16.25 0.0 1.0 bz}xyJ" {mark 205.5 -16.25 204.0 -13.0 204.0 -11.0 202.5 -7.75 0.0 0.19188 bz}xy@" {mark 202.5 -7.75 201.0 -4.5 198.0 0.0 192.0 0.0 0.0 0.0 bz}xyy {" {-1584 10 /cm AB}xyeXZz񹄟h0F" {mark 216.0 -24.0 210.0 -24.0 207.0 -19.5 205.5 -16.25 1.0 1.0 bz}xyJ" {mark 205.5 -16.25 204.0 -13.0 204.0 -11.0 202.5 -7.75 0.80821 1.0 bz}xy@" {mark 202.5 -7.75 201.0 -4.5 198.0 0.0 192.0 0.0 0.0 1.0 bz}xy񹄟h0F" {mark 216.0 -24.0 210.0 -24.0 207.0 -19.5 205.5 -16.25 1.0 1.0 bz}xyF" {mark 205.5 -16.25 204.0 -13.0 204.0 -11.0 202.5 -7.75 1.0 1.0 bz}xy@" {mark 202.5 -7.75 201.0 -4.5 198.0 0.0 192.0 0.0 1.0 1.0 bz}xy񹄟h0F" {mark 240.0 -24.0 246.0 -24.0 249.0 -19.5 250.5 -16.25 0.0 0.0 bz}xyF" {mark 250.5 -16.25 252.0 -13.0 252.0 -11.0 253.5 -7.75 0.0 0.0 bz}xy@" {mark 253.5 -7.75 255.0 -4.5 258.0 0.0 264.0 0.0 0.0 0.0 bz}xyB)" {3552 10 /cm AB}xy}ʘx񹄟h0F" {mark 240.0 -24.0 246.0 -24.0 249.0 -19.5 250.5 -16.25 0.0 1.0 bz}xyJ" {mark 250.5 -16.25 252.0 -13.0 252.0 -11.0 253.5 -7.75 0.0 0.19188 bz}xy@" {mark 253.5 -7.75 255.0 -4.5 258.0 0.0 264.0 0.0 0.0 0.0 bz}xyş " {3552 10 /cm AB}xy\Zz񹄟h0F" {mark 240.0 -24.0 246.0 -24.0 249.0 -19.5 250.5 -16.25 1.0 1.0 bz}xyJ" {mark 250.5 -16.25 252.0 -13.0 252.0 -11.0 253.5 -7.75 0.80821 1.0 bz}xy@" {mark 253.5 -7.75 255.0 -4.5 258.0 0.0 264.0 0.0 0.0 1.0 bz}xy񹄟h0F" {mark 240.0 -24.0 246.0 -24.0 249.0 -19.5 250.5 -16.25 1.0 1.0 bz}xyF" {mark 250.5 -16.25 252.0 -13.0 252.0 -11.0 253.5 -7.75 1.0 1.0 bz}xy@" {mark 253.5 -7.75 255.0 -4.5 258.0 0.0 264.0 0.0 1.0 1.0 bz}xy񹄟h0F" {mark 264.0 -24.0 258.0 -24.0 255.0 -19.5 253.5 -16.25 0.0 0.0 bz}xyF" {mark 253.5 -16.25 252.0 -13.0 252.0 -11.0 250.5 -7.75 0.0 0.0 bz}xy@" {mark 250.5 -7.75 249.0 -4.5 246.0 0.0 240.0 0.0 0.0 0.0 bz}xyy {" {-1584 10 /cm AB}xy>bZy񹄟h0F" {mark 264.0 -24.0 258.0 -24.0 255.0 -19.5 253.5 -16.25 0.0 1.0 bz}xyF" {mark 253.5 -16.25 252.0 -13.0 252.0 -11.0 250.5 -7.75 0.0 1.0 bz}xy@" {mark 250.5 -7.75 249.0 -4.5 246.0 0.0 240.0 0.0 0.0 1.0 bz}xy񹄟h0F" {mark 264.0 -24.0 258.0 -24.0 255.0 -19.5 253.5 -16.25 1.0 1.0 bz}xyF" {mark 253.5 -16.25 252.0 -13.0 252.0 -11.0 250.5 -7.75 1.0 1.0 bz}xy@" {mark 250.5 -7.75 249.0 -4.5 246.0 0.0 240.0 0.0 1.0 1.0 bz}xy񹄟h0G" {mark 288.0 -24.0 294.0 -24.0 295.5 -19.5 296.25 -16.25 0.0 0.0 bz}xyH" {mark 296.25 -16.25 297.0 -13.0 297.0 -11.0 296.25 -7.75 0.0 0.0 bz}xyA" {mark 296.25 -7.75 295.5 -4.5 294.0 0.0 288.0 0.0 0.0 0.0 bz}xy," {-1696 10 /cm AB}xyScZy񹄟h0G" {mark 288.0 -24.0 294.0 -24.0 295.5 -19.5 296.25 -16.25 0.0 1.0 bz}xyH" {mark 296.25 -16.25 297.0 -13.0 297.0 -11.0 296.25 -7.75 0.0 1.0 bz}xyA" {mark 296.25 -7.75 295.5 -4.5 294.0 0.0 288.0 0.0 0.0 1.0 bz}xy񹄟h0G" {mark 288.0 -24.0 294.0 -24.0 295.5 -19.5 296.25 -16.25 1.0 1.0 bz}xyH" {mark 296.25 -16.25 297.0 -13.0 297.0 -11.0 296.25 -7.75 1.0 1.0 bz}xyA" {mark 296.25 -7.75 295.5 -4.5 294.0 0.0 288.0 0.0 1.0 1.0 bz}xy񹄟h0G" {mark 312.0 -24.0 306.0 -24.0 304.5 -19.5 303.75 -16.25 0.0 0.0 bz}xyH" {mark 303.75 -16.25 303.0 -13.0 303.0 -11.0 303.75 -7.75 0.0 0.0 bz}xyA" {mark 303.75 -7.75 304.5 -4.5 306.0 0.0 312.0 0.0 0.0 0.0 bz}xy$Y" {-1696 10 /cm AB}xyʘx&F%" {3744 10 /cm AB}xyEwz񹄟h0G" {mark 312.0 -24.0 306.0 -24.0 304.5 -19.5 303.75 -16.25 0.0 1.0 bz}xyH" {mark 303.75 -16.25 303.0 -13.0 303.0 -11.0 303.75 -7.75 0.0 1.0 bz}xyA" {mark 303.75 -7.75 304.5 -4.5 306.0 0.0 312.0 0.0 0.0 1.0 bz}xy񹄟h0G" {mark 312.0 -24.0 306.0 -24.0 304.5 -19.5 303.75 -16.25 1.0 1.0 bz}xyH" {mark 303.75 -16.25 303.0 -13.0 303.0 -11.0 303.75 -7.75 1.0 1.0 bz}xyA" {mark 303.75 -7.75 304.5 -4.5 306.0 0.0 312.0 0.0 1.0 1.0 bz}xy$vjY\vcross#Ģ+y\vcrossneg$vj^\vuncross$vjY\hcross#Ģy\hcrossneg$vj\huncross񹄟h0B" {mark 48.0 -72.0 48.0 -78.0 43.5 -81.0 40.25 -82.5 0.0 0.0 bz}xyC" {mark 40.25 -82.5 37.0 -84.0 35.0 -84.0 31.75 -85.5 0.0 0.0 bz}xyB" {mark 31.75 -85.5 28.5 -87.0 24.0 -90.0 24.0 -96.0 0.0 0.0 bz}xy \GYi" {544 10 /cm AB}xyKڟW$hy񹄟h0B" {mark 48.0 -72.0 48.0 -78.0 43.5 -81.0 40.25 -82.5 0.0 1.0 bz}xyC" {mark 40.25 -82.5 37.0 -84.0 35.0 -84.0 31.75 -85.5 0.0 1.0 bz}xyB" {mark 31.75 -85.5 28.5 -87.0 24.0 -90.0 24.0 -96.0 0.0 1.0 bz}xy񹄟h0B" {mark 48.0 -72.0 48.0 -78.0 43.5 -81.0 40.25 -82.5 1.0 1.0 bz}xyC" {mark 40.25 -82.5 37.0 -84.0 35.0 -84.0 31.75 -85.5 1.0 1.0 bz}xyB" {mark 31.75 -85.5 28.5 -87.0 24.0 -90.0 24.0 -96.0 1.0 1.0 bz}xy񹄟h0B" {mark 24.0 -72.0 24.0 -78.0 28.5 -81.0 31.75 -82.5 0.0 0.0 bz}xyC" {mark 31.75 -82.5 35.0 -84.0 37.0 -84.0 40.25 -85.5 0.0 0.0 bz}xyB" {mark 40.25 -85.5 43.5 -87.0 48.0 -90.0 48.0 -96.0 0.0 0.0 bz}xy 5J" {1504 10 /cm AB}xy Ix񹄟h0B" {mark 24.0 -72.0 24.0 -78.0 28.5 -81.0 31.75 -82.5 0.0 1.0 bz}xyG" {mark 31.75 -82.5 35.0 -84.0 37.0 -84.0 40.25 -85.5 0.0 0.19179 bz}xyB" {mark 40.25 -85.5 43.5 -87.0 48.0 -90.0 48.0 -96.0 0.0 0.0 bz}xy!͟Yi" {1504 10 /cm AB}xy#%XHz񹄟h0B" {mark 24.0 -72.0 24.0 -78.0 28.5 -81.0 31.75 -82.5 1.0 1.0 bz}xyG" {mark 31.75 -82.5 35.0 -84.0 37.0 -84.0 40.25 -85.5 0.80812 1.0 bz}xyB" {mark 40.25 -85.5 43.5 -87.0 48.0 -90.0 48.0 -96.0 0.0 1.0 bz}xy񹄟h0B" {mark 24.0 -72.0 24.0 -78.0 28.5 -81.0 31.75 -82.5 1.0 1.0 bz}xyC" {mark 31.75 -82.5 35.0 -84.0 37.0 -84.0 40.25 -85.5 1.0 1.0 bz}xyB" {mark 40.25 -85.5 43.5 -87.0 48.0 -90.0 48.0 -96.0 1.0 1.0 bz}xy񹄟h0B" {mark 96.0 -72.0 96.0 -78.0 91.5 -81.0 88.25 -82.5 0.0 0.0 bz}xyC" {mark 88.25 -82.5 85.0 -84.0 83.0 -84.0 79.75 -85.5 0.0 0.0 bz}xyB" {mark 79.75 -85.5 76.5 -87.0 72.0 -90.0 72.0 -96.0 0.0 0.0 bz}xyP=J" {544 10 /cm AB}xyH>Ix񹄟h0B" {mark 96.0 -72.0 96.0 -78.0 91.5 -81.0 88.25 -82.5 0.0 1.0 bz}xyG" {mark 88.25 -82.5 85.0 -84.0 83.0 -84.0 79.75 -85.5 0.0 0.19188 bz}xyB" {mark 79.75 -85.5 76.5 -87.0 72.0 -90.0 72.0 -96.0 0.0 0.0 bz}xy:\GYi" {544 10 /cm AB}xy3~9XHz񹄟h0B" {mark 96.0 -72.0 96.0 -78.0 91.5 -81.0 88.25 -82.5 1.0 1.0 bz}xyG" {mark 88.25 -82.5 85.0 -84.0 83.0 -84.0 79.75 -85.5 0.80821 1.0 bz}xyB" {mark 79.75 -85.5 76.5 -87.0 72.0 -90.0 72.0 -96.0 0.0 1.0 bz}xy񹄟h0B" {mark 96.0 -72.0 96.0 -78.0 91.5 -81.0 88.25 -82.5 1.0 1.0 bz}xyC" {mark 88.25 -82.5 85.0 -84.0 83.0 -84.0 79.75 -85.5 1.0 1.0 bz}xyB" {mark 79.75 -85.5 76.5 -87.0 72.0 -90.0 72.0 -96.0 1.0 1.0 bz}xy񹄟h0B" {mark 72.0 -72.0 72.0 -78.0 76.5 -81.0 79.75 -82.5 0.0 0.0 bz}xyC" {mark 79.75 -82.5 83.0 -84.0 85.0 -84.0 88.25 -85.5 0.0 0.0 bz}xyB" {mark 88.25 -85.5 91.5 -87.0 96.0 -90.0 96.0 -96.0 0.0 0.0 bz}xyQ͟Yi" {1504 10 /cm AB}xyS%W$hy񹄟h0B" {mark 72.0 -72.0 72.0 -78.0 76.5 -81.0 79.75 -82.5 0.0 1.0 bz}xyC" {mark 79.75 -82.5 83.0 -84.0 85.0 -84.0 88.25 -85.5 0.0 1.0 bz}xyB" {mark 88.25 -85.5 91.5 -87.0 96.0 -90.0 96.0 -96.0 0.0 1.0 bz}xy񹄟h0B" {mark 72.0 -72.0 72.0 -78.0 76.5 -81.0 79.75 -82.5 1.0 1.0 bz}xyC" {mark 79.75 -82.5 83.0 -84.0 85.0 -84.0 88.25 -85.5 1.0 1.0 bz}xyB" {mark 88.25 -85.5 91.5 -87.0 96.0 -90.0 96.0 -96.0 1.0 1.0 bz}xy񹄟h0E" {mark 144.0 -72.0 144.0 -75.0 141.0 -78.0 139.5 -80.5 0.0 0.0 bz}xyE" {mark 139.5 -80.5 138.0 -83.0 138.0 -85.0 139.5 -87.5 0.0 0.0 bz}xyE" {mark 139.5 -87.5 141.0 -90.0 144.0 -93.0 144.0 -96.0 0.0 0.0 bz}xy Z:" {1712 10 /cm AB}xyPVy񹄟h0E" {mark 144.0 -72.0 144.0 -75.0 141.0 -78.0 139.5 -80.5 0.0 1.0 bz}xyE" {mark 139.5 -80.5 138.0 -83.0 138.0 -85.0 139.5 -87.5 0.0 1.0 bz}xyE" {mark 139.5 -87.5 141.0 -90.0 144.0 -93.0 144.0 -96.0 0.0 1.0 bz}xy񹄟h0E" {mark 144.0 -72.0 144.0 -75.0 141.0 -78.0 139.5 -80.5 1.0 1.0 bz}xyE" {mark 139.5 -80.5 138.0 -83.0 138.0 -85.0 139.5 -87.5 1.0 1.0 bz}xyE" {mark 139.5 -87.5 141.0 -90.0 144.0 -93.0 144.0 -96.0 1.0 1.0 bz}xy񹄟h0E" {mark 120.0 -72.0 120.0 -75.0 123.0 -78.0 124.5 -80.5 0.0 0.0 bz}xyE" {mark 124.5 -80.5 126.0 -83.0 126.0 -85.0 124.5 -87.5 0.0 0.0 bz}xyE" {mark 124.5 -87.5 123.0 -90.0 120.0 -93.0 120.0 -96.0 0.0 0.0 bz}xykJ<*" {1712 10 /cm AB}xyn# GxjZ=," {344 10 /cm AB}xyn# ^Bz񹄟h0E" {mark 120.0 -72.0 120.0 -75.0 123.0 -78.0 124.5 -80.5 0.0 1.0 bz}xyE" {mark 124.5 -80.5 126.0 -83.0 126.0 -85.0 124.5 -87.5 0.0 1.0 bz}xyE" {mark 124.5 -87.5 123.0 -90.0 120.0 -93.0 120.0 -96.0 0.0 1.0 bz}xy񹄟h0E" {mark 120.0 -72.0 120.0 -75.0 123.0 -78.0 124.5 -80.5 1.0 1.0 bz}xyE" {mark 124.5 -80.5 126.0 -83.0 126.0 -85.0 124.5 -87.5 1.0 1.0 bz}xyE" {mark 124.5 -87.5 123.0 -90.0 120.0 -93.0 120.0 -96.0 1.0 1.0 bz}xy񹄟h0F" {mark 192.0 -72.0 198.0 -72.0 201.0 -76.5 202.5 -79.75 0.0 0.0 bz}xyG" {mark 202.5 -79.75 204.0 -83.0 204.0 -85.0 205.5 -88.25 0.0 0.0 bz}xyF" {mark 205.5 -88.25 207.0 -91.5 210.0 -96.0 216.0 -96.0 0.0 0.0 bz}xyş\q" {2592 10 /cm AB}xyd bʘy񹄟h0F" {mark 192.0 -72.0 198.0 -72.0 201.0 -76.5 202.5 -79.75 0.0 1.0 bz}xyG" {mark 202.5 -79.75 204.0 -83.0 204.0 -85.0 205.5 -88.25 0.0 1.0 bz}xyF" {mark 205.5 -88.25 207.0 -91.5 210.0 -96.0 216.0 -96.0 0.0 1.0 bz}xy񹄟h0F" {mark 192.0 -72.0 198.0 -72.0 201.0 -76.5 202.5 -79.75 1.0 1.0 bz}xyG" {mark 202.5 -79.75 204.0 -83.0 204.0 -85.0 205.5 -88.25 1.0 1.0 bz}xyF" {mark 205.5 -88.25 207.0 -91.5 210.0 -96.0 216.0 -96.0 1.0 1.0 bz}xy񹄟h0F" {mark 192.0 -96.0 198.0 -96.0 201.0 -91.5 202.5 -88.25 0.0 0.0 bz}xyG" {mark 202.5 -88.25 204.0 -85.0 204.0 -83.0 205.5 -79.75 0.0 0.0 bz}xyF" {mark 205.5 -79.75 207.0 -76.5 210.0 -72.0 216.0 -72.0 0.0 0.0 bz}xyB[)" {3552 10 /cm AB}xyoYXx񹄟h0F" {mark 192.0 -96.0 198.0 -96.0 201.0 -91.5 202.5 -88.25 0.0 1.0 bz}xyK" {mark 202.5 -88.25 204.0 -85.0 204.0 -83.0 205.5 -79.75 0.0 0.19188 bz}xyF" {mark 205.5 -79.75 207.0 -76.5 210.0 -72.0 216.0 -72.0 0.0 0.0 bz}xyşF " {3552 10 /cm AB}xyCwz񹄟h0F" {mark 192.0 -96.0 198.0 -96.0 201.0 -91.5 202.5 -88.25 1.0 1.0 bz}xyK" {mark 202.5 -88.25 204.0 -85.0 204.0 -83.0 205.5 -79.75 0.80821 1.0 bz}xyF" {mark 205.5 -79.75 207.0 -76.5 210.0 -72.0 216.0 -72.0 0.0 1.0 bz}xy񹄟h0F" {mark 192.0 -96.0 198.0 -96.0 201.0 -91.5 202.5 -88.25 1.0 1.0 bz}xyG" {mark 202.5 -88.25 204.0 -85.0 204.0 -83.0 205.5 -79.75 1.0 1.0 bz}xyF" {mark 205.5 -79.75 207.0 -76.5 210.0 -72.0 216.0 -72.0 1.0 1.0 bz}xy񹄟h0F" {mark 240.0 -72.0 246.0 -72.0 249.0 -76.5 250.5 -79.75 0.0 0.0 bz}xyG" {mark 250.5 -79.75 252.0 -83.0 252.0 -85.0 253.5 -88.25 0.0 0.0 bz}xyF" {mark 253.5 -88.25 255.0 -91.5 258.0 -96.0 264.0 -96.0 0.0 0.0 bz}xyBF3" {2592 10 /cm AB}xyoLZx񹄟h0F" {mark 240.0 -72.0 246.0 -72.0 249.0 -76.5 250.5 -79.75 0.0 1.0 bz}xyK" {mark 250.5 -79.75 252.0 -83.0 252.0 -85.0 253.5 -88.25 0.0 0.19179 bz}xyF" {mark 253.5 -88.25 255.0 -91.5 258.0 -96.0 264.0 -96.0 0.0 0.0 bz}xyş\q" {2592 10 /cm AB}xybʘz񹄟h0F" {mark 240.0 -72.0 246.0 -72.0 249.0 -76.5 250.5 -79.75 1.0 1.0 bz}xyK" {mark 250.5 -79.75 252.0 -83.0 252.0 -85.0 253.5 -88.25 0.80812 1.0 bz}xyF" {mark 253.5 -88.25 255.0 -91.5 258.0 -96.0 264.0 -96.0 0.0 1.0 bz}xy񹄟h0F" {mark 240.0 -72.0 246.0 -72.0 249.0 -76.5 250.5 -79.75 1.0 1.0 bz}xyG" {mark 250.5 -79.75 252.0 -83.0 252.0 -85.0 253.5 -88.25 1.0 1.0 bz}xyF" {mark 253.5 -88.25 255.0 -91.5 258.0 -96.0 264.0 -96.0 1.0 1.0 bz}xy񹄟h0F" {mark 240.0 -96.0 246.0 -96.0 249.0 -91.5 250.5 -88.25 0.0 0.0 bz}xyG" {mark 250.5 -88.25 252.0 -85.0 252.0 -83.0 253.5 -79.75 0.0 0.0 bz}xyF" {mark 253.5 -79.75 255.0 -76.5 258.0 -72.0 264.0 -72.0 0.0 0.0 bz}xyşF " {3552 10 /cm AB}xyd AZy񹄟h0F" {mark 240.0 -96.0 246.0 -96.0 249.0 -91.5 250.5 -88.25 0.0 1.0 bz}xyG" {mark 250.5 -88.25 252.0 -85.0 252.0 -83.0 253.5 -79.75 0.0 1.0 bz}xyF" {mark 253.5 -79.75 255.0 -76.5 258.0 -72.0 264.0 -72.0 0.0 1.0 bz}xy񹄟h0F" {mark 240.0 -96.0 246.0 -96.0 249.0 -91.5 250.5 -88.25 1.0 1.0 bz}xyG" {mark 250.5 -88.25 252.0 -85.0 252.0 -83.0 253.5 -79.75 1.0 1.0 bz}xyF" {mark 253.5 -79.75 255.0 -76.5 258.0 -72.0 264.0 -72.0 1.0 1.0 bz}xy񹄟h0E" {mark 288.0 -72.0 291.0 -72.0 294.0 -75.0 296.5 -76.5 0.0 0.0 bz}xyE" {mark 296.5 -76.5 299.0 -78.0 301.0 -78.0 303.5 -76.5 0.0 0.0 bz}xyE" {mark 303.5 -76.5 306.0 -75.0 309.0 -72.0 312.0 -72.0 0.0 0.0 bz}xy&FE?" {3752 10 /cm AB}xyuBC~y񹄟h0E" {mark 288.0 -72.0 291.0 -72.0 294.0 -75.0 296.5 -76.5 0.0 1.0 bz}xyE" {mark 296.5 -76.5 299.0 -78.0 301.0 -78.0 303.5 -76.5 0.0 1.0 bz}xyE" {mark 303.5 -76.5 306.0 -75.0 309.0 -72.0 312.0 -72.0 0.0 1.0 bz}xy񹄟h0E" {mark 288.0 -72.0 291.0 -72.0 294.0 -75.0 296.5 -76.5 1.0 1.0 bz}xyE" {mark 296.5 -76.5 299.0 -78.0 301.0 -78.0 303.5 -76.5 1.0 1.0 bz}xyE" {mark 303.5 -76.5 306.0 -75.0 309.0 -72.0 312.0 -72.0 1.0 1.0 bz}xy񹄟h0E" {mark 288.0 -96.0 291.0 -96.0 294.0 -93.0 296.5 -91.5 0.0 0.0 bz}xyE" {mark 296.5 -91.5 299.0 -90.0 301.0 -90.0 303.5 -91.5 0.0 0.0 bz}xyE" {mark 303.5 -91.5 306.0 -93.0 309.0 -96.0 312.0 -96.0 0.0 0.0 bz}xy[r6" {3752 10 /cm AB}xyfXx&\" {2384 10 /cm AB}xy'@Xz񹄟h0E" {mark 288.0 -96.0 291.0 -96.0 294.0 -93.0 296.5 -91.5 0.0 1.0 bz}xyE" {mark 296.5 -91.5 299.0 -90.0 301.0 -90.0 303.5 -91.5 0.0 1.0 bz}xyE" {mark 303.5 -91.5 306.0 -93.0 309.0 -96.0 312.0 -96.0 0.0 1.0 bz}xy񹄟h0E" {mark 288.0 -96.0 291.0 -96.0 294.0 -93.0 296.5 -91.5 1.0 1.0 bz}xyE" {mark 296.5 -91.5 299.0 -90.0 301.0 -90.0 303.5 -91.5 1.0 1.0 bz}xyE" {mark 303.5 -91.5 306.0 -93.0 309.0 -96.0 312.0 -96.0 1.0 1.0 bz}xylvjY\vtwistkĢ+y\vtwistneglvj^\vuntwistlvjY\htwistkĢy\htwistneglvj\huntwist񹄟h08" {mark 24.0 -168.0 36.0 -156.0 48.0 -144.0 0.0 0.0 q}xyk0" {0 10 /cm AB}xy! ry񹄟h08" {mark 24.0 -168.0 36.0 -156.0 48.0 -144.0 0.0 1.0 q}xy񹄟h08" {mark 24.0 -168.0 36.0 -156.0 48.0 -144.0 1.0 1.0 q}xy񹄟h08" {mark 48.0 -168.0 36.0 -156.0 24.0 -144.0 0.0 0.0 q}xy0" {2048 10 /cm AB}xyrx񹄟h0<" {mark 48.0 -168.0 36.0 -156.0 24.0 -144.0 0.0 0.39584 q}xyՌ0" {2048 10 /cm AB}xy֠@z񹄟h0<" {mark 48.0 -168.0 36.0 -156.0 24.0 -144.0 0.60416 1.0 q}xy񹄟h08" {mark 48.0 -168.0 36.0 -156.0 24.0 -144.0 1.0 1.0 q}xy񹄟h08" {mark 72.0 -168.0 84.0 -156.0 96.0 -144.0 0.0 0.0 q}xyMk0" {0 10 /cm AB}xyQ rx񹄟h0<" {mark 72.0 -168.0 84.0 -156.0 96.0 -144.0 0.0 0.39584 q}xy<0" {0 10 /cm AB}xy@R@z񹄟h0<" {mark 72.0 -168.0 84.0 -156.0 96.0 -144.0 0.60416 1.0 q}xy񹄟h08" {mark 72.0 -168.0 84.0 -156.0 96.0 -144.0 1.0 1.0 q}xy񹄟h08" {mark 96.0 -168.0 84.0 -156.0 72.0 -144.0 0.0 0.0 q}xy>0" {2048 10 /cm AB}xy5wry񹄟h08" {mark 96.0 -168.0 84.0 -156.0 72.0 -144.0 0.0 1.0 q}xy񹄟h08" {mark 96.0 -168.0 84.0 -156.0 72.0 -144.0 1.0 1.0 q}xy񹄟h0;" {mark 144.0 -168.0 132.0 -156.0 144.0 -144.0 0.0 0.0 q}xy}`" {411 10 /cm AB}xy⩠oy񹄟h0;" {mark 144.0 -168.0 132.0 -156.0 144.0 -144.0 0.0 1.0 q}xy񹄟h0;" {mark 144.0 -168.0 132.0 -156.0 144.0 -144.0 1.0 1.0 q}xy񹄟h0;" {mark 120.0 -168.0 132.0 -156.0 120.0 -144.0 0.0 0.0 q}xyn" {1640 10 /cm AB}xypa[xm w" {411 10 /cm AB}xypa'z񹄟h0;" {mark 120.0 -168.0 132.0 -156.0 120.0 -144.0 0.0 1.0 q}xy񹄟h0;" {mark 120.0 -168.0 132.0 -156.0 120.0 -144.0 1.0 1.0 q}xy񹄟h0;" {mark 216.0 -168.0 204.0 -156.0 192.0 -144.0 0.0 0.0 q}xy0" {2048 10 /cm AB}xywry񹄟h0;" {mark 216.0 -168.0 204.0 -156.0 192.0 -144.0 0.0 1.0 q}xy񹄟h0;" {mark 216.0 -168.0 204.0 -156.0 192.0 -144.0 1.0 1.0 q}xy񹄟h0;" {mark 216.0 -144.0 204.0 -156.0 192.0 -168.0 0.0 0.0 q}xy(" {-4096 10 /cm AB}xyR@x񹄟h0?" {mark 216.0 -144.0 204.0 -156.0 192.0 -168.0 0.0 0.39584 q}xyՌL(" {-4096 10 /cm AB}xy rz񹄟h0?" {mark 216.0 -144.0 204.0 -156.0 192.0 -168.0 0.60416 1.0 q}xy񹄟h0;" {mark 216.0 -144.0 204.0 -156.0 192.0 -168.0 1.0 1.0 q}xy񹄟h0;" {mark 264.0 -168.0 252.0 -156.0 240.0 -144.0 0.0 0.0 q}xy0" {2048 10 /cm AB}xy݉rx񹄟h0?" {mark 264.0 -168.0 252.0 -156.0 240.0 -144.0 0.0 0.39584 q}xyՌ0" {2048 10 /cm AB}xy֠@z񹄟h0?" {mark 264.0 -168.0 252.0 -156.0 240.0 -144.0 0.60416 1.0 q}xy񹄟h0;" {mark 264.0 -168.0 252.0 -156.0 240.0 -144.0 1.0 1.0 q}xy񹄟h0;" {mark 264.0 -144.0 252.0 -156.0 240.0 -168.0 0.0 0.0 q}xyՌL(" {-4096 10 /cm AB}xy ry񹄟h0;" {mark 264.0 -144.0 252.0 -156.0 240.0 -168.0 0.0 1.0 q}xy񹄟h0;" {mark 264.0 -144.0 252.0 -156.0 240.0 -168.0 1.0 1.0 q}xy񹄟h0;" {mark 312.0 -144.0 300.0 -156.0 288.0 -144.0 0.0 0.0 q}xy%$]" {3685 10 /cm AB}xyy񹄟h0;" {mark 312.0 -144.0 300.0 -156.0 288.0 -144.0 0.0 1.0 q}xy񹄟h0;" {mark 312.0 -144.0 300.0 -156.0 288.0 -144.0 1.0 1.0 q}xy񹄟h0;" {mark 312.0 -168.0 300.0 -156.0 288.0 -168.0 0.0 0.0 q}xyb$" {3685 10 /cm AB}xy֠Ux%$" {2456 10 /cm AB}xy%$Uz񹄟h0;" {mark 312.0 -168.0 300.0 -156.0 288.0 -168.0 0.0 1.0 q}xy񹄟h0;" {mark 312.0 -168.0 300.0 -156.0 288.0 -168.0 1.0 1.0 q}xyvjY\xovervvj0\xundervvj^\xunovervvjY\xoverhvjع\xunderhvj\xunoverh񹄟h0G" {mark 24.0 -216.0 30.0 -216.0 34.5 -217.5 37.75 -219.25 0.0 0.0 bz}xyI" {mark 37.75 -219.25 41.0 -221.0 43.0 -223.0 44.75 -226.25 0.0 0.0 bz}xyG" {mark 44.75 -226.25 46.5 -229.5 48.0 -234.0 48.0 -240.0 0.0 0.0 bz}xy ,r" {1376 10 /cm AB}xy#_:)y񹄟h0G" {mark 24.0 -216.0 30.0 -216.0 34.5 -217.5 37.75 -219.25 0.0 1.0 bz}xyI" {mark 37.75 -219.25 41.0 -221.0 43.0 -223.0 44.75 -226.25 0.0 1.0 bz}xyG" {mark 44.75 -226.25 46.5 -229.5 48.0 -234.0 48.0 -240.0 0.0 1.0 bz}xy񹄟h0G" {mark 24.0 -216.0 30.0 -216.0 34.5 -217.5 37.75 -219.25 1.0 1.0 bz}xyI" {mark 37.75 -219.25 41.0 -221.0 43.0 -223.0 44.75 -226.25 1.0 1.0 bz}xyG" {mark 44.75 -226.25 46.5 -229.5 48.0 -234.0 48.0 -240.0 1.0 1.0 bz}xy񹄟h0G" {mark 24.0 -240.0 24.0 -234.0 25.5 -229.5 27.25 -226.25 0.0 0.0 bz}xyI" {mark 27.25 -226.25 29.0 -223.0 31.0 -221.0 34.25 -219.25 0.0 0.0 bz}xyG" {mark 34.25 -219.25 37.5 -217.5 42.0 -216.0 48.0 -216.0 0.0 0.0 bz}xy fS:J" {-3424 10 /cm AB}xyJ4Ex񹄟h0G" {mark 24.0 -240.0 24.0 -234.0 25.5 -229.5 27.25 -226.25 0.0 1.0 bz}xyM" {mark 27.25 -226.25 29.0 -223.0 31.0 -221.0 34.25 -219.25 0.0 0.92865 bz}xyG" {mark 34.25 -219.25 37.5 -217.5 42.0 -216.0 48.0 -216.0 0.0 0.0 bz}xyҠ՟" {3220 10 /cm AB}xy&Ez񹄟h0G" {mark 24.0 -240.0 24.0 -234.0 25.5 -229.5 27.25 -226.25 1.0 1.0 bz}xyI" {mark 27.25 -226.25 29.0 -223.0 31.0 -221.0 34.25 -219.25 1.0 1.0 bz}xyJ" {mark 34.25 -219.25 37.5 -217.5 42.0 -216.0 48.0 -216.0 0.3849 1.0 bz}xy񹄟h0G" {mark 24.0 -240.0 24.0 -234.0 25.5 -229.5 27.25 -226.25 1.0 1.0 bz}xyI" {mark 27.25 -226.25 29.0 -223.0 31.0 -221.0 34.25 -219.25 1.0 1.0 bz}xyG" {mark 34.25 -219.25 37.5 -217.5 42.0 -216.0 48.0 -216.0 1.0 1.0 bz}xy񹄟h0G" {mark 72.0 -216.0 78.0 -216.0 82.5 -217.5 85.75 -219.25 0.0 0.0 bz}xyI" {mark 85.75 -219.25 89.0 -221.0 91.0 -223.0 92.75 -226.25 0.0 0.0 bz}xyG" {mark 92.75 -226.25 94.5 -229.5 96.0 -234.0 96.0 -240.0 0.0 0.0 bz}xy?" {2916 10 /cm AB}xy=(Ex񹄟h0J" {mark 72.0 -216.0 78.0 -216.0 82.5 -217.5 85.75 -219.25 0.0 0.6151 bz}xyI" {mark 85.75 -219.25 89.0 -221.0 91.0 -223.0 92.75 -226.25 0.0 0.0 bz}xyG" {mark 92.75 -226.25 94.5 -229.5 96.0 -234.0 96.0 -240.0 0.0 0.0 bz}xyP,r" {1376 10 /cm AB}xyS_Ez񹄟h0G" {mark 72.0 -216.0 78.0 -216.0 82.5 -217.5 85.75 -219.25 1.0 1.0 bz}xyL" {mark 85.75 -219.25 89.0 -221.0 91.0 -223.0 92.75 -226.25 0.0714 1.0 bz}xyG" {mark 92.75 -226.25 94.5 -229.5 96.0 -234.0 96.0 -240.0 0.0 1.0 bz}xy񹄟h0G" {mark 72.0 -216.0 78.0 -216.0 82.5 -217.5 85.75 -219.25 1.0 1.0 bz}xyI" {mark 85.75 -219.25 89.0 -221.0 91.0 -223.0 92.75 -226.25 1.0 1.0 bz}xyG" {mark 92.75 -226.25 94.5 -229.5 96.0 -234.0 96.0 -240.0 1.0 1.0 bz}xy񹄟h0G" {mark 72.0 -240.0 72.0 -234.0 73.5 -229.5 75.25 -226.25 0.0 0.0 bz}xyI" {mark 75.25 -226.25 77.0 -223.0 79.0 -221.0 82.25 -219.25 0.0 0.0 bz}xyG" {mark 82.25 -219.25 85.5 -217.5 90.0 -216.0 96.0 -216.0 0.0 0.0 bz}xy;fS:J" {-3424 10 /cm AB}xy3:)y񹄟h0G" {mark 72.0 -240.0 72.0 -234.0 73.5 -229.5 75.25 -226.25 0.0 1.0 bz}xyI" {mark 75.25 -226.25 77.0 -223.0 79.0 -221.0 82.25 -219.25 0.0 1.0 bz}xyG" {mark 82.25 -219.25 85.5 -217.5 90.0 -216.0 96.0 -216.0 0.0 1.0 bz}xy񹄟h0G" {mark 72.0 -240.0 72.0 -234.0 73.5 -229.5 75.25 -226.25 1.0 1.0 bz}xyI" {mark 75.25 -226.25 77.0 -223.0 79.0 -221.0 82.25 -219.25 1.0 1.0 bz}xyG" {mark 82.25 -219.25 85.5 -217.5 90.0 -216.0 96.0 -216.0 1.0 1.0 bz}xy񹄟h0Q" {mark 120.0 -216.0 126.0 -216.0 129.0 -218.10004 132.0 -218.10004 0.0 0.0 bz}xyQ" {mark 132.0 -218.10004 135.0 -218.10004 138.0 -216.0 144.0 -216.0 0.0 0.0 bz}xy|vG" {3328 10 /cm AB}xyx7ї&y񹄟h0Q" {mark 120.0 -216.0 126.0 -216.0 129.0 -218.10004 132.0 -218.10004 0.0 1.0 bz}xyQ" {mark 132.0 -218.10004 135.0 -218.10004 138.0 -216.0 144.0 -216.0 0.0 1.0 bz}xy񹄟h0Q" {mark 120.0 -216.0 126.0 -216.0 129.0 -218.10004 132.0 -218.10004 1.0 1.0 bz}xyQ" {mark 132.0 -218.10004 135.0 -218.10004 138.0 -216.0 144.0 -216.0 1.0 1.0 bz}xy񹄟h0N" {mark 120.0 -240.0 120.0 -234.0 121.5 -231.0 123.75 -228.70001 0.0 0.0 bz}xyZ" {mark 123.75 -228.70001 126.0 -226.40002 129.0 -224.80005 132.0 -224.80005 0.0 0.0 bz}xyZ" {mark 132.0 -224.80005 135.0 -224.80005 138.0 -226.40002 140.25 -228.70001 0.0 0.0 bz}xyN" {mark 140.25 -228.70001 142.5 -231.0 144.0 -234.0 144.0 -240.0 0.0 0.0 bz}xyju" {-3360 10 /cm AB}xybxRʠvM" {1301 10 /cm AB}xy zz񹄟h0N" {mark 120.0 -240.0 120.0 -234.0 121.5 -231.0 123.75 -228.70001 0.0 1.0 bz}xyZ" {mark 123.75 -228.70001 126.0 -226.40002 129.0 -224.80005 132.0 -224.80005 0.0 1.0 bz}xyZ" {mark 132.0 -224.80005 135.0 -224.80005 138.0 -226.40002 140.25 -228.70001 0.0 1.0 bz}xyN" {mark 140.25 -228.70001 142.5 -231.0 144.0 -234.0 144.0 -240.0 0.0 1.0 bz}xy񹄟h0N" {mark 120.0 -240.0 120.0 -234.0 121.5 -231.0 123.75 -228.70001 1.0 1.0 bz}xyZ" {mark 123.75 -228.70001 126.0 -226.40002 129.0 -224.80005 132.0 -224.80005 1.0 1.0 bz}xyZ" {mark 132.0 -224.80005 135.0 -224.80005 138.0 -226.40002 140.25 -228.70001 1.0 1.0 bz}xyN" {mark 140.25 -228.70001 142.5 -231.0 144.0 -234.0 144.0 -240.0 1.0 1.0 bz}xy񹄟h0K" {mark 192.0 -240.0 192.0 -234.0 193.5 -229.5 195.25 -226.25 0.0 0.0 bz}xyM" {mark 195.25 -226.25 197.0 -223.0 199.0 -221.0 202.25 -219.25 0.0 0.0 bz}xyK" {mark 202.25 -219.25 205.5 -217.5 210.0 -216.0 216.0 -216.0 0.0 0.0 bz}xyoΠn" {3413 10 /cm AB}xy~Π3y񹄟h0K" {mark 192.0 -240.0 192.0 -234.0 193.5 -229.5 195.25 -226.25 0.0 1.0 bz}xyM" {mark 195.25 -226.25 197.0 -223.0 199.0 -221.0 202.25 -219.25 0.0 1.0 bz}xyK" {mark 202.25 -219.25 205.5 -217.5 210.0 -216.0 216.0 -216.0 0.0 1.0 bz}xy񹄟h0K" {mark 192.0 -240.0 192.0 -234.0 193.5 -229.5 195.25 -226.25 1.0 1.0 bz}xyM" {mark 195.25 -226.25 197.0 -223.0 199.0 -221.0 202.25 -219.25 1.0 1.0 bz}xyK" {mark 202.25 -219.25 205.5 -217.5 210.0 -216.0 216.0 -216.0 1.0 1.0 bz}xy񹄟h0K" {mark 216.0 -240.0 210.0 -240.0 205.5 -238.5 202.25 -236.75 0.0 0.0 bz}xyM" {mark 202.25 -236.75 199.0 -235.0 197.0 -233.0 195.25 -229.75 0.0 0.0 bz}xyK" {mark 195.25 -229.75 193.5 -226.5 192.0 -222.0 192.0 -216.0 0.0 0.0 bz}xyh" {-1365 10 /cm AB}xyL6gx񹄟h0K" {mark 216.0 -240.0 210.0 -240.0 205.5 -238.5 202.25 -236.75 0.0 1.0 bz}xyQ" {mark 202.25 -236.75 199.0 -235.0 197.0 -233.0 195.25 -229.75 0.0 0.92865 bz}xyK" {mark 195.25 -229.75 193.5 -226.5 192.0 -222.0 192.0 -216.0 0.0 0.0 bz}xyk" {-2924 10 /cm AB}xysz񹄟h0K" {mark 216.0 -240.0 210.0 -240.0 205.5 -238.5 202.25 -236.75 1.0 1.0 bz}xyM" {mark 202.25 -236.75 199.0 -235.0 197.0 -233.0 195.25 -229.75 1.0 1.0 bz}xyN" {mark 195.25 -229.75 193.5 -226.5 192.0 -222.0 192.0 -216.0 0.3849 1.0 bz}xy񹄟h0K" {mark 216.0 -240.0 210.0 -240.0 205.5 -238.5 202.25 -236.75 1.0 1.0 bz}xyM" {mark 202.25 -236.75 199.0 -235.0 197.0 -233.0 195.25 -229.75 1.0 1.0 bz}xyK" {mark 195.25 -229.75 193.5 -226.5 192.0 -222.0 192.0 -216.0 1.0 1.0 bz}xy񹄟h0K" {mark 240.0 -240.0 240.0 -234.0 241.5 -229.5 243.25 -226.25 0.0 0.0 bz}xyM" {mark 243.25 -226.25 245.0 -223.0 247.0 -221.0 250.25 -219.25 0.0 0.0 bz}xyK" {mark 250.25 -219.25 253.5 -217.5 258.0 -216.0 264.0 -216.0 0.0 0.0 bz}xy@!j" {-3228 10 /cm AB}xyOhGx񹄟h0N" {mark 240.0 -240.0 240.0 -234.0 241.5 -229.5 243.25 -226.25 0.0 0.6151 bz}xyM" {mark 243.25 -226.25 245.0 -223.0 247.0 -221.0 250.25 -219.25 0.0 0.0 bz}xyK" {mark 250.25 -219.25 253.5 -217.5 258.0 -216.0 264.0 -216.0 0.0 0.0 bz}xyoΠn" {3413 10 /cm AB}xygz񹄟h0K" {mark 240.0 -240.0 240.0 -234.0 241.5 -229.5 243.25 -226.25 1.0 1.0 bz}xyP" {mark 243.25 -226.25 245.0 -223.0 247.0 -221.0 250.25 -219.25 0.0714 1.0 bz}xyK" {mark 250.25 -219.25 253.5 -217.5 258.0 -216.0 264.0 -216.0 0.0 1.0 bz}xy񹄟h0K" {mark 240.0 -240.0 240.0 -234.0 241.5 -229.5 243.25 -226.25 1.0 1.0 bz}xyM" {mark 243.25 -226.25 245.0 -223.0 247.0 -221.0 250.25 -219.25 1.0 1.0 bz}xyK" {mark 250.25 -219.25 253.5 -217.5 258.0 -216.0 264.0 -216.0 1.0 1.0 bz}xy񹄟h0K" {mark 264.0 -240.0 258.0 -240.0 253.5 -238.5 250.25 -236.75 0.0 0.0 bz}xyM" {mark 250.25 -236.75 247.0 -235.0 245.0 -233.0 243.25 -229.75 0.0 0.0 bz}xyK" {mark 243.25 -229.75 241.5 -226.5 240.0 -222.0 240.0 -216.0 0.0 0.0 bz}xyh" {-1365 10 /cm AB}xy~Πgy񹄟h0K" {mark 264.0 -240.0 258.0 -240.0 253.5 -238.5 250.25 -236.75 0.0 1.0 bz}xyM" {mark 250.25 -236.75 247.0 -235.0 245.0 -233.0 243.25 -229.75 0.0 1.0 bz}xyK" {mark 243.25 -229.75 241.5 -226.5 240.0 -222.0 240.0 -216.0 0.0 1.0 bz}xy񹄟h0K" {mark 264.0 -240.0 258.0 -240.0 253.5 -238.5 250.25 -236.75 1.0 1.0 bz}xyM" {mark 250.25 -236.75 247.0 -235.0 245.0 -233.0 243.25 -229.75 1.0 1.0 bz}xyK" {mark 243.25 -229.75 241.5 -226.5 240.0 -222.0 240.0 -216.0 1.0 1.0 bz}xy񹄟h0Q" {mark 288.0 -240.0 288.0 -234.0 290.10004 -231.0 290.10004 -228.0 0.0 0.0 bz}xyQ" {mark 290.10004 -228.0 290.10004 -225.0 288.0 -222.0 288.0 -216.0 0.0 0.0 bz}xy8cB" {-2816 10 /cm AB}xy ݭay񹄟h0Q" {mark 288.0 -240.0 288.0 -234.0 290.10004 -231.0 290.10004 -228.0 0.0 1.0 bz}xyQ" {mark 290.10004 -228.0 290.10004 -225.0 288.0 -222.0 288.0 -216.0 0.0 1.0 bz}xy񹄟h0Q" {mark 288.0 -240.0 288.0 -234.0 290.10004 -231.0 290.10004 -228.0 1.0 1.0 bz}xyQ" {mark 290.10004 -228.0 290.10004 -225.0 288.0 -222.0 288.0 -216.0 1.0 1.0 bz}xy񹄟h0N" {mark 312.0 -240.0 306.0 -240.0 303.0 -238.5 300.70001 -236.25 0.0 0.0 bz}xyZ" {mark 300.70001 -236.25 298.40002 -234.0 296.80005 -231.0 296.80005 -228.0 0.0 0.0 bz}xyZ" {mark 296.80005 -228.0 296.80005 -225.0 298.40002 -222.0 300.70001 -219.75 0.0 0.0 bz}xyN" {mark 300.70001 -219.75 303.0 -217.5 306.0 -216.0 312.0 -216.0 0.0 0.0 bz}xy"~" {-1291 10 /cm AB}xy |-x$ɑ)" {3339 10 /cm AB}xy SAz񹄟h0N" {mark 312.0 -240.0 306.0 -240.0 303.0 -238.5 300.70001 -236.25 0.0 1.0 bz}xyZ" {mark 300.70001 -236.25 298.40002 -234.0 296.80005 -231.0 296.80005 -228.0 0.0 1.0 bz}xyZ" {mark 296.80005 -228.0 296.80005 -225.0 298.40002 -222.0 300.70001 -219.75 0.0 1.0 bz}xyN" {mark 300.70001 -219.75 303.0 -217.5 306.0 -216.0 312.0 -216.0 0.0 1.0 bz}xy񹄟h0N" {mark 312.0 -240.0 306.0 -240.0 303.0 -238.5 300.70001 -236.25 1.0 1.0 bz}xyZ" {mark 300.70001 -236.25 298.40002 -234.0 296.80005 -231.0 296.80005 -228.0 1.0 1.0 bz}xyZ" {mark 296.80005 -228.0 296.80005 -225.0 298.40002 -222.0 300.70001 -219.75 1.0 1.0 bz}xyN" {mark 300.70001 -219.75 303.0 -217.5 306.0 -216.0 312.0 -216.0 1.0 1.0 bz}xyvj\vovervj3Y\vundervj`\vunovervj\hovervjY\hundervj\hunoverfg>Figuref3.8:knotcrossingswithorien!tationsandlabMelpositions8)`ฟ3Ѝps: SDict begin xyc end>4! h0:" {mark 0.0 0.0 0.0 18.0 -3.0 24.0 -6.5 27.0 0.0 0.0 bz}xy@" {mark -6.5 27.0 -10.0 30.0 -14.0 30.0 -17.5 27.0 0.0 0.0 bz}xy@" {mark -17.5 27.0 -21.0 24.0 -24.0 18.0 -24.0 0.0 0.0 0.0 bz}xy!s" {-2984 10 /cm AB}xy$dx(0" {-1024 10 /cm AB}xyۙy 2Οx" {935 10 /cm AB}xyDz! h0:" {mark 0.0 0.0 0.0 18.0 -3.0 24.0 -6.5 27.0 0.0 1.0 bz}xy@" {mark -6.5 27.0 -10.0 30.0 -14.0 30.0 -17.5 27.0 0.0 1.0 bz}xy@" {mark -17.5 27.0 -21.0 24.0 -24.0 18.0 -24.0 0.0 0.0 1.0 bz}xy! h0:" {mark 0.0 0.0 0.0 18.0 -3.0 24.0 -6.5 27.0 1.0 1.0 bz}xy@" {mark -6.5 27.0 -10.0 30.0 -14.0 30.0 -17.5 27.0 1.0 1.0 bz}xy@" {mark -17.5 27.0 -21.0 24.0 -24.0 18.0 -24.0 0.0 1.0 1.0 bz}xy h0 " {0 st}xy&~, " {0 F d}xy8>4! h0:" {mark 48.0 0.0 48.0 6.0 45.0 9.0 41.5 10.5 0.0 0.0 bz}xy=" {mark 41.5 10.5 38.0 12.0 34.0 12.0 30.5 10.5 0.0 0.0 bz}xy:" {mark 30.5 10.5 27.0 9.0 24.0 6.0 24.0 0.0 0.0 0.0 bz}xyH;" {-1344 10 /cm AB}xyI QGxD0" {-1024 10 /cm AB}xyC9yA" {-710 10 /cm AB}xy>ZQGz! h0:" {mark 48.0 0.0 48.0 6.0 45.0 9.0 41.5 10.5 0.0 1.0 bz}xy=" {mark 41.5 10.5 38.0 12.0 34.0 12.0 30.5 10.5 0.0 1.0 bz}xy:" {mark 30.5 10.5 27.0 9.0 24.0 6.0 24.0 0.0 0.0 1.0 bz}xy! h0:" {mark 48.0 0.0 48.0 6.0 45.0 9.0 41.5 10.5 1.0 1.0 bz}xy=" {mark 41.5 10.5 38.0 12.0 34.0 12.0 30.5 10.5 1.0 1.0 bz}xy:" {mark 30.5 10.5 27.0 9.0 24.0 6.0 24.0 0.0 1.0 1.0 bz}xy9 h0 " {0 st}xy8&~, " {0 F d}xyh>4! h0=" {mark 72.0 24.0 72.0 18.0 75.0 15.0 78.5 13.5 0.0 0.0 bz}xy=" {mark 78.5 13.5 82.0 12.0 86.0 12.0 89.5 13.5 0.0 0.0 bz}xy=" {mark 89.5 13.5 93.0 15.0 96.0 18.0 96.0 24.0 0.0 0.0 bz}xyscn" {2758 10 /cm AB}xynKxv 0" {3072 10 /cm AB}xysyyzf2" {3398 10 /cm AB}xyy@z! h0=" {mark 72.0 24.0 72.0 18.0 75.0 15.0 78.5 13.5 0.0 1.0 bz}xy=" {mark 78.5 13.5 82.0 12.0 86.0 12.0 89.5 13.5 0.0 1.0 bz}xy=" {mark 89.5 13.5 93.0 15.0 96.0 18.0 96.0 24.0 0.0 1.0 bz}xy! h0=" {mark 72.0 24.0 72.0 18.0 75.0 15.0 78.5 13.5 1.0 1.0 bz}xy=" {mark 78.5 13.5 82.0 12.0 86.0 12.0 89.5 13.5 1.0 1.0 bz}xy=" {mark 89.5 13.5 93.0 15.0 96.0 18.0 96.0 24.0 1.0 1.0 bz}xyi h0 " {4096 st}xyh&," {4096 F d}xy>4! h0@" {mark 120.0 36.0 120.0 18.0 123.0 12.0 126.5 9.0 0.0 0.0 bz}xy=" {mark 126.5 9.0 130.0 6.0 134.0 6.0 137.5 9.0 0.0 0.0 bz}xy@" {mark 137.5 9.0 141.0 12.0 144.0 18.0 144.0 36.0 0.0 0.0 bz}xyb<" {1112 10 /cm AB}xy˟^x 0" {3072 10 /cm AB}xyyP>" {-3161 10 /cm AB}xyh^z! h0@" {mark 120.0 36.0 120.0 18.0 123.0 12.0 126.5 9.0 0.0 1.0 bz}xy=" {mark 126.5 9.0 130.0 6.0 134.0 6.0 137.5 9.0 0.0 1.0 bz}xy@" {mark 137.5 9.0 141.0 12.0 144.0 18.0 144.0 36.0 0.0 1.0 bz}xy! h0@" {mark 120.0 36.0 120.0 18.0 123.0 12.0 126.5 9.0 1.0 1.0 bz}xy=" {mark 126.5 9.0 130.0 6.0 134.0 6.0 137.5 9.0 1.0 1.0 bz}xy@" {mark 137.5 9.0 141.0 12.0 144.0 18.0 144.0 36.0 1.0 1.0 bz}xy h0 " {4096 st}xy&," {4096 F d}xy>4! h0=" {mark 168.0 0.0 186.0 0.0 192.0 3.0 195.0 6.5 0.0 0.0 bz}xy@" {mark 195.0 6.5 198.0 10.0 198.0 14.0 195.0 17.5 0.0 0.0 bz}xyA" {mark 195.0 17.5 192.0 21.0 186.0 24.0 168.0 24.0 0.0 0.0 bz}xyԿ{" {3160 10 /cm AB}xyʟzPx+ h0" {-3072 10 /cm AB}xy+ Yyß" {-1113 10 /cm AB}xy zz! h0=" {mark 168.0 0.0 186.0 0.0 192.0 3.0 195.0 6.5 0.0 1.0 bz}xy@" {mark 195.0 6.5 198.0 10.0 198.0 14.0 195.0 17.5 0.0 1.0 bz}xyA" {mark 195.0 17.5 192.0 21.0 186.0 24.0 168.0 24.0 0.0 1.0 bz}xy! h0=" {mark 168.0 0.0 186.0 0.0 192.0 3.0 195.0 6.5 1.0 1.0 bz}xy@" {mark 195.0 6.5 198.0 10.0 198.0 14.0 195.0 17.5 1.0 1.0 bz}xyA" {mark 195.0 17.5 192.0 21.0 186.0 24.0 168.0 24.0 1.0 1.0 bz}xy h0" {-2048 st}xy&~㣣" {-2048 F d}xy>4! h0=" {mark 216.0 0.0 222.0 0.0 225.0 3.0 226.5 6.5 0.0 0.0 bz}xy@" {mark 226.5 6.5 228.0 10.0 228.0 14.0 226.5 17.5 0.0 0.0 bz}xyA" {mark 226.5 17.5 225.0 21.0 222.0 24.0 216.0 24.0 0.0 0.0 bz}xyNTJ" {-3392 10 /cm AB}xyqx h0" {-3072 10 /cm AB}xy Yy" {-2758 10 /cm AB}xy_z! h0=" {mark 216.0 0.0 222.0 0.0 225.0 3.0 226.5 6.5 0.0 1.0 bz}xy@" {mark 226.5 6.5 228.0 10.0 228.0 14.0 226.5 17.5 0.0 1.0 bz}xyA" {mark 226.5 17.5 225.0 21.0 222.0 24.0 216.0 24.0 0.0 1.0 bz}xy! h0=" {mark 216.0 0.0 222.0 0.0 225.0 3.0 226.5 6.5 1.0 1.0 bz}xy@" {mark 226.5 6.5 228.0 10.0 228.0 14.0 226.5 17.5 1.0 1.0 bz}xyA" {mark 226.5 17.5 225.0 21.0 222.0 24.0 216.0 24.0 1.0 1.0 bz}xy h0" {-2048 st}xy&~㣣" {-2048 F d}xy@>4! h0A" {mark 288.0 24.0 282.0 24.0 279.0 21.0 277.5 17.5 0.0 0.0 bz}xy@" {mark 277.5 17.5 276.0 14.0 276.0 10.0 277.5 6.5 0.0 0.0 bz}xy=" {mark 277.5 6.5 279.0 3.0 282.0 0.0 288.0 0.0 0.0 0.0 bz}xy6͟}" {710 10 /cm AB}xy/ >_x6K h(" {1024 10 /cm AB}xy.Yy7 3" {1350 10 /cm AB}xy/wxz! h0A" {mark 288.0 24.0 282.0 24.0 279.0 21.0 277.5 17.5 0.0 1.0 bz}xy@" {mark 277.5 17.5 276.0 14.0 276.0 10.0 277.5 6.5 0.0 1.0 bz}xy=" {mark 277.5 6.5 279.0 3.0 282.0 0.0 288.0 0.0 0.0 1.0 bz}xy! h0A" {mark 288.0 24.0 282.0 24.0 279.0 21.0 277.5 17.5 1.0 1.0 bz}xy@" {mark 277.5 17.5 276.0 14.0 276.0 10.0 277.5 6.5 1.0 1.0 bz}xy=" {mark 277.5 6.5 279.0 3.0 282.0 0.0 288.0 0.0 1.0 1.0 bz}xyA h0 " {2048 st}xy@&㣤" {2048 F d}xyp>4! h0A" {mark 336.0 24.0 318.0 24.0 312.0 21.0 309.0 17.5 0.0 0.0 bz}xy@" {mark 309.0 17.5 306.0 14.0 306.0 10.0 309.0 6.5 0.0 0.0 bz}xy=" {mark 309.0 6.5 312.0 3.0 318.0 0.0 336.0 0.0 0.0 0.0 bz}xyg߳" {-936 10 /cm AB}xye:kxT h(" {1024 10 /cm AB}xyM-Yyi` i" {2984 10 /cm AB}xye~zPz! h0A" {mark 336.0 24.0 318.0 24.0 312.0 21.0 309.0 17.5 0.0 1.0 bz}xy@" {mark 309.0 17.5 306.0 14.0 306.0 10.0 309.0 6.5 0.0 1.0 bz}xy=" {mark 309.0 6.5 312.0 3.0 318.0 0.0 336.0 0.0 0.0 1.0 bz}xy! h0A" {mark 336.0 24.0 318.0 24.0 312.0 21.0 309.0 17.5 1.0 1.0 bz}xy@" {mark 309.0 17.5 306.0 14.0 306.0 10.0 309.0 6.5 1.0 1.0 bz}xy=" {mark 309.0 6.5 312.0 3.0 318.0 0.0 336.0 0.0 1.0 1.0 bz}xyq h0 " {2048 st}xyp&㣤" {2048 F d}xy Ģ+\vloop Ģ8\vcap Ģf+\vcap- Ģ\vloop- Ģ+\hloop Ģ\hcap Ģ&+\hcap- ĢS\hloop-8>/4! h05" {mark 24.0 -48.0 36.0 -60.0 24.0 -72.0 0.0 0.0 q}xy>D?" {-3688 10 /cm AB}xy@E+x? 8h0" {-3072 10 /cm AB}xyB :Yy=?@1X" {-2459 10 /cm AB}xy@1z! h05" {mark 24.0 -48.0 36.0 -60.0 24.0 -72.0 0.0 1.0 q}xy! h05" {mark 24.0 -48.0 36.0 -60.0 24.0 -72.0 1.0 1.0 q}xy9 Eh0" {-3072 st}xy9 B0" {-3072 T d}xyh>/4! h0A" {mark 72.0 -48.0 72.0 -66.0 96.0 -54.0 96.0 -72.0 0.0 0.0 bz}xynw۟6" {2304 10 /cm AB}xyg;AG4! h0E" {mark 120.0 -72.0 120.0 -54.0 144.0 -66.0 144.0 -48.0 0.0 0.0 bz}xyw۟;" {3840 10 /cm AB}xy;A90xc9*" {3328 10 /cm AB}xy\4y۟5" {3840 10 /cm AB}xy)380z! h0E" {mark 120.0 -72.0 120.0 -54.0 144.0 -66.0 144.0 -48.0 0.0 1.0 bz}xy! h0E" {mark 120.0 -72.0 120.0 -54.0 144.0 -66.0 144.0 -48.0 1.0 1.0 bz}xy -h0 " {4096 st}xy&/," {4096 F d}xy>G4! h0E" {mark 168.0 -72.0 186.0 -72.0 174.0 -48.0 192.0 -48.0 0.0 0.0 bz}xyT@`" {-3840 10 /cm AB}xyջ Fx)#8o" {-3328 10 /cm AB}xy ;yٴ0[`" {-3840 10 /cm AB}xy 6kz! h0E" {mark 168.0 -72.0 186.0 -72.0 174.0 -48.0 192.0 -48.0 0.0 1.0 bz}xy! h0E" {mark 168.0 -72.0 186.0 -72.0 174.0 -48.0 192.0 -48.0 1.0 1.0 bz}xy -h0 " {4096 st}xy&/," {4096 F d}xy>/4! h0E" {mark 216.0 -48.0 234.0 -48.0 222.0 -72.0 240.0 -72.0 0.0 0.0 bz}xyT1" {1792 10 /cm AB}xy /Vix)#:`" {1280 10 /cm AB}xy 8y Bt" {1792 10 /cm AB}xy  ?iz! h0E" {mark 216.0 -48.0 234.0 -48.0 222.0 -72.0 240.0 -72.0 0.0 1.0 bz}xy! h0E" {mark 216.0 -48.0 234.0 -48.0 222.0 -72.0 240.0 -72.0 1.0 1.0 bz}xy Eh0 " {2048 st}xy&C" {2048 F d}xy(>G4! h08" {mark 264.0 -72.0 276.0 -60.0 288.0 -72.0 0.0 0.0 q}xyUx4?h0" {-1024 10 /cm AB}xy3:y-sB" {-408 10 /cm AB}xy)y>Uz! h08" {mark 264.0 -72.0 276.0 -60.0 288.0 -72.0 0.0 1.0 q}xy! h08" {mark 264.0 -72.0 276.0 -60.0 288.0 -72.0 1.0 1.0 q}xyA Eh0" {-1024 st}xy?k Eh0" {-1024 F d}xySĢ6+\xcapvTvjc\sbendvTvj\zbendvTvjË\sbendhTvj\zbendhSĢ&+\xcaph>w4! h09" {mark 0.0 -144.0 -12.0 -144.0 -24.0 -132.0 0.0 0.0 q}xyGa9" {2201 10 /cm AB}xy-xڨ" {2560 10 /cm AB}xy Byc@" {2816 10 /cm AB}xy|_z! h09" {mark 0.0 -144.0 -12.0 -144.0 -24.0 -132.0 0.0 1.0 q}xy! h09" {mark 0.0 -144.0 -12.0 -144.0 -24.0 -132.0 1.0 1.0 q}xy! h0 " {2560 st}xyJ" {2560 F d}xy8>w4! h08" {mark 24.0 -144.0 36.0 -144.0 48.0 -132.0 0.0 0.0 q}xyMka9" {-153 10 /cm AB}xyPp-xEڨ" {-512 10 /cm AB}xyFKȠy>@" {-768 10 /cm AB}xy? z! h08" {mark 24.0 -144.0 36.0 -144.0 48.0 -132.0 0.0 1.0 q}xy! h08" {mark 24.0 -144.0 36.0 -144.0 48.0 -132.0 1.0 1.0 q}xy9 h0 " {-512 st}xy7\" {-512 F d}xyh>w4! h08" {mark 96.0 -120.0 96.0 -132.0 84.0 -144.0 0.0 0.0 q}xyy " {-3943 10 /cm AB}xy|?)x]8" {-3584 10 /cm AB}xy yi#zo" {-3328 10 /cm AB}xy+ ~OMz! h08" {mark 96.0 -120.0 96.0 -132.0 84.0 -144.0 0.0 1.0 q}xy! h08" {mark 96.0 -120.0 96.0 -132.0 84.0 -144.0 1.0 1.0 q}xy uh0" {-3584 st}xyӟw" {-3584 F d}xy>w4! h0;" {mark 144.0 -144.0 144.0 -132.0 132.0 -120.0 0.0 0.0 q}xyy" {1895 10 /cm AB}xy?vx]M " {1536 10 /cm AB}xy yi#`" {1280 10 /cm AB}xy+ z! h0;" {mark 144.0 -144.0 144.0 -132.0 132.0 -120.0 0.0 1.0 q}xy! h0;" {mark 144.0 -144.0 144.0 -132.0 132.0 -120.0 1.0 1.0 q}xy h0 " {1536 st}xyӠ+" {1536 F d}xyvj\xbendrvj3\xbendlvjc\xbenduvj\xbendd>w4! h0;" {mark 168.0 -120.0 168.0 -132.0 180.0 -144.0 0.0 0.0 q}xy " {-2203 10 /cm AB}xy-xx8" {-2560 10 /cm AB}xymylzo" {-2816 10 /cm AB}xy`]~OMz! h0;" {mark 168.0 -120.0 168.0 -132.0 180.0 -144.0 0.0 1.0 q}xy! h0;" {mark 168.0 -120.0 168.0 -132.0 180.0 -144.0 1.0 1.0 q}xy h0" {-2560 st}xyӠ+" {-2560 F d}xy>w4! h0;" {mark 216.0 -144.0 216.0 -132.0 228.0 -120.0 0.0 0.0 q}xyy" {155 10 /cm AB}xy-vxxM " {512 10 /cm AB}xymyl`" {768 10 /cm AB}xy`]z! h0;" {mark 216.0 -144.0 216.0 -132.0 228.0 -120.0 0.0 1.0 q}xy! h0;" {mark 216.0 -144.0 216.0 -132.0 228.0 -120.0 1.0 1.0 q}xy uh0 " {512 st}xyӟw " {512 F d}xy(>w4! h0;" {mark 288.0 -120.0 276.0 -120.0 264.0 -132.0 0.0 0.0 q}xy.G}o!" {3941 10 /cm AB}xy&{9x6w" {3584 10 /cm AB}xy1 Bsyw4! h0;" {mark 312.0 -120.0 324.0 -120.0 336.0 -132.0 0.0 0.0 q}xymk}o!" {-1893 10 /cm AB}xyp{9xew" {-1536 10 /cm AB}xyfKȟsy^u" {-1280 10 /cm AB}xy_ s(0z! h0;" {mark 312.0 -120.0 324.0 -120.0 336.0 -132.0 0.0 1.0 q}xy! h0;" {mark 312.0 -120.0 324.0 -120.0 336.0 -132.0 1.0 1.0 q}xyq h0" {-1536 st}xyoI" {-1536 F d}xyvj\xbendd-vj\xbendu-vj \xbendl-vjP\xbendr-fgKYxFiguref3.9:knotjoins,withorien!tations,labMelsandshifts]*tj??̾Chapter 42!GDriv8ers5ፑThis-c!hapterdescribMesthedriveroptionsthatsuppMortcustomisationoftheXY f7-picoutputtoparticular output devices.The rstsectiondescribMestheactualdriv!ers,thesecondasetofmodi cationsspeciallyapplicableftoPostScriptprin!ting.#>j4.1r|Supps3ortffforSpeci cDrivers4.2r|dvidrvffdriver2V ers.p3.3Tb9yRossMoQorehross@mpGce.mq.edu.aui즍Thisdriv!erprovidessuppMortforthe\emtex"\special6= commands,>Hwhenusingoneofthestandarddvi-driv!ers:dvidot'X,>dvihplj+,>dvimsp&:,>dviscr)ordvivik&,>thatcomewithEbMerhardMattes'em-T,[wEB Xdistribution.HHeader:P1%%$Id:xydvidrv.doc,v3.31996/12/1809:12:40rossExp$2%%3%%Xy-pic``dvidrv-driver''option.4%%Copyright(c)1995-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,LW.461.*tj462U1CHAPTERf4.CDRIVERS??hw22%%675MassAve,Cambridge,MA02139,USA. 23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{dvidrv}{dvidrvdriver}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}23/42\xydef@\dvidrv@@#1{\dvimessage@{dvidrv}{#1}}44\newdriver{%45K\xyaddsupport{emtex}\dvidrvEmTeX@@46K\xyaddsupport{line}\dvidrvLine@@47}{ÍDrivter2installation 5SuppMortedf\special5Je ectsfare...Fem-T,[wEB Xfline-dra!wing\special1s.58\xydef@\dvidrvEmTeX@@{\dvidrvEmTeX@}%59\xydef@\dvidrvEmTeX@{\setupxyEMTeX@}%tvdDariablefline-widths66\xydef@\dvidrvLine@@{\dvidrvLine@}%67\xydef@\dvidrvLine@{\xywithoption{emtex}{\installEMline@}}%"The2end&Log79\xyendinput81%$Log:xydvidrv.doc,v$82%Revision3.3 T1996/12/1809:12:40ross83%nochanges84%85%Revision3.1 T1995/09/0520:28:57ross86%Releasingversion3.1!87%88%89%NEWforversion3.1.4.3r|DVIPSffdriverʼnV ers.p3.3Tb9yRossMoQorehross@mpGce.mq.edu.auiThisUdriv!erprovidessuppMortforalFlextensions;whenusingthedvipsdriverbyTeomasRokicki[11 4].IthasfbMeentestedwithdvipsv!ersion5.55aanddvipskversion5.58f.*Header:1%%$Id:xydvips.doc,v3.31996/12/1809:13:14rossExp$2%%8*tj4.3.CD!VIPSfDRIVERh4463??hw3%%Xy-pic``dvips-driver''option. 4%%Copyright(c)1995-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{dvips}{DVIPSdriver}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}042\xydef@\dvips@@#1{\dvimessage@{dvips}{#1}}44\newdriver{%45K\xyaddsupport{color}\dvipsColor@@46K\xyaddsupport{crayon}\dvipsCrayola@@47K\xyaddsupport{ps}\dvipsPS@@48K\xyaddsupport{rotate}\dvipsRotate@@49K\xyaddsupport{line}\dvipsLine@@50K\xyaddsupport{frame}\dvipsFrames@@51K\xyaddsupport{tile}\dvipsTiles@@52K\xyaddsupport{tpic}\dvipsTPIC@53K\xyaddsupport{emtex}\dvipsEM@54K\xyaddsupport{cmtip}\relax55}Drivter2installation 5SuppMortedf\special5Je ectsfare...Tcolour,fusingdirectcolorspMecialsandPostScript.ƿD!VIPSfusesthecolour-stackmethoMd,duetoTeomasRokicki.71\xydef@\dvips@Color@{\dvipsPStypes@72K\let\xylocalColor@=\xystackcolor@73K\let\xycolor@push\xycolor@push@@74K\def\xycolor@{\xycolor@@}\let\xycolorwarning@=\relax@ *tj464U1CHAPTERf4.CDRIVERS??hw75K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{% 76 m\xyinputorelse@{xyps-c}{\xydrivernoload@{ps-c}}\installPScolor@}%77K\else\DN@{}\fi\next@78K\ifx\xycolor@@\xyNoColor@\let\xycolor@@=\xycolor@raw@@\fi79K\ifx\xycrayolaloaded\empty\DN@{\xystandardcolors@\dvipsCrayola@{}}%80K\else\DN@{\xystandardcolors@}\fi\next@81K\let\dvipsColor@@=\relax82K\let\UnloadColor@@=\NoDVIPScolor@83K}%P85\xydef@\dvipsColor@@{\dvips@Color@}87\xydef@\NoDVIPScolor@{% 88K\def\xycolor@{\xycolor@@}%89K\let\xycolor@@=\xyNoColor@90K\let\xylocalColor@=\xyNoColor@@91K\let\xycolorwarning@=\xycolorwarning@@92K\let\dvipsColor@@=\dvips@Color@93K\let\UnloadColor@@=\UnloadColor@94K}LIf!uneithersuppMort lecolordvi.texM>norcolordvi.stycanbMefound,@8thenthenormalcoloursuppMort`9willnotbea!vdDailable. UHowever`9thecoloursupportforthePostScriptbac!k-endcanstillfbMeused.P102\xydef@\NoDVIPScolordvi@{\xywarning@{%103KNeither Tcolordvi.texnorcolordvi.stycouldbefound.}%104K\xyBEcolorcheck@}%Hcra!yonfcolours.^The( 68coloursthatdvips#jrecognizesb!ynamearenotloadedunlessthecrayon(optionhasbMeenrequested.117\xydef@\dvipsCrayola@@{\dvipsColor@@\dvipsCrayola@}119\xydef@\dvipsCrayola@{%120K\let\prevxycolor@=\newxycolor@121 m\def\newxyDVIPScolor@##1##2##3{\prevxycolor@{##1}{}{##1}}%122 m\let\newxycolor@=\newxyDVIPScolor@\dvipsInclude@{color.pro}%123% T\xyinputorelse@{colordvi.tex}%124%>{\NoDVIPScolordvi@\let\newxycolor@=\prevxycolor@}%125 m\installCrayolaColors@126K\let\newxycolor@=\prevxycolor@}%LAlthoughan!yorderofloadingoptions:psA,dvipsҹ,color"Xandcrayon(cproMducesthedesiredresultvisuallye,theWPostScriptcoMdecanbedi eren!twithdi erentloadingorder.WThemosteasilyreadablefisobtainedwhencrayon)ȹisrequestedlast."PostScriptfbac!k-end.138\xydef@\dvipsPS@@{\dvipsPS@}140\xydef@\dvipsPS@unload{\UnloadPS@141K\let\UnloadPS@@=\UnloadPS@142K\let\dvipsPS@@=\dvipsPS@}K*tj4.3.CD!VIPSfDRIVERh4465??hwdvipsMhasthreekindsofPostScript\special6% whic!hcanbMeused.&EThesemaybMeusedwith vdDariousffeaturesotherthanjustthePostScriptbac!kend.P151\xydef@\dvipsPStypes@{%152K\xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}%153K\ifx\PSspecial@@\dvipsSpecial@\else154 m\let\PSspecial@@=\dvipsSpecial@155 m\let\PSmacro@@=\dvipsMacro@156 m\let\PSdict@@=\dvipsDict@157 m\let\PSspecialdict@@=\dvipsDict@158 m\let\PSraw@@=\dvipsRaw@159 m\let\PSinclude@@=\dvipsInclude@160 m\let\xyPSobeylines@@=\obeyDVIPSlines@161 m\let\xyPScurrpt@@=\dvipsCurrpt@@162 m\dvips@@{PostScript}%163K\fi164%\xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}%165K\XYpredict@}167\xywarnifdefined\dvipsSpecial@168\xywarnifdefined\dvipsMacro@169\xywarnifdefined\dvipsDict@170\xywarnifdefined\dvipsInclude@171\xywarnifdefined\dvipsRaw@172{\catcode`\"=11\catcode`\!=11\catcode`\:=11173K\gdef\dvipsSpecial@#1{\special{ps::SDictbegin#1end}}174K\gdef\dvipsMacro@#1{\firstPS@@\special{"{#1}xy}}175%\gdef\dvipsDict@#1{\special{!mark{#1}stoppedcleartomark}}176K\gdef\dvipsDict@#1{\special{!#1}}177K\gdef\dvipsInclude@#1{\special{header=#1}}178K\gdef\dvipsRaw@#1{\special{ps:SDictbegin#1end}}180\catcode`\^^M=\active%181K\gdef\next{\catcode`\^^M=\active\let^^M=\space}}%182\xylet@\obeyDVIPSlines@=\nextކAllthePostScriptde nitionspassedtodvips&zb!yreadingthedictionary learestoredinaYPostScriptdictionarywhic!hitde nes,calledSDict"@. tThismustbMethecurrentdictio-narywhenev!eranXY-pscommandistobMeexecuted. 4Thiswillbethecasewhenev!erthe\special{">(kcpommands}.orn\special{!A=commands}formsnareused,:butnotwhenthe\special{ps::R;cpommands}formisused.Th!usthe\dvipsSpecial@X5vmacroincludescoMdetoopenSDict$x|andcloseitwhen nished;W_so/alsodoMesthe\dvipsRaw@?Zt!ype,GsincethisisusedwithXY -picPostScriptoperatorswhosefde nitionsha!vefbMeenplacedwithinSDict d.'ThefcurrentpointLHĹisfde nedforthe\ra!w"spMecials.200\xydef@\dvipsCurrpt@{\let\xyPScurrpt@@=\dvipsCurrpt@@}%201\xydef@\dvipsCurrpt@@{\PSraw@@{xyp}}ކThePostScriptopMeratorcalledxypfisde nedinxyps-ps0eforstoringthelocationreadfromcurrentpointC.CThisfinstallsthePostScriptbac!kend.212\xydef@\dvipsPS@{\dvipsPStypes@V*tj466U1CHAPTERf4.CDRIVERS??hw213K\let\dvipsPS@@=\PSspecials@true 214K\let\UnloadPS@@=\dvipsPS@unload215K\let\installxyps@@=\relax\installxyps@}Sȍrotated/scaledfdiagramsandtext,usingPostScript.P222\xydef@\dvipsRotate@@{\dvipsRotate@}224\xydef@\dvipsRotate@{\dvipsPStypes@ 225K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%226 m\xyinputorelse@{xyps-r}{\xydrivernoload@{ps-r}}%227 m\dvipsCurrpt@\dvipsRotScale@\installPSrotscale@}%228K\else\DN@{\xydriverfail@{rotationsare}UnloadRotate@\relax}\fi229K\next@}P231\xydef@\dvipsRotScale@{%232K\def\xyrot@start(##1){{xyct##1\spacexyrs}}%233K\def\xyrot@end{}%234K\def\xyscale@start(##1,##2){{xyct##1\space##2\spacexyss}}%235K\def\xyscale@end{}}vdDariablefline-widthsandpMoly-lines,usingPostScript.P242\xydef@\dvipsLine@@{\dvipsLine@}244\xydef@\dvipsLine@{\dvipsPStypes@ 245K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%246 m\xyinputorelse@{xyps-l}{\xydrivernoload@{ps-l}}\installPSline@}%247K\else\DN@{\xydriverfail@{line-widthsare}\UnloadLine@\relax}\fi248K\next@}extrafframesand lls,usingPostScript.P255\xydef@\dvipsFrames@@{\dvipsFrames@}257\xydef@\dvipsFrames@{\dvipsPStypes@ 258K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%259 m\xyinputorelse@{xyps-f}{\xydrivernoload@{ps-f}}\installPSframes@}%260K\else\DN@{\xydriverfail@{framesare}\UnloadFrames@\relax}\fi261K\next@}patternsfandtiles,usingPostScript.P268\xydef@\dvipsTiles@@{\dvipsTiles@}270\xydef@\dvipsTiles@{\dvipsPStypes@ 271K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%272 m\xyinputorelse@{xyps-t}{\xydrivernoload@{ps-t}}\installPSpatterns@}%273K\else\DN@{\xydriverfail@{Patternsare}\UnloadPSpatterns@\relax}\fi274K\next@}tpicfdra!wingcommands.P281\xydef@\dvipsTPIC@@{\dvipsTPIC@}282\xydef@\dvipsTPIC@{\setupxyTPIC@}cǠ*tj4.4.CD!VITOPSfDRIVERWdz467??hwem-T,[wEB Xfdra!wingcommands.P289\xydef@\dvipsEM@@{\dvipsEM@} 290\xydef@\dvipsEM@{\setupxyEMTeX@}" 퍑The2end&Log302\xyendinput304%$Log:xydvips.doc,v$305%Revision3.3 T1996/12/1809:13:14ross306%minorimprovementstofile-loadingcommands307%308%Revision3.2 T1995/09/1918:20:20ross309%Bugfixrelease.310%311%Revision3.1 T1995/09/0520:36:33ross312%Release!313%314%Revision3.0 T1995/07/0720:13:19ross315%Majorreleasew/newUser'sGuide!316%317%Revision2.13 T1995/07/0415:04:51ross318%Readyforreleaseofv3.319%320%NEWforversion3.-4.4r|DVITOPSffdriverWV ers.p3.3Tb9yRossMoQorehross@mpGce.mq.edu.auiˍThis lepro!videssuppMortforthedvitopsdriverbyJamesClark.AsofSeptembMer1995,ithasnotbMeenffullytested.iHeader:1%%$Id:xydvitops.doc,v3.31996/12/1809:14:36rossExp$2%%3%%Xy-pic``DVITOPS-driver''option.4%%Copyright(c)1995-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,butn7*tj468U1CHAPTERf4.CDRIVERS??hw16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY 17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{dvitops}{DVITOPSdriver}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}"h41\xydef@\dvitops@@#1{\dvimessage@{DVITOPS}{#1}}43\newdriver{%44K\xyaddsupport{color}\dvitopsColor@@45K\xyaddsupport{crayon}\dvitopsCrayon@@46K\xyaddsupport{ps}\dvitopsPS@@47K\xyaddsupport{rotate}\dvitopsRotate@@48K\xyaddsupport{line}\dvitopsLine@@49K\xyaddsupport{frame}\dvitopsFrames@@50K\xyaddsupport{tile}\dvitopsTiles@@51%\xyaddsupport{tpic}\dvitopsTPIC@@52K\xyaddsupport{cmtip}\relax53}ՍSuppMortedf\special5Je ectsfare...΍colour,\usingJ>directcolorspMecialsforgrayH,rgbandhsbzcolourmoMdels;handPostScriptcolourwithinfdiagrams;4dvitopsA}hasamethoMdforusingcolourslocallye,Uho!weverA}itonlycolours\regions",whic!hcannotbMefnested.TeousethiswithinXY p-picdiagramsw!ouldbejustaskingfortrouble.72\xydef@\dvitopsColor@@{\dvitops@Color@}74\xydef@\dvitops@Color@{\dvitopsPStypes@75K\let\xylocalColor@=\xyDVITOPScolor@76K\let\xycolor@push\xycolor@push@@77K\def\xycolor@{\xycolor@@}\let\xycolorwarning@=\relax78K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%79 m\xyinputorelse@{xyps-c}{\xydrivernoload@{ps-c}}\xycatcodes80 m\installPScolor@}\else\DN@{}\fi\next@81K\ifx\xycolor@@\xyNoColor@\let\xycolor@@=\xycolor@raw@@\fi82K\ifx\xycrayolaloaded\empty\DN@{\xystandardcolors@\dvitopsCrayon@{}}%83K\else\let\next@=\xystandardcolors@84K\fi\next@85K\let\dvitops@Color@@=\relax86K\let\UnloadColor@@=\NoDVITOPScolor@87K}%89\xydef@\NoDVITOPScolor@{%w*tj4.4.CD!VITOPSfDRIVERWdz469??hw90K\def\xycolor@{\xycolor@@}% 91K\let\xycolor@@=\xyNoColor@92K\let\xylocalColor@=\xyNoColor@@93K\let\xycolorwarning@=\xycolorwarning@@94K\let\dvitops@Color@@=\dvitops@Color@95K}v99\xydef@\xyDVITOPScolor@{\bgroup\DN@##1##2{\egroup}%100K\ifInvisible@\else\ifHidden@\else\DNii@{\no@@}\ifx\nextii@\Connect@@101K\else\DN@{\xyDVITOPScolor@i}\fi\fi\fi\next@}P103\xydef@\xyDVITOPScolor@i#1#2{\checkXyStyle@104K\DN@{#2}\ifx\next@\empty105 m\def\tmp@##1{\DN@{\xycolor@begin##1\xycolor@end{#1}}}%106K\else\DNii@{gray}\ifx\next@\nextii@107 m\def\tmp@##1{\DN@{\xycolor@begin##1\xycolor@end{gray}{#1}}}%108K\else\DNii@{rgb}\ifx\next@\nextii@109 m\def\tmp@##1{\DN@{\xycolor@begin##1\xycolor@end{rgbcolor}{#1}}}%110K\else\DNii@{hsb}\ifx\next@\nextii@111 m\def\tmp@##1{\DN@{\xycolor@begin##1\xycolor@end{hsbcolor}{#1}}}%112K\else\DN@{\xywarning@{DVITOPScannotsupportcolor:#2#1}}%113K\fi\fi\fi\fi114K\toks@={\egroup\let\xy@style@=\relax\def\Drop@@}%115K\expandafter\tmp@\expandafter{\Drop@@}%116K\expandafter\addtotoks@\expandafter{\expandafter{\next@}\def\Connect@@}%117 m\expandafter\tmp@\expandafter{\Connect@@}%118K\expandafter\addtotoks@\expandafter{\expandafter{\next@}}%119K\the\toks@}%121\xydef@\xycolor@begin{\dvitopsBegin@{color}}122\xydef@\xycolor@end{\dvitopsEnd@{color}\dvitopsColor@x}4Xcra!yonfcolours. Thef68coloursarethosethatdvips$ recognizesb!yname,thankstoTeomasRokicki.135\xydef@\dvitopsCrayon@@{\dvitopsColor@@\dvitopsCrayon@}136\xydef@\dvitopsCrayon@{\installCrayolaColors@}%4XPostScriptfbac!k-end.143\xydef@\dvitopsPS@@{\dvipsPS@}145\xydef@\dvitopsPS@unload{\UnloadPS@146K\let\UnloadPS@@=\UnloadPS@147K\let\dvitopsPS@@=\dvitopsPS@}pdvitops0khast!wo0kkindsof\special4^&whic!hcanbMeused;W`inline'and`prolog'forincludingheader les.Alsoftherearethe`bMegin'and`end't!ypesforde ningregions.157\xydef@\dvitopsPStypes@{%158K\xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}%159K\ifx\PSspecial@@\dvitopsSpecial@\else160 m\let\PSspecial@@=\dvitopsSpecial@161 m\let\PSmacro@@=\dvitopsMacro@I*tj470U1CHAPTERf4.CDRIVERS??hw162 m\let\PSdict@@=\dvitopsDict@ 163 m\let\PSspecialdict@@=\dvitopsDict@164 m\let\PSraw@@=\dvitopsRaw@165 m\let\PSinclude@@=\dvitopsInclude@166 m\let\xyPSobeylines@@=\obeyDVIPSlines@167 m\let\xyPScurrpt@@=\dvitopsCurrpt@@168 m\dvitops@@{PostScript}%169K\fi170%\xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}%171K\XYpredict@}P173\xywarnifdefined\dvitopsSpecial@174\xywarnifdefined\dvitopsMacro@175\xywarnifdefined\dvitopsDict@176\xywarnifdefined\dvitopsInclude@177\xywarnifdefined\dvitopsRaw@178\xywarnifdefined\dvitopsOrigin@179\xywarnifdefined\dvitopsBegin@180\xywarnifdefined\dvitopsEnd@181\xywarnifdefined\dvitopsRotate@x182\xywarnifdefined\dvitopsTransform@x183\xywarnifdefined\dvitopsColor@x184{\catcode`\:=11185K\gdef\dvitopsSpecial@#1{\special{dvitops:inline#1}}186K\gdef\dvitopsMacro@#1{\special{dvitops:inline{#1}xy}}187K\gdef\dvitopsDict@#1{\special{dvitops:inline#1}}188K\gdef\dvitopsInclude@#1{\special{dvitops:prolog#1}}189K\gdef\dvitopsRaw@#1{\special{dvitops:inline#1}}190%191K\gdef\dvitopsOrigin@#1{\special{dvitops:origin#1}}192K\gdef\dvitopsBegin@#1{\special{dvitops:begin#1}}193K\gdef\dvitopsEnd@#1{\special{dvitops:end#1}}194K\gdef\dvitopsRotate@x#1{\special{dvitops:rotate#1}}195K\gdef\dvitopsTransform@x#1{\special{dvitops:transform#1}}196K\gdef\dvitopsColor@x#1#2{\special{dvitops:#1color#2}}197}199\catcode`\^^M=\active%200K\gdef\next{\catcode`\^^M=\active\let^^M=\space}}%201\xylet@\obeyDVIPSlines@=\nextfqRotationskandtransformationsuseadi eren!tmechanism,7so\xyPScurrpt@@UVcanbMesetto\relax!j.208\xydef@\dvitopsCurrpt@{\global\let\xyPScurrpt@@=\relax}%ZThisfinstallsthePostScriptbac!kend.216\xydef@\dvitopsPS@{\dvitopsPStypes@217K\let\installxyps@@=\relax\installxyps@}|Zrotated/scaledfdiagramsandtext,usingdvitopsspMecials;ho!weverfthesema!ynotbenested.*tj4.4.CD!VITOPSfDRIVERWdz471??hw228\xydef@\dvitopsRotate@@{\dvitopsRotate@}P230\xydef@\dvitopsRotate@{\dvitopsPStypes@ 231K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty232 m\DN@{\xyinputorelse@{xyps-r}{\xydrivernoload@{ps-r}}%233 m\installDVITOPSrotate@}%234K\else\DN@{\xydriverfail@{rotationsare}\UnloadRotate@\relax}\fi235K\next@}237\xydef@\dvitopsRotScale@{%238K\def\xyrot@start{\dvitopsBegin@{rot}\dvitopsOrigin@{rot}}%239K\def\xyrot@end(##1){\dvitopsEnd@{rot}\dvitopsRotate@x{##1}}%240K\def\xyscale@start{\dvitopsBegin@{scal}\dvitopsOrigin@{scal}}%241K\def\xyscale@end(##1,##2){%242 m\dvitopsEnd@{scal}\dvitopsTransform@x{##10##20}}%243K}245\xydef@\installDVITOPSrotate@{\installPSstyle@246K\let\xyRotate@@=\dvitopsRotate@247K\let\doSpecialRotate@@=\dvitopsSpecialRotate@248K\let\xyscale@@=\dvitopsScale@249K\dvitopsCurrpt@250K\dvitopsRotScale@\xyPSshapes@true}252\xydef@\UnloadDVITOPSrotate@{\UnloadRotate@\relax}v256K\xydef@\dvitopsRotate@#1{\xyPSsplitPS@257 m{\dvitopsBegin@{rot}\dvitopsOrigin@{rot}}%258 m{\dvitopsEnd@{rot}\dvitopsRotate@x{#1}}}%260K\xydef@\dvitopsScale@#1#2{\xyPSsplitPS@261 m{\dvitopsBegin@{scal}\dvitopsOrigin@{scal}}%262 m{\dvitopsEnd@{scal}\dvitopsTransform@x{#10#20}}}264K\xydef@\dvitopsSpecialRotate@#1@@{\dvitopsRotate@{#1}}svdDariablefline-widthsandpMoly-lines,usingPostScript.271\xydef@\dvitopsLine@@{\dvitopsLine@}273\xydef@\dvitopsLine@{\dvitopsPStypes@274K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%275 m\xyinputorelse@{xyps-l}{\xydrivernoload@{ps-l}}\installPSline@}%276K\else\DN@{\xydriverfail@{line-widthsare}\UnloadLine@\relax}\fi277K\next@}sextrafframesand lls,usingPostScript.284\xydef@\dvitopsFrames@@{\dvitopsFrames@}286\xydef@\dvitopsFrames@{\dvitopsPStypes@287K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%288 m\xyinputorelse@{xyps-f}{\xydrivernoload@{ps-f}}\installPSframes@}%289K\else\DN@{\xydriverfail@{framesare}\UnloadFrames@\relax}\fi290K\next@}spatternsfandtiles,usingPostScript*tj472U1CHAPTERf4.CDRIVERS??hw297\xydef@\dvitopsTiles@{\dvitopsPStypes@ 298K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%299 m\xyinputorelse@{xyps-t}{\xydrivernoload@{ps-t}}\installPSpatterns@}%300K\else\DN@{\xydriverfail@{Patternsare}\UnloadPSpatterns@\relax}\fi301K\next@}Stpicfdra!wingcommands.P308\xydef@\dvitopsTPIC@@{\dvitopsTPIC@}310\xydef@\dvitopsTPIC@{\setupxyTPIC@}#qThe2end&Log322\xyendinput324%$Log:xydvitops.doc,v$ 325%Revision3.3 T1996/12/1809:14:36ross326%minorimprovementstofile-loadingcommands327%328%Revision3.2 T1995/09/1918:21:41ross329%Bugfixrelease.330%331%Revision3.1 T1995/09/0520:28:57ross332%Releasingversion3.1!333%334%NEWforversion3./)ۍ4.5r|OzTfeXffdriver"V ers.p3.3Tb9yRossMoQorehross@mpGce.mq.edu.aui)This$driv!erprovidesthenecessaryinterfacetosuppMortthePostScriptback-endandotherPost-Scripte ectswhenusingtheD!VIdriverofv!ersions1.8+ofOz[T,[wEB XbyAndrewTerevorrow,1EarlierversionsofO zR3T"R[wE)Xshouldinstepadusethedriveroption\xyoption{17oztex}kd. >E ectssuc!hascolour,aline-thicknessandrotatedorscaleddiagramsareonlypartiallysuppMortedinthatC)thee ectscannotbMeappliedtoan!ytextorsymbMolsplacedusingfonts.ThisisduetothenatureofOz[T,[wEB Xhdriv!eri,^whoseoptimizationoftheplacementoffont-charactersprecludestheapplicabilityof~suc!he ects.FeurthermorethePostScriptdictionarymustbMeavdDailableina lecalledglobal.ps9orappMendedձtotheOzTeXdict.proMS.LHo!weverձwithv!ersion1.8andlaterofOz[T,[wEB X,othereisthealternativeoffusingthedvips$ hdriv!eri,whichdoMessupportallthePostScripte ectsa!vdDailableinXY p-pic.Note:ATeo.useXY 8-pice ectiv!elywithOz[T,[wEB Xrequireschangingseveralmemoryparameters.Inpar-ticularZa`Big-T,[wEB X'isneeded,)alongwithanincreaseinthepool_size9!parameter.Explicitinstructionsarefcon!tainedinthe leINSTALL.1OzTeXRnoftheXY p-picdistribution.]Header:P1%%$Id:xyoztex.doc,v3.31996/12/1809:26:26rossExp$2%% Rffy̟ L͍ {-=1aOzTuAEXuisasharew9areimplementationofTuAEXforMacintoshav|railablefrommanybulletinbAoardsandftpsites;jv1.5 andTearlierv9ersionswerefreeware.pEmailcontact:phakt@k|ragi.comi.*tj4.5.COZTEXfDRIVERc/473??hw3%%Xy-pic``OzTeX''driverinterfaceoption. 4%%Copyright(c)1995-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{oztex}{OzTeXdriver}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}!X59\xydef@\OzTeX@@#1{\dvimessage@{OzTeX}{#1}}61\newdriver{%62K\xyaddsupport{color}\oztexColor@@63K\xyaddsupport{crayon}\oztexCrayon@@64K\xyaddsupport{ps}\oztexPS@@65K\xyaddsupport{rotate}\oztexRotate@@66K\xyaddsupport{line}\oztexLine@@67K\xyaddsupport{frame}\oztexFrames@@68K\xyaddsupport{tile}\oztexTiles@@69K\xyaddsupport{cmtip}\relax70}SuppMortedf\special5Je ectsfare... colour,fusingPostScript,butnotoffon!t-characters.83\xydef@\oztexColor@@{\OzTeXColours@}85\xydef@\OzTeXColours@{\OzTeXPStypes@86K\let\xylocalColor@=\xyNoColor@@\def\xycolor@{\xycolor@@}%87K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%\XYpredict@88 m\xyinputorelse@{xyps-c}{\xydrivernoload@{ps-c}}%89 m\installPScolor@}\else\DN@{}\fi\next@90K\ifx\xycrayolaloaded\empty\DN@{\xystandardcolors@\OzTeXCrayon@@{}}%91K\else\let\next@=\xystandardcolors@\fi\next@*tj474U1CHAPTERf4.CDRIVERS??hw92K\let\xycolorwarning@=\relax 93K\let\oztexColor@@=\relax94K\let\UnloadColor@@=\NoOzTeXColor@95}P97\xydef@\NoOzTeXColor@{%98K\let\xylocalColor@=\xyNoColor@@99K\let\xycolor@=\xyNoColor@100K\let\xycolorwarning@=\xycolorwarning@@101K\let\oztexColor@@=\OzTeXColours@102K\let\UnloadColor@@=\UnloadColor@103K}Hcra!yonfcolours,similarlyrestricted.zThef68coloursarethosethatdvips$ recognizesb!yname,thankstoTeomasRokicki.116\xydef@\OzTeXCrayon@@{\installCrayolaColors@}PostScriptfbac!k-end.126\xydef@\oztexPS@@{\oztexPS@}128\xydef@\oztexPSunload@{\UnloadPS@ 129K\def\xyPSdictname{}\UsePSdict@@false130K\let\installxyps@@=\relax131K\let\UnloadPS@@=\UnloadPS@132K\xyPSshapes@true133K\let\oztexPS@@=\oztexPS@}v137\xydef@\OzTeXSpecial@#1{\special{empty.ps{#1}xy}}138\xydef@\OzTeXMacro@#1{\special{empty.ps{#1}xy}}139\xydef@\OzTeXDict@#1{\special{empty.ps@bxy{#1}stoppedpop@exy}}140\xydef@\OzTeXinclude@#1{\special{#1}}141\xydef@\OzTeXraw@#1{\special{empty.ps@bxy#1@exy}}%143\xydef@\OzTeXPStypes@{%144K\xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}%145K\ifx\PSspecial@@\OzTeXSpecial@\else146 m\let\PSspecial@@=\OzTeXSpecial@147 m\let\PSmacro@@=\OzTeXMacro@148 m\let\PSdict@@=\OzTeXDict@149 m\let\PSraw@@=\OzTeXraw@150 m\let\PSinclude@@=\OzTeXinclude@151 m\let\xyPSobeylines@@=\obeyOzTeXlines@152 m\let\PSspecialdict@@=\OzTeXDict@153 m\OzTeX@@{PostScript}%154K\fi155%\xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}%156K\OzTeXCurrpt@}158{\catcode`\^^M=\active%159K\gdef\next{\catcode`\^^M=\active\let^^M=\space\obeyspaces}}160\xylet@\obeyOzTeXlines@=\next*tj4.5.COZTEXfDRIVERc/475??hwThe.PostScriptopMerators@bxy[ܹand@exyarede nedinxyps-ps.ڹforb!ypassingthemechanism usedcinOz[T,[wEB XtoisolatecoMdepassedin\special6commands.Althoughitispossible(albeitdicult)HtodevisePostScripttodeducethecurren!tloMcationforusewiththe\raw"spMecials,thisdinformationcannotbMeusedtodorotationsandscalingaswithotherhdriv!eris.HencethevdDaluefof\xyPScurrpt@@Rnistak!entobMeemptye.P171\xydef@\OzTeXCurrpt@{\let\xyPScurrpt@@=\OzTeXCurrpt@@}%172\xydef@\OzTeXCurrpt@@{\PSraw@@{xyp}}ThisMa!voidsdumpingthedictionaryintothedvi- le,_makingsurethatinsteaditgoMesintoa le,spMeci edfb!y\xyPSdictnameNb,whichdefaultstoglobal.ps7c`.182\xydef@\oztexPS@{\OzTeXPStypes@183K\let\oztexPS@@=\relax184K\let\UnloadPS@@=\oztexPSunload@185K\let\installxyps@@=\@OzTeX@PS@186K\installxyps@}188\xydef@\@OzTeX@PS@{\UsePSdict@@true189K\let\includePSmessage@=\xyOzTeXheader190K\ifx\undefined\xyPSdictname\def\xyPSdictname{global.ps}\fi}192\xydef@\xyOzTeXheader#1#2#3{\UsePSdict@@true}rThefparameters#1#2#3)ȹof\xyOzTeXheaderWgobbletok!ensthatareunnecessarywithOz[T,[wEB X.ЍvdDariablefline-widthsandpMoly-lines,usingPostScript.202\xydef@\oztexLine@@{\oztexLine@}204\xydef@\oztexLine@{\OzTeXPStypes@205K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%\XYpredict@206 m\xyinputorelse@{xyps-l}{\xydrivernoload@{ps-l}}\installPSline@}%207K\else\DN@{\xydriverfail@{line-stylesare}\UnloadLine@\relax}\fi208K\next@}extrafframesand lls,usingPostScript.215\xydef@\oztexFrames@@{\OzTeXFrames@}217\xydef@\OzTeXFrames@{\OzTeXPStypes@218K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%219 m\xyinputorelse@{xyps-f}{\xydrivernoload@{ps-f}}\installPSframes@}%220K\else\DN@{\xydriverfail@{framesare}\UnloadPSFrames@\relax}\fi221K\next@}patternsfandtiles,usingPostScript.228\xydef@\oztexTiles@@{\OzTeXTiles@}230\xydef@\OzTeXTiles@{\OzTeXPStypes@231K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%232 m\xyinputorelse@{xyps-t}{\xydrivernoload@{ps-t}}\installPSpatterns@233 m\xystandardpatterns@}%234K\else\DN@{\xydriverfail@{Patternsare}\UnloadPSpatterns@\relax}\fi235K\next@}Ǘ*tj476U1CHAPTERf4.CDRIVERS??hwrotated/scaledfdiagramsandtext,recognisedbutnotsuppMorted.jZInJfactOz[T,[wEB XcannotsuppMortrotationsandscaling.^Insteadw!egothroughallthemotions of Kpro!vidingPostScriptsuppMort,ethenseta agthatcausesalimitednumbMerofwarningmessagesftobMegeneratedasrequestsaremadeforthesee ects.P250\xydef@\oztexRotate@@{\OzTeXRotate@}252\xydef@\OzTeXRotate@{\OzTeXPStypes@ 253K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%254 m\xyinputorelse@{xyps-r}{\xydrivernoload@{ps-r}}%255 m\OzTeXRotScale@\installPSrotscale@\xyPSshapes@false}%256K\else\DN@{\xydriverfail@{rotationsare}\UnloadRotate@\relax}\fi257K\next@}!HThis]nev!erworkedpropMerlye.UItrequirestoom!uch]hackingatTerevorrow'scoMdeforlittlegain,sinceftext-rotationcannev!erworkanywaye.Usethedvipsoptioninstead!P265\xydef@\OzTeXRotScale@{%266K\def\xyrot@start(##1){%267 m{xypxyt##1\spacexyr}{OzXybegingsave}}%268K\def\xyscale@start(##1,##2){%269 m{xypxyt##1\space##2\spacexys}{OzXybegingsave}}%270K\def\xyrot@end{grestoreend}\def\xyscale@end{grestoreend}}ThefdefaultcoMdewilljustdonothingasfarastheoutputisconcerned...P276\let\OzTeXRotScale@=\xyRotScale@@0The2end&Log288\xyendinput290%$Log:xyoztex.doc,v$ 291%Revision3.3 T1996/12/1809:26:26ross292%improvementstofile-loadingcommands293%fixedmissing@bug294%295%Revision3.2 T1995/09/1918:21:41ross296%Bugfixrelease.297%298%Revision3.1 T1995/09/0520:36:33ross299%Release!300%301%Revision3.0 T1995/07/0720:13:19ross302%Majorreleasew/newUser'sGuide!303%304%Revision2.13 T1995/07/0415:04:51ross305%Readyforreleaseofv3.306%307%NEWforversion3.Š*tj4.6.COZTEXfV1.7DRIVERIU477??hw4.6r|OzTfeXffv1.7driver9aV ers.p3.3Tb9yRossMoQorehross@mpGce.mq.edu.auisՍThisoptionpro!videsthenecessaryinterfacetosuppMortthePostScriptback-endandotherPost- Script!e ectswhenusingtheD!VI!9driver!ofv!ersion1.7ofOz[T,[wEB XbyAndrewTerevorrow,2 @jLpaterversions#`ofO zR3T"R[wE)Xshouldinstepadusethedriveroption\xyoption{oztex}a.ĹUpgradingtov!ersion1.9+fofOz[T,[wEB Xisrecommended.uDoMesnotsupportrotations,scalingandcolouredtextwithindiagramsandthePostScriptdic-tionaryfm!ustbMeavdDailableina lecalledglobal.ps7c`.Note:ATeo.useXY 8-pice ectiv!elywithOz[T,[wEB Xrequireschangingseveralmemoryparameters.Inpar-ticularZa`Big-T,[wEB X'isneeded,)alongwithanincreaseinthepool_size9!parameter.Explicitinstructionsarefcon!tainedinthe leINSTALL.1OzTeXRnoftheXY p-picdistribution.7捑Header:P1%%$Id:xy17oztex.doc,v3.31996/12/1814:21:23rossExp$2%%3%%Xy-pic``OzTeXv1.7''driverinterfaceoption.4%%Copyright(c)1995-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fi26\xyprovide{17oztex}{OzTeXv1.7driver}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}"53\xydef@\OzTeX@@#1{\dvimessage@{OzTeXv1.7}{#1}}55\newdriver{%56K\xyaddsupport{color}\oldoztexColor@@ p‰ffy̟ L͍ {-=2aOzTuAEXuisasharew9areimplementationofTuAEXforMacintoshav|railablefrommanybulletinbAoardsandftpsites;jv1.5 andTearlierv9ersionswerefreeware.pEmailcontact:phakt@k|ragi.comi.*tj478U1CHAPTERf4.CDRIVERS??hw57K\xyaddsupport{crayon}\oldoztexCrayon@@ 58K\xyaddsupport{ps}\oldoztexPS@@59K\xyaddsupport{rotate}\oldoztexRotate@@60K\xyaddsupport{line}\oldoztexLine@@61K\xyaddsupport{frame}\oldoztexFrames@@62K\xyaddsupport{tile}\oldoztexTiles@@63K\xyaddsupport{cmtip}\relax64}PSuppMortedf\special5Je ectsfare.../Rcolour,fusingPostScript,butnotoffon!t-characters.78\xydef@\oldoztexColor@@{\oldOzTeXColours@}80\xydef@\oldOzTeXColours@{\oldOzTeXPStypes@ 81K\let\xylocalColor@=\xyNoColor@@\def\xycolor@{\xycolor@@}%82K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%\XYpredict@83 m\xyinputorelse@{xyps-c}{\xydrivernoload@{ps-c}}%84 m\installPScolor@}\else\DN@{}\fi\next@85K\ifx\xycrayolaloaded\empty\DN@{\xystandardcolors@\oldOzTeXCrayon@@{}}%86K\else\let\next@=\xystandardcolors@\fi\next@87K\let\xycolorwarning@=\relax88K\let\oldoztexColor@@=\relax89K\let\UnloadColor@@=\NooldOzTeXColor@90K}P92\xydef@\NooldOzTeXColor@{%93K\let\xylocalColor@=\xyNoColor@@94K\let\xycolor@=\xyNoColor@95K\let\xycolorwarning@=\xycolorwarning@@96K\let\oldoztexColor@@=\oldOzTeXColours@97K\let\UnloadColor@@=\UnloadColor@98K}Y8cra!yonfcolours,similarlyrestricted.Thef68coloursarethosethatdvips$ recognizesb!yname,thankstoTeomasRokicki.111\xydef@\oldOzTeXCrayon@@{\installCrayolaColors@}PostScriptfbac!k-end.121\xydef@\oldoztexPS@@{\oldoztexPS@}123\xydef@\oldoztexPSunload@{\UnloadPS@ 124K\def\xyPSdictname{}\UsePSdict@@false125K\let\installxyps@@=\relax126K\let\UnloadPS@@=\UnloadPS@127K\xyPSshapes@true128K\let\oldoztexPS@@=\oldoztexPS@}v132\xydef@\oldOzTeXSpecial@#1{\special{empty.ps{#1}xy}}133\xydef@\oldOzTeXMacro@#1{\special{empty.ps{#1}xy}}134\xydef@\oldOzTeXDict@#1{\special{empty.ps@obxy{#1}stoppedpop@eoxy}}135\xydef@\oldOzTeXinclude@#1{\special{#1}}H*tj4.6.COZTEXfV1.7DRIVERIU479??hw136\xydef@\oldOzTeXraw@#1{\special{empty.ps@boxy#1@eoxy}}%P138\xydef@\oldOzTeXPStypes@{% 139K\xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}%140K\ifx\PSspecial@@\oldOzTeXSpecial@\else141 m\let\PSspecial@@=\oldOzTeXSpecial@142 m\let\PSmacro@@=\oldOzTeXMacro@143 m\let\PSdict@@=\oldOzTeXDict@144 m\let\PSraw@@=\oldOzTeXraw@145 m\let\PSinclude@@=\oldOzTeXinclude@146 m\let\xyPSobeylines@@=\obeyoldOzTeXlines@147 m\let\PSspecialdict@@=\oldOzTeXDict@148 m\oldOzTeX@@{PostScript}%149K\fi150%\xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}%151K\oldOzTeXCurrpt@}153{\catcode`\^^M=\active%154K\gdef\next{\catcode`\^^M=\active\let^^M=\space\obeyspaces}}155\xylet@\obeyoldOzTeXlines@=\nextKThe,PostScriptopMerators@boxy%vand@eoxyarede nedinxyps-ps0ʹforb!ypassingthemech-anism[usedinOz[T,[wEB XtoisolatecoMdepassedin\special7.commands.Althoughitispossible(albMeitGdicult)todevisePostScripttodeducethecurren!tlocationforusewiththe\ra!w"spMecials,گthisinformationcannotbeusedtodorotationsandscalingaswithotherhdriv!eris.HencefthevdDalueof\xyPScurrpt@@Rnistak!entobMeemptye.166\xydef@\oldOzTeXCurrpt@{\let\xyPScurrpt@@=\OzTeXCurrpt@@}%167\xydef@\oldOzTeXCurrpt@@{}ƨThisMa!voidsdumpingthedictionaryintothedvi- le,_makingsurethatinsteaditgoMesintoa le,spMeci edfb!y\xyPSdictnameNb,whichdefaultstoglobal.ps7c`.177\xydef@\oldoztexPS@@{\oldOzTeXPStypes@178K\let\installxyps@@=\old@OzTeX@PS@179K\installxyps@}181%Theparameter|#1|inthisnextmacroistogobblethe|\dumpPSdict@|182%whichwouldotherwisedumpthedictionaryintothedvi-file.However183%if|\xyPSdictname|isdefinedthenthisdumpmustoccurintoafile.184%185%\xydef@\old@OzTeX@PS@#1{%186%\let\includePSmessage@=\xyoldOzTeXheader187%\ifx\undefined\xyPSdictname\DN@{}%188%\else\DN@{#1}\fi\next@\UsePSdict@@true}190\xydef@\old@OzTeX@PS@{\UsePSdict@@true191K\let\includePSmessage@=\xyoldOzTeXheader192K\ifx\undefined\xyPSdictname\def\xyPSdictname{global.ps}\fi}194\xydef@\xyoldOzTeXheader#1#2#3{\UsePSdict@@true}KThefparameters#1#2#3)ȹof\xyOzTeXheaderWgobbletok!ensthatareunnecessarywithOz[T,[wEB X.vdDariablefline-widthsandpMoly-lines,usingPostScript.*tj480U1CHAPTERf4.CDRIVERS??hw204\xydef@\oldoztexLine@@{\oldoztexLine@}P206\xydef@\oldoztexLine@{\oldOzTeXPStypes@ 207K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%208 m\xyinputorelse@{xyps-l}{\xydrivernoload@{ps-l}}\installPSline@}%209K\else\DN@{\xydriverfail@{line-stylesare}\UnloadLine@\relax}\fi210K\next@}extrafframesand lls,usingPostScript.217\xydef@\oldoztexFrames@@{\oldOzTeXFrames@}219\xydef@\oldOzTeXFrames@{\oldOzTeXPStypes@220K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%221 m\xyinputorelse@{xyps-f}{\xydrivernoload@{ps-f}}\installPSframes@}%222K\else\DN@{\xydriverfail@{framesare}\UnloadPSFrames@\relax}\fi223K\next@}patternsfandtiles,usingPostScript.230\xydef@\oldoztexTiles@@{\oldOzTeXTiles@}232\xydef@\oldOzTeXTiles@{\oldOzTeXPStypes@233K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%234 m\xyinputorelse@{xyps-t}{\xydrivernoload@{ps-t}}\installPSpatterns@235 m\xystandardpatterns@}%236K\else\DN@{\xydriverfail@{Patternsare}\UnloadPSpatterns@\relax}\fi237K\next@}rotated/scaledfdiagramsandtext,recognisedbutnotsuppMorted.֍InJfactOz[T,[wEB XcannotsuppMortrotationsandscaling.^Insteadw!egothroughallthemotionsof Kpro!vidingPostScriptsuppMort,ethenseta agthatcausesalimitednumbMerofwarningmessagesftobMegeneratedasrequestsaremadeforthesee ects.252\xydef@\oldoztexRotate@@{\oldOzTeXRotate@}254\xydef@\oldOzTeXRotate@{\oldOzTeXPStypes@255K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%\XYpredict@256 m\xyinputorelse@{xyps-r}{\xydrivernoload@{ps-r}}%257 m\xyRotScale@@\installPSrotscale@\xyPSshapes@false}%258K\else\DN@{\xydriverfail@{rotationsare}\UnloadRotate@\relax}\fi259K\next@}!ZThe2end&Log271\xyendinput273%$Log:xy17oztex.doc,v$274%Revision3.3 T1996/12/1814:21:23ross275%Ross'sversion276%277%Revision3.3.1.1 T1996/12/1808:47:45ross278%***emptylogmessage***279%280%Revision3.2 T1995/09/1918:20:20ross8*tj4.7.CTEXTURESfDRIVERL481??hw281%Bugfixrelease. 282%283%Revision3.1 T1995/09/0520:36:33ross284%Release!285%286%Revision3.0 T1995/07/0720:13:19ross287%Majorreleasew/newUser'sGuide!288%289%Revision2.13 T1995/07/0415:04:51ross290%Readyforreleaseofv3.291%292%NEWforversion3..#4.7r|TfexturesffdriverV ers.p3.3Tb9yRossMoQorehross@mpGce.mq.edu.aui"Thisodriv!erprovidessuppMortforversion1.7+ofBlueSkyResearch'sTexturesapplicationforMac-in!tosh3./It[incorpMoratessupportforcolourandallofXYe-pic'sPostScripte ects./Earlierv!ersionsofTexturesfshouldinsteadusethedriv!eroption\xyoption{16textures}|_X. wNoticerwthatv!ersion1.7su ersfromaprintingbugwhichmaycauseaPostScripterror.̎Arj xiskludged~b!ymakingsurethe rstpagehasbMeenshownintheviewerbMeforeanypageswithdiagramsarefsen!ttotheprinter.YHeader:P1%%$Id:xytextures.doc,v3.31996/12/1809:41:45rossExp$2%%3%%Xy-pic``Textures''driverinterfaceoption.4%%Copyright(c)1995-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA. Dɉffy̟ L͍ {-=3aMacin9toshTisatrademarkofAppleComputerInc.W*tj482U1CHAPTERf4.CDRIVERS??hw23%% 24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{textures}{Texturesdriver}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}!`47\xydef@\Textures@@#1{\dvimessage@{Textures}{#1}}49\newdriver{%50K\xyaddsupport{color}\texturesColor@@51K\xyaddsupport{crayon}\texturesCrayon@@52K\xyaddsupport{ps}\texturesPS@@53K\xyaddsupport{rotate}\texturesRotate@@54K\xyaddsupport{line}\texturesLine@@55K\xyaddsupport{frame}\texturesFrames@@56K\xyaddsupport{tile}\texturesTiles@@57K\xyaddsupport{cmtip}\relax58}SuppMortedf\special5Je ectsfare...Scolour,fbMothon-screenandwithPostScript꿍Teexturesusesthecolour-stac!kmethoMd,butitrequiresaseparate\special3@tosetthenewcolourafterfha!vingpushedthepreviouscolourontothestack.76\xydef@\TexturesColor@push#1{\special{colorpush}\special{color#1}}78\xydef@\TexturesColours@{\texturesPStypes@79K\let\xylocalColor@=\xystackcolor@80K\let\xycolor@push=\TexturesColor@push81K\def\xycolor@{\xycolor@@}%82K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%83 m\xyinputorelse@{xyps-c}{\xydrivernoload@{ps-c}}%84 m\installPScolor@}\else\DN@{}\fi\next@85K\ifx\xycolor@@\xyNoColor@\let\xycolor@@=\xycolor@raw@@\fi86K\ifx\xycrayolaloaded\empty\DN@{\xystandardcolors@\texturesCrayon@@{}}%87K\else\let\next@=\xystandardcolors@\fi\next@88K\let\xycolorwarning@=\relax\Textures@@{color}%89K\let\texturesColor@@=\relax90K\let\UnloadColor@@=\NoTexturesColor@91K}93\xydef@\texturesColor@@{\TexturesColours@}95\xydef@\NoTexturesColor@{%96K\let\xylocalColor@=\xyNoColor@@97K\let\xycolor@=\xyNoColor@98K\let\xycolorwarning@=\xycolorwarning@@99K\let\texturesColor@@=\TexturesColours@100K\let\UnloadColor@@=\UnloadColor@101K}ҍcra!yonfcolours.F*tj4.7.CTEXTURESfDRIVERL483??hwThef68coloursarethosethatdvips$ recognizesb!yname,thankstoTeomasRokicki.P114\xydef@\texturesCrayon@@{\texturesColor@@\texturesCrayon@} 115\xydef@\texturesCrayon@{\installCrayolaColors@}%EPostScriptfbac!k-end.123\xydef@\texturesPS@@{\texturesPS@}124\xydef@\texturesPSunload@{\UnloadPS@125K\let\UnloadPS@@=\UnloadPS@126K\let\texturesPS@@=\texturesPS@}Veersionsؑ1.7andlaterofTexturesha!veؑthefollo!wingkindsof\special0,the rsttwoexecutinginvtheen!vironmentvde nedb!ythedictionaryuserdict0s.xInparticulartheseversionsofTexturesno!wfallowthePostScriptdictionarytobMeloadedintothemainworkingdictionarye. ={)\special{rawpostscript#1} ӹputsfcoMdedirectlyin!tothePostScript le. ={)\special{postscript#1}cwraps'thecoMdewithinspsf...eps>,@whic!hinvolvesabasischange)withinfasave/restoreLHĹpair. ={)\special{prePostScript#1}ㆹplacesithePostScriptcoMdewithintheheaderdictionarye,)calledfTeXdict+ .Eac!hfofthesehasacorrespMondingversionforreadingthePostScriptcommandsfroma le.P147\xydef@\texturesPStypes@{%148K\xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}%149K\ifx\PSspecial@@\TexturesSpecial@\else150 m\let\PSspecial@@=\TexturesSpecial@151 m\let\PSmacro@@=\TexturesMacro@152 m\let\PSdict@@=\TexturesDict@153 m\let\PSraw@@=\TexturesRaw@154 m\let\PSinclude@@=\TexturesInclude@155 m\let\PSspecialdict@@=\TexturesSpecialDict@156 m\let\xyPSobeylines@@=\obeyTextureslines@157 m\Textures@@{PostScript}%158K\fi\texturesCurrpt@\XYpredict@}160\xydef@\TexturesSpecial@#1{\firstPS@@\special{postscript#1}}161\xydef@\TexturesMacro@#1{\special{postscript{#1}xy}}162\xydef@\TexturesDict@#1{\special{prePostScript#1}}163\xydef@\TexturesSpecialDict@#1{\special{prePostScript#1}}164\xydef@\TexturesInclude@#1{\firstPS@@\special{prePostScriptfile#1}}165\xydef@\TexturesRaw@#1{\firstPS@@\special{rawpostscript#1}}%167{\catcode`\^^M=\active%168K\gdef\next{\catcode`\^^M=\active\let^^M=\par%169K\let\PSspecial@@=\TexturesDict@\obeyspaces}}170\xylet@\obeyTextureslines@=\nextThencurrentpointIֹisnde nedforthe\ra!w"spMecials.v FeorTexturesthisisthesameas\xyPScurrpt@@@R;,infxyps-ps.docBⴹ.177\xydef@\texturesCurrpt@{\let\xyPScurrpt@@=\texturesCurrpt@@}%178\xydef@\texturesCurrpt@@{\PSspecial@@{xyi}\PSraw@@{userdictbeginxyxend}}$*tj484U1CHAPTERf4.CDRIVERS??hw180%\xydef@\texturesCurrpt@@{\PSspecial@@{% 181%00transformgrestoregsaveitransform}%182%\PSraw@@{userdictbegin/xyYposexchdef/xyXposexchdefend}}The%PostScriptopMeratorcalledxyxisde nedinxyps-ps0*forstoringthelocationplacedonthefstac!kbyxyid.ލThisfinstallsthePostScriptbac!kend.P193\xydef@\texturesPS@{\texturesPStypes@194K\let\texturesPS@@=\relax195K\let\UnloadPS@@=\texturesPSunload@196K\let\installxyps@@=\relax\installxyps@}̍rotated/scaledfdiagramsandtext,usingPostScript.203\xydef@\texturesRotate@@{\texturesRotate@}205\xydef@\texturesRotate@{\texturesPStypes@206K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%207 m\xyinputorelse@{xyps-r}{\xydrivernoload@{ps-r}}%208 m\xyRotScale@@\installPSrotscale@}%209K\else\DN@{\xydriverfail@{rotationsare}\UnloadRotate@\relax}\fi210K\next@}̍vdDariablefline-widthsandpMoly-lines,usingPostScript.217\xydef@\texturesLine@@{\texturesLine@}219\xydef@\texturesLine@{\texturesPStypes@220K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%221 m\xyinputorelse@{xyps-l}{\xydrivernoload@{ps-l}}%222 m\installPSline@}%223K\else\DN@{\xydriverfail@{line-widthsare}\UnloadLine@\relax}\fi224K\next@}̍extrafframesand lls,usingPostScript.231\xydef@\texturesFrames@@{\texturesFrames@}233\xydef@\texturesFrames@{\texturesPStypes@234K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%235 m\xyinputorelse@{xyps-f}{\xydrivernoload@{ps-f}}%236 m\installPSframes@}%237K\else\DN@{\xydriverfail@{framesare}\UnloadPSFrames@\relax}\fi238K\next@}̍patternsfandtiles,usingPostScript.245\xydef@\texturesTiles@@{\texturesTiles@}247\xydef@\texturesTiles@{\texturesPStypes@248K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%249 m\xyinputorelse@{xyps-t}{\xydrivernoload@{ps-t}}%250 m\installPSpatterns@\xystandardpatterns@}%251K\else\DN@{\xydriverfail@{Patternsare}\UnloadPSpatterns@\relax}\fi1*tj4.8.CTEXTURESfV1.6DRIVER2485??hw252K\next@}!܍The2end&LogP264\xyendinput266%$Log:xytextures.doc,v$ 267%Revision3.3 T1996/12/1809:41:45ross268%minorimprovementstofile-loadingcommands269%270%Revision3.2 T1995/09/1918:21:41ross271%Bugfixrelease.272%273%Revision3.1 T1995/09/0520:36:33ross274%Release!275%276%Revision3.0 T1995/07/0720:13:19ross277%Majorreleasew/newUser'sGuide!278%279%Revision2.13 T1995/07/0415:04:51ross280%Readyforreleaseofv3.281%282%NEWforversion3.-C4.8r|Tfexturesffv1.6drivertV ers.p3.3Tb9yRossMoQorehross@mpGce.mq.edu.auiThisdriv!erprovidessuppMortforversions1.5band1.6ofBlueSkyResearch'sTexturesapplicationfor12Macin!tosh4.ItincorpMoratessupportforPostScriptcolourandtheXY <-psPostScriptbac!k-end.This¸willnotw!orkwithversions1.7andlater;theserequirethehdriverioption\xyoption{textures}oV.Header:P1%%$Id:xy16textures.doc,v3.31996/12/1814:21:23rossExp$2%%3%%Xy-pic``Texturesv1.6''driverinterfaceoption.4%%Copyright(c)1995-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but ffy̟ L͍ {-=4aMacin9toshTisatrademarkofAppleComputerInc.<*tj486U1CHAPTERf4.CDRIVERS??hw16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY 17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{16textures}{Texturesv1.6driver}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}"h43\xydef@\oldTextures@@#1{\dvimessage@{Texturesv1.6}{#1}}45\newdriver{%46K\xyaddsupport{color}\oldtexturesColor@@47K\xyaddsupport{crayon}\oldtexturesCrayon@@48K\xyaddsupport{ps}\oldtexturesPS@@49K\xyaddsupport{rotate}\oldtexturesRotate@@50K\xyaddsupport{line}\oldtexturesLine@@51K\xyaddsupport{frame}\oldtexturesFrames@@52K\xyaddsupport{tile}\oldtexturesTiles@@53K\xyaddsupport{cmtip}\relax54}ՍSuppMortedf\special5Je ectsfare...΍colour,fusingPostScript4TeexturesGv1.6cannotmanagecolours,exceptwithinimpMortedgraphics.Itcanputcoloursin!tothefPostScriptoutput.71\xydef@\oldTexturesColours@{\oldtexturesPStypes@72K\let\xylocalColor@=\xyNoColor@@\def\xycolor@{\xycolor@@}%73K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%74 m\xyinputorelse@{xyps-c}{\xydrivernoload@{ps-c}}%75 m\installPScolor@}\else\DN@{}\fi\next@76K\ifx\xycolor@@\xyNoColor@\let\xycolor@@=\xycolor@raw@@\fi77K\ifx\xycrayolaloaded\empty\DN@{\xystandardcolors@\oldtexturesCrayon@@{}}%78K\else\let\next@=\xystandardcolors@\fi\next@79K\let\xycolorwarning@=\relax80K\let\oldtexturesColor@@=\relax81K\let\UnloadColor@@=\NooldTexturesColor@82K}84\xydef@\oldtexturesColor@@{\oldTexturesColours@}86\xydef@\NooldTexturesColor@{%87K\let\xylocalColor@=\xyNoColor@@88K\let\xycolor@=\xyNoColor@89K\let\xycolorwarning@=\xycolorwarning@@90K\let\oldtexturesColor@@=\oldTexturesColours@G *tj4.8.CTEXTURESfV1.6DRIVER2487??hw91K\let\UnloadColor@@=\UnloadColor@ 92K}&cra!yonfcolours.diThef68coloursarethosethatdvips$ recognizesb!yname,thankstoTeomasRokicki.P105\xydef@\oldtexturesCrayon@@{\oldtexturesColor@@\oldtexturesCrayon@}106\xydef@\oldtexturesCrayon@{\installCrayolaColors@}%PostScriptfbac!k-end.P113\xydef@\oldtexturesPS@@{\oldtexturesPS@}115\xydef@\oldtexturesPSunload@{\UnloadPS@ 116K\ifx\xyrealshipout@\undefined\else117 m\ifx\shipout\xyrealshipout@118 m\else\let\shipout=\xyrealshipout@\fi\fi119K\let\installxyps@@=\relax120K\let\UnloadPS@@=\UnloadPS@121K\let\oldtexturesPS@@=\oldtexturesPS@}WWeefm!ustreturnthebindingof\shipout5JtoitsinitialvdDalue.8Early6v!ersions(1.5{1.6)ofTextureshavetwokindsof\special24A,[forinsertingPostScriptcoMdefin!tothedvi- leandtwomoreforreadingsuchcoMdefroma le:/7 ={)\special{rawpostscript#1} ӹputsfcoMdedirectlyin!tothePostScript le.h ={)\special{postscript#1}wrapsV>thecoMdewithinsps<...eps>,fFwhic!hinvolvesgraphicsstate)c!hangesfwithinagsave/grestoreWpair./8Eac!hfofthesehasacorrespMondingversionforreadingthePostScriptcommandsfroma le.P143\xydef@\oldTexturesSpecial@#1{\firstPS@@\special{postscript#1}}144\xydef@\oldTexturesMacro@#1{\special{postscript{#1}xy}}145\xydef@\oldTexturesInclude@#1{\firstPS@@\special{rawpostscriptfile#1}}146\xydef@\oldTexturesRaw@#1{\firstPS@@\special{rawpostscript#1}}148\xydef@\oldtexturesPStypes@{%149K\xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}%150K\ifx\PSspecial@@\oldTexturesSpecial@\else151 m\let\PSspecial@@=\oldTexturesSpecial@152 m\let\PSmacro@@=\oldTexturesMacro@153 m\let\PSdict@@=\oldTexturesRaw@154 m\let\PSraw@@=\oldTexturesRaw@155 m\let\PSinclude@@=\oldTexturesInclude@156 m\let\PSspecialdict@@=\oldTexturesRaw@157 m\let\xyPSobeylines@@=\obeyoldTextureslines@158 m\oldTextures@@{PostScript}%159K\fi160%\xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}%161K\oldtexturesCurrpt@\@PSshipout}163{\catcode`\^^M=\active%164K\gdef\next{\catcode`\^^M=\active\let^^M=\par\obeyspaces}}Ra*tj488U1CHAPTERf4.CDRIVERS??hw165\xylet@\obeyoldTextureslines@=\next-ThencurrentpointIֹisnde nedforthe\ra!w"spMecials.v FeorTexturesthisisthesameas\xyPScurrpt@@@R;, infxyps-ps.docBⴹ.P172\xydef@\oldtexturesCurrpt@{\let\xyPScurrpt@@=\oldtexturesCurrpt@@}%173\xydef@\oldtexturesCurrpt@@{\PSspecial@@{xyi}\PSraw@@{userdictbeginxyxend}}The%PostScriptopMeratorcalledxyxisde nedinxyps-ps0*forstoringthelocationplacedonthefstac!kbyxyid.jTextureswv1.6requiresthePostScriptdictionarytobMeshipped-outwithev!erypage.Teoac!hievethisecien!tlywerebind\shipout2,9basdescribMedinxyps-ps.docD%.Nextsetthe ag\UsePSdict@@true_Cafter\ha!vingrebMound\includePSmessage@p3ҹtogobbletheattempttoloadthefdictionarydirectlyin!tothedvi- le.wThisfinstallsthePostScriptbac!kend.P190\xydef@\oldtexturesPS@{\oldtexturesPStypes@191K\let\oldtexturesPS@@=\relax192K\let\UnloadPS@@=\oldtexturesPSunload@193K\let\installxyps@@=\@PSshipout\installxyps@} Xrotated/scaledfdiagramsandtext,usingPostScript.201\xydef@\oldtexturesRotate@@{\oldtexturesRotate@}203\xydef@\oldtexturesRotate@{\oldtexturesPStypes@204K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%205 m\xyinputorelse@{xyps-r}{\xydrivernoload@{ps-r}}%206 m\xyRotScale@@\installPSrotscale@}%207K\else\DN@{\xydriverfail@{rotationsare}\UnloadRotate@\relax}\fi208K\next@} XvdDariablefline-widthsandpMoly-lines,usingPostScript.215\xydef@\oldtexturesLine@@{\oldtexturesLine@}217\xydef@\oldtexturesLine@{\oldtexturesPStypes@218K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%219 m\xyinputorelse@{xyps-l}{\xydrivernoload@{ps-l}}%220 m\installPSline@}%221K\else\DN@{\xydriverfail@{line-stylesare}\UnloadLine@\relax}\fi222K\next@} Xextrafframesand lls,usingPostScript.229\xydef@\oldtexturesFrames@@{\oldtexturesFrames@}231\xydef@\oldtexturesFrames@{\oldtexturesPStypes@232K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%233 m\xyinputorelse@{xyps-f}{\xydrivernoload@{ps-f}}%234 m\installPSframes@}%235K\else\DN@{\xydriverfail@{framesare}\UnloadPSFrames@\relax}\fi236K\next@}^*tj4.9.CXD!VIfDRIVERm-489??hwpatternsfandtiles,usingPostScript.P243\xydef@\oldtexturesTiles@@{\oldtexturesTiles@}245\xydef@\oldtexturesTiles@{\oldtexturesPStypes@ 246K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%247 m\xyinputorelse@{xyps-t}{\xydrivernoload@{ps-t}}%248 m\installPSpatterns@\xystandardpatterns@}%249K\else\DN@{\xydriverfail@{Patternsare}\UnloadPSpatterns@\relax}\fi250K\next@}' 8The2end&LogP262\xyendinput264%$Log:xy16textures.doc,v$ 265%Revision3.3 T1996/12/1814:21:23ross266%Ross'sversion267%268%Revision3.3.1.1 T1996/12/1808:45:28ross269%***emptylogmessage***270%271%Revision3.2 T1995/09/1918:20:20ross272%Bugfixrelease.273%274%Revision3.1 T1995/09/0520:36:33ross275%Release!276%277%Revision3.0 T1995/07/0720:13:19ross278%Majorreleasew/newUser'sGuide!279%280%Revision2.13 T1995/07/0415:04:51ross281%Readyforreleaseofv3.282%283%NEWforversion3.44.9r|XDVIffdriverGwV ers.p3.3Tb9yRossMoQorehross@mpGce.mq.edu.aui덑This +driv!erprovidessuppMortforextensionswhenusingvdDariantsofthexdvidriver,$\byEricCoMoper,BobAmSc!hei er,UMarkEichinandothers.5IthasbMeenusedsuccessfullywithxdvipatchlevel20,UbyPaulVeojta,fandxdvik$ v!ersion18f,byKarlBerrye.xSomeofthesuppMortedfeaturesassumethattheimplemen!tationofxdvi5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fi26\xyprovide{xdvi}{XDVIdriver}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}.ࢍ56\xydef@\xdvi@@#1{\dvimessage@{xdvi}{#1}}58\newdriver{%59K\xyaddsupport{color}\xdviColor@@60K\xyaddsupport{crayon}\xdviCrayola@@61K\xyaddsupport{ps}\xdviPS@@62K\xyaddsupport{rotate}\xdviRotate@@63K\xyaddsupport{line}\xdviLine@@64K\xyaddsupport{frame}\xdviFrames@@65K\xyaddsupport{tile}\xdviTiles@@66K\xyaddsupport{tpic}\xdviTPIC@67}Drivter2installation 5SuppMortedf\special5Je ectsfare...ᯍcolour,fusingPostScript.[8Notiallv!ersionsofxdvihsuppMortcolor\special1g0s,usothereisnodirectsupportforcolour.ɰHo!w-ev!erpartsofpicturesrenderedusingPostScriptmayappMearcoloured,$duetointerpretationoffcolourcommandswithinthePostScript.Disablefthe\xylocalColor@Wbutenablethe\xycolor@; ƹforuseb!yPostScript.u*tj4.9.CXD!VIfDRIVERm-491??hw87\xydef@\xdvi@Color@{\xdviPStypes@ 88K\let\xylocalColor@=\xyNoColor@@89%\let\xylocalColor@=\xystackcolor@90%\let\xycolor@push\xycolor@push@@91K\def\xycolor@{\xycolor@@}\let\xycolorwarning@=\relax92K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%93 m\xyinputorelse@{xyps-c}{\xydrivernoload@{ps-c}}\installPScolor@}%94K\else\DN@{}\fi\next@95K\ifx\xycolor@@\xyNoColor@\let\xycolor@@=\xycolor@raw@@\fi96K\ifx\xycrayolaloaded\empty\DN@{\xystandardcolors@\xdviCrayola@{}}%97K\else\DN@{\xystandardcolors@}\fi\next@98K\let\xdviColor@@=\relax99K\let\UnloadColor@@=\NoXDVIcolor@100K}%P102\xydef@\xdviColor@@{\xdvi@Color@}104\xydef@\NoXDVIcolor@{% 105K\def\xycolor@{\xycolor@@}%106K\let\xycolor@@=\xyNoColor@107K\let\xylocalColor@=\xyNoColor@@108K\let\xycolorwarning@=\xycolorwarning@@109K\let\xdviColor@@=\xdvi@Color@110K\let\UnloadColor@@=\UnloadColor@111K}xIf!uneithersuppMort lecolordvi.texM>norcolordvi.stycanbMefound,@8thenthenormalcoloursuppMort`9willnotbea!vdDailable. UHowever`9thecoloursupportforthePostScriptbac!k-endcanstillfbMeused.P119\xydef@\NoXDVIcolordvi@{\xywarning@{%120KNeither Tcolordvi.texnorcolordvi.stycouldbefound.}%121K\xyBEcolorcheck@}%荍cra!yonfcolours.ʍThe68coloursthatxdvirecognizesb!ynamearenotloadedunlessthecrayon)optionhasbMeenrequested.134\xydef@\xdviCrayola@@{\xdviColor@@\xdviCrayola@}136\xydef@\xdviCrayola@{%137K\let\prevxycolor@=\newxycolor@138 m\def\newxyXDVIcolor@##1##2##3{\prevxycolor@{##1}{}{##1}}%139 m\let\newxycolor@=\newxyXDVIcolor@140 m\installCrayolaColors@141K\let\newxycolor@=\prevxycolor@}%xAlthoughban!yorderofloadingoptions:ps;m,p_xdvio,p_color#andcrayon)CproMducesthedesiredresultvisuallye,theWPostScriptcoMdecanbedi eren!twithdi erentloadingorder.WThemosteasilyreadablefisobtainedwhencrayon)ȹisrequestedlast.PostScriptfbac!k-end.153\xydef@\xdviPS@@{\xdviPS@}ޠ*tj492U1CHAPTERf4.CDRIVERS??hw155\xydef@\xdviPS@unload{\UnloadPS@ 156K\let\UnloadPS@@=\UnloadPS@157K\let\xdviPS@@=\xdviPS@}K썑Thelatestv!ersionsofxdvigrecognisemostformsof\special5fVcommandthatarerecognisedbydvipso;ftheseareusedtosuppMortPostScripte ects.P166\xydef@\xdviPStypes@{%167K\xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}%168K\ifx\PSspecial@@\xdviSpecial@\else169 m\let\PSspecial@@=\xdviSpecial@170 m\let\PSmacro@@=\xdviMacro@171 m\let\PSdict@@=\xdviDict@172 m\let\PSspecialdict@@=\xdviDict@173 m\let\PSraw@@=\xdviRaw@174 m\let\PSinclude@@=\xdviInclude@175 m\let\xyPSobeylines@@=\obeyXDVIlines@176 m\let\xyPScurrpt@@=\xdviCurrpt@@177 m\xdvi@@{PostScript}%178K\fi\XYpredict@}180\xywarnifdefined\xdviSpecial@181\xywarnifdefined\xdviMacro@182\xywarnifdefined\xdviDict@183\xywarnifdefined\xdviInclude@184\xywarnifdefined\xdviRaw@185{\catcode`\"=11\catcode`\!=11\catcode`\:=11186K\gdef\xdviSpecial@#1{\special{ps::SDictbegin#1end}}187K\gdef\xdviMacro@#1{\firstPS@@\special{"{#1}xy}}188%\gdef\xdviDict@#1{\special{!mark{#1}stoppedcleartomark}}189K\gdef\xdviDict@#1{\special{!#1}}190K\gdef\xdviInclude@#1{\special{header=#1}}191K\gdef\xdviRaw@#1{\special{ps:SDictbegin#1end}}193\catcode`\^^M=\active%194K\gdef\next{\catcode`\^^M=\active\let^^M=\space}}%195\xylet@\obeyXDVIlines@=\nextK썑AllFthePostScriptde nitionspassedtoxdvi!b!yreadingthedictionary learestoredinaYPostScriptdictionarywhic!hitde nes,calledSDict"@. tThismustbMethecurrentdictio-narywhenev!eranXY-pscommandistobMeexecuted. 4Thiswillbethecasewhenev!erthe\special{">(kcpommands}.orn\special{!A=commands}formsnareused,:butnotwhenthe\special{ps::R;cpommands}form3isused.Th!usthe\xdviSpecial@S"macroincludescoMdetoopenSDict%%andcloseitwhen nished;:so#alsodoMesthe\xdviRaw@:@t!ype,sincethisisusedwithXY--picPostScriptoperatorswhosefde nitionsha!vefbMeenplacedwithinSDict d.ThefcurrentpointLHĹisfde nedforthe\ra!w"spMecials.213\xydef@\xdviCurrpt@{\let\xyPScurrpt@@=\xdviCurrpt@@}%214\xydef@\xdviCurrpt@@{\PSraw@@{xyp}}K썑ThePostScriptopMeratorcalledxypfisde nedinxyps-ps0eforstoringthelocationreadfromcurrentpointC.*tj4.9.CXD!VIfDRIVERm-493??hwThisfinstallsthePostScriptbac!kend.P225\xydef@\xdviPS@{\xdviPStypes@ 226K\let\xdviPS@@=\PSspecials@true227K\let\UnloadPS@@=\xdviPS@unload228K\let\installxyps@@=\relax\installxyps@} rotated/scaledfdiagramsandtext,usingPostScript.235\xydef@\xdviRotate@@{\xdviRotate@}237\xydef@\xdviRotate@{\xdviPStypes@238K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%239 m\xyinputorelse@{xyps-r}{\xydrivernoload@{ps-r}}%240 m\xdviCurrpt@\xdviRotScale@\installPSrotscale@}%241K\else\DN@{\xydriverfail@{rotationsare}UnloadRotate@\relax}\fi242K\next@}244\xydef@\xdviRotScale@{%245K\def\xyrot@start(##1){{xyct##1\spacexyrs}}%246K\def\xyrot@end{}%247K\def\xyscale@start(##1,##2){{xyct##1\space##2\spacexyss}}%248K\def\xyscale@end{}} vdDariablefline-widthsandpMoly-lines,usingPostScript.255\xydef@\xdviLine@@{\xdviLine@}257\xydef@\xdviLine@{\xdviPStypes@258K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%259 m\xyinputorelse@{xyps-l}{\xydrivernoload@{ps-l}}\installPSline@}%260K\else\DN@{\xydriverfail@{line-widthsare}\UnloadLine@\relax}\fi261K\next@} extrafframesand lls,usingPostScript.268\xydef@\xdviFrames@@{\xdviFrames@}270\xydef@\xdviFrames@{\xdviPStypes@271K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%272 m\xyinputorelse@{xyps-f}{\xydrivernoload@{ps-f}}\installPSframes@}%273K\else\DN@{\xydriverfail@{framesare}\UnloadFrames@\relax}\fi274K\next@} patternsfandtiles,usingPostScript.281\xydef@\xdviTiles@@{\xdviTiles@}283\xydef@\xdviTiles@{\xdviPStypes@284K\expandafter\ifx\csnamexyps-psloaded\endcsname\empty\DN@{%285 m\xyinputorelse@{xyps-t}{\xydrivernoload@{ps-t}}\installPSpatterns@}%286K\else\DN@{\xydriverfail@{Patternsare}\UnloadPSpatterns@\relax}\fi287K\next@} tpicfdra!wingcommands.294\xydef@\xdviTPIC@@{\xdviTPIC@}*tj494U1CHAPTERf4.CDRIVERS??hw296\xydef@\xdviTPIC@{\setupxyTPIC@}#LjThe2end&LogP308\xyendinput310%$Log:xyxdvi.doc,v$ 311%Revision3.3 T1996/12/1809:53:22ross312%minorimprovementstofile-loadingcommands313%314%Revision3.2 T1995/09/1918:21:41ross315%Bugfixrelease.316%317%Revision3.1 T1995/09/0520:28:57ross318%Releasingversion3.1!319%320%Revision3.0 T1995/07/0720:13:19ross321%Majorreleasew/newUser'sGuide!322%323%Revision2.13 T1995/07/0415:04:51ross324%Readyforreleaseofv3.325%326%NEWforversion3./uk4.10CMacTfeXffdriver)V ers.p3.3Tb9yRossMoQorehross@mpGce.mq.edu.aui ؔheader=color.proheader=color.proheader=color.pro d ThomasfKi e'sCMacT,[wEB Xapplicationusesdvipsasitsdvi-driv!er.|Header:P1%%$Id:xycmactex.doc,v3.31996/12/1808:54:25rossExp$2%%3%%Xy-pic``CMacTeX''driverinterfaceoption.4%%Copyright(c)1995-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.*tj4.11.CEXTRAfFEAeTURESWITHPostScriptSUPPORTH495??hw19%% 20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{cmactex}{CMacTeXdriver}{\stripRCS$Revision:3.3$}%27K{RossMoore}{ross@mpce.mq.edu.au}%28K{MathematicsDepartment,MacquarieUniversity,NSW~2109,Australia}"o39\xyrequire{dvips}#덑The2end&Log47\xyendinput49%$Log:xycmactex.doc,v$50%Revision3.3 T1996/12/1808:54:25ross51%nochanges52%53%Revision3.1 T1995/09/0520:28:57ross54%Releasingversion3.1!55%56%Revision3.0 T1995/07/0720:13:19ross57%Majorreleasew/newUser'sGuide!58%59%Revision2.13 T1995/07/0415:04:51ross60%Readyforreleaseofv3.61%62%NEWforversion3./࿍4.11ExtrafffeatureswithM-ff cmcsc10MPostScriptsupps3ort4.11.1xyps-ps.do`cWTheM included lexyps-ps.texGb(v!ersion3.7)providessuppMortforPostScript\special6dcommandsusedb!ythepsbackendextensionaswellasPostScript-basedoptions,9toproMducespeciale ectsnota!vdDailablefdirectlywithT,[wEB X.Header:1%%$Id:xyps-ps.doc,v3.71999/02/1615:12:50krisroseExp$2%%3%%Xy-pic``PS-PS''PostScriptsupport.4%%Copyright(c)1993-1997"}RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997"}KristofferH.Rose TƠ*tj496U1CHAPTERf4.CDRIVERS??hw9%% 10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24%%Asaspecialexception,youmayusethisfileandallfilesderived25%%fromitwithoutrestrictions. TThisspecialexceptionwasaddedwith26%%version3.7ofXy-pic.27%%28\expandafter\ifx\csnamexyps-psloaded\endcsname\empty29K\message{notreloaded}\endinput\fi30\expandafter\let\csnamexyps-psloaded\endcsname=\empty\xycatcodes.I0PostScriptH\specialcommands 5ThePostScript\special1`swhic!hareusedbyXY -psfallintofourfbroadclasses:^>1.executefapieceofcoMde,e.g.todra!wsomegraphicobject;>2.addfanewPostScriptde nitiontotheexistingdictionaryofcommands;>3.c!hangefthevdDalueofsomeparameters,storingthemforlateruse;and>4.readfPostScriptcommandsfromapre-existing le.SinceRdi eren!tdriversmayprovidedi erentsyntaxfortheseclassesofcommand,4XY 8-pshasdi erent macrostooptimizetoin!terfacetothedi erentdrivers.Initiallythesecontrol-sequencenamesarebMound*tomacrosthatdonothing.tUponspecifyingadriv!er,jtheywillbeboundtoamacroappropriateforfthatdriv!er.P62\xylet@\PSmacro@@=\eat@63\xylet@\PSdict@@=\eat@64\xylet@\PSspecial@@=\eat@65\xylet@\PSread@@=\eat@66\xylet@\PSinclude@@=\eat@67\xylet@\PSraw@@=\eat@68\xylet@\xyPSobeylines@@=\relax69\xylet@\PSspecialdict@@=\eat@71\xydef@\UnloadPSps@{%72K\let\PSmacro@@=\eat@73K\let\PSdict@@=\eat@Z*tj4.11.CEXTRAfFEAeTURESWITHPostScriptSUPPORTH497??hw74K\let\PSspecial@@=\eat@ 75K\let\PSread@@=\eat@76K\let\PSinclude@@=\eat@77K\let\PSraw@@=\eat@78K\let\xyPSobeylines@@=\relax79K\let\PSspecialdict@@=\eat@80}[UnloadingfPostScriptrequiresalsoturningo thePostScript-bac!kend,fifithasbMeenloaded.P87\xydef@\UnloadPS@{\UnloadPSps@88K\expandafter\ifx\csnamexypsloaded\endcsname\unknown\PSspecials@false89K\else\expandafter\NoPSspecials\fi}90\xylet@\UnloadPS@@=\UnloadPS@92%\xyaddunsupport{ps}\UnloadPS@@v96\ifx\undefined\dvitype@\xydef@\dvitype@{null}\fi[Some/driv!ers,8ainparticularversionsofTexturesearlierthan1.7,8arequirethePostScriptdic-tionarytobMeincludedwithev!erypageshippedout.]Weedothisb!yprovidingaroutinewhichrebindstheC\shipout4ܹprimitiv!eCtoamacro\xyPSshipout@QC.whichprepMendsthe+pXY -psPostScriptdictionarytothebMo!xbeingshipped-out.Thisroutine\@PSshipoutGAiscalled,ifnecessarye,whenthedriv!erhasbMeenfspeci ed.109\xylet@\xyrealshipout@=\shipout110\xydef@\xyPSshipout@{\setbox9=\copy\voidb@x111K\afterassignment\xyPSshipout@i\setbox9=}112\xydef@\xyPSshipout@i{\ifvoid9\expandafter\aftergroup\fi\xyPSshipout@ii}113\xydef@\xyPSshipout@ii{\xyrealshipout@\vbox{\XYpredict@@\box9}}115\xydef@\@PSshipout{\global\let\shipout=\xyPSshipout@}[ThebMo!xregister\box9$isassumedtobeascratc!hregister,/?usedgloballyaccordingtoT,[wEB Xcon-v!entions.0mWhenthePostScriptbac!kendisloadedthenw!eneedtorebind\shipout7\toincludethefulldictionarye.125\xydef@\xyPSshipout@PSii{%126K\ifUsePSdict@@\let\XYshipdict@=\includeXYPSdict@@127K\else\def\XYshipdict@{\XYpredict@@\XYdict@@}\fi128K\xyrealshipout@\vbox{\XYshipdict@\box9}}[Theset!wocontrolsequencesareusedintheDVI-driver lestocontrolwhenthePostScripthdriv!erifcanbMealtered.137\xydef@\firstPS@{%\fixedxydriver@138K\global\let\firstPS@@=\relax\global\let\firstPS@=\relax}139\xylet@\firstPS@@=\firstPS@%gX4.11.2InstallationTeokinstalluseofPostScriptrequiresloadingthePostScriptdictionary.QHo!weverkthiscanonlybMedonewhenahdriv!eriisknowntobMeabletosupportit.MHencethe\installxyps@RS*commandshouldbMefcalledonlyfromwithinahdriv!eri- le.0mFeurthermore,l*theihdriv!eri- leshouldde neavdDaluefor\installxyps@@Ztoincludinganything(*tj498U1CHAPTERf4.CDRIVERS??hwspMeci ctothathdriv!eri;evenifonly\let\installxyps@@=\relaxC&.If\dumpPSdictDSfhasbeenspeci ed, thenhthedictionarym!ustbMewritten rst,3soitcanbeusedwiththesubsequen!tprocessing(seethesubsectionfbMelo!w).P158\ifx\undefined\dumpPSdict@@\xylet@\dumpPSdict@@=\relax\fi160\xydef@\installxyps@{% 161K\xyinputorelse@{xyps-ps}{\xydrivernoload@{ps-ps}}\xycatcodes162K\installxyps@@\installxyps@x}P164\xylet@\installxyps@@=\relax165\xylet@\setupxyPS@@=\relax166\xywithoption{ps}{\let\setupxyPS@@=\setupxyPS@}168\xydef@\installxyps@x{\dumpPSdict@@169K\ifx\xyrealshipout@\undefined\let\xyrealshipout@=\shipout\fi170K\ifx\shipout\xyrealshipout@171 m\ifUsePSdict@@\DN@{\includePSmessage@\includeXYPSdict@\message{>}}%172 m\else\DN@{\XYdict@\endXYdict@}\fi173K\else\DN@{\let\xyPSshipout@ii=\xyPSshipout@PSii\@PSshipout}\fi174K\let\firstPS@=\relax\next@175K\let\XYpredict@=\relax176K\setupxyPS@@}178\let\realinstallxyps@x=\installxyps@x179\ifx\undefined\AfterBeginDocument180K\def\installxyps@x{\xysetup@@{\realinstallxyps@x}}%181\else182K\def\installxyps@x{\AfterBeginDocument{\realinstallxyps@x}}%183\fi$MIncasenohdriv!eriwasknownwhenacalltothe\installxyps@SfmethoMdwasqueued,@e.g.Pby\dumpPSdict{}2{CbMefore3an!y\xyoption{=,hdriveri},Vthenacheckismadetoseethereisnowaknownhdriv!eri;whichsuppMortsPostScript.\Ifsothenthisinstallationiscancelledsinceanothershouldfollo!w,vVotherwisejRthedefaulthdriveriofdvips#isassumed.Thecommand\xyPSdriver#1QFisprovidedto)allo!wuserstochangethisdefaulthdriveri.O'ThismaybMenecessarywhenmultiplehdriverisarerequiredfandthe nalonespMeci eddoesnotsupportPostScript.196\xydef@\xydefaultdriver@{dvips}197\xydef@\xyPSdriver#1{\def\xydefaultdriver@{#1}}199\xydef@\installxyps@orig{\DN@{}%200K\ifx\xydriversselected@@\empty201 m\DN@{\expandafter\defaultinstallps@\expandafter{\xydefaultdriver@}}%202K\else\def\do##1{%203\expandafter\ifx\csname##1@xy@ps\endcsname\relax204 \DN@{\defaultinstallps@{##1}}}%205 m\xydriversselected@@206K\else\DN@##1{}\fi\fi\next@}208%\xylet@\installxyps@@=\installxyps@orig210\xydef@\defaultinstallps@#1#2{%211K\xywarning@{nodriverspecified,using#1}%212K\xyrequire{#1}\csname#1@xy@ps\endcsname{}}*tj4.11.CEXTRAfFEAeTURESWITHPostScriptSUPPORTH499??hw214\xydef@\null@xy@ps{\installxyps@}"nGPostScriptescap`eAnFextrahshapMeimodi erk!eyallowsarbitraryPostScriptcoMdetobeappliedtothecurren!thobjecti.sffd ፍE[!PhpMostscriptfcodei]ХforfspMeciale ects E[psxy]Хstoresfcurren!tloMcation.ffd PPP231\xydefcsname@{shape[!...]}#1{%\tracingall%232\expandafter\ifx\csnamexyps-sloaded\endcsname\empty\DN@{\xyPSescapestyle@{#1}@@}%233\else\ifxyPSshapes@\DN@{\xyPSshapechar@{#1}@@}%234\else\DN@{\xyPScharwarning@}\fi\fi\next@}235\xydefcsname@{shape[psxy]}{\ifxyPSshapes@\DN@{\xyPSpsxy@}%236\else\DN@{\xyPScharwarning@}\fi\next@}kMNormally_thehpMostscriptcodeiwillbeasimplecommandtoalterthePostScriptgraphicsstate:e.g. [!100setrgbcolor]{zc!hangesthecolourusedtorenderpartsofthehobjecti. AnynumbMerofsuc!hhshapMeimodi ersisallo!wable,.howeveritismoreecien!ttocombinethemintoasinglemoMdi er,whenev!erfpMossible. _Itisv!eryimpMortantthatbraces{ and}donotappMearexplicitlyinan!yhpostscriptcodei,asthisma!y?upsetthe'XY -pichobjectiparsing.Howeveritisacceptabletohaveacontrolsequencenamehere,expanding7in!tomoreintricatePostScriptcoMde.Thiswillnotbeexpandedun!tilalater(safe)time.Duetodi erenceswithintheD!VI-drivers,hsuchsimplePostScriptcommandsneednota ectev!eryW0partofanhobjecti.;Inparticularthelines,bcurvesandarrowheadsgeneratedby>XY:-picuseadi eren!tBhmechanism,Vhwhichshouldgivethesameresultwithalldrivers.Thisinvolvesrede ningsomePostScript3proMcedureswhic!harealwaysreadpriortorenderingoneoftheseobjects.Onesimplew!aytospMecifyaredlineisasfollo!ws;thexycolor/U extensionprovidesmoresophisticatedsuppMortforcolour.TheUhshapMeimodi ersdescribedintheprevioussectionalsousethismec!hanism,soshouldw!orkfcorrectlywithalldrivers.P\def\colorxy(#1){%/xycolor{#1setrgbcolor}def}...\connect[!\colorxy(100)]\dir{-}...kMNote`ho!wthebracesareinsertedwithintheexpansionofthecontrolsequence\colorxy3]n,΋whichhappMens$afterparsingofthehconnectioni.Thefollo!wingtableshowswhichgraphicsparametersaretreatedinthisw!aye,theirdefaultsettings,andthet!ypMeofPostScriptcodeneededtoc!hangethem. ljffd ፍ^(Scolour/xycolor{0setgray}def^(Sline-width/xywidth{.4setlinewidth}def^(Sdashing/xydash{[]0setdash}def^(Sline-cap/xycap{1setlinecap}def^(Sline-join/xyjoin{1setlinejoin}defffdmThisfeatureismean!tprimarilyformoMdifyingtherenderingofobjectsspeci edinT,[wEB XandXYw-pic,notafordra!wingnewobjectswithinPostScript.NoguaranteecanbMegivenofthecurrentloMcation,or8scale,N)whic!hmaybMedi erentwithdi erentdrivers.HoweveragoMod8PostScriptprogrammerwillbMeYabletoo!vercomeYsuchdicultiesanddomuchmore..TeoaidinthisthespMecialmodi er[psxy])isۣ*tj500U1CHAPTERf4.CDRIVERS??hwpro!vided torecordtheloMcationwherethereferencepoin!tofthecurrenthobjectiwillbMeplaced.LJIts coMordinatesfarestoredwithk!eysxyXpos)ȹandxyYpos&$b. Whenthe\special5isplacedthefollo!wingregisterscontainimpMortantvdDalues:|\L@p`ɹ=horizontaldisplacemen!t.ofXY8-picreferencepMointfromtheT,[wEB XreferencepMoint(i.e.4left-handendofthebMox)oftheTinitialobject;p\D@pÄ=v!erticaldisplacementof~...{6spMecialfcodebefore} fhobjecti{spMecialcodeafter}...`ffd!7The\coMdeafter"istocancelthee ect,Mreturningthegraphicsstatetowhatitw!aspriortothe\codebMefore".NotallD!VI-driverscanac!hievethissequencing.InparticularOz[T,[wEB Xcollectsall\specialsin theD!VI- leandplacestheircontentsatthebMeginningofthePostScript le:manye ectwouldbMefcancelledimmediatelyafterithasbeenestablished. ThefusercanaddcoMdetobothpartsb!yexpressingthehshapeimodi erasfollo!ws:&ffd )*.3..!hcoMdefbeforei<> Thcodeafteri].3..y.`ffd w^F\urther2TecthnicalNoteT :"The \coMdebefore"doest!wo thingsinadditiontothatcodegiv!enexplicitlybytheuser.Firstlyitissues]agsave$ thenitopMensanewdictionaryonthedictionarystac!k.The\codeafter"con!tainsthematc!hingfgrestore5Jafterfclosingthenewdictionarye.)*tj4.11.CEXTRAfFEAeTURESWITHPostScriptSUPPORTH501??hwSinceobjectscanbMebuiltas\composite> sanddiagramscanbenested,thereisthepossibilit!y of"{generatinglongc!hainsofnestedPostScriptdictionaries.RFeorthisreasonthedictionaryiskeptsmall,allo!wingonly8key-vdDaluepairstobMedef=ȹinedwithinit. Ifmorearerequired,theusershouldde neaprivdDatedictionarytoholdtheextrak!ey-valuepairs,makingsurethatitisopMenwhenitsen!triesfneedtobMeaccessed.P391\xywarnifdefined\xyPSshapechar@392\xywarnifdefined\xyPSsplitshape@394{\xyuncatcodes\catcode`@=11395K\gdef\xyPSshapechar@#1@@{\xyPSsplitshape@#1<><>@@}%396K\gdef\xyPSsplitshape@#1<>#2<>#3@@{\xyPSsplitPS@{#1}{#2}}}398%\xydef@\xyPSsplitPS@#1#2{%\aftergroup\show\aftergroup\relax399%\def\xyPSpre@{#1}\def\xyPSpost@{#2}\modPSboxz@}401\xydef@\xyPSrawA@#1{\expandafter\xyPSrawAA@#1{}}%402\xydef@\xyPSrawAA@#1#2{\PSraw@@{{pu#1}xyg#2}%403 m\PSmessage{{pu#1}xyg#2}}%404\xydef@\xyPSrawZ@#1{\PSraw@@{{#1pp}xyf}\PSmessage{{#1pp}xyf}}%tThēPostScriptopMeratorspuKع, ppU_, xyg፹andxyfarede nedbelo!w, forpush/popoftheXYddictstac!k,fpreceded/followedbyagsave d/grestore1ofthePostScriptgraphicsstate.412\xydef@\modPSboxz@{%413K\expandafter\DN@\expandafter{\xyPSpre@{}}\ifx\next@\empty\else414K\setboxz@h{\expandafter\xyPSrawA@\expandafter{\xyPSpre@{}}\boxz@415 m\expandafter\xyPSrawZ@\expandafter{\xyPSpost@}}\DN@{}\fi}%417\xydef@\modPSdrop@{%418K\expandafter\DNii@\expandafter{%419 m\expandafter\xyPSrawA@\expandafter{\xyPSpre@{}}}%420K\DN@##1{\expandafter\def\expandafter\tmp@\expandafter{\nextii@##1}}%421 m\expandafter\next@\expandafter{\Drop@@}%422K\expandafter\DNii@\expandafter{%423 m\expandafter\xyPSrawZ@\expandafter{\xyPSpost@}}%424K\DN@##1{\expandafter\def\expandafter\Drop@@\expandafter{\tmp@##1}}%425 m\expandafter\next@\expandafter{\nextii@}}%427\xydef@\modPSconnect@{%428K\expandafter\DNii@\expandafter{%429 m\expandafter\xyPSrawA@\expandafter{\xyPSpre@{}}}%430K\DN@##1{\expandafter\def\expandafter\tmp@\expandafter{\nextii@##1}}%431 m\expandafter\next@\expandafter{\Connect@@}%432K\expandafter\DNii@\expandafter{%433 m\expandafter\xyPSrawZ@\expandafter{\xyPSpost@}}%434K\DN@##1{\expandafter\def\expandafter\Connect@@\expandafter{\tmp@##1}}%435 m\expandafter\next@\expandafter{\nextii@}}%437\xydef@\xyPSpre@{{}{}}438\xydef@\xyPSpost@{}tSomefutilit!ymacrosforcontrollingwritingtothelog- le.446\xydef@\PSmessage@#1{\W@{PS:#1,direction=\the\Direction}}447\xydef@\PSignore@#1{}%@*tj502U1CHAPTERf4.CDRIVERS??hw448\xydef@\showPSmessages{\let\PSmessage=\PSmessage@} 449\xydef@\hidePSmessages{\let\PSmessage=\PSignore@}450\xylet@\PStracing=\showPSmessages451\hidePSmessagesP453\xydef@\PSmacro@#1{\PSmacro@@{#1}\PSmessage{#1}}!2GPostScriptHeader leThis}}createsa agtoindicatewhethertheuserwishestogetthePostScriptdictionaryfromanexternalfheader le.464\xydef@\includeXYPSdict@@{%465K\expandafter\PSinclude@@\expandafter{\xyPSdictname}}466\xydef@\includeXYPSdict@r{\message{PS:includeXYPSdict}\includeXYPSdict@@467K\let\includeXYPSdict@=\relax}468\xylet@\includeXYPSdict@\includeXYPSdict@r470\xydef@\endXYdict@{}472\xydef@\includePSmessage@@{\message{=2|530K\gdef\xyPS@@<%%>\gdef\xyPS@@@<%!>}532%\xydef@\writePSdict@@{\writePSdict@\let\writePSdict@@=\relax}533\xydef@\writePSdict@@{\message{PS:writePSdict@@}\writePSdict@534K\def\writePSdict@@{\message{writePSrelaxed}}}535{\catcode`|=14\catcode`\%=12536K\gdef\writePSdict@{{\begingroup|537 m\immediate\openout\xywrite@=\xyPSdictname\relax538 m\message{}|559K\endgroup}}}׍Withintheexpansionof\XYdict@5'Vtheend-of-linetok!ensarestillactive.Thefollowingexpansionseemsftow!orkonallsystemssofartested.566\xywarnifdefined\obeyoutlines@567{\catcode`\^^M=\active%568K\gdef\obeyoutlines@{\catcode`\^^M=\active\def^^M{^^J}% Ϡ*tj504U1CHAPTERf4.CDRIVERS??hw569 m\newlinechar=`\^^J\obeyspaces}}ˍThe dictionaryofPostScriptcommandsissplitin!totwopiecesaccordingtowhethertheyare relev!ent/ptogeneralPostScripte ectsoronlytothePostScriptbac!kend.xThese/ppiecesaregen-erated3fromcoMdewithinthe lesxyps-pro.texMc¹andxypsdict.texI/ݹ.ZThese lesha!ve3corresponding.doc1'v!ersionsffordoMcumentation.ݍThegfollo!wingcommandscausethepartsofthePostScriptdictionarytobMereadfromtheappropriateO les.If\ifUsePSdict@@Wgiv!es\iftrue/DthentheremaybMenoneedtodoanything,sincethede nitionswillbMesubsequen!tlyloadedfromtheheader le.Normallyitisonlynecessarytoreadthese lesonce,using\XYpredict@B5._Ho!weversomehdriv!erismayneeditmorefrequentlye,soinsteadcallf\XYpredict@@LHĹdirectlye.P588\xydef@\XYpredict@@{\ifUsePSdict@@\DN@{}\else589K\DN@{\xy@begindvi{\xyinputorelse@{xyps-pro}%590{\xyerror@{Couldnotloadxyps-pro}{}}\xyuncatcodes}}%591K\next@592K\DN@{\xy@begindvi{\xyinputorelse@{xypspatt}%593{\xyerror@{Couldnotloadxypspatt}{}}\xyuncatcodes}}\fi594K\next@}596\xydef@\XYpredict@r{\XYpredict@@\let\XYpredict@=\relax\installxyps@}597\xylet@\XYpredict@\XYpredict@r599\xydef@\XYdict@{\XYdict@@\def\XYdict@{\message{PSrelaxed}}}%600\xydef@\XYdict@@{\DN@{\xyinputorelse@{xypsdict}%601{\xyerror@{Couldnotloadxypsdict}{}}\xyuncatcodes}%602K\expandafter\xy@begindvi\expandafter{\next@}}ThisCcommandisforuseinmacro-pac!kdDages,VprovidingCaneasyw!ayCtoforcethedictionarytoload,whenfithasnotdonesousingtheusualmec!hanisms.612613\xydef@\forceload@XYdict{%614 m\let\includeXYPSdict@=\includeXYPSdict@r615 m\let\XYpredict@=\XYpredict@r616 m\let\XYdict@=\XYdict@@\expandafter\installxyps@})ƍ4.11.3Extensions{Sev!eralfincluded leshandlestandardPostScriptimplementationsofXY p-picextensions.ݍAconditional \ifxyPSshapes@Xdis usedtoindicatewhetherthespMecialshapee ectsimplemen!tedinaxyps-r.texB@ncanaactuallybMefullysupportedb!ythecurrentdriver.[WhennotavdDailable,thenanattempttousethesee ectssimplyresultsinaw!arningmessage.Aftertwoattemptsthewarningmessagef\turnsitselfo ";subsequen!tattemptsaresimplyignoredcleanlye.636\xynew@{if}\ifxyPSshapes@\xyPSshapes@true638\xydef@\xyPScharwarning@@{\xyPScharmessage@639K\gdef\xyPScharwarning@@{\xyPScharmessage@640 m\xywarning@{...nofurtherPostScriptwarningswillbegiven}%641K\global\let\xyPScharwarning@@=\relax}}643\xydef@\xyPScharmessage@{\xywarning@{%644KthecurrentdoesnotfullysupportPostScripteffects}}% *tj4.11.CEXTRAfFEAeTURESWITHPostScriptSUPPORTH505??hwAllotw~newPostScripte ectstobYede ned. 5ThisssectiondescribMesho!w\newxyPSshapeTJis usedtode neanewe ectwhic!hisavdDailableonlyinPostScript;]i.e.havingnoanalogueelsewherewithinXY p-pic.Thennewe ectwillbMecalledvia[.hnamei],:whic!hgetsinterpretedasreferringto\csnamexyshape@^ihnamei@\endcsname?Whenܒanimplemen!tationofthee ectisavdDailablethen\csnamexyshape@`2hnamei@\endcsnameisrebMoundto\csnamexyPSshape@m+hnamei@\endcsname?5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong :'*tj4.11.CEXTRAfFEAeTURESWITHPostScriptSUPPORTH507??hw21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc., 22%%675MassAve,Cambridge,MA02139,USA.23%%24%%Asaspecialexception,youmayusethisfileandallfilesderived25%%fromitwithoutrestrictions. TThisspecialexceptionwasaddedwith26%%version3.7ofXy-pic.27%%28\expandafter\ifx\csnamexyps-cloaded\endcsname\empty29K\message{notreloaded}\endinput\fi30\expandafter\let\csnamexyps-cloaded\endcsname=\empty\xycatcodes+ć4.11.5ColourTheiincluded lexyps-c.texBN(v!ersion3.7)providesPostScriptsuppMortforthee ectsde nedinthefcolor$ extensionfinx2.6.ThefPostScriptst!ylemethoMdsarerequired,soensurethattheyareloaded.P49\expandafter\ifx\csnamexyps-sloaded\endcsname\empty\else50K\xyinputorelse@{xyps-s}{\xyerror@{Couldnotloadxyps-s}{}}%51K\xycatcodes\fiThis( leisloadedanditse ectsareactivdDatedautomaticallywhenev!er\xyoption{color}dJisre-quested8aandthecurren!thdriverisuppMortscoloursusingPostScript.Shouldtherebean!yneedtoturnfo thissuppMort,thefollo!wingcommandsareavdDailable;theyobMeyusualT,[wEB Xgroupings. cffd /V\NoPScolorGremo!vefPostScriptsuppMortV\UsePScolorGreinstatefPostScript.%Offd0E:WithoutPostScriptsuppMortsomedriv!ersmaystillbMeabletoprovidesomesuppMortforcolours.These commandsarenotguaran!teedtoworkadequatelywithalldrivers.Theyareprovidedprimarilyfor8itestingandtrouble-shoMoting;ke.g.withhdriv!ericon gurationsuntestedbytheauthorsof XYs-pic,whofshouldbMenoti edofan!ydiculties.73\xydef@\UsePScolor{\installPScolor@}74\xydef@\NoPScolor{\UnloadColor@}!R\Installation 5Installation'consistsofrebindingthemacros\xycolor@> and\newxycolor@OK andofreloadingJthestandardcolourstoincludeadescriptionforPostScript.yThisinstallationshouldbMedela!yedftillaftercolor$ andps themselv!eshavebMeeninstalled.87\xydef@\installPScolor@{\installPSstyle@88\let\xymath@=\xyPSmath@\let\xynomath@=\xyPSnomath@89\let\checkxyPScolor@=\checkxyPScolor@@90\let\xycolor@@=\xyPScolor@@91\xystandardcolors@92\xyuncatcodes}Alle ectsde nedinthecolor$NJextensioncanbMeimplemen!tedusingthePostScriptdictionarye,loaded/b!yxyps-ps+չ.+7This leprovides\generic"PostScriptcoMdewhichisknowntoworkcorrectlywithmostdriv!ers.NoattemptismadetoprovidespMecialcodeforparticulardriv!ers;(fordriver-spMeci cvdDariations,fconsulttheappropriatexy%hdriv!eri.doc le.105\xydef@\xyPSmath@{\hbox\bgroup\dimen@=.55ex\checkxyPScolor@\xyinside@} D*tj508U1CHAPTERf4.CDRIVERS??hw106\xydef@\xyPSnomath@{\hbox\bgroup\dimen@=\z@\checkxyPScolor@\xyinside@}P108\xydef@\checkxyPScolor@@{\xycolor@raw@@{}\let\checkxyPScolor@=\relax} 109\xylet@\checkxyPScolor@=\relaxv113\xydef@\xyPSnewcolor@#1#2#3#4#5{%114K\expandafter\DN@\expandafter{\csnameshape[#1]\endcsname}%115K\DNii@{\relax}\ifx\next@\nextii@\newxycolor{#1}{}\relax\fi116K\DNii@{#4}\ifx\nextii@\empty117 m\expandafter\DNii@\expandafter{\csnamexyPSshape@#1@\endcsname}%118 m\expandafter\def\nextii@{\xyPScolor@{#2#3}}\else119 m\expandafter\DNii@\expandafter{\csnamexyPSshape@#1@\endcsname}%120 m\expandafter\def\nextii@{\xyPScolor@{#4}}\fi121K\ifx\nextii@\empty\expandafter\def\next@{\xyPSnotimplemented@@`#1'@@}%122K\else123 m\edef\tmp@{\noexpand\let\expandafter\noexpand\next@124\expandafter\noexpand\nextii@}\expandafter\tmp@\fi}126\xydef@\xyPScolor@{\ifPSspecials@\expandafter\xyPScolor@@127K\else\expandafter\eat@\fi}128\xydef@\xyPScolor@@#1{\bgroup\checkXyStyle@129K\def\preStyle@@{\expandafter\addtostyletoks@\expandafter{\xyPSpre@}}%130K\def\postStyle@@{\expandafter\addtostyletoks@\expandafter{\xyPSpost@}}%131K\let\modPSboxz@=\modXYstyle@\xyPS@color@@{#1}%132K\toks@={\egroup\let\xy@style@=\relax\def\Drop@@}%133K\expandafter\addtotoks@\expandafter{\expandafter{\Drop@@}\def\Connect@@}%134K\expandafter\addtotoks@\expandafter{\expandafter{\Connect@@}}%135K\the\toks@}137%\xydef@\xyPS@color@@#1{#1/xycolor{#1}def}138\xydef@\xyPS@color@@#1{\xyPSsplitPS@{{#1}cc}{}}139\xydef@\xycolor@raw@@#1{\PSraw@@{xyc}}-)The2end&Log147\endinput149%$Log:xyps-c.doc,v$150%Revision3.7 T1999/02/1615:12:50krisrose151%Interimrelease(Y&Yfontsnowfree).152%153%Revision3.3 T1996/12/1810:05:50ross154%minorimprovementstofile-loadingcommands155%156%Revision3.1 T1995/09/0520:36:33ross157%Release!158%159%Revision3.0 T1995/07/0720:13:19ross160%Majorreleasew/newUser'sGuide!161%162%Revision2.13 T1995/07/0415:04:51ross163%Readyforreleaseofv3. Rj*tj4.11.CEXTRAfFEAeTURESWITHPostScriptSUPPORTH509??hw164% 165%Revision2.9 T1994/06/0914:38:56ross166%Release3beta.167%Includessupportforspecialeffects:Rotations,Scaling,Line-width,Colour.168%Back-endsareseparatedintoseparatefiles.169%Moreback-endsaresupported,experimentally---needstesting.170%171%Revision2.9 T1994/06/0914:38:56ross172%Release3beta.173%Includessupportforspecialeffects:Rotations,Scaling,Line-width,Colour.174%Back-endsareseparatedintoseparatefiles.175%Moreback-endsaresupported,experimentally---needstesting.176%177%NEWforversion2.9bybyRossMoore.%44.11.6xyps-f.do`cHeader:P1%%$Id:xyps-f.doc,v3.71999/02/1615:12:50krisroseExp$2%%3%%Xy-pic``Frameextension''PostScriptbackendsupport.4%%Copyright(c)1995-1997RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24%%Asaspecialexception,youmayusethisfileandallfilesderived25%%fromitwithoutrestrictions. TThisspecialexceptionwasaddedwith26%%version3.7ofXy-pic.27%%28\expandafter\ifx\csnamexyps-floaded\endcsname\empty29K\message{notreloaded}\endinput\fi30\expandafter\let\csnamexyps-floaded\endcsname=\empty\xycatcodes ]*tj510U1CHAPTERf4.CDRIVERS??hw4.11.7FramesTheiincluded lexyps-f.texBN(v!ersion3.7)providesPostScriptsuppMortforthee ectsde nedin thefframe$ extensionfdescribMedinx2.2.Itimplemen!tssomee ectsotherwiseunattainable.This( leisloadedanditse ectsareactivdDatedautomaticallywhenev!er\xyoption{frame}dJisre-questedmandthecurren!thdriverisuppMortsPostScripte ectsforframes.|Shouldtherebean!yneedtofturno thissuppMort,thefollo!wingcommandsareavdDailable;theyobMeyusualT,[wEB Xgroupings. WGffd HS\NoPSframes'bremo!vefPostScriptsuppMortS\UsePSframes'breinstatefPostScript.>uffd0WWithoutPostScriptsuppMortellipsesma!ybesho!wnascirclesandall lledregionsmaybMerepre-sen!ted&asblackrectangles.Thesecommandsareprovidedprimarilyfortestingandtrouble-shoMoting;e.g. ]withhdriv!ericon gurationsuntestedbytheauthorsofXYqg-pic,cZwhoshouldbMenoti edofanydiculties.$Installation 5The:hdriv!eri- lemustcallthefollowingmacrotorebindcontrolsequencesde nedinxyframe(=,fthereb!yallowingthePostScriptmethoMdstobeused.P67\xydef@\installPSframes@{%68\let\framed@body@@=\xyPSframed@body@69\let\circled@x@@=\xyPScircled@x@70\let\ellipsed@x@@=\xyPSellipsed@x@71\installPSfills@72\xyuncatcodes}74\xydef@\UsePSframes{\installPSframes@}75\xydef@\NoPSframes{\UnloadFrames@}!jF\rames:qsolid,dotted@anddashed 5FeorbOsolidframesusePostScripto!vdDals,ootherwiseadjustthespacingfbMet!weendashesordotsaccordingtothelengths,bMothverticalandhorizontal.86\xydef@\xyPSframed@body@{\DN@{\framed@body@}%87\ifx\framehfill\frm@solidh@@88T\DN@{\xyPSframed@oval@\xyPSoval@Special}%89%\else\ifdim\frmradius@@=\z@\else90\else\ifdim\R@=\z@\else91T\ifx\framehfill\frm@dashh@@92#>\DN@{\xyPSframed@oval@\xyPSdashoval@Special}%93T\else\ifx\framehfill\frm@doth@@94#>\DN@{\xyPSframed@oval@\xyPSdotoval@Special}%95T\fi\fi96\fi\fi\next@}98\xydef@\xyPSframed@oval@#1{\vglue\U@c99?P\hbox{\hglue\L@c\xypsoval@#1\hglue\R@c}\vglue\D@c}v102\xydef@\xyPScircled@x@{\DN@{\xyPScircled@x@@\xyPScirc@Special}%103\ifx\framehfill\frm@doth@@104T\DN@{\xyPScircled@x@@\xyPSdotcirc@Special}%105\else\ifx\framehfill\frm@dashh@@106T\DN@{\xyPScircled@x@@\xyPSdashcirc@Special}%107\fi\fi\next@} iɠ*tj4.11.CEXTRAfFEAeTURESWITHPostScriptSUPPORTH511??hw109\xydef@\xyPScircled@x@@#1{\vglue2\R@ 110K\hbox{\hglue2\R@\xypscircle@#1\hglue2\R@}%111K\vglue2\R@}:Infpracticetheparameters#1 and#2willholdhdimenis.P117\xydef@\xyPSellipsed@x@#1#2{%118K\DN@{\xyPSellipsed@x@@\xyPScirc@Special}%119K\ifx\framehfill\frm@doth@@120 m\DN@{\xyPSellipsed@x@@\xyPSdotcirc@Special}%121K\else\ifx\framehfill\frm@dashh@@122 m\DN@{\xyPSellipsed@x@@\xyPSdashcirc@Special}%123K\fi\fi\next@{#1}{#2}}125\xydef@\xyPSellipsed@x@@#1#2#3{\vglue#3\vglue#3\relax126K\hbox{\L@c=#2\relax\R@c=\L@c\D@c=#3\relax\U@c=\D@c127 m\hglue#2\hglue#2\relax\xypsellipse@#1\hglue#2\hglue#2\relax}%128K\vglue#3\vglue#3\relax}:Thesefma!ybMeusedfordashedframes.135\xydef@\xyPSdashhfill@{{\SemiDirectionChar=95\Direction=3072\xyPSdash@}}136\xydef@\xyPSdashvfill@{{\SemiDirection=31\Direction=1023\xyPSdash@}}#u荑otvLalsJandcircles 5TheRwidth,heigh!t,corner-radiusarea!vdDailableas\dimen@i1,\dimen@ii;8ٹand\R@respMectiv!ely;fweonlyneed\R@ʹhere,sincetheextentsholdtherealinformationthatweneed.148\xydef@\xypsoval@#1{%149K\dimen@=\L@c\advance\dimen@\R@c150K\dimen@ii=\U@c\advance\dimen@ii\D@c151K\ifdim\dimen@ii<\dimen@\relax\dimen@=\dimen@ii\fi\divide\dimen@\tw@152%\R@=\frmradius@@153K\ifdim\R@>\dimen@\relax\R@=\dimen@\fi154K\D@c=-\D@c\L@c=-\L@c155K\edef\tmp@{\expandafter\removePT@\the\R@156 m\space\expandafter\removePT@\the\R@c157 m\space\expandafter\removePT@\the\D@c158 m\space\expandafter\removePT@\the\L@c159 m\space\expandafter\removePT@\the\U@c}%160K\expandafter#1\expandafter{\tmp@}}162\xydef@\xypscircle@#1{\dimen@=\R@163K\edef\tmp@{\expandafter\removePT@\the\dimen@}%164K\expandafter#1\expandafter{\tmp@}}166\xydef@\xypsellipse@#1{\edef\tmp@{%167 m\expandafter\removePT@\the\U@c\space168 m\expandafter\removePT@\the\D@c\space169 m\expandafter\removePT@\the\L@c\space170 m\expandafter\removePT@\the\R@c}%171K\expandafter#1\expandafter{\tmp@}}173\xydef@\xyPSoval@Special#1{\PSmacro@{#1ov}}174\xydef@\xyPScirc@Special#1{\PSmacro@{#1ox}}175\xydef@\xyPSdotcirc@Special#1{\PSmacro@{#1ot}} uǠ*tj512U1CHAPTERf4.CDRIVERS??hw176\xydef@\xyPSdashcirc@Special#1{\PSmacro@{#1od}} 177\xydef@\xyPSdotoval@Special#1{\PSmacro@{#1vt}}178\xydef@\xyPSdashoval@Special#1{\PSmacro@{#1vd}}_čThePostScriptopMeratorsovr׹,Foxetc.4arede nedwithinxyps-pro2ӹ,Fha!vingscopelimitedtoXYdict {andfsub-dictionaries.!ލ189\xydef@\xyPSfilledRegion#1#2{\setboxz@h{\lower\D@c\vbox{%190K\vglue\U@c\hbox{#1#2\empty\hglue\L@c\hglue\R@c}\vglue\D@c}}%191K\ht\z@=\z@\dp\z@=\z@\wd\z@=\z@\boxz@}P193\xydef@\filledRectangle@PS{%194K\xyPSfilledRegion{\xypsoval@\xyPSfilloval@Special}}195\xydef@\filledCircle@PS#1{{\R@c=\R@\L@c=\R@\U@c=\R@\D@c=\R@196K\xyPSfilledRegion{\xypscircle@\xyPSfillcirc@Special}#1}}197\xydef@\filledEllipse@PS{%198K\xyPSfilledRegion{\xypsellipse@\xyPSfillellipse@Special}}199\xydef@\filledOval@PS{%200K\xyPSfilledRegion{\xypsoval@\xyPSfilloval@Special}}202\xydef@\frame@emph@PS#1{\filled@{#1}\relax}204\xydef@\installPSfills@{%205K\let\frame@emph@@=\frame@emph@PS206K\let\filledRectangle@@=\filledRectangle@PS207K\let\filledOval@@=\filledOval@PS208K\let\filledCircle@@=\filledCircle@PS209K\let\filledEllipse@@=\filledEllipse@PS210}_čFilledregions 5Rectangles$6aretreatedasaspMecialcaseofo!vdDals.xThe#2parametersigni eswhetherthegoutlineoftheobjectshouldalsobMestrok!ed(#2 T=\relax"})afterbeing lled.Suc!hastrokeisalwaysinfblac!k.219%\xydef@\xyPSfillrect@Special#1#2{%220%\ifx#2\relax\PSmacro@{#1sfr}%221%\else\PSmacro@{#1fr}\fi}222\xydef@\xyPSfilloval@Special#1#2{%223K\ifx#2\relax\PSmacro@{#1sfo}%224K\else\PSmacro@{#1fo}\fi}225\xydef@\xyPSfillcirc@Special#1#2{%226K\ifx#2\relax\PSmacro@{#1sfc}%227K\else\PSmacro@{#1fc}\fi}228\xydef@\xyPSfillellipse@Special#1#2{%229K\ifx#2\relax\PSmacro@{#1sfe}%230K\else\PSmacro@{#1fe}\fi}!The2end&Log238\endinput240%$Log:xyps-f.doc,v$241%Revision3.7 T1999/02/1615:12:50krisrose242%Interimrelease(Y&Yfontsnowfree). *tj4.11.CEXTRAfFEAeTURESWITHPostScriptSUPPORTH513??hw243% 244%Revision3.4 T1997/05/1801:13:24ross245%Essentialbugfixes.246%247%Revision3.3 T1996/12/1810:07:22ross248%cosmeticchangestomacro-names249%250%Revision3.1 T1995/09/0520:36:33ross251%Release!252%253%Revision3.0 T1995/07/0720:13:19ross254%Majorreleasew/newUser'sGuide!255%256%Revision2.13 T1995/07/0415:04:51ross257%Readyforreleaseofv3.258%259%260%NEWforversion3.0bybyRossMoore.'$4.11.8xyps-l.do`cHeader:P1%%$Id:xyps-l.doc,v3.71999/02/1615:12:50krisroseExp$2%%3%%Xy-pic``Lineextension''PostScriptbackendsupport.4%%Copyright(c)1993-1997RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24%%Asaspecialexception,youmayusethisfileandallfilesderived25%%fromitwithoutrestrictions. TThisspecialexceptionwasaddedwith26%%version3.7ofXy-pic.27%% *tj514U1CHAPTERf4.CDRIVERS??hw28\expandafter\ifx\csnamexyps-lloaded\endcsname\empty 29K\message{notreloaded}\endinput\fi30\expandafter\let\csnamexyps-lloaded\endcsname=\empty\xycatcodes.74.11.9Line-styles _Theiincluded lexyps-l.texBN(v!ersion3.7)providesPostScriptsuppMortforthee ectsde nedintheflineKtextensionfdescribMedinx2.4. -ThefPostScriptst!ylemethoMdsarerequired,soensurethattheyareloaded.P49\expandafter\ifx\csnamexyps-sloaded\endcsname\empty\else50K\xyinputorelse@{xyps-s}{\xyerror@{Couldnotloadxyps-s}{}}%51K\xycatcodes\fiThisE leisloadedanditse ectsareactivdDatedautomaticallywhenev!er\xyoption{line}_misre-questedaandthecurren!thdriverisuppMortsPostScriptlinestyles.ShouldtherebMeanyneedtoturno fthissuppMort,thefollo!wingcommandsareavdDailable;theyobMeyusualT,[wEB Xgroupings.Sffd V\NoPSlinesGremo!vefPostScriptsuppMortV\UsePSlinesGreinstatefPostScript.vffd,d WithoutPostScriptsuppMortlinescanbeexpectedtobedispla!yed inthedefaultst!yle,72havingthic!knessof:4pt.Thesecommandsareprovidedprimarilyfortestingandtrouble-shoMoting;Ne.g.withhdriv!erifcon gurationsuntestedbytheauthorsofXY p-pic,whoshouldbMenoti edofanydiculties.Installation 5The_hdriv!eri- lemustcallthefollowingmacrotorebindacontrolsequencede nedinxyline"},8\thereb!yallowingthePostScriptmethoMdtobeused.Thepurposeofthe\xyPSlinew@Evhookistoallo!wthePostScriptstylesequencingmethoMdtobeusedwithotherbac!k-ends,uchangingjustthefcon!tentsofthe\special1sactuallyplaced.83\xydef@\installPSline@{\installPSstyle@84\installPSlinestyles@\installPSpolylines@}86\xydef@\UsePSlines{\installPSline@}87\xydef@\NoPSlines{\UnloadLine@\relax}"widths,Ljoinsandcaps 5This, and6therebindingsbMelo!w,isallthatisneededforthecleaner,moresophisticatedfw!aye.98\xydef@\xyPSlineSpecial@#1{\addtostyletoks@{#1lw}}99\xydef@\xyPScapSpecial@#1{\addtostyletoks@{#1lc}}100\xydef@\xyPSjoinSpecial@#1{\addtostyletoks@{#1lj}}101\xydef@\xyPSmiterSpecial@#1{\addtostyletoks@{#1ml}}103\xydef@\installPSlinestyles@{%104\let\xylinewidth@@=\xylinewidth@105\let\transxyline@@=\transxyline@106\let\xylineSpecial@@=\xyPSlineSpecial@107\let\resetxyline@@=\resetxyline@i108%109\let\xy@linecap@@=\xy@linecap@110\let\xycapSpecial@@=\xyPScapSpecial@ *tj4.11.CEXTRAfFEAeTURESWITHPostScriptSUPPORTH515??hw111K\let\resetxylinecap@@=\resetxylinecap@i 112%113K\let\xy@linejoin@@=\xy@linejoin@114K\let\xyjoinSpecial@@=\xyPSjoinSpecial@115K\let\resetxylinejoin@@=\resetxylinejoin@i116%117K\let\xy@linemiter@@=\xy@linemiter@118K\let\xymiterSpecial@@=\xyPSmiterSpecial@119K\let\resetxylinemiter@@=\resetxylinemiter@i120}TheePostScriptopMeratorslw,rlc,rlj,rmlWɹareede nedinxyps-ps/ .tosetthelinewidth7",rlinecap+W,linejoini,fmiterlimit@pgraphics-statefparameters,respMectiv!elye.#y132\xydef@\xypolylinePS@Special#1{\PSmacro@{#1pl}}133\xydef@\xypolydotPS@Special#1{\PSmacro@{#1pt}}134\xydef@\xypolydashPS@Special#1{\PSmacro@{#1pd}}135\xydef@\xypolyfillPS@Special#1{\PSmacro@{#1pf}}136\xydef@\xypolyeofillPS@Special#1{\PSmacro@{#1pe}}P138\xydef@\installPSpolylines@{%139K\let\xypolyline@Special=\xypolylinePS@Special140K\let\xypolydot@Special=\xypolydotPS@Special141K\let\xypolydash@Special=\xypolydashPS@Special142K\let\xypolyfill@Special=\xypolyfillPS@Special143K\let\xypolyeofill@Special=\xypolyeofillPS@Special144K\let\xy@polystyle@@=\xy@polystyle@}Ptoly-linesThe2end&LogP152\endinput154%$Log:xyps-l.doc,v$ 155%Revision3.7 T1999/02/1615:12:50krisrose156%Interimrelease(Y&Yfontsnowfree).157%158%Revision3.4 T1997/05/1801:13:24ross159%Essentialbugfixes.160%161%Revision3.3 T1996/12/1810:05:50ross162%minorimprovementstofile-loadingcommands163%164%Revision3.1 T1995/09/0520:36:33ross165%Release!166%167%Revision3.0 T1995/07/0720:13:19ross168%Majorreleasew/newUser'sGuide!169%170%Revision2.13 T1995/07/0415:04:51ross171%Readyforreleaseofv3. J*tj516U1CHAPTERf4.CDRIVERS??hw172% 173%Revision2.9 T1994/06/0914:38:56ross174%Release3beta.175%Includessupportforspecialeffects:Rotations,Scaling,Line-width,Colour.176%Back-endsareseparatedintoseparatefiles.177%Moreback-endsaresupported,experimentally---needstesting.178%179%Revision2.9 T1994/06/0914:38:56ross180%Release3beta.181%Includessupportforspecialeffects:Rotations,Scaling,Line-width,Colour.182%Back-endsareseparatedintoseparatefiles.183%Moreback-endsaresupported,experimentally---needstesting.184%185%NEWforversion2.9bybyRossMoore.%44.11.10Lxyps-r.do`cHeader:P1%%$Id:xyps-r.doc,v3.71999/02/1615:12:50krisroseExp$2%%3%%Xy-pic``PostScriptRotationsandScaling''.4%%Copyright(c)1993-1996RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24%%Asaspecialexception,youmayusethisfileandallfilesderived25%%fromitwithoutrestrictions. TThisspecialexceptionwasaddedwith26%%version3.7ofXy-pic.27%%28\expandafter\ifx\csnamexyps-rloaded\endcsname\empty29K\message{notreloaded}\endinput\fi30\expandafter\let\csnamexyps-rloaded\endcsname=\empty\xycatcodes *tj4.11.CEXTRAfFEAeTURESWITHPostScriptSUPPORTH517??hw4.11.11LRotationsandscalingۍTheiincluded lexyps-r.texBN(v!ersion3.7)providesPostScriptsuppMortforthee ectsde nedin thefrotate)ȹextensionfdescribMedinx2.5.'ThefPostScriptst!ylemethoMdsarerequired,soensurethattheyareloaded.P49\expandafter\ifx\csnamexyps-sloaded\endcsname\empty\else50K\xyinputorelse@{xyps-s}{\xyerror@{Couldnotloadxyps-s}{}}%51K\xycatcodes\fiThisH leisloadedanditse ectsareactivdDatedautomaticallywhenev!er\xyoption{rotate}kڹisrequestedHandthecurren!thdriverisuppMortsPostScriptrotations.Shouldtherebean!yneedtoturno fthissuppMort,thefollo!wingcommandsareavdDailable;theyobMeyusualT,[wEB Xgroupings.jEffd S\NoPSrotate'bremo!vefPostScriptsuppMortS\UsePSrotate'breinstatefPostScript.[ffdCoWithoutPostScriptsuppMortdiagramscanbeexpectedtobedispla!yedounrotatedandunscaled.These Fcommandsarepro!videdprimarilyfortestingandtrouble-shoMoting;@e.g.withhdrivericon gu-rationsfun!testedbytheauthorsofXY p-pic,whoshouldbMenoti edofpersisten!tdiculties. Installation 5Callfthefollo!wingmacrotoallowthePostScriptmechanismstobMeused.79\xydef@\installPSrotscale@{\installPSstyle@80\let\xyRotate@@=\xyPSrotate@@81%\let\xySpecialRotate@@=\xyPSspecialRotate@82\let\doSpecialRotate@@=\doPSspecialRotate@@83%\let\xyRotnamed@=\xyPSpsxy@84%\let\xyRot@named@=\xyPSrot@named@@85\let\xyscale@@=\xyPSscale@@86\xyPSshapes@true87\xyuncatcodes}89\xydef@\UsePSrotate{\installPSrotscale@}90\xydef@\NoPSrotate{\UnloadRotate@\relax}All{e ectsde nedintherotate,XextensioncanbMeimplemen!tedusingaPostScripthdriveri.Ho!weverdi erenthdriverisneednothandlethingsinthesameway;di erentPostScriptcoMdemaybMefrequiredtomatc!hthespeci cen!vironmentfusedb!ythehdriveri.'This lepro!videsgenericPostScriptcoMdewhichisknowntoworkcorrectlywithmostdrivers.ItiswrittensoastoindicatewheremoMdi cationsma!ybemadetoaccomodatespeci chdriv!eris.Feorsuc!hfdriver-spMeci cvdDariations,consulttheappropriatehdriveri- le,calledxy%hdriveri.doc.$>110\xydef@\xyPSpretransform@{\xyPSrawA@{\preXYtransform@@}}111\xydef@\xyPSposttransform@{\xyPSrawZ@{\postXYtransform@@}}113\let\preXYtransform@=\xyPSpretransform@114\let\postXYtransform@=\xyPSposttransform@116\xydef@\xyPSrotSplit@{%117\expandafter\def\expandafter\preShape@@\expandafter{\xyPSpre@}%118\expandafter\def\expandafter\postShape@@\expandafter{\xyPSpost@}}T\ransform2lists *tj518U1CHAPTERf4.CDRIVERS??hw126\xydef@\xyPSscale@@#1#2{% 127K\xyPSsplitPS@{\xyscale@start(#1,#2)}{\xyscale@end}%128K\xyPSrotSplit@\xyPSpsxy@}dmRescaling"؍136\xydef@\xyPSrotate@@#1{%137K\xyPSsplitPS@{\xyrot@start(#1xyd)}{\xyrot@end}%138K\xyPSrotSplit@\xyPSpsxy@}P140\xydef@\xyPSspecialRotate@#1{%141K\xyPSsplitPS@{\xyrot@start(#1)}{\xyrot@end}\xyPSrotSplit@\xyPSpsxy@}143\xydef@\doPSspecialRotate@@#1@@{\xyPSspecialRotate@{#1}}dmRotations 5The|#PostScriptopMeratorxyr7Disde nedinxyps-ps.docBq,tostorethegiv!enparameterasfarotationangle.]ύShearing 5Thisffeatureisnotimplemen!tedyet.PtostScriptEcommands 5ThePostScriptcoMdestostarttherotationorscalingaregiv!enasfunc- tions,׫xyrot@startDandxyscale@startPwithargumen!tstoincludeaspMeci cationoftherotation-angleorfscalingfactors.164\xydef@\xyRotScale@@{%165K\def\xyrot@start(##1){{xyt##1\spacexyr}}%166K\def\xyscale@start(##1,##2){{xyt##1\space##2\spacexys}}%167K\def\xyrot@end{}\def\xyscale@end{}}dmThesestringsareplacedusing\xyPSsplitPS@RsoastocorrectlyoMccurbeforeandafterthecodefortheactualhobjectibMeingt!ypeset.Thisisalw!aysfollowedby\xyPSpsxy@=u,"whichresultsinPost-ScriptzcoMdetoiden!tifythecurrentpMosition,>storingitwithkeysxyXpos+andxyYpossoastobMeaccessibleftothecoMdefortherotationorscaling. AspMeci chdriv!erimusteithercall\xyRotScale@@Sعtousethisdefaultmechanism,Horde neitso!wnmacrotobMecalledatinstallationtime, whichsetsalternativeexpansionsto\xyrot@start(#1)_,\xyscale@start(#1,#2)\E ,f\xyrot@end@pandf\xyscale@endH^.]ύThe2end&Log186\endinput188%$Log:xyps-r.doc,v$189%Revision3.7 T1999/02/1615:12:50krisrose190%Interimrelease(Y&Yfontsnowfree).191%192%Revision3.3 T1996/12/1810:05:50ross193%minorimprovementstofile-loadingcommands194%195%Revision3.1 T1995/09/0520:36:33ross196%Release!197%198%Revision3.0 T1995/07/0720:13:19ross199%Majorreleasew/newUser'sGuide!200% *tj4.11.CEXTRAfFEAeTURESWITHPostScriptSUPPORTH519??hw201%Revision2.13 T1995/07/0415:04:51ross 202%Readyforreleaseofv3.203%204%Revision2.9 T1994/06/0914:38:56ross205%Release3beta.206%Includessupportforspecialeffects:Rotations,Scaling,Line-width,Colour.207%Back-endsareseparatedintoseparatefiles.208%Moreback-endsaresupported,experimentally---needstesting.209%210%Revision2.9 T1994/06/0914:38:56ross211%Release3beta.212%Includessupportforspecialeffects:Rotations,Scaling,Line-width,Colour.213%Back-endsareseparatedintoseparatefiles.214%Moreback-endsaresupported,experimentally---needstesting.215%216%NEWforversion2.9bybyRossMoore.'$4.11.12Lxyps-t.do`cHeader:P1%%$Id:xyps-t.doc,v3.71999/02/1615:12:50krisroseExp$2%%3%%Xy-pic``PatternandTileextension''PostScriptsupport.4%%Copyright(c)1993-1997RossMoore5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1997KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24%%Asaspecialexception,youmayusethisfileandallfilesderived25%%fromitwithoutrestrictions. TThisspecialexceptionwasaddedwith26%%version3.7ofXy-pic.27%%28\expandafter\ifx\csnamexyps-tloaded\endcsname\empty29K\message{notreloaded}\endinput\fi _*tj520U1CHAPTERf4.CDRIVERS??hw30\expandafter\let\csnamexyps-tloaded\endcsname=\empty\xycatcodes.4.11.13LPatternsandtiles;Theiincluded lexyps-t.texBN(v!ersion3.7)providesPostScriptsuppMortforthee ectsde nedin theftileKtextensionfdescribMedinx2.7. 㔍ThefPostScriptst!ylemethoMdsarerequired,soensurethattheyareloaded.P49\expandafter\ifx\csnamexyps-sloaded\endcsname\empty\else50K\xyinputorelse@{xyps-s}{\xyerror@{Couldnotloadxyps-s}{}}%51K\xycatcodes\fiThisE leisloadedanditse ectsareactivdDatedautomaticallywhenev!er\xyoption{tile}_misre-questedandthecurren!thdriverisuppMortsPostScriptpatterns.=Shouldtherebean!yneedtoturno fthissuppMort,thefollo!wingcommandsareavdDailable;theyobMeyusualT,[wEB Xgroupings.̉ffd V\NoPStilesGremo!vefPostScriptsuppMortV\UsePStilesGreinstatefPostScript.݉ffdxHWithoutPostScriptsuppMorttilepatternscanbeexpectedtobedispla!yedHassolidblac!k.ThesecommandsKarepro!videdprimarilyfortestingandtrouble-shoMoting;]e.g.withhdrivericon gurationsun!testedfbytheauthorsofXY p-pic,whoshouldbMenoti edofanydiculties.ߍInstallation 5Installation&consistsofrebindingthemacros\xypattern@GDand\newxypattern@XBandofreloadingthestandardpatternstoincludeadescriptionforPostScript.٥ThisinstallationshouldbMefdela!yedtillafterpattern/randthePostScripthdriverihavebMeeninstalled.82\xydef@\installPSpatterns@{\installPSstyle@83\let\xypattern@=\xyPSpattern@@84\let\xypatternwarning@=\relax85\xystandardpatterns@86\xyuncatcodes}88\xylet@\UnloadPSpatterns@=\Unloadpattern@90\xydef@\UsePStiles{\installPSpatterns@}91\xydef@\NoPStiles{\UnloadPSpatterns@\relax}All90e ectsde nedinthetileqextensioncanbMeimplemen!tedusingthePostScriptdictionarye,loaded/b!yxyps-ps+չ.+7This leprovides\generic"PostScriptcoMdewhichisknowntoworkcorrectlywithmostdriv!ers.NoattemptismadetoprovidespMecialcodeforparticulardriv!ers;(fordriver-spMeci cvdDariations,fconsulttheappropriatexy%hdriv!eri.doc le.104\xydef@\xyPSnewpattern@#1#2#3#4#5{%105\expandafter\DN@\expandafter{\csnameshape[#1]\endcsname}%106\DNii@{\relax}\ifx\next@\nextii@\newxypattern{#1}{}\relax\fi107\DNii@{#4}\ifx\nextii@\empty108T\expandafter\DNii@\expandafter{\csnamexyPSshape@#1@\endcsname}%109T\expandafter\def\nextii@{\xyPSpattern@{#2#3}}\else110T\expandafter\DNii@\expandafter{\csnamexyPSshape@#1@\endcsname}%111T\expandafter\def\nextii@{\xyPSpattern@{#4}}\fi112\ifx\nextii@\empty\expandafter\def\next@{\xyPSnotimplemented@@`#1'@@}%113\else ߘ*tj4.11.CEXTRAfFEAeTURESWITHPostScriptSUPPORTH521??hw114 m\edef\tmp@{\noexpand\let\expandafter\noexpand\next@ 115\expandafter\noexpand\nextii@}\expandafter\tmp@\fi}P117\xydef@\xyPSpattern@{\ifPSspecials@\expandafter\xyPSpattern@@118K\else\expandafter\eat@\fi}%\xyPSpattern@@}120\xydef@\xyPSpattern@@#1{\bgroup\checkXyStyle@121K\def\preStyle@@{\expandafter\addtostyletoks@\expandafter{\xyPSpre@}}%122K\def\postStyle@@{\expandafter\addtostyletoks@\expandafter{\xyPSpost@}}%123K\let\modPSboxz@=\modXYstyle@\xyPS@pattern@@{#1}%124K\toks@={\egroup\let\xy@style@=\relax\def\Drop@@}%125K\expandafter\addtotoks@\expandafter{\expandafter{\Drop@@}\def\Connect@@}%126K\expandafter\addtotoks@\expandafter{\expandafter{\Connect@@}}%127K\the\toks@}129\xydef@\xyPS@pattern@@#1{\xyPSsplitPS@{{#1}sp}{}}! The2end&Log137\endinput139%$Log:xyps-t.doc,v$140%Revision3.7 T1999/02/1615:12:50krisrose141%Interimrelease(Y&Yfontsnowfree).142%143%Revision3.4 T1997/05/1801:13:24ross144%Essentialbugfixes.145%146%Revision3.3 T1996/12/1810:05:50ross147%minorimprovementstofile-loadingcommands148%149%Revision3.1 T1995/09/0520:36:33ross150%Release!151%152%Revision3.0 T1995/07/0720:13:19ross153%Majorreleasew/newUser'sGuide!154%155%Revision2.13 T1995/07/0415:04:51ross156%Readyforreleaseofv3.157%158%NEWforversion3.0bybyRossMoore. *tj522U1CHAPTERf4.CDRIVERS?? X*tj??᧍Chapter 5260Standard T{Fon8ts5ʍThist&c!hapterpresentsthesourcesofthe[XY0-picstandardfontsusedbythekernelforcomputations andfasthedefaultw!ayftodra!wlinesandframesintheDVIoutput. ʍT\o2Do:ݹRewriteftheMETAF9ONTcoMdetomftʹformatwithfon!ttables.#ꍍ5.1r|SemidirectionalfffontӍTheseoarefon!tswithsymmetriccharactersin64directionscreatedusingthedriver lexyd2.mf+`.ˤThestandardfrepMertoireincludesonlyonesuc!hfont:xydash102-..5.1.1 xyd2.mf1%$Id:xyd2.mf,v3.71999/02/1615:12:50krisroseExp$2%3%XYD2:generatecharactersof`Xy-picSemiDirectional'font.4%Copyright(c)1992 TKristofferH.Rose5%6%ThisfileispartoftheXy-picmacropackage.7%8%TheXy-picmacropackageisfreesoftware;youcanredistributeitand/or9%modifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedby10%theFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour11%option)anylaterversion.12%13%TheXy-picmacropackageisdistributedinthehopethatitwillbe14%useful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof15%MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneral16%PublicLicenseformoredetails.17%18%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong19%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,20%Inc.,675MassAve,Cambridge,MA02139,USA.21%22%Asaspecialexception,youmayusethisfileandallfilesderived23%fromitwithoutrestriction. TThisspecialexceptionwasaddedwith24%version3.7ofXy-pic.25%_________________________________________________________________________LW.523 *tj524(CHAPTERf5.CSTeAND!ARDFONTS??hw26% 27%CONTENTS:Generate`semidirectional'charactersfrom0..127bycalling28%`chartowards(Code,Dx,Dy)'with29%30%Code:30(=30316395"}12731%Dx,Dy:>31/32,1 T1/32,1"}0,-1R1,-11,01,132%[/"}|T7/33%Direction:o(=o-Pooo-o34%@|콧\35%36%wheretheinterveningcodesaregotbyinterpolatingeitherDxorDyas37%appropriate.38%_________________________________________________________________________39%40%Parameters:41%42font_coding_scheme:="Xy-picsemidirectional";43%44font_x_heightQsegx#;45font_quadQsegl#;46fontdimen8:Qsegw#;~%default_rule_thickness47%48%Characters:49%50forcc= T0step1until30:chartowards(cc,(31-cc)/32,31);endfor;51forcc=31step1until T63:chartowards(cc,(cc-31)/32,-P-1);endfor;52forcc=64step1until127:chartowards(cc,31,(cc-95)/32);endfor;53%54%$Log:xyd2.mf,v$55%Revision3.7 T1999/02/1615:12:50krisrose56%Interimrelease(Y&Yfontsnowfree).57%58%Revision3.3 T1996/12/1903:31:56krisrose59%Maintenancerelease60%61%Revision3.0 T1995/07/0720:14:21kris62%Majorreleasew/newUser'sGuide!63%64%Revision2.13 T1995/07/0415:11:17kris65%Readytoreleasev3?66%67%Revision2.12 T1994/10/2511:34:25kris68%Interimreleasejustbeforev3[workswithAMS-LaTeX1.2]...69%70%Revision2.7 T1992/12/1401:41:26kris71%GenerateallXy-pic`semidirectionsl'characters.72%73%Extractedfromxyline10.mf[Revision2.11992/01/0214:54:07kris] d*tj5.1.CSEMIDIRECTIONALfF!ONT+525??`ɑ,Zff.Q3^0Jff]!y^1yff^2,ff^3mrffK^4=ffb^55 ffG2׹^6cDffv^7fffffd N^00x8AffMϗ6δ xydash10gpff|@͟ff#ff|iYff `"ff8DQffg);R+ff "qfffff׎!%L͹}0xN^01x8AffNogpff}S @͟ff8# ffi Yff "ff8 Qffg;R+ff"qffffdN^02x8AffOgpff}@͟ff#ffۼiYff "ff9Qffhi;R+ffM"qffff׎!%L͹}1xN^03x8AffOgpff~@͟ffx#ff\iYff @"ff:$Qffi ;R+ff"qffffdN^04x8AffP' gpff~!@͟ff#"ff\i#Yff $"ff9%Qffh;&R+ffM'"qffff׎!%L͹}2xN^05x8AffO(gpff~C)@͟ff#*ffۼi+Yff x,"ff94-Qffg;.R+ff/"qffffdN^06x8AffN痺0gpff}1@͟ff`#2ffi3Yff د4"ff85QffgQ;6R+ff 7"qffff׎!%L͹}3xN^07x8AffNG8gpff}9@͟ff#:ff|i;Yff 8<"ff7=Qfff;>R+ffm?"qffffdN^10x8AffM@gpff|A@͟ff\#Bff,iCYffD"ff7EQfff;FR+ffmG"qffff׎!%L͹}4xN^11x8AffMHgpff|I@͟ff\#Jff,iKYffL"ff7MQfff;NR+ffmO"qffffdN^12x8AffMPgpff|Q@͟ff\#Rff,iSYffT"ff7UQfff;VR+ffmW"qffff׎!%L͹}5xN^13x8AffMXgpff|Y@͟ff\#Zff,i[Yff\"ff7]Qfff;^R+ffm_"qffffdN^14x8AffM`gpff|a@͟ff\#bff,icYffd"ff7eQfff;fR+ffmg"qffff׎!%L͹}6xN^15x8AffMhgpff|i@͟ff\#jff,ikYffl"ff7mQfff;nR+ffmo"qffffdN^16x8AffMpgpff|q@͟ff\#rff,isYfft"ff7uQfff;vR+ffmw"qffff׎!%L͹}7xN^17x8AffMxgpff|y@͟ff\#zff,i{Yff|"ff7}Qfff;~R+ffm"qffffd 8AffJ}8gpffyo;}9@͟ff?}Affǹ}BYff }C"ff4S}DQffc}ER+ffP߹}F"qff"WFiguref5.1:Feon!ttableforxydash10.$֍5.1.2 xydash10 1%$Id:xydash10.mf,v3.71999/02/1615:12:50krisroseExp$ 2%3%XYDASH10:dashesforXy-picat10point.4%Copyright(c)1991,1992 TKristofferH.Rose5%6%ThisfileispartoftheXy-picmacropackage.7%8%TheXy-picmacropackageisfreesoftware;youcanredistributeitand/or9%modifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedby10%theFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour11%option)anylaterversion.12%13%TheXy-picmacropackageisdistributedinthehopethatitwillbe14%useful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof15%MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneral16%PublicLicenseformoredetails.17%18%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong19%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,20%Inc.,675MassAve,Cambridge,MA02139,USA.21%22%Asaspecialexception,youmayusethisfileandallfilesderived23%fromitwithoutrestriction. TThisspecialexceptionwasaddedwith! M*tj526(CHAPTERf5.CSTeAND!ARDFONTS??hw24%version3.7ofXy-pic. 25%_________________________________________________________________________26%27%CONTENTS:Linesegmentsgoingsegl#inallrightwarddirections...each28%characterhas T(width+italiccorrection)=cos(direction)*segl#.29%_________________________________________________________________________30%31%SETUP:32%33font_identifier"XYDASH";font_size10pt#;34mode_setup;P36%METANESS...37%38segl#=1/2designsize;define_pixels(segl);7yI%segmentlength39segx#=1/5designsize;define_pixels(segx);7yI%segmentheight40segw#=.4pt#;define_whole_blacker_pixels(segw);7yI%segmentthickness41%42pickuppencirclescaledsegw;char_pen:=savepen;43%44%chartowardsmakescharccwithlengthsegllinefrom(0,0)towards(dx,dy)...45%46defchartowards(exprcc,dx,dy)=47Kbeginchar(cc,abs(dx)*segl#,0,0);48 ma:=angle(dx,dy);49 mz0=(0,0);z1=z0+dirascaledsegl;50 mpickupchar_pen;drawz0--z1;51 mcharic:=abs((cosda)*segl#)-charwd;52 mpenlabels(0,1);53Kendchar54enddef;56%TESTING...weredefineopenitbecausethecharactersextendfartothe57%leftoftheboundingbox!58%59defopenit=openwindowcurrentwindow60Kfromoriginto(screen_cols,screen_rows)at(-200,300)enddef;62%GENERATE...63%64inputxyd266bye.67%68%$Log:xydash10.mf,v$69%Revision3.7 T1999/02/1615:12:50krisrose70%Interimrelease(Y&Yfontsnowfree).71%72%Revision3.3 T1996/12/1903:31:56krisrose73%Maintenancerelease74%75%Revision3.0 T1995/07/0720:14:21kris!%*tj5.2.CDIRECTIONALfF!ONTG3527??hw76%Majorreleasew/newUser'sGuide! 77%78%Revision2.13 T1995/07/0415:11:17kris79%Readytoreleasev3?80%81%Revision2.7 T1992/12/1401:41:26kris82%Nowusesxyd2.mf.83%84%Basedonobsoletexyline10.mf T2.11992/01/0214:54:07krisC'5.2r|DirectionalfffontqThesearefon!tswithcharactersin128directionscreatedusingthedriver lexyd.mf&l.yThestandardrepMertoirefincludessev!eralsuchfonts.@5.2.1 xyd.mfb퍍1%$Id:xyd.mf,v3.71999/02/1615:12:50krisroseExp$2%3%XYD:generatecharactersof`Xy-picDirectional'font.4%Copyright(c)1992 TKristofferH.Rose5%6%ThisfileispartoftheXy-picmacropackage.7%8%TheXy-picmacropackageisfreesoftware;youcanredistributeitand/or9%modifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedby10%theFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour11%option)anylaterversion.12%13%TheXy-picmacropackageisdistributedinthehopethatitwillbe14%useful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof15%MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneral16%PublicLicenseformoredetails.17%18%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong19%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,20%Inc.,675MassAve,Cambridge,MA02139,USA.21%22%Asaspecialexception,youmayusethisfileandallfilesderived23%fromitwithoutrestriction. TThisspecialexceptionwasaddedwith24%version3.7ofXy-pic.25%_________________________________________________________________________26%27%CONTENTS:Generate`directional'charactersfrom0..127bycalling28%`chartowards(Code,Dx,Dy)'with29%30%Code:30R153147637995>11112731%Dx,Dy: T-15/16,-10,-11,-11,0>1,10,1 T-1,1-1,0-1,-132%/|\33%Direction:oRooo-ooo-oo!/*tj528(CHAPTERf5.CSTeAND!ARDFONTS??hw34%P{L/"}|\/ 35%36%wheretheinterveningcodesaregotbyinterpolatingeitherDxorDyas37%appropriate.38%_________________________________________________________________________39%40%Parameters:41%42font_coding_scheme:="Xy-picdirectional";43%44font_x_heightQsegx#;45font_quadQsegl#;46fontdimen8:Qsegw#;~%default_rule_thickness47%48%Characters:49%50forcc= T0step1until31:chartowards(cc,(cc-15)/16,(=-1);endfor;51forcc=32step1until T63:chartowards(cc,31,(cc-47)/16);endfor;52forcc=64step1until T95:chartowards(cc,(79-cc)/16,-P1);endfor;53forcc=96step1until127:chartowards(cc,-P-1,(111-cc)/16);endfor;54%55%$Log:xyd.mf,v$56%Revision3.7 T1999/02/1615:12:50krisrose57%Interimrelease(Y&Yfontsnowfree).58%59%Revision3.3 T1996/12/1903:31:56krisrose60%Maintenancerelease61%62%Revision3.0 T1995/07/0720:14:21kris63%Majorreleasew/newUser'sGuide!64%65%Revision2.13 T1995/07/0415:11:17kris66%Readytoreleasev3?67%68%Revision2.7 T1992/12/1401:41:26kris69%GenerateallXy-pic`directional'characters.70%71%Extractedfromxyatip10.mf[Revision2.11992/01/0214:54:07kris]N5.2.2 xyatip10)1%$Id:xyatip10.mf,v3.71999/02/1615:12:50krisroseExp$2%3%XYATIP10:upperarrowtipsforXy-picat10point"technicalstyle".4%Copyright(c)1991-1998 TKristofferH.Rose5%6%ThisfileispartoftheXy-picmacropackage.7%8%TheXy-picmacropackageisfreesoftware;youcanredistributeitand/or9%modifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedby!;*tj5.2.CDIRECTIONALfF!ONTG3529??`ɑ,Zff.Q3^0Jff]!y^1yff^2,ff^3mrffK^4=ffb^55 ffG2׹^6cDffv^7fffffd N^00x8AffP;5D xyatip10gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qfffff׎!%L͹}0xN^01x8AffP;gpff @͟ff# ffܬi Yff | "ff:L Qffi;R+ff"qffffdN^02x8AffP;gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qffff׎!%L͹}1xN^03x8AffP;gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qffffdN^04x8AffP; gpff !@͟ff#"ffܬi#Yff |$"ff:L%Qffi;&R+ff'"qffff׎!%L͹}2xN^05x8AffP;(gpff )@͟ff#*ffܬi+Yff |,"ff:L-Qffi;.R+ff/"qffffdN^06x8AffP;0gpff 1@͟ff#2ffܬi3Yff |4"ff:L5Qffi;6R+ff7"qffff׎!%L͹}3xN^07x8AffP;8gpff 9@͟ff#:ffܬi;Yff |<"ff:L=Qffi;>R+ff?"qffffdN^10x8AffP;@gpff A@͟ff#BffܬiCYff |D"ff:LEQffi;FR+ffG"qffff׎!%L͹}4xN^11x8AffP;Hgpff I@͟ff#JffܬiKYff |L"ff:LMQffi;NR+ffO"qffffdN^12x8AffP;Pgpff Q@͟ff#RffܬiSYff |T"ff:LUQffi;VR+ffW"qffff׎!%L͹}5xN^13x8AffP;Xgpff Y@͟ff#Zffܬi[Yff |\"ff:L]Qffi;^R+ff_"qffffdN^14x8AffP;`gpff a@͟ff#bffܬicYff |d"ff:LeQffi;fR+ffg"qffff׎!%L͹}6xN^15x8AffP;hgpff i@͟ff#jffܬikYff |l"ff:LmQffi;nR+ffo"qffffdN^16x8AffP;pgpff q@͟ff#rffܬisYff |t"ff:LuQffi;vR+ffw"qffff׎!%L͹}7xN^17x8AffP;xgpff y@͟ff#zffܬi{Yff ||"ff:L}Qffi;~R+ff"qffffd 8AffJ}8gpffyo;}9@͟ff?}Affǹ}BYff }C"ff4S}DQffc}ER+ffP߹}F"qff"WFiguref5.2:Feon!ttableforxyatip10.)10%theFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour 11%option)anylaterversion.12%13%TheXy-picmacropackageisdistributedinthehopethatitwillbe14%useful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof15%MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneral16%PublicLicenseformoredetails.17%18%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong19%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,20%Inc.,675MassAve,Cambridge,MA02139,USA.21%22%Asaspecialexception,youmayusethisfileandallfilesderived23%fromitwithoutrestrictions. TThisspecialexceptionwasaddedwith24%version3.7ofXy-pic.25%26font_identifier"XYATIP";font_size10pt#;27mode_setup;P29inputxytech30inputxyatip32%$Log:xyatip10.mf,v$33%Revision3.7 T1999/02/1615:12:50krisrose34%Interimrelease(Y&Yfontsnowfree).35%!Ei*tj530(CHAPTERf5.CSTeAND!ARDFONTS??`ɑ,Zff.Q3^0Jff]!y^1yff^2,ff^3mrffK^4=ffb^55 ffG2׹^6cDffv^7fffffd N^00x8AffP;5D xybtip10gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qfffff׎!%L͹}0xN^01x8AffP;gpff @͟ff# ffܬi Yff | "ff:L Qffi;R+ff"qffffdN^02x8AffP;gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qffff׎!%L͹}1xN^03x8AffP;gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qffffdN^04x8AffP; gpff !@͟ff#"ffܬi#Yff |$"ff:L%Qffi;&R+ff'"qffff׎!%L͹}2xN^05x8AffP;(gpff )@͟ff#*ffܬi+Yff |,"ff:L-Qffi;.R+ff/"qffffdN^06x8AffP;0gpff 1@͟ff#2ffܬi3Yff |4"ff:L5Qffi;6R+ff7"qffff׎!%L͹}3xN^07x8AffP;8gpff 9@͟ff#:ffܬi;Yff |<"ff:L=Qffi;>R+ff?"qffffdN^10x8AffP;@gpff A@͟ff#BffܬiCYff |D"ff:LEQffi;FR+ffG"qffff׎!%L͹}4xN^11x8AffP;Hgpff I@͟ff#JffܬiKYff |L"ff:LMQffi;NR+ffO"qffffdN^12x8AffP;Pgpff Q@͟ff#RffܬiSYff |T"ff:LUQffi;VR+ffW"qffff׎!%L͹}5xN^13x8AffP;Xgpff Y@͟ff#Zffܬi[Yff |\"ff:L]Qffi;^R+ff_"qffffdN^14x8AffP;`gpff a@͟ff#bffܬicYff |d"ff:LeQffi;fR+ffg"qffff׎!%L͹}6xN^15x8AffP;hgpff i@͟ff#jffܬikYff |l"ff:LmQffi;nR+ffo"qffffdN^16x8AffP;pgpff q@͟ff#rffܬisYff |t"ff:LuQffi;vR+ffw"qffff׎!%L͹}7xN^17x8AffP;xgpff y@͟ff#zffܬi{Yff ||"ff:L}Qffi;~R+ff"qffffd 8AffJ}8gpffyo;}9@͟ff?}Affǹ}BYff }C"ff4S}DQffc}ER+ffP߹}F"qff"WFiguref5.3:Feon!ttableforxybtip10."36%Revision3.3 T1996/12/1903:31:56krisrose 37%Maintenancerelease38%39%Revision3.0 T1995/07/0720:14:21kris40%Majorreleasew/newUser'sGuide!41%42%Revision2.13 T1995/07/0415:11:17kris43%Readytoreleasev3?44%45%Revision2.7 T1992/12/1401:41:26kris46%Nowusesxyd.mf.47%48%Revision2.1 T1992/01/0214:54:07kris49%Releaseversion.50%51%Revision1.1 T1991/11/2706:40:24kris52%Initial:\beta-testonDIKU.53%54%Basedonobsoletexytip10.mfv.1.4.*5.2.3 xybtip10j1%$Id:xybtip10.mf,v3.71999/02/1615:12:50krisroseExp$2%3%XYBTIP10:lowerarrowtipsforXy-picat10point"technicalstyle".!a*tj5.2.CDIRECTIONALfF!ONTG3531??hw4%Copyright(c)1991,1992 TKristofferH.Rose 5%6%ThisfileispartoftheXy-picmacropackage.7%8%TheXy-picmacropackageisfreesoftware;youcanredistributeitand/or9%modifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedby10%theFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour11%option)anylaterversion.12%13%TheXy-picmacropackageisdistributedinthehopethatitwillbe14%useful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof15%MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneral16%PublicLicenseformoredetails.17%18%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong19%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,20%Inc.,675MassAve,Cambridge,MA02139,USA.21%22%Asaspecialexception,youmayusethisfileandallfilesderived23%fromitwithoutrestriction. TThisspecialexceptionwasaddedwith24%version3.7ofXy-pic.25%26font_identifier"XYBTIP";font_size10pt#;27mode_setup;P29inputxytech30inputxybtip32%$Log:xybtip10.mf,v$33%Revision3.7 T1999/02/1615:12:50krisrose34%Interimrelease(Y&Yfontsnowfree).35%36%Revision3.3 T1996/12/1903:31:56krisrose37%Maintenancerelease38%39%Revision3.0 T1995/07/0720:14:21kris40%Majorreleasew/newUser'sGuide!41%42%Revision2.13 T1995/07/0415:11:17kris43%Readytoreleasev3?44%45%Revision2.7 T1992/12/1401:41:26kris46%Nowusesxyd.mf.47%48%Revision2.1 T1992/01/0214:54:07kris49%Releaseversion.50%51%Revision1.1 T1991/11/2706:41:03kris52%Initial:\beta-testonDIKU.53%54%Basedonobsoletexytip10.mfv.1.4.!{*tj532(CHAPTERf5.CSTeAND!ARDFONTS??`ɑ,Zff.Q3^0Jff]!y^1yff^2,ff^3mrffK^4=ffb^55 ffG2׹^6cDffv^7fffffd N^00x8AffP;5D xybsql10gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qfffff׎!%L͹}0xN^01x8AffP;gpff @͟ff# ffܬi Yff | "ff:L Qffi;R+ff"qffffdN^02x8AffP;gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qffff׎!%L͹}1xN^03x8AffP;gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qffffdN^04x8AffP; gpff !@͟ff#"ffܬi#Yff |$"ff:L%Qffi;&R+ff'"qffff׎!%L͹}2xN^05x8AffP;(gpff )@͟ff#*ffܬi+Yff |,"ff:L-Qffi;.R+ff/"qffffdN^06x8AffP;0gpff 1@͟ff#2ffܬi3Yff |4"ff:L5Qffi;6R+ff7"qffff׎!%L͹}3xN^07x8AffP;8gpff 9@͟ff#:ffܬi;Yff |<"ff:L=Qffi;>R+ff?"qffffdN^10x8AffP;@gpff A@͟ff#BffܬiCYff |D"ff:LEQffi;FR+ffG"qffff׎!%L͹}4xN^11x8AffP;Hgpff I@͟ff#JffܬiKYff |L"ff:LMQffi;NR+ffO"qffffdN^12x8AffP;Pgpff Q@͟ff#RffܬiSYff |T"ff:LUQffi;VR+ffW"qffff׎!%L͹}5xN^13x8AffP;Xgpff Y@͟ff#Zffܬi[Yff |\"ff:L]Qffi;^R+ff_"qffffdN^14x8AffP;`gpff a@͟ff#bffܬicYff |d"ff:LeQffi;fR+ffg"qffff׎!%L͹}6xN^15x8AffP;hgpff i@͟ff#jffܬikYff |l"ff:LmQffi;nR+ffo"qffffdN^16x8AffP;pgpff q@͟ff#rffܬisYff |t"ff:LuQffi;vR+ffw"qffff׎!%L͹}7xN^17x8AffP;xgpff y@͟ff#zffܬi{Yff ||"ff:L}Qffi;~R+ff"qffffd 8AffJ}8gpffyo;}9@͟ff?}Affǹ}BYff }C"ff4S}DQffc}ER+ffP߹}F"qff"WFiguref5.4:Feon!ttableforxybsql10.$֍5.2.4 xybsql10 1%$Id:xybsql10.mf,v3.71999/02/1615:12:50krisroseExp$ 2%3%XYBSQL10:lowersquiggles/quartercirclesforXy-picat10point.4%Copyright(c)1992 TKristofferH.Rose5%6%ThisfileispartoftheXy-picmacropackage.7%8%TheXy-picmacropackageisfreesoftware;youcanredistributeitand/or9%modifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedby10%theFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour11%option)anylaterversion.12%13%TheXy-picmacropackageisdistributedinthehopethatitwillbe14%useful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof15%MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneral16%PublicLicenseformoredetails.17%18%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong19%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,20%Inc.,675MassAve,Cambridge,MA02139,USA.21%22%Asaspecialexception,youmayusethisfileandallfilesderived23%fromitwithoutrestriction. TThisspecialexceptionwasaddedwith!R*tj5.2.CDIRECTIONALfF!ONTG3533??hw24%version3.7ofXy-pic. 25%_________________________________________________________________________26%27%CONTENTS:Squigglesarequartercircleswithsecantinalldirections.28%Eachhaszeroboundingboxaroundthestartpoint,i.e.,fromwhichthe29%quartercircle`turnsletf'...thiscanbeillustratedasfollows:30%31%Code:[-1]>153147637995111 T12732%q_33%|>)R|/\34%?oRoo_o35%9||R(|_\/~x|36%_________________________________________________________________________37%38font_identifier"XYBSQL";font_size10pt#;39mode_setup;P41%METANESS...42%43segl#=sqrt2*1/4designsize;define_pixels(segl);>%segmentlength44segx#=(sqrt2-1)*segl#;define_pixels(segx);7yI%segmentheight45segw#=.4pt#;define_whole_blacker_pixels(segw);(=%segmentthickness46%47pickuppencirclescaledsegw;char_pen:=savepen;48%49%chartowardsmakescharccwithquartercirclethatissecanttoline50%from(0,0)to(dx,dy),turningleft.51%52defchartowards(exprcc,dx,dy)=53Kbeginchar(cc,0,0,0);54 ma:=angle(dx,dy);55 mz0=(0,0);z1=segl*dira;56 mpickupchar_pen;drawz0{dir(a-45)}..{dir(a+45)}z1;57Kendchar58enddef;60%GENERATE...61%62inputxyd64bye.65%66%$Log:xybsql10.mf,v$67%Revision3.7 T1999/02/1615:12:50krisrose68%Interimrelease(Y&Yfontsnowfree).69%70%Revision3.3 T1996/12/1903:31:56krisrose71%Maintenancerelease72%73%Revision3.0 T1995/07/0720:14:21kris74%Majorreleasew/newUser'sGuide!!*tj534(CHAPTERf5.CSTeAND!ARDFONTS??hw75% 76%Revision2.13 T1995/07/0415:11:17kris77%Readytoreleasev3?78%79%Revision2.7 T1992/12/1401:41:26kris80%Nowusesxyd.mf.81%82%Basedonobsoletexyqc10.mf[Revision2.6 T1992/06/2401:23:34kris]C'5.3r|Sps3ecialfffontsqTheX2k!ernelcircleconstructionusesthefollowingspMecialfontwith1/8circlesegmentsatvdDarioussizes:@5.3.1 xycirc10b퍍1%$Id:xycirc10.mf,v3.71999/02/1615:12:50krisroseExp$2%3%XYCIRC10:1/8circleswithvaryingradiiforXy-picat10point.4%Copyright(c)1992,1993 TKristofferH.Rose5%6%ThisfileispartoftheXy-picmacropackage.7%8%TheXy-picmacropackageisfreesoftware;youcanredistributeitand/or9%modifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedby10%theFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour11%option)anylaterversion.12%13%TheXy-picmacropackageisdistributedinthehopethatitwillbe14%useful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof15%MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneral16%PublicLicenseformoredetails.17%18%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong19%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,20%675MassAve,Cambridge,MA02139,USA.21%22%Asaspecialexception,youmayusethisfileandallfilesderived23%fromitwithoutrestriction. TThisspecialexceptionwasaddedwith24%version3.7ofXy-pic.25%_________________________________________________________________________26%27%CONTENTS:1/8circleswithradiifrom1to32ptdissectedintothe1/828%circlesegmentsshownbelow29%Ā6R530%4>....... z_31%u7 T..>|..4|32%@:|>||: z|radius33%5: T|>||: z|34%(=Referencepoint--->___:__|___|___|__:_____|35%5: T|>||:!*tj5.3.CSPECIALfF!ONTS`Թ535??M+!ff'y^0A$ffWm̹^1wff^2,ff ^3mrffJl^4ff>^57UݟffL慹^6lff|ں^7>Hfffffd Po^00x4ffI>}FQ xycirc10^Q ffxffɠџffYff S!ff8΃Sğffnvfqff/fffffiL͹}0xPo^01x4ffI^Q ffx+ ffK ɠџffީM Yff !ff8t Sğffnqffz#/ffffdPo^02x4ffH^Q ffxHffɠџffރYffX!ff8~SğffmaqffT/ffffffiL͹}1xPo^03x4ffH^Q ffw&ff ɠџff^RYff!ff7Sğffmfqff/(/fffeffdPo^04x4ffH ^Q ffw!ff;"ɠџff8#Yffy]$!ff7dy%Sğffm \&qff '/ffffffiL͹}2xPo^05x4ffH (^Q ffw9!)ff*ɠџffW+YffS,!ff7 -Sğffl.qff-//ffffffdPo^06x4ffH]0^Q ffvޟ1ff2ɠџff3Yff.b4!ff6u5SğfflWX6qff7/ff feffiL͹}3x Po^07x4ffH88^Q ffv9ff+:ɠѡff\;Yff<!ᡄff6T=Sġffk>qff2?/ff ffffd Po^10x4ffG@^Q ffuAffvBɠѡff}aCYffD!ᡄff5ESġffkGFqffN7G/ff ffffiL͹}4x Po^11x4ffGH^Q ffuIffJɠѡff2fKYffrL!ᡄff4MSġffjNqff||: 37%u0 T.!>|!.338%4>...|...39%Ā1R240%41%suchthateachgroupof8characterscc+0tocc+7constituteafullcircle42%withthegivenradiuswhentypesetonthesamebaseline(asshown).43%44%Theboundingboxofeachsegmentistheverticalsliceoftheunitsquare45%aroundthecircle.46%47%Theradiusisgivenforeachcharactergroupg=ccmod8bytheformula48%49% Tradius[pt]=g+1,Yif T0<=g<850%WFc2(g-8)+10,Yif T8<=g<127yI[=2g-6]51%WFc4(g-12)+20,Yif12<=g<167yI[=4g-28]52%53%Theboundingboxofeachsegmentisthesmallestboxenclosingit(not54%includingtherulewidth)withreferencepointonthehorizontalline55%throughthecenterofthecircle---sosegment1256haveeitherheightor56%depthnegative.57%_________________________________________________________________________58%59font_identifier"XYCIRC";font_size10pt#;60mode_setup;P62%METANESS...63%64rulew#=.4pt#;define_whole_blacker_pixels(rulew);%linethickness65%66pickuppencirclescaledrulew;char_pen:=savepen;68%TESTING...weredefineopenitbecausethecharactersextendfartothe69%leftoftheboundingbox!70%71defopenit=%letechar=endchar;defendchar=echar;stop"."enddef;72Kopenwindowcurrentwindowfromoriginto(1000,800)at(-200,300)73enddef;75%FONT.76%77%Fontdimension8istherulethickness(cf.TheTeXbook,app.G)78%79font_coding_scheme:="Xy-pic1/8circles";80fontdimen8:Qrulew#;~%default_rule_thickness82%Usethefollowingmacrothatgeneratesanentiregroupfromcharactercc83%tocc+7withradius:84%85defmakeg(exprg,radius)=87Kminor#:=(1-sqrt1/2)*radius;88Kmajor#:=radius-minor#;!c*tj5.3.CSPECIALfF!ONTS`Թ537??hw89Kfull# T:=radius; 90Kdefine_pixels(minor,major,full);P92Kbeginchar(8g T,minor#,full#,full#);pickupchar_pen;93 mz0=(0,0);z1=(minor,-major);drawz0{0,-1}..{1,-1}z1;94 mpenlabels(0,1);endchar;96Kbeginchar(8g+1,major#,full#,full#);pickupchar_pen;97 mz0=(0,-major);z1=(major,-full);drawz0{1,-1}..{1,0}z1;98 mpenlabels(0,1);endchar;100Kbeginchar(8g+2,major#,full#,full#);pickupchar_pen;101 mz0=(0,-full);z1=(major,-major);drawz0{1,0}..{1,1}z1;102 mpenlabels(0,1);endchar;104Kbeginchar(8g+3,minor#,full#,full#);pickupchar_pen;105 mz0=(0,-major);z1=(minor,0);drawz0{1,1}..{0,1}z1;106 mpenlabels(0,1);endchar;108Kbeginchar(8g+4,minor#,full#,full#);pickupchar_pen;109 mz0=(0,major);z1=(minor,0);drawz0{1,-1}..{0,-1}z1;110 mpenlabels(0,1);endchar;112Kbeginchar(8g+5,major#,full#,full#);pickupchar_pen;113 mz0=(0,full);z1=(major,major);drawz0{1,0}..{1,-1}z1;114 mpenlabels(0,1);endchar;116Kbeginchar(8g+6,major#,full#,full#);pickupchar_pen;117 mz0=(0,major);z1=(major,full);drawz0{1,1}..{1,0}z1;118 mpenlabels(0,1);endchar;120Kbeginchar(8g+7,minor#,full#,full#);pickupchar_pen;121 mz0=(0,0);z1=(minor,major);drawz0{0,1}..{1,1}z1;122 mpenlabels(0,1);endchar124enddef;126%Makegroups:127%128forg= T0step1until7:makeg(g,(g+1)*pt#);endfor;129forg= T8step1until11:makeg(g,(2g-6)*pt#);endfor;130forg=12step1until15:makeg(g,(4g-28)*pt#);endfor;132bye.134%$Log:xycirc10.mf,v$135%Revision3.7 T1999/02/1615:12:50krisrose136%Interimrelease(Y&Yfontsnowfree).137%138%Revision3.3 T1996/12/1903:31:56krisrose139%Maintenancerelease140%141%Revision3.0 T1995/07/0720:14:21kris142%Majorreleasew/newUser'sGuide!143%144%Revision2.13 T1995/07/0415:11:17kris145%Readytoreleasev3?!Q*tj538(CHAPTERf5.CSTeAND!ARDFONTS??`ɑ,Zff.Q3^0Jff]!y^1yff^2,ff^3mrffK^4=ffb^55 ffG2׹^6cDffv^7fffffd N^00x8AffP;5D xycmat10gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qfffff׎!%L͹}0xN^01x8AffP;gpff @͟ff# ffܬi Yff | "ff:L Qffi;R+ff"qffffdN^02x8AffP;gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qffff׎!%L͹}1xN^03x8AffP;gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qffffdN^04x8AffP; gpff !@͟ff#"ffܬi#Yff |$"ff:L%Qffi;&R+ff'"qffff׎!%L͹}2xN^05x8AffP;(gpff )@͟ff#*ffܬi+Yff |,"ff:L-Qffi;.R+ff/"qffffdN^06x8AffP;0gpff 1@͟ff#2ffܬi3Yff |4"ff:L5Qffi;6R+ff7"qffff׎!%L͹}3xN^07x8AffP;8gpff 9@͟ff#:ffܬi;Yff |<"ff:L=Qffi;>R+ff?"qffffdN^10x8AffP;@gpff A@͟ff#BffܬiCYff |D"ff:LEQffi;FR+ffG"qffff׎!%L͹}4xN^11x8AffP;Hgpff I@͟ff#JffܬiKYff |L"ff:LMQffi;NR+ffO"qffffdN^12x8AffP;Pgpff Q@͟ff#RffܬiSYff |T"ff:LUQffi;VR+ffW"qffff׎!%L͹}5xN^13x8AffP;Xgpff Y@͟ff#Zffܬi[Yff |\"ff:L]Qffi;^R+ff_"qffffdN^14x8AffP;`gpff a@͟ff#bffܬicYff |d"ff:LeQffi;fR+ffg"qffff׎!%L͹}6xN^15x8AffP;hgpff i@͟ff#jffܬikYff |l"ff:LmQffi;nR+ffo"qffffdN^16x8AffP;pgpff q@͟ff#rffܬisYff |t"ff:LuQffi;vR+ffw"qffff׎!%L͹}7xN^17x8AffP;xgpff y@͟ff#zffܬi{Yff ||"ff:L}Qffi;~R+ff"qffffd 8AffJ}8gpffyo;}9@͟ff?}Affǹ}BYff }C"ff4S}DQffc}ER+ffP߹}F"qff"WFiguref5.6:Feon!ttableforxycmat10. 146% 147%Revision2.7 T1994/03/0802:09:27kris148%Release3alpha.149%150%Revision2.6.9.1 T1994/03/0704:22:46kris151%Lastinternal3alphaandpre-2.7release.152%153%NEWfiletogoinversion2.7!154%Basedonxymisc10.mf[Revision2.6 T1992/06/2401:23:34kris]Z5.4r|OptionalfffontsDThef\tips"extensionusesthefollo!wingtwofontsbydefault. q5.4.1 xycmat10ˍ1%$Id:xycmat10.mf,v3.71999/02/1615:12:50krisroseExp$2%3%XYCMAT10:upperarrowtipsforXy-picat10point"ComputerModernstyle".4%Copyright(c)1994-1996 TKristofferH.Rose5%6%ThisfileispartoftheXy-picmacropackage.7%8%TheXy-picmacropackageisfreesoftware;youcanredistributeitand/or9%modifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedby!*tj5.4.COPTIONALfF!ONTST539??hw10%theFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour 11%option)anylaterversion.12%13%TheXy-picmacropackageisdistributedinthehopethatitwillbe14%useful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof15%MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneral16%PublicLicenseformoredetails.17%18%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong19%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,20%Inc.,675MassAve,Cambridge,MA02139,USA.21%22%Asaspecialexception,youmayusethisfileandallfilesderived23%fromitwithoutrestriction. TThisspecialexceptionwasaddedwith24%version3.7ofXy-pic.25%26font_identifier"XYCMAT";font_size10pt#;27mode_setup;P29inputxycm30inputxyatip32%$Log:xycmat10.mf,v$33%Revision3.7 T1999/02/1615:12:50krisrose34%Interimrelease(Y&Yfontsnowfree).35%36%Revision3.3 T1996/12/1903:31:56krisrose37%Maintenancerelease38%39%Revision3.0 T1995/07/0720:14:21kris40%Majorreleasew/newUser'sGuide!41%42%Revision2.13 T1995/07/0415:11:17kris43%Readytoreleasev3?44%45%Revision2.12 T1994/10/2511:34:25kris46%Interimreleasejustbeforev3[workswithAMS-LaTeX1.2]...47%48%Recreatedfromxyatip10.mf(Revision2.71992/12/1401:41:26kris).49%50%Revision2.6 T1993/10/2121:21:24kris51%NEWfor2.7...52%53%Basedonxyatip10.mf[2.6]andKnuth'sSYMBOL.MF.Ҷ5.4.2 xycmbt101%$Id:xycmbt10.mf,v3.71999/02/1615:12:50krisroseExp$2%3%XYCMBT10:lowerarrowtipsforXy-picat10point"ComputerModernstyle".4%Copyright(c)1994-1996 TKristofferH.Rose!*tj540(CHAPTERf5.CSTeAND!ARDFONTS??`ɑ,Zff.Q3^0Jff]!y^1yff^2,ff^3mrffK^4=ffb^55 ffG2׹^6cDffv^7fffffd N^00x8AffP;5D xycmbt10gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qfffff׎!%L͹}0xN^01x8AffP;gpff @͟ff# ffܬi Yff | "ff:L Qffi;R+ff"qffffdN^02x8AffP;gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qffff׎!%L͹}1xN^03x8AffP;gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qffffdN^04x8AffP; gpff !@͟ff#"ffܬi#Yff |$"ff:L%Qffi;&R+ff'"qffff׎!%L͹}2xN^05x8AffP;(gpff )@͟ff#*ffܬi+Yff |,"ff:L-Qffi;.R+ff/"qffffdN^06x8AffP;0gpff 1@͟ff#2ffܬi3Yff |4"ff:L5Qffi;6R+ff7"qffff׎!%L͹}3xN^07x8AffP;8gpff 9@͟ff#:ffܬi;Yff |<"ff:L=Qffi;>R+ff?"qffffdN^10x8AffP;@gpff A@͟ff#BffܬiCYff |D"ff:LEQffi;FR+ffG"qffff׎!%L͹}4xN^11x8AffP;Hgpff I@͟ff#JffܬiKYff |L"ff:LMQffi;NR+ffO"qffffdN^12x8AffP;Pgpff Q@͟ff#RffܬiSYff |T"ff:LUQffi;VR+ffW"qffff׎!%L͹}5xN^13x8AffP;Xgpff Y@͟ff#Zffܬi[Yff |\"ff:L]Qffi;^R+ff_"qffffdN^14x8AffP;`gpff a@͟ff#bffܬicYff |d"ff:LeQffi;fR+ffg"qffff׎!%L͹}6xN^15x8AffP;hgpff i@͟ff#jffܬikYff |l"ff:LmQffi;nR+ffo"qffffdN^16x8AffP;pgpff q@͟ff#rffܬisYff |t"ff:LuQffi;vR+ffw"qffff׎!%L͹}7xN^17x8AffP;xgpff y@͟ff#zffܬi{Yff ||"ff:L}Qffi;~R+ff"qffffd 8AffJ}8gpffyo;}9@͟ff?}Affǹ}BYff }C"ff4S}DQffc}ER+ffP߹}F"qff"WFiguref5.7:Feon!ttableforxycmbt10. B5% 6%ThisfileispartoftheXy-picmacropackage.7%8%TheXy-picmacropackageisfreesoftware;youcanredistributeitand/or9%modifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedby10%theFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour11%option)anylaterversion.12%13%TheXy-picmacropackageisdistributedinthehopethatitwillbe14%useful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof15%MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneral16%PublicLicenseformoredetails.17%18%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong19%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,20%Inc.,675MassAve,Cambridge,MA02139,USA.21%22%Asaspecialexception,youmayusethisfileandallfilesderived23%fromitwithoutrestriction. TThisspecialexceptionwasaddedwith24%version3.7ofXy-pic.25%26font_identifier"XYCMBT";font_size10pt#;27mode_setup;P29inputxycm30inputxybtip" *tj5.4.COPTIONALfF!ONTST541??hw32%$Log:xycmbt10.mf,v$ 33%Revision3.7 T1999/02/1615:12:50krisrose34%Interimrelease(Y&Yfontsnowfree).35%36%Revision3.3 T1996/12/1903:31:56krisrose37%Maintenancerelease38%39%Revision3.0 T1995/07/0720:14:21kris40%Majorreleasew/newUser'sGuide!41%42%Revision2.13 T1995/07/0415:11:17kris43%Readytoreleasev3?44%45%Revision2.12 T1994/10/2511:34:25kris46%Interimreleasejustbeforev3[workswithAMS-LaTeX1.2]...47%48%Recreatedfromxybtip10.mf(Revision2.71992/12/1401:41:26kris).49%50%Revision2.6 T1993/10/2121:21:24kris51%NEWfor2.7...52%53%Basedonxyatip10.mf[2.6]andKnuth'sSYMBOL.MF.Theffollo!wingfontsaremadetomatchwiththeEulermathfonts.* 5.4.3 xyeuat10b퍍1%$Id:xyeuat10.mf,v3.71999/02/1615:12:50krisroseExp$2%3%XYEUAT10:upperarrowtipsforXy-picat10point"Eulerstyle".4%Copyright(c)1994-1996 TKristofferH.Rose5%6%ThisfileispartoftheXy-picmacropackage.7%8%TheXy-picmacropackageisfreesoftware;youcanredistributeitand/or9%modifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedby10%theFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour11%option)anylaterversion.12%13%TheXy-picmacropackageisdistributedinthehopethatitwillbe14%useful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof15%MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneral16%PublicLicenseformoredetails.17%18%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong19%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,20%Inc.,675MassAve,Cambridge,MA02139,USA.21%22%Asaspecialexception,youmayusethisfileandallfilesderived23%fromitwithoutrestriction. TThisspecialexceptionwasaddedwith"%*tj542(CHAPTERf5.CSTeAND!ARDFONTS??`ɑ,Zff.Q3^0Jff]!y^1yff^2,ff^3mrffK^4=ffb^55 ffG2׹^6cDffv^7fffffd N^00x8AffP;@5D xyeuat10@gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qfffff׎!%L͹}0xN^01x8AffP;@gpff @͟ff# ffܬi Yff | "ff:L Qffi;R+ff"qffffdN^02x8AffP;@gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qffff׎!%L͹}1xN^03x8AffP;@gpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qffffdN^04x8AffP;@ gpff !@͟ff#"ffܬi#Yff |$"ff:L%Qffi;&R+ff'"qffff׎!%L͹}2xN^05x8AffP;@(gpff )@͟ff#*ffܬi+Yff |,"ff:L-Qffi;.R+ff/"qffffdN^06x8AffP;@0gpff 1@͟ff#2ffܬi3Yff |4"ff:L5Qffi;6R+ff7"qffff׎!%L͹}3xN^07x8AffP;@8gpff 9@͟ff#:ffܬi;Yff |<"ff:L=Qffi;>R+ff?"qffffdN^10x8AffP;@@gpff A@͟ff#BffܬiCYff |D"ff:LEQffi;FR+ffG"qffff׎!%L͹}4xN^11x8AffP;@Hgpff I@͟ff#JffܬiKYff |L"ff:LMQffi;NR+ffO"qffffdN^12x8AffP;@Pgpff Q@͟ff#RffܬiSYff |T"ff:LUQffi;VR+ffW"qffff׎!%L͹}5xN^13x8AffP;@Xgpff Y@͟ff#Zffܬi[Yff |\"ff:L]Qffi;^R+ff_"qffffdN^14x8AffP;@`gpff a@͟ff#bffܬicYff |d"ff:LeQffi;fR+ffg"qffff׎!%L͹}6xN^15x8AffP;@hgpff i@͟ff#jffܬikYff |l"ff:LmQffi;nR+ffo"qffffdN^16x8AffP;@pgpff q@͟ff#rffܬisYff |t"ff:LuQffi;vR+ffw"qffff׎!%L͹}7xN^17x8AffP;@xgpff y@͟ff#zffܬi{Yff ||"ff:L}Qffi;~R+ff"qffffd 8AffJ}8gpffyo;}9@͟ff?}Affǹ}BYff }C"ff4S}DQffc}ER+ffP߹}F"qff"WFiguref5.8:Feon!ttableforxyeuat10.u24%version3.7ofXy-pic. 25%26font_identifier"XYEUAT";font_size10pt#;27mode_setup;P29inputxyeuler30inputxyatip32%$Log:xyeuat10.mf,v$33%Revision3.7 T1999/02/1615:12:50krisrose34%Interimrelease(Y&Yfontsnowfree).35%36%Revision3.3 T1996/12/1904:12:13krisrose37%Newforthismaintenancerelease.38%39%Basedonxycmat10.mf,v3.01995/07/0720:14:21krisExpg5.4.4 xyeubt10p1%$Id:xyeubt10.mf,v3.71999/02/1615:12:50krisroseExp$2%3%XYEUBT10:lowerarrowtipsforXy-picat10point"Eulerstyle".4%Copyright(c)1994-1996 TKristofferH.Rose5%6%ThisfileispartoftheXy-picmacropackage.7%8%TheXy-picmacropackageisfreesoftware;youcanredistributeitand/or"0*tj5.4.COPTIONALfF!ONTST543??`ɑ,Zff.Q3^0Jff]!y^1yff^2,ff^3mrffK^4=ffb^55 ffG2׹^6cDffv^7fffffd N^00x8AffP;A5D xyeubt10Agpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qfffff׎!%L͹}0xN^01x8AffP;Agpff @͟ff# ffܬi Yff | "ff:L Qffi;R+ff"qffffdN^02x8AffP;Agpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qffff׎!%L͹}1xN^03x8AffP;Agpff @͟ff#ffܬiYff |"ff:LQffi;R+ff"qffffdN^04x8AffP;A gpff !@͟ff#"ffܬi#Yff |$"ff:L%Qffi;&R+ff'"qffff׎!%L͹}2xN^05x8AffP;A(gpff )@͟ff#*ffܬi+Yff |,"ff:L-Qffi;.R+ff/"qffffdN^06x8AffP;A0gpff 1@͟ff#2ffܬi3Yff |4"ff:L5Qffi;6R+ff7"qffff׎!%L͹}3xN^07x8AffP;A8gpff 9@͟ff#:ffܬi;Yff |<"ff:L=Qffi;>R+ff?"qffffdN^10x8AffP;A@gpff A@͟ff#BffܬiCYff |D"ff:LEQffi;FR+ffG"qffff׎!%L͹}4xN^11x8AffP;AHgpff I@͟ff#JffܬiKYff |L"ff:LMQffi;NR+ffO"qffffdN^12x8AffP;APgpff Q@͟ff#RffܬiSYff |T"ff:LUQffi;VR+ffW"qffff׎!%L͹}5xN^13x8AffP;AXgpff Y@͟ff#Zffܬi[Yff |\"ff:L]Qffi;^R+ff_"qffffdN^14x8AffP;A`gpff a@͟ff#bffܬicYff |d"ff:LeQffi;fR+ffg"qffff׎!%L͹}6xN^15x8AffP;Ahgpff i@͟ff#jffܬikYff |l"ff:LmQffi;nR+ffo"qffffdN^16x8AffP;Apgpff q@͟ff#rffܬisYff |t"ff:LuQffi;vR+ffw"qffff׎!%L͹}7xN^17x8AffP;Axgpff y@͟ff#zffܬi{Yff ||"ff:L}Qffi;~R+ff"qffffd 8AffJ}8gpffyo;}9@͟ff?}Affǹ}BYff }C"ff4S}DQffc}ER+ffP߹}F"qff"WFiguref5.9:Feon!ttableforxyeubt10.)9%modifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedby 10%theFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour11%option)anylaterversion.12%13%TheXy-picmacropackageisdistributedinthehopethatitwillbe14%useful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof15%MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneral16%PublicLicenseformoredetails.17%18%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong19%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,20%Inc.,675MassAve,Cambridge,MA02139,USA.21%22%Asaspecialexception,youmayusethisfontfileandallfilesderived23%fromitwithoutrestriction. TThisspecialexceptionwasaddedwith24%version3.7ofXy-pic.25%26font_identifier"XYEUBT";font_size10pt#;27mode_setup;P29inputxyeuler30inputxybtip32%$Log:xyeubt10.mf,v$33%Revision3.7 T1999/02/1615:12:50krisrose34%Interimrelease(Y&Yfontsnowfree). "K*tj544(CHAPTERf5.CSTeAND!ARDFONTS??hw35% 36%Revision3.3 T1996/12/1904:12:13krisrose37%Newforthismaintenancerelease.38%39%Basedonxycmbt10.mf,v3.01995/07/0720:14:21krisExp!"gɠ*tj??ʍAppendix A3 SAnsw8ers T{toallexercises6퍑Answterէtoexercise1.1(p.22): 5InUthedefaultsetuptheyarealldenotethereferencepMoin!tofthe sXY#-picturebutthecartesiancoMordinatehposi(0,0)denotesthepoin!torigothatmaybMechangedtosomethingfelseusingthe: vopMerator.#[ǍAnswter2toexercise1.2(p.28): 5UsefthehpMosiition< fX,Yn>+"ob"$.AnswterNtoexercise1.3(p.29): 5It rstsetscaccordingto\.3..".&Thenitc!hangesctothepMoint righ!tfofcatthesamedistancefromtherightedgeofcasitswidth,wKn,i.e.,(}ps: SDict begin xyc end5Thef.3..|31 {ޟz31 }|+wQW$*۽|31 {@雟z31 }{}*+!DR{A},K(7,10)="B"*\cir<1pt>{}*+!DR{B},K(13,8)="C"*\cir<1pt>{}*+!DL{C},K(15,4)="D"*\cir<1pt>{}*+!DL{D},K%K%gotointersectionandname+circleit:K{"A";"B":"C";"D",x}="I"*\cir<3pt>{},K%K%makedottedlines:K"I";"A"**{}+/1pc/;-/1pc/**@{..},K"I";"D"**{}+/1pc/;-/1pc/**@{..}K%\endxypۍAf?!%.3..yhplaceifcouldalsoha!vefbMeenused.#[ǍAnswter2toexercise1.5(p.40): 5Teofcop!ythepvdDaluetoc,i.e.,equivalen!tto\p".LW.545""i>*tj546xAPPENDIXfA.LANSWERSTOALLEXER!CISES??hwAnswter^toexercise1.6(p.40): 5Whenusingthek!ernelconnectionsthatareallstraightthereisno di erence,e.g.,**{}?<)zandz **{}+E)rdenotez exactlythesamepMosition.Ho!wever,forz otherconnectionsit isnotnecessarilythecasethatthepMoin!twheretheconnectionentersthecurrentobject,"denotedb!yf?<%,fandthepMointwherethestraightlinefrompenterstheobject,denotedby+E%,coincide.pÍAnswter2toexercise1.7(p.40): 5ThefcoMdet!ypesetsthepicture"C pps: SDict begin xyc end%򍍍!StBo!xh0*2" {0.0 42.67914 -14.22638 -42.67912 14.22636 ov}xy.=g3232$3232=323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232=3232yΟ&3232323232323232323232323232323232323232323232323232U[&323232323232323232323232323232323232323232323232323232g3232$3232=323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232=3232=G,$AnswterPtoexercise1.8(p.41): 5ThisdoMesthejob,nsa!vingeachpMointtomakethepreviouspMointa!vdDailablefforthenextpiece:P\xyK@={(0,-10),(10,3),(20,-5)},Ks0="prev"@@{;"prev";**@{-}="prev"}\endxygNoticeho!wweclosethelineby rstsavings05,thelastpMointvisited,suchthatthe rstpMointwillbMeconnectedftoit.Answter2toexercise1.9(p.44): 5ThefauthorusedP\xy={.{+DL(2)}.{+UR(2)}}"dbl",K*+<3pc,2pc>{+}*\frm{.},"dbl"*\frm{--}\endxygtoft!ypMesetthe gureintheexercise.Answtertoexercise1.10(p.51): 5The rstt!ypMesets\a"centeredaround0 ̹andthenmovesctothe}lo!werrightcorner,thesecondtypMesets\a"abo!vethe0 pMointanddoMesnotchangec.NWitha\+"atf0 vtheyfloMoklik!ethis:C3ps: SDict begin xyc end+]D[waandwps: SDict begin xyc end+a G.Answter2toexercise1.11(p.52): 5Theyfha!vetheoutlines<s$ps: SDict begin xyc endh,Ph0-" {0.0 7.9167 -7.50009 -7.91669 7.50009 ov}xy$+;and-ps: SDict begin xyc endh,Ph0B#," {0.0 2.6389 -2.50003 -2.6389 2.50003 ov}xy$+bMecausejthe rstisenlargedb!ythepositiv!eo settotheupperrigh!tcornerandthesecondbythe negativ!efo settothelowerleftcorner.AnswteriUtoexercise1.12(p.64): 5The rsthasnoe ectsincethedirectionissettobMethatofav!ectorfinthecurrentdirection,however,thesecondreversesthecurrentdirection.Answter2toexercise1.13(p.64): 5NonefinbMothcases.Answter2toexercise1.14(p.79): 5Onefw!ayisP$$\xyK*{+};p+(6,3)*{+}**{}?(1)K*@{-}*!/-5pt/^\dir{-}K*^\dir{-}*!/^-5pt/\dir{-}\endxy$$#"q4*tjѯ547??hwTh!usm>we rstcreatethetwo+saspandcandconnectthemwiththedummyconnection**{}$to setupthedirectionparameters.NThenw!emove`ontopofc'with?(1)andpMositionthefoursidesofthe squareusing^and_forloMcaldirectionc!hangesand/ dhdimeni/for skewingtheresultingobjectb!yfmovingitsreferencepMointintheoppMositedirection.1Answterrtoexercise1.15(p.88): 5Onew!ayistoaddextrahalfcirclesskewedsuchthattheycreatethefillusionofashade:P$$\xyK*\cir<5pt>{}K*!<-.2pt,.2pt>\cir<5pt>{dr^ul}K*!<-.4pt,.4pt>\cir<5pt>{dr^ul}K*!<-.6pt,.6pt>\cir<5pt>{dr^ul}\endxy$$$Answter2toexercise2.1(p.121): 5ThisfisthecoMdethatw!asactuallyused:\xy(0,20)*[o]+{A};(60,0)*[o]+{B}="B"**\crv{}\POS?(.4)*_+!UR{0},"B"**\crv{(30,30)}\POS?*^+!D{1},"B"**\crv{(20,40)&(40,40)}\POS?*^+!D{2},"B"**\crv{(10,20)&(30,20)&(50,-20)&(60,-10)}\POS?*+^!UR{4}\endxy$Answter2toexercise2.2(p.121): 5ThisfisthecoMdethatw!asusedtotypMesetthepicture:\xy(0,20)*+{A};(60,0)*+{B}**\crv{(10,20)&(30,20)&(50,-20)&(60,-10)}K?<*\dir{<}?>*\dir{>}K?(.65)*{\oplus}*!LD!/^-5pt/{x}K?(.65)/12pt/*{\oplus}*!LD!/^-5pt/{x'}K?(.28)*=0{\otimes}-/40pt/*+{Q}="q"K+/100pt/*+{P};"q"**\dir{-}\endxy$Answter2toexercise2.3(p.122): 5HerefisthecoMdethatw!asusedtotypMesetthepicture:\def\ssz#1{\hbox{$_{^{#1}}$}}\xy(0,0)*+{A};(30,-10)*+{B}="B",**\dir{-},"B"**\crv{(5,20)&(20,25)&(35,20)}K?<(0)*\dir{<}="a"?>(1)*\dir{>}="h"K?(.1)*\dir{<}="b"?(.9)*\dir{>}="i"K?(.2)*\dir{<}="c"?(.8)*\dir{>}="j"K?(.3)*\dir{<}="d"?(.7)*\dir{>}="k"K?(.4)*\dir{<}="e"?(.6)*\dir{>}="l"K?(.5)*\dir{|}="f",K"a"*!RC\txt{\ssz{(\lt)}}; m"h"*!LC\txt{\ssz{\;(\gt)}},**\dir{.},K"b"*!RD{\ssz{.1}}; m"i"*!L{\ssz{\;.9}},**\dir{-},$"@*tj548xAPPENDIXfA.LANSWERSTOALLEXER!CISES??hwK"c"*!RD{\ssz{.2}}; m"j"*!L{\ssz{\;.8}},**\dir{-},K"d"*!RD{\ssz{.3}}; m"k"*!L{\ssz{\;.7}},**\dir{-},K"e"*!RD{\ssz{.4}}; m"l"*!LD{\ssz{.6}},**\dir{-},K"f"*!D!/^-3pt/{\ssz{.5}}\endxy"?Answter2toexercise2.4(p.200): 5Herefisho!w:P\xyK(0,0) T*++={A}*\frm{o};K(10,7)*++={B}*\frm{o}**\frm{.}\endxyAnswter^toexercise2.5(p.203): 5Then*\cir{}2.opMerationnc!hangesctoberoundwhereas*\frm{o}doMesfnotc!hangecatall.Answter2toexercise2.6(p.206): 5Herefisho!w:P\xyK(0,0) T*+++{A};K(10,7)*+++{B}**\frm{.}K**\frm{^\}};**\frm{_\}}\endxyk퍑Thestric!kinthelastlineistoensurethatthereferencepMointofthemergedobjecttobMebracedisthefrigh!toneineachcase.Answter2toexercise2.7(p.233): 5Thisfisho!wtheauthorspMeci edthediagram:P\UseCrayolaColors\xy\drop[*1.25]\xybox{\POS(0,0)*{A};(100,40)*{B}**{}K?<<*[@_][red][o]=<5pt>{\heartsuit};K?>>>*[@_][Plum][o]=<3pt>{\clubsuit}K**[|*][|.5pt][thicker]\dir{-},?(.1)*[left]!RD\txt{label1}*[red]\frm{.}?(.2)*[!gsavenewpath mxyXposxyYposmoveto50duprlineto m20setlinewidth001setrgbcolorstroke mgrestore][psxy]{.},?(.2)*[@]\txt{label2}*[red]\frm{.},?(.2)*[BurntOrange]{*},?(.3)*[halfsize]\txt{label3}*[red]\frm{.}?(.375)*[flip]\txt{label4}*[red]\frm{.}?(.5)*[dblsize]\txt{label5}*[red]\frm{.}?(.5)*[WildStrawberry]{*},?(.7)*[hflip]\txt{label6}*[red]\frm{.}?(.8)*[vflip]\txt{label7}*[red]\frm{.}%"~*tjѯ549??hw?(.9)*[right]!LD\txt{label8}*[red]\frm{.} ?(.5)*[@][*.66667]!/^30pt/K\txt{specialeffect:alignedtext}K*[red]\frm{.}}\endxy#wAnswter2toexercise3.1(p.305): 5Herefiswhattheauthordid:P\xy*+{A}*\cir<10pt>{}="me"K\PATH`ul^ur,"me""me"|>*:(1,-.25)\dir{>}\endxyTheftric!kisgettingthearrowheadright:the: vmoMdi ertotheexplicit\dirhobjectidoesthat.Answter2toexercise3.2(p.306): 5Thefauthordid\xy(0,0)K\ar@{-->}(30,7)^A="a"K\POS(10,12)*+\txt{label}\ar"a"\endxy#wAnswter2toexercise3.3(p.312): 5Herefistheen!tireXY p-pictureoftheexercise:\xy;<1pc,0pc>:K\POS(0,0)*+{A}K\ar+(-2,3)*+{A'}*\cir{}K\ar@2+(0,3)*+{A''}*\cir{}K\ar@3+(2,3)*+{A'''}*\cir{}K\POS(6,0)*+{B}K\ar@1{||.>>}+(-2,3)*+{B'}*\cir{}K\ar@2{||.>>}+(0,3)*+{B''}*\cir{}K\ar@3{||.>>}+(2,3)*+{B'''}*\cir{}\endxyThef rstbatc!husethedefault{->}KtspMeci cation.Answter2toexercise3.4(p.312): 5Thefauthorused\newdir{>}{{}*!/-5pt/\dir{>}}#wAnswter2toexercise3.5(p.313): 5Thefauthorused\xyK\ar@{>>*\composite{\dir{x}*\dir{+}}<<}K(20,7)\endxy#wAnswter2toexercise3.6(p.314): 5Thefauthorused\xy*{\circ}="b"\ar@(ur,ul)cK\ar@{.>}@(dr,ul)(20,0)*{\bullet}\endxy&"{*tj550xAPPENDIXfA.LANSWERSTOALLEXER!CISES??hwNotefthatitisessen!tialthatthecurvingspMeci cationcomesafterthearrowstyle.Answter8Ytoexercise3.7(p.325): 5HereisthecoMdeusedtot!ypesettheppasting"diagramԹin gure3.3.P\xymatrixrowsep{1.5pc} \xymatrixcolsep{3pc}\diagramK&&\relax\rtwocell<0>^{f_3^{}\;\;}{\omit}K&\relax\ddtwocell<0>{\omit} m\drtwocell<0>^{\;\;f_4^{}}{<3>} m\ddrrtwocell<\omit>{<8>}\\&&&&\relax\drtwocell<0>^{\;\;f_5^{}}{\omit}\\A\uurrlowertwocell<-6>{\omit}\relax\uurrcompositemap<2>_{f_1^{}}^{f_2^{}}{<.5>}K\drtwocell<0>_{g_1^{}\;}{\omit}K&&&\relax\urtwocell<0>{\omit}K&&\relax\rtwocell<0>^{f_6^{}\;}{\omit}K&\relax\rlowertwocell<-3>_{g_4^{}}{<-1>}K\rcompositemap<6>_{f_7^{}}^{f_8^{}}{\omit}K&B\\K&\relax\urrtwocell<0>{\omit}K\xcompositemap[-1,4]{}% m<-4.5>_{g_2^{}}^{g_3^{}}{\omit}\\\enddiagramb2Feordthestraigh!tarrows,ditwouldhavebMeensimplertouse\..to$+providedxyarrow/nhasbMeenloaded.Insteadp\..twocell<0>...{\omit}йw!aspusedtoillustratetheversatilityofnudgingand\omit%Tl;thusxy2cellcanUcompletelyhandleawiderangeofdiagrams,Pwithoutrequiringxyarrow,.yNotealsotheuse of\relax0Yatthestartofeac!hnewcell,'toavoidprematureexpansionofacomplicatedmacro,whic!hfcanupsetthecompilingmechanism.Answter2toexercise3.8(p.329): 5HerefisthecoMdeusedb!ytheauthortosetthe rstdiagram.P{\uppercurveobject{{?}}K\lowercurveobject{{\circ}}\xymatrixcolsep{5pc}\xymatrixrowsep{2pc}\diagramK\relax\txt{FUn}\rtwocell<8>{!\&}K&\relax\txt{gaMES}K\enddiagram}]HerefisthecoMdeusedfortheseconddiagram.\xymatrixcolsep{2.5pc}\xymatrixrowsep{4pc}\diagramK\relax\txt<1.5cm>{\bfGroundState}K\rrtwocell<12>~^{+{}~**!/-2.5pt/\dir{>}}K~_{++{}~**!/5pt/\dir{<<}}K^{<1.5>\txt{\smallcontinuouspower}}K_{<1.5>\txt{\smallpulsedemission}}{!}'"l*tjѯ551??hw&\relax\;\;N\!i\,C\!d\;\;\Circled &\relax\txt<1.50cm>{\bfExcitedState}\enddiagram#QdAnswter2toexercise3.9(p.357): 5ThefauthordidP\xymatrix@!=1pc{K**[l]A\timesBJk\ar[r]^{/A}\ar[d]_{/B}K&B\ar[d]^{\timesA}\\KA>\ar[r]_{B\times}K&**[r]B\timesA}Answtertoexercise3.10(p.357): 5MoMdi ersEareusedtomak!eallentriesroundwithaframe{the׸generalformisusedtoensurethatthesequenceisw!ell-de ned.qFinallythematrixisrotatedtomak!efitpMossibletoenteritasasimplesquare:P\entrymodifiers={=<1pc>[o][F-]}\xymatrix@ur{KA\save[];[r]**\dir{-},i[];[dr]**\dir{-},i[];[d]**\dir{-}\restore&B\\KC&D}Answter2toexercise3.11(p.359): 5Herefisho!w:P\xymatrix@W=3pc@H=1pc@R=0pc@*[F-]{%K:\save+<-4pc,1pc>*\hbox{\itroot}Jk\ar[]\restore\\K{\bullet}\save*{}\ar`r[dd]+/r4pc/`[dd][dd]\restore\\K{\bullet}\save*{}\ar`r[d]+/r3pc/`[d]+/d2pc/`[uu]+/l3pc/`[uu][uu]\restore\\K1}Answter2toexercise3.12(p.365): 5Thef rstAw!asnamedtoallowreferencefromthelast:P\xygraph{("*tj552xAPPENDIXfA.LANSWERSTOALLEXER!CISES??hwK[]A="A1":@/^/[r]A :@/^/[r]A:@/^/"A1"}! Answter2toexercise3.13(p.368): 5ThefauthordidP\SelectTips{cm}{}\objectmargin={1pt}\xygraph{!{0;(.77,-.77):0}K!~:{@{-}|@{>}}Kw(:[r(.6)]{x_1},:[d]z:[r]y:[u(.6)]{x_2}:"x_1":"z":@({"w";"z"},{"y";"z"})"z":"x_2")}It'alsosho!wsthatonecpanr2use{}{sinsidedelimitedargumentsprpovidedѹone'addsaspacetoavoidthef{}%sfbMeingsha!vedfo !Answtertoexercise3.14(p.371): 5Here$isthecoMdeactuallyusedtot!ypesetthe\xypolygonCa"s,within;Qan\xygraph7K.Itillustratesthreedi eren!twaystoplacethenumbMers.OtherwaysarealsopMossible.\def\objectstyle{\scriptscriptstyle}\xy\xygraph{!{/r2pc/:}[]!P3"A"{\bullet}"A1"!{+U*++!D{1}}"A2"!{+LD*+!RU{2}}"A3"!{+RD*+!LU{3}}"A0"[rrr]*{0}*\cir<5pt>{}!P6"B"{~<-\cir<5pt>{}}"B1"1"B2"2"B3"3"B4"4"B5"5"B6"6"B0"[rrr]0!P9"C"{~*{\xypolynode}}}\endxy)"A*tj??-Appendix B2rBac8kwards T{Compatibility6 PBac!kwardsfcompatibilitywithXY p-picversion2isensuredbythe`v2'optionanditssuppMort les.%ȍB.1 'Vfersionff2CompatibilityPjV ers.p3.4Tb9yKristo erH.Rosehkrisrose@brics.dkiލThissectiondescribMesthespecialbac!kwardscompatibilitywithwFXY-picversion2:Hdiagramswritten accordingtothe\T!ypMesettingdiagramswithXY:-pic:8User'sManual"[13 4]shouldtypMesetcorrectlywiththisloaded.5Thecompatibilit!yisavdDailableeitherasanXY-optionorthroughthespMecial lesxypic.styyandfxypic.tex; ƹdescribMedfbelo!w. PThere^areafewexceptionstothecompatibilit!y:M>thefeaturesdescribMedinxB.1.1belo!warenotpro!vided)bMecausetheyarenotasusefulastheauthororiginallythoughtandthusvirtuallyneverused.And4Poneextracommandispro!videdtospMeeduptypMesettingofdocumen!tswithXY Z-picversion2diagramsfb!yallowingthenewcompilationfunctionalitywitholddiagrams.Theremainingsectionslistalltheobsoletecommandsandsuggestw!aystoac!hievethesamethingsusing+XY -pic3.7,i.e.,withouttheuseofthisoption.XYȞ-picin1991and1992,_i.e.,version1.40gandv!ersions2.1through2.6.ThepublishedmanualcitedabMove(forversion2.6)isthereferencein.caseofvdDariationsbMet!ween.thesev!ersions,andonlythingsdocumen!tedinthatmanualwillbMesuppMortedfb!ythisoption!1{Header:P1%%$Id:xyv2.doc,v3.41997/05/1801:14:25krisroseExp$2%%3%%Xy-pic``Version2compatibility''feature.4%%Copyright(c)1993-1995 TKristofferH.Rose5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1995 TKristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe .ffy̟ L͍ {-=1aInTadditionafewoftheexpAerimen9talfacilitiessupportedinv2.7{2.12arealsosupported.LW.553*"*tj554fAPPENDIXfB.LBA!CKWȈARDSCOMPeATIBILITY??hw12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour 13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%24\ifx\xyloaded\undefined\inputxy\fiP26\xyprovide{v2}{Version2Compatibility}{\stripRCS$Revision:3.4$}%27K{KristofferH.~Rose}{krisrose@brics.dk}%28K{BRICS/ComputerScience,UniversityofAarhus,NyMunkegade,building540,29 mDK--8000Aarhus~C}!dBeforefw!estart,theoldnamemacro.67\xylet@\XY=\Xy& !B.1.1Unsupp`ortedincompatibilities`Herefisalistofkno!wnincompatibilitieswithversion2evenwhenthev2 optionisloaded.f؍AutomaticZ`shortening'ofarro!wtailsusing|<x),pMossiblywithatrailing+/^:1::%R)/+ӹ,sucesinstead.Using^tz0; tz1:(?Xx,yd) asthetargetofanarro!wcommanddoMesnotwork.҅Encloseitinbraces,,i.e.,writeK{,&tz05;&tz15:(x,yd)}sύThe.older\pit,_\apit,and.\bpitcommandsarenotde ned.L4Use\dir{>}1(or\tipֹ)withvdDarian!tsfandrotation.The`ev!enoldernotationwhereanargumentinbracesto\rtoandtheotherswasautomaticallytak!enftobMea`tail'isnotsupported.Usethesupported| f<%.3..ynotation.f׍If}y!oudonotusethesefeaturesthenyourversion2(andearlier)diagramsshouldtypMesetthesamewiththisoptionloadedexceptthatsometimesthespacingwithv!ersion3isslightlydi erentfromthatfofv!ersion2.6whichhadsomespacingbugs.+"Ѡ*tjB.1.CVERSIONf2COMPeATIBILITYaH555??hwB.1.2ObsoletekernelfeaturesmThe3follo!wingthingsareaddedtothekernelbythisoptionanddescribMedhere:widioms,`obsolete pMositions,Pobsolete.zconnections,andobsoleteobjects.vFeoreac!hweshowthesuggestedwayofdoingthefsamethingwithoutthisoption:# $Remotved2A,[wM S-T期nEXidiomsSomeidiomsfromA,[wM S-T,[wEB Xarenolongerusedb!yXXY-pic:lthede nitioncommands\defineand\redefine,Pand;Vthesizecommands\dsize,\tsize,\ssize,and\sssize.-Pleaseusethecommandsrecommendedgfory!ourformat|forplainT,[wEB Xtheseare\defforthe rsttwoand\displaystyleO#@,\textstyle,h\scriptstyleH`,hand\scriptscriptstylenĹfortherest.Thev2$optionensuresthattheyarefa!vdDailableanywaye.P140\ifx\redefine\undefined\let\redefine=\def\fi141\ifx\define\undefined\let\define=\xydef@\fi143\ifx\dsize\undefined\let\dsize=\displaystyle\fi144\ifx\tsize\undefined\let\dsize=\textstyle\fi145\ifx\ssize\undefined\let\ssize=\scriptstyle\fi146\ifx\sssize\undefined\let\sssize=\scriptscriptstyle\fibVeersion(also2usedtheA,[wM S-T,[wEB X\textanda(non-object)bMo!xconstruction\Textwhichareem!ulated|\text jisonlyde nedifnotalreadyde ned,however,usingthenativeone(ofA,[wM S-T,[wEB XorA,[wM S-LAGT,[wEB Xorwhatev!er)ifpMossible..Pleaseusethe\txt,0objectconstructiondescribedinx1.6.3directlyfsinceitismoregeneralandm!uchfmoreecien!t!157\ifx\text\undefined158K\def\text{\relax\textC}%159K\xydef@\textC#1{\relax160 m\ifmmode\mathchoice161 {\hbox{\the\textfont0\relax#1}}%162 {\hbox{\the\textfont0\relax#1}}%163 {\hbox{\the\scriptfont0\relax#1}}%164 {\hbox{\the\scriptscriptfont0\relax#1}}%165 m\else{\relax#1}\fi}166\fi168\xydef@\Text{\relax\xyFN@\Text@}170\xydef@\TextC{\relax\textC}%172\xydef@\Text@{%173K\addLT@\ifx\next\addGT@{\addLT@\DN@##1}{\A@=##1\Text@i}%174K\else\DN@{\A@=\maxdimen\Text@i}\fi\next@}176\xydef@\Text@i#1{%177K\ifmmode\mathchoice178{\expandafter\Text@ii\the\textfont0{#1}}%179{\expandafter\Text@ii\the\textfont0{#1}}%180{\expandafter\Text@ii\the\scriptfont0{#1}}%181{\expandafter\Text@ii\the\scriptscriptfont0{#1}}%182K\else183\leavevmode\expandafter\Text@ii\the\textfont0{#1}%184K\fi\ignorespaces},"*tj556fAPPENDIXfB.LBA!CKWȈARDSCOMPeATIBILITY??hw186\xydef@\Text@ii{\hbox\bgroup\txt@i}!Obsolete2stateUptofv!ersion2.6userscouldaccessthestatevdDariables\cL,\cR,\cH,and\cD,whicharede ned.P197\xylet@\cL=\L@c 198\xylet@\cR=\R@c199\xylet@\cD=\D@c200\xylet@\cH=\U@cFeromv2.7to2.12userscouldusethenamesofthestate\dimen*®isters\Xmin,:\Xmax,\Ymin,and\Ymax;@\Xp,\Yp\Dp,\Up,\Lp,and\Rp;@\Xc,\Yc\Dc,\Uc,\Lc,and\Rc;@\Xorigin,\Yorigin,\Xxbase,\Yxbase,\Xybase,and\\Yybase.^No!wthesamee ectcanbMeachievedusinghcornerisbutv2ӹde nesfthealiases.212\xylet@\Xc=\X@c213\xylet@\Yc=\Y@c214\xylet@\Uc=\U@c215\xylet@\Dc=\D@c216\xylet@\Lc=\L@c217\xylet@\Rc=\R@c219\xylet@\Xp=\X@p220\xylet@\Yp=\Y@p221\xylet@\Up=\U@p222\xylet@\Dp=\D@p223\xylet@\Lp=\L@p224\xylet@\Rp=\R@p226\xylet@\dX=\d@X227\xylet@\dY=\d@Y229\xylet@\Xorigin=\X@origin230\xylet@\Yorigin=\Y@origin231\xylet@\Xxbase=\X@xbase232\xylet@\Yxbase=\Y@xbase233\xylet@\Xybase=\X@ybase234\xylet@\Yybase=\Y@ybase236\xylet@\Xmin=\X@min237\xylet@\Ymin=\Y@min238\xylet@\Xmax=\X@max239\xylet@\Ymax=\Y@max!Obsolete2pYositionmanipulationInv!ersion2manythingsweredoneusingindividualhdecoricontrolsequencesthatarenowdoneusinghpMosifoperators. ffd n׍CcVeersionf2pMositioningReplacemen!tdffdCc\gohpMosi\POS;p,QvhpMosi Cc\aftergo{hdecori}hpMosi\afterPOS{Ðthdecori};p,hpMosi-"*tjB.1.CVERSIONf2COMPeATIBILITYaH557??hw'Q|\merge\POS.p\relax 'Q|\swap\POS;\relax'Q|\Drop{htexti}\drop+{ݏhtexti} ffdnThefcoMdeisbasicallythatofxy.doc)ȹ2.6.3..P265\xydef@\go{\aftergo{}}266\xydef@\aftergo#1{\xy@\aftergo{\enter@\pfromthec@}\afterPOS{\xy@@\leave@#1}}268\xydef@\merge{\POS.p\relax}270\xydef@\swap{\xy@\swap\swap@}272\xydef@\Drop{\expandafter\drop\entrymodifiers@}4!Obsolete2connections{ӍThesefconnectionsareno!wimplementedusingdirectionals.ffd!B Veersionf2connection)Replacemen!t ffdB \none)\connecth\dir{} B \solid)\connecth\dir{-}B \Solid)\connecth\dir2{-}B \Ssolid)\connecth\dir3{-}B \dashed)\connecth\dir{--}B \Dashed)\connecth\dir2{--}B \Ddashed)\connecth\dir3{--}B \dotted)\connecth\dir{.}B \Dotted)\connecth\dir2{.}B \Ddotted)\connecth\dir3{.}B \dottedwith{htexti})\connecth{whtexti}ffdNNoteho!wthe`hidden'spMeci erh ]"shouldbeusedbecausev!ersion2connectionsdidnota ectthesizeoffdiagrams.P300\xydef@\none{\xy@\none{}\ignorespaces}302\xydef@\solid{\connecth\dir{-}} 303\xydef@\Solid{\connecth\dir2{-}}304\xydef@\Ssolid{\connecth\dir3{-}}P306\xydef@\dashed{\connecth\dir{--}}307\xydef@\Dashed{\connecth\dir2{--}}308\xydef@\Ddashed{\connecth\dir3{--}}310\xydef@\dotted{\connecth\dir{.}}311\xydef@\Dotted{\connecth\dir2{.}}312\xydef@\Ddotted{\connecth\dir3{.}}314\xydef@\dottedwith#1{\connecth{#1}}."E*tj558fAPPENDIXfB.LBA!CKWȈARDSCOMPeATIBILITY??hwObsolete2tipsThesefobjectsallha!vef\dir-namesfnow: ]ffd (ύWkVeersionf2tipmReplacemen!tffdWk\notipm\dir{} Wk\stopm\dir{+|}Wk\astopm\dir^{|«D}Wk\bstopm\dir_{|«D}Wk\tipm\dir{>}Wk\atipm\dir^{>}Wk\btipm\dir_{>}Wk\Tipm\dir2{>}Wk\aTipm\object=<5pt>:(32,-1)\dir^{>}Wk\bTipm\object=<5pt>:(32,+1)\dir_{>}Wk\Ttipm\dir3{>}Wk\ahookm\dir^{(}Wk\bhookm\dir_{(}Wk\aturnm\dir^{'}Wk\bturnm\dir_{'}ffd2P346\xydef@\notip{\dir{}}348\xydef@\stop{\dir{|}} 349\xydef@\astop{\dir^{|}}350\xydef@\bstop{\dir_{|}}P352\xydef@\tip{\dir{>}}353\xydef@\atip{\dir^{>}}354\xydef@\btip{\dir_{>}}356\xydef@\Tip{\dir2{>}}358\xywarnifdefined\aTip359\xywarnifdefined\bTip360{\xyuncatcodes361\gdef\aTip{\object=<5pt>:(32,-1)\dir^{>}}362\gdef\bTip{\object=<5pt>:(32,+1)\dir_{>}}}364\xydef@\Ttip{\dir3{>}}366\xydef@\ahook{\dir^{(}}367\xydef@\bhook{\dir_{(}}369\xydef@\aturn{\dir^{'}}370\xydef@\bturn{\dir_{'}}Thefoldercommands\pit,\apit d,and\bpit,arenotpro!vided.Obsolete2objectconstructionsTheffollo!wingobjectconstructionmacrosaremadeobsoletebytheenrichedhobjectiformat: dffd (ύDBVeersionf2object,Replacemen!tffdDB\rotate(hfactori)htipi/"Π*tjB.1.CVERSIONf2COMPeATIBILITYaH559??hwm#E\object:(?hfactori,hfactori){ Thtipi} '\hole#E\object+{}'\squashhtipi#E\object=0{ʟhtipi}'\growhtipi#E\object+{?htipi}'\growhtipi#E\object+<?hdimeni>{ Thtipi}'\squarify{htexti}#E\object+={ʟhtexti}'\squarify{ Thtexti}m#E\object+=<hdimeni>{ Thtexti}?ffdWzwhererotationisdoneinasligh!tlydi erentmannerinversion3.7(itwasneveraccurateinversion2). ThesefaremostlyjusttheunmoMdi edv!ersion2.6code:P405\xydef@\rotate{\hbox\bgroup406\DN@{\ifx(\next%)407#>\DN@(####1){\rotate@ii{####1}}%408T\else\DN@{\rotate@i}\fi\next@}\xyFN@\next@}410\xydef@\rotate@i#1{\reverseDirection@#1\OBJECT@x}412\xydef@\rotate@ii#1#2{\dimen@=#1\p@413\ifdimR\dimen@=-\p@\aboveDirection@\xydashl@414\else\ifdim\dimen@=\p@\belowDirection@\xydashl@415\else\ifdim\dimen@<-1.5\p@\advance\dimen@-2\p@416T\edef\next@{\expandafter\removePT@\the\dimen@}\vDirection@(-1,\next@){1pc}%417\else\ifdim\dimen@<-.5\p@\vDirection@(#1,-1){1pc}%418\else\ifdim\dimen@<.5\p@\vDirection@(1,#1){1pc}%419\else\ifdim\dimen@<1.5\p@\vDirection@(#1,1){1pc}%420\else\dimen@=-\dimen@\advance\dimen@2\p@421T\edef\next@{\expandafter\removePT@\the\dimen@}\vDirection@(-1,\next@){1pc}%422\fi\fi\fi\fi\fi\fi423#2\OBJECT@x}425\xydef@\squash#1{%426\ifmmode\setboxz@h{\m@th${\mathstrut}#1{\mathstrut}$}\else\setboxz@h{#1}\fi427\setboxz@h{\kern-.5\wdz@\dimen@=.5\ht\z@\advance\dimen@-.5\dp\z@428T\lower\dimen@\boxz@}%429\wdz@=\z@\ht\z@=\z@\dp\z@=\z@\boxz@}431\xydef@\grow{%432\DN@{\ifx<\next\DN@<####1>{\dimen@=####1\grow@\empty}%433T\else\DN@{\dimen@=2\p@\grow@\empty}\fi\next@}\xyFN@\next@}435\xydef@\grow@#1#{\grow@@{#1}}436\xydef@\grow@@#1#2{\relax437\ifmmode\setboxz@h{\kern\dimen@\m@th$#2$\kern\dimen@}%438\else\setboxz@h{\kern\dimen@{#2}\kern\dimen@}\fi439\dimen@ii=\ht\z@\advance\dimen@ii\dimen@\ht\z@=\dimen@ii440\dimen@ii=\dp\z@\advance\dimen@ii\dimen@\dp\z@=\dimen@ii\boxz@}442\xydef@\squarify{\addEQ@{\addPLUS@\object}}䍑Weealsoreimplemen!ttheversion2undoMcumented\qcquartercirclewhichisnowcalled\corn@@offtheframeextension.449\xydef@\qc{\corn@@}0"*tj560fAPPENDIXfB.LBA!CKWȈARDSCOMPeATIBILITY??hwB.1.3Obsoleteextensions&featuresVeersion?2hadcomm!utative?diagramfunctionalit!ycorrespMondingtotheframes*:extensionandparts ofb]thematrix+Bandarrow% features.Thesearethereforeloadedandsomeextrade nitionsaddedtoem!ulatefcommandsthathavedisappMeared.F\ramesThev!ersion2framecommandsareemulatedusingtheframeextension(aswellasthe\dotframed=yg,\dashframed"g,f\rounddashframedcGlcommandsfcommunicatedtosomeusersb!yelectronicmail): zffd "SH2|Veersionf2objectReplacemen!tffdH2|\framed\drop\frm{-} H2|\framed\drop\frm<#Zhdimeni>{-}H2|\Framed\drop\frm{=}H2|\Framed\drop\frm<#Zhdimeni>{=}H2|\dotframed\drop\frm{.}H2|\dashframed\drop\frm{--}H2|\rounddashframed\drop\frm{o-}H2|\circled\drop\frm{o}H2|\Circled\drop\frm{oo}ffdHFeoreac!hoftheabMovecommands(andafewhiddenones)weparsetheabMoveandconverttothepropMerfformat.P489\xyrequire{frame}\xycatcodes491\xydef@\framed{\relax\convertframed{-}} 492\xydef@\Framed{\relax\convertframed{=}}494\xydef@\circled{\relax\convertframed{o}}495\xydef@\Circled{\relax\convertframed{oo}}497\xydef@\convertframed#1{\DNii@##1@{\drop\frm##1{#1}}\xyFN@\convertframed@i}499\xydef@\convertframed@i{%500\addLT@\ifx\next501T\addGT@{\addLT@\DN@##1}{\addGT@{\addLT@{\nextii@}##1}@}%502\else\DN@{\nextii@@}\fi\next@}504\xydef@\dotframed{\relax\drop\frm{.}}505\xydef@\dashframed{\relax\drop\frm{--}}506\xydef@\rounddashframed{\relax\drop\frm{o-}}508\xydef@\filled{\DN@{%509T\addLT@\ifx\next510#>\addGT@{\addLT@\DN@####1}{\xy@@{\frame@fill@@{####1}}}%511T\else\DN@{\xy@@{\frame@fill@@\z@}}%512T\fi\next@}\xyFN@\next@}514\xydef@\Filled{\DN@{%515T\addLT@\ifx\next516#>\addGT@{\addLT@\DN@####1}{\xy@@{\frame@emph@@{####1}}}%517T\else\DN@{\xy@@{\frame@emph@@\z@}}%518T\fi\next@}\xyFN@\next@}1"Ԡ*tjB.1.CVERSIONf2COMPeATIBILITYaH561??hwMatrices\̍The\diagramhro!wsi\enddiagramcommandisprovidedasanaliasfor\xymatrix{?bhrowsi} centered inmathmoMdeand\LaTeXdiagramsc!hangesittouse\begin'.3..q4\end ݹsyntax.v2setsaspMecialinternal`oldfmatrix' agsuc!hthattrailing\\ areignoredandentriesstartingwith* varesafe.P532\xyrequire{matrix}\xycatcodesv536\xydef@\diagram#1\enddiagram{\relax\diagram@\diagram@@{#1}}538\xydef@\diagram@{\relax 539K\ifmmode\DN@##1##2{\vcenter{\oldxymatrix@true\xy##1{\xymatrix{##2}}\endxy}}%540K\else\DN@##1##2{{\oldxymatrix@true\xy/u.8ex/##1{\xymatrix{##2}}\endxy}}%541K\fi\next@}P543\xydef@\LaTeXdiagrams{\def\diagram{\ltxdiagram@\diagram@@}%544K\def\diagramnocompile{\ltxdiagram@\literal@}%DeclaredinCompiling545K\def\diagramcompileto##1{\ltxdiagram@{\NoCompileMatrices\xycompileto{##1}}}}547\xydef@\ltxdiagram@#1#2\end#3{\relax548K\DN@{#3}\DNii@{diagram}\ifx\next@\nextii@\diagram@{#1}{#2}\end{diagram}%549K\else\xyerr@{Put\string{\string}around\string\begin...\string\end\space550#iwithindiagrams}\fi}552\xylet@\diagram@@=\literal@554\xydef@\NoisyDiagrams{}\NoisyDiagramsfisignoredbMecausethematrixfeaturealw!aysfoutputsprogressmessages. Finallythev!ersion2\spreaddiagramrows,\spread+diagramcolumns*spacingcommandsareem-ulatedfusing\xymatrixrowsep]¹and\xymatrixcolsepY\:565\xydef@\spreaddiagramrows#1{\addPLUS@\xymatrixrowsep{#1}}566\xydef@\spreaddiagramcolumns#1{\addPLUS@\xymatrixcolsep{#1}}#Arrotws\̍ThetSmainarro!wcommandsofversion2werethe\morphismand\definemorphismcommandswhichno!wfhavebMeenreplacedbythe\arʹcommand. v2jpro!vides_Dthemaswellasusesthemtode netheversion2commands\xto,m~\xline,\xdashed,\xdotted,(\xdouble,andallthederiv!edcommands\dto,(\urto z,(.3..;%Othe\arrow*scommandsofthe -releasesfofv3isalsopro!vided.Insteadb*ofcommandslik!e\rrto%and\uldouble{\POS?>*{#2}\relax}~<{\POS;?<*{#3};\relax}}607%\xycatcodes608%\xylet@\morphism=\next610{\xyuncatcodes2# c*tj562fAPPENDIXfB.LBA!CKWȈARDSCOMPeATIBILITY??hw611K\gdef\morPHISM#1#2#3{\PATH~={\oldconnect{#1}}~<{|<*{#3}}~>{|>*{#2}}}}P613\xydef@\morphism{\relax\morPHISM}615\xylet@\connect@iii=\connect 616\xydef@\oldconnect#1{%617K\let\PATHlabelabove@@=\PATHlabelabove@%KLUDGE!618K\let\PATHlabelbelow@@=\PATHlabelbelow@619K\let\connect=\preconnect#1\let\connect=\connect@iii}QcT\o2Do:ݹUnpac!kfthistowhat\PATH$ doMes.3.. u\definemorphismNmuisfessen!tiallyunchangedexceptwenowusetheprivdDacycheckingcommands.P628\xydef@\definemorphism#1#2#3#4{%629K\xydefcsname@{x#1}{\morphism{#2}{#3}{#4}}%630K\xydefcsname@{u#1}{\morphism{#2}{#3}{#4}[u]}%631K\xydefcsname@{d#1}{\morphism{#2}{#3}{#4}[d]}%632K\xydefcsname@{l#1}{\morphism{#2}{#3}{#4}[l]}%633K\xydefcsname@{r#1}{\morphism{#2}{#3}{#4}[r]}%634K\xydefcsname@{uu#1}{\morphism{#2}{#3}{#4}[uu]}%635K\xydefcsname@{dd#1}{\morphism{#2}{#3}{#4}[dd]}%636K\xydefcsname@{ll#1}{\morphism{#2}{#3}{#4}[ll]}%637K\xydefcsname@{rr#1}{\morphism{#2}{#3}{#4}[rr]}%638K\xydefcsname@{ur#1}{\morphism{#2}{#3}{#4}[ur]}%639K\xydefcsname@{ul#1}{\morphism{#2}{#3}{#4}[ul]}%640K\xydefcsname@{dr#1}{\morphism{#2}{#3}{#4}[dr]}%641K\xydefcsname@{dl#1}{\morphism{#2}{#3}{#4}[dl]}%642K\xydefcsname@{uul#1}{\morphism{#2}{#3}{#4}[uul]}%643K\xydefcsname@{uur#1}{\morphism{#2}{#3}{#4}[uur]}%644K\xydefcsname@{ull#1}{\morphism{#2}{#3}{#4}[ull]}%645K\xydefcsname@{urr#1}{\morphism{#2}{#3}{#4}[urr]}%646K\xydefcsname@{ddl#1}{\morphism{#2}{#3}{#4}[ddl]}%647K\xydefcsname@{ddr#1}{\morphism{#2}{#3}{#4}[ddr]}%648K\xydefcsname@{dll#1}{\morphism{#2}{#3}{#4}[dll]}%649K\xydefcsname@{drr#1}{\morphism{#2}{#3}{#4}[drr]}%650K\xydefcsname@{uull#1}{\morphism{#2}{#3}{#4}[uull]}%651K\xydefcsname@{uurr#1}{\morphism{#2}{#3}{#4}[uurr]}%652K\xydefcsname@{ddll#1}{\morphism{#2}{#3}{#4}[ddll]}%653K\xydefcsname@{ddrr#1}{\morphism{#2}{#3}{#4}[ddrr]}}655\definemorphism{to}\solid\tip\notip656\definemorphism{line}\solid\notip\notip657\definemorphism{dashed}\dashed\notip\notip658\definemorphism{dotted}\dotted\notip\notip659\definemorphism{double}\Solid\notip\notipQcT\o2Do:ݹThesefcouldbMehugelygoptimisedb!yusingthearrow$ featuredirectly.3.. uNext&Ntheprede nedbMen!tmorphismsofversion2.]Theserequiredsomehackingtowork;fBI&-hopMethisfdoMesn'tmeanthatthehpathiseman!ticshaschangedtomuch.3.. @ _670\xywarnifdefined\xyviitoi671\xywarnifdefined\xyviitoii673\xydef@\XXtoY@#1#2#3#4#5{\save;[#3]\relax674K\xy@@{%3#*tjB.1.CVERSIONf2COMPeATIBILITYaH563??hw675 m\dimen@=\turnradius@\ifdim#1<#2\relax\dimen@ii=#2\else\dimen@ii=#1\fi 676 m\advance\dimen@\ifdim\dimen@>\dimen@ii+\dimen@\else+\dimen@ii\fi677 m\edef\xyviitoi{\the\dimen@}\leave@}%678K\xto~{[#3]}`#4[#3]#5/#4\xyviitoi/`[#3]}P680\xydef@\toXY@#1#2#3#4#5{\xy@@{\idfromc@{@}%681 m\dimen@=\turnradius@\dimen@ii=#1\relax682 m\advance\dimen@\ifdim\dimen@>\dimen@ii+\dimen@\else+\dimen@ii\fi683 m\edef\xyviitoi{\the\dimen@}%684 m\dimen@=\turnradius@\dimen@ii=#2\relax685 m\advance\dimen@\ifdim\dimen@>\dimen@ii+\dimen@\else+\dimen@ii\fi686 m\edef\xyviitoii{\the\dimen@}}%687K\morphism\solid{\object#4:(-1,0)\dir{>}}\notip688 m~{`"@""@"}`#3"@"#5/#3\xyviitoi/#5/#4\p@/`"@"#5/#4\xyviitoii/}690\xyuncatcodes\catcode64=11%692\xydef@\lltod{\XXtoY@\D@c\D@p{ll}{d}+}693\xydef@\lltou{\XXtoY@\U@c\U@p{ll}{u}+}694\xydef@\rrtod{\XXtoY@\D@c\D@p{rr}{d}+}695\xydef@\rrtou{\XXtoY@\U@c\U@p{rr}{u}+}696\xydef@\ddtol{\XXtoY@\L@c\L@p{dd}{l}+}697\xydef@\ddtor{\XXtoY@\R@c\R@p{dd}{r}+}698\xydef@\uutol{\XXtoY@\L@c\L@p{uu}{l}+}699\xydef@\uutor{\XXtoY@\R@c\R@p{uu}{r}+}701\xydef@\told{\toXY@\L@c\D@c{l}{d}+}702\xydef@\tolu{\toXY@\L@c\U@c{l}{u}+}703\xydef@\tord{\toXY@\R@c\D@c{r}{d}+}704\xydef@\toru{\toXY@\R@c\U@c{r}{u}+}705\xydef@\todl{\toXY@\D@c\L@c{d}{l}+}706\xydef@\todr{\toXY@\D@c\R@c{d}{r}+}707\xydef@\toul{\toXY@\U@c\L@c{u}{l}+}708\xydef@\tour{\toXY@\U@c\R@c{u}{r}+}710\xycatcodesNFinally*thev!ersion2arrowradiusdefaultcommandthatactuallyneverworkedbutsomepMeoplemigh!tfhavehopMed.3..717\xydef@\TurnRadius{\addEQ@\turnradius}#卍B.1.4Obsoleteloading5The,gv2User'sMan!ualsaysthatyoucanloadXYq-picwiththecommand\inputxypicandasaLAGT,[wEB Xt2.09`st!yleoption'[xypic],.Thisismadesynonymouswithloadingthisoptionbythe lesxypic.texfandxypic.stydistributedwiththev2 option.xypic.doYcThisf le(v!ersion3.3)justloadsthev2 feature.P1%%$Id:xypic.doc,v3.31996/12/1903:31:56krisroseExp$2%%3%%Xy-picv2compatibilityloading.4#$Ԡ*tj564fAPPENDIXfB.LBA!CKWȈARDSCOMPeATIBILITY??hw4%%Copyright(c)1993-1996KristofferH.Rose 5%%6%%ThisfileispartoftheXy-picpackageforgraphsanddiagramsinTeX.7%%SeethecompanionREADMEandINSTALLfilesforfurtherinformation.8%%Copyright(c)1991-1996KristofferH.Rose9%%10%%TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11%%itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12%%FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13%%option)anylaterversion.14%%15%%TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16%%WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17%%orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18%%formoredetails.19%%20%%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21%%withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,22%%675MassAve,Cambridge,MA02139,USA.23%%("=Herefitis.3..P36\inputxyv237\endinput Theflogrev!ealsthatthiswasoriginallythemain le.43%$Log:xypic.doc,v$44%Revision3.3 T1996/12/1903:31:56krisrose45%Maintenancerelease46%47%Revision3.0 T1995/07/0720:14:21kris48%Majorreleasew/newUser'sGuide!49%50%Revision2.13 T1995/07/0415:11:17kris51%Readytoreleasev3?52%53%Revision2.10 T1994/06/1512:55:07kris54%Second3betarelease:bugfixes.55%56%Revision2.7 T1994/03/0802:06:01kris57%Release3alpha.58%59%Revision2.6.9.1 T1994/03/0704:22:46kris60%Lastinternal3alphaandpre-2.7release.61%62%ThisfileNEWforversion2.7forbackwardscompatibility.63%Originalxypic.docrenamedtoxy.doc.5#05*tjB.1.CVERSIONf2COMPeATIBILITYaH565??hwxypic.sttyb퍍1%%$Id:xypic.sty,v3.31996/12/1903:31:56krisroseExp$-*-tex-*- 2%%3%%LaTeXstyleoptiontoloadXy-picinversion2compatibilitymode.4%%byKristofferH.Rose T5%%6%%Thisfileisinthepublicdomain. TItisdistributedinthehopethatit7%%willbeuseful,butWITHOUTANYWARRANTY;withouteventheimplied8%%warrantyofMERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE.9%%10\input{xy.sty}11\xyoption{v2}12\catcode`\@=\xystycatcode13\endinputP15%$Log:xypic.sty,v$16%Revision3.3 T1996/12/1903:31:56krisrose17%Maintenancerelease18%19%Revision3.0 T1995/07/0720:14:21kris20%Majorreleasew/newUser'sGuide!21%22%Revision2.13 T1995/07/0415:11:17kris23%Readytoreleasev3?24%25%Revision2.8 T1994/04/0804:30:00kris26%Second(bugfix)3alpharelease.27%28%Revision2.7 T1994/03/0802:06:01kris29%Release3alpha.=B.1.5Compilingv2-diagramsInɘordertomak!eitpMossibletousethenewcompilationfeaturesevenondoMcumentswrittenwithsXY#-picfv2,thefollo!wingcommandwasaddedinv2.12: "effd D{\diagramcompileto{shnameif} v.3..y\enddiagram ffdTwhic!hisliketheordinarydiagramcommandexcepttheresultiscompiled(seenote1.5e).?Notethatcompilationfisnotquitesafeinallcases!769\xydef@\diagramcompileto#1#2\enddiagram{\relax770\diagram@{\NoCompileMatrices\xycompileto{#1}}{#2}}Thereisalsothefollo!wingcommandthatswitchesonautomatic cpompilationiofalldiagramscreatedwithfthev2\diagram5J.3..y\enddiagramH\Mcommand: pCffd D4\CompileAllDiagrams {zhpre xif}4\NoCompileAllDiagrams4\ReCompileAllDiagrams ffdTwillDapply\xycompileto{Nhpre xin}{ T.3..} ¹toDeac!hdiagramwithnasequencenumbMerstartingfrom1.Usef\CompileMatricescGlandf\CompilePrefixWinstead!6#:͠*tj566fAPPENDIXfB.LBA!CKWȈARDSCOMPeATIBILITY??hwIfڍforsomereasonadiagramdoMesnotw!orkwhencompiledthenreplacethe\diagram5jcommand withf\diagramnocompilei(orfincasey!ouareusingtheLAGT,[wEB Xform,\begin{diagramnocompile}V).P793\xydef@\diagramnocompile#1\enddiagram{\relax\diagram@\literal@{#1}}v797\xydef@\CompileAllDiagrams#1{\CompilePrefix{#1}\CompileMatrices}798\xydef@\NoCompileAllDiagrams{\NoCompileMatrices}799\xydef@\ReCompileAllDiagrams{\CompileMatrices}"@End&logk807\xyendinput809%$Log:xyv2.doc,v$810%Revision3.4 T1997/05/1801:14:25krisrose811%Essentialbugfixes.812%813%Revision3.3 T1996/12/1914:43:55krisrose814%Maintenancerelease.815%816%Revision3.2 T1995/09/1918:22:27kris817%Bugfixrelease.818%819%Revision3.1 T1995/09/0520:31:32kris820%Releasing!821%822%Revision3.0 T1995/07/0720:14:21kris823%Majorreleasew/newUser'sGuide!824%825%Revision2.14 T1995/07/0522:10:12kris826%Buglets...827%828%Revision2.13 T1995/07/0415:11:17kris829%Readytoreleasev3?830%831%Revision2.12 T1994/10/2511:34:25kris832%Interimreleasejustbeforev3[workswithAMS-LaTeX1.2]...833%834%Revision2.11 T1994/07/0510:37:32kris835%Third3betarelease[bugfixes].836%Experimentalgraphfeatureincluded(forECCT-94presentation).837%838%Revision2.10 T1994/06/1512:55:07kris839%Second3betarelease:bugfixes.840%841%Revision2.9 T1994/06/0914:59:19kris842%Release3beta.843%844%Revision2.8 T1994/04/0804:30:00kris845%Second(bugfix)3alpharelease.846%7#E*tjB.2.COBSOLETEfF!ONTSQW567?? `,Zff.Q3^0Jff]!y^1yff^2,ff^3mrffK^4=ffb^55 ffG2׹^6cDffv^7fffffd N^00x8AffMϗN6δ xyline10Ngpff|@͟ff#ff|iYff `"ff8DQffg);R+ff "qfffff׎!%L͹}0xN^01x8AffNoNgpff}S @͟ff8# ffi Yff "ff8 Qffg;R+ff"qffffdN^02x8AffONgpff}@͟ff#ffۼiYff "ff9Qffhi;R+ffM"qffff׎!%L͹}1xN^03x8AffONgpff~@͟ffx#ff\iYff @"ff:$Qffi ;R+ff"qffffffdN^04x8AffP'N gpff~!@͟ff#"ff\i#Yff $"ff9%Qffh;&R+ffM'"qffff׎!%L͹}2xN^05x8AffON(gpff~C)@͟ff#*ffۼi+Yff x,"ff94-Qffg;.R+ff/"qffffdN^06x8AffNN0gpff}1@͟ff`#2ffi3Yff د4"ff85QffgQ;6R+ff 7"qffff׎!%L͹}3xN^07x8AffNGN8gpff}9@͟ff#:ff|i;Yff 8<"ff7=Qfff;>R+ffm?"qffffdN^10x8AXffMN@gpXff|A@͟Xff\#BXff,iCYXffD"Xff7EQXfff;FR+XffmG"qXff>fff׎!%L͹}4xN^11x8AffMNHgpff|I@͟ff\#Jff,iKYffL"ff7MQfff;NR+ffmO"qfffffdN^12x8AffMNPgpff|Q@͟ff\#Rff,iSYffT"ff7UQfff;VR+ffmW"qfffff׎!%L͹}5xN^13x8AffMNXgpff|Y@͟ff\#Zff,i[Yff\"ff7]Qfff;^R+ffm_"qffffdN^14x8AffMN`gpff|a@͟ff\#bff,icYffd"ff7eQfff;fR+ffmg"qffff׎!%L͹}6xN^15x8AffMNhgpff|i@͟ff\#jff,ikYffl"ff7mQfff;nR+ffmo"qffffdN^16x8AffMNpgpff|q@͟ff\#rff,isYfft"ff7uQfff;vR+ffmw"qffff׎!%L͹}7xN^17x8AffMNxgpff|y@͟ff\#zff,i{Yff|"ff7}Qfff;~R+ffm"qffffd 8AffJ}8gpffyo;}9@͟ff?}Affǹ}BYff }C"ff4S}DQffc}ER+ffP߹}F"qff"3FigurefB.1:Feon!ttableforxyline10.847%Revision2.7 T1994/03/0802:06:01kris 848%Release3alpha.849%850%Revision2.6.9.1 T1994/03/0704:22:46kris851%Lastinternal3alphaandpre-2.7release.852%853%NEWfiletogoinversion2.7(extractedfromxy.doc2.6.1.1).րB.2 'Obsoletefffonts+ȍThese_&fon!tsareobsoletesincev2.7butremainpartofthedistributiontomakeitpMossibletoprintD!VIf lescreatedwithversion2.6andearlierversions.vLB.2.1xyline10O1%$Id:xyline10.mf,v3.31996/12/1903:31:56krisroseExp$-*-tex-*-2%3%XYLINE10:linesegmentsforXYmodeat10point.4%Copyright(c)1991,1992 TKristofferH.Rose5%6%ThisfileispartoftheXY-picmacropackage.7%8%TheXY-picmacropackageisfreesoftware;youcanredistributeitand/or9%modifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedby8#O*tj568fAPPENDIXfB.LBA!CKWȈARDSCOMPeATIBILITY??hw10%theFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour 11%option)anylaterversion.12%13%TheXY-picmacropackageisdistributedinthehopethatitwillbe14%useful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof15%MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneral16%PublicLicenseformoredetails.17%18%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong19%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,20%675MassAve,Cambridge,MA02139,USA.21%22%CONTENTS:Linesegmentsgoingeithersegl#downortotheright. TCodes23%rangefrom0to127,distributedevenlyineachofthe24%intervalsbetweenthe`purely'horizontal/25%vertical/diagonalcharacterswithcode31, z..../26%63,95,and127(code-1wouldbe Tpureas z: T/:27%wellifitexisted): z:/7yI:28%%.:/7yI:29%#i..../ T..../>|oo....o....o----o...:30%(=: T/::/:>||:\ T::\:31%(=:/: T:/:>||:\::\:32%(=:/ T::/:>||: T\::\:33%(=o...: To...:>o|:...\:...\34%35%Code:[-1]R030 T3163649512736%37font_identifier"XYLINE";font_size10pt#;38font_coding_scheme:="XYlinesegments";39mode_setup;P41%METANESS...42%43segl#=1/2designsize;define_pixels(segl); {%linesegmentlength44rulew#=.4pt#;define_whole_blacker_pixels(rulew);%linethickness45%46%drawsegmentdrawsalinefrom(0,0)totheargumentpoint...47defdrawsegmentexprendpoint=48Kz0=(0,0);z1=endpoint;49Kpickuppencirclescaledrulewrotated(angle(z1-z0)-90);50Kdrawz0--z1;penlabels(0,1)enddef;52%TESTING...weredefineopenitbecausethecharactersextendfartothe53%leftoftheboundingbox!54%55defopenit=openwindowcurrentwindow56Kfromoriginto(screen_cols,screen_rows)at(-200,300)enddef;58%FONT.59%60%Fontdimension8istherulethickness(cf.TheTeXbook,app.G)9#k*tjB.2.COBSOLETEfF!ONTSQW569??hw61fontdimen8:rulew#; 62%63%Thecharactersfollow...64%65forcc=0step1until30:66Kbeginchar(cc,(31-cc)/32*segl#,segl#,0);drawsegment(w,h);endchar;67endfor;68%69forcc=31step1until63:70Kbeginchar(cc,(cc-31)/32*segl#,0,segl#);drawsegment(w,-d);endchar;71endfor;72%73forcc=64step1until94:74Kbeginchar(cc,segl#,0,(95-cc)/32*segl#);drawsegment(w,-d);endchar;75endfor;76%77forcc=95step1until126:78Kbeginchar(cc,segl#,(cc-95)/32*segl#,0);drawsegment(w,h);endchar;79endfor;80%81beginchar(127,segl#,segl#,0);drawsegment(w,h);endchar;P83bye.84%85%$Log:xyline10.mf,v$86%Revision3.3 T1996/12/1903:31:56krisrose87%Maintenancerelease88%89%Revision3.0 T1995/07/0720:14:21kris90%Majorreleasew/newUser'sGuide!91%92%Revision2.1 T1992/01/0214:54:07kris93%Releaseversion.94%95%Revision1.7 T1991/12/1704:51:16kris96%Versiondistributedwith`finaldraft'onUsenet.97%98%Revision1.6 T1991/11/2706:54:21kris99%\beta-testonDIKU.100%101%Revision1.5 T1991/10/2123:19:08kris102%VersiondescribedinDIKUstudentreport91-7-10.103%104%Revision1.4 T1991/07/2822:16:18kris105%Invertedchar0..30toavoidnegativewidths.106%107%Revision1.3 T1991/07/2601:22:28kris108%Setboundingboxcompletely!109%110%Revision1.2 T91/06/0921:59:49kris:#v*tj570fAPPENDIXfB.LBA!CKWȈARDSCOMPeATIBILITY??`ɑ,Zff.Q3^0Jff]!y^1yff^2,ff^3mrffK^4=ffb^55 ffG2׹^6cDffv^7fffffd N^00x8AffP-Oq xyqc10Ogpff~@͟fffflkYff *H"ff93Qffh6R+ff^f"qfffff׎!%L͹}0xN^01x8AffOOgpff~P @͟ff ( ffÔ Yff }# "ff97 QffgR+ff"qffffdN^02x8AffNAOgpff}@͟fffff([Yff "ff8QffgwR+ff@."qffff׎!%L͹}1xN^03x8AffNOgpff}R@͟ff(ffjYff "ff8jQffgXR+ff("qffffdN^04x8AffNwGO gpff}HR!@͟ff"ffj#Yff $"ff8%Qffgiq&R+ff@.'"qffff׎!%L͹}2xN^05x8AffN(O(gpff}o)@͟ffKB*ff([+Yff 3,"ff8-Qffg.R+ff/"qffffdN^06x8AffO-O0gpff}1@͟ffܗ2ffÔ3Yff 4"ff95QffhxT6R+ff^f7"qffff׎!%L͹}3xN^07x8AffOO8gpff~9@͟ff:fflk;Yff N<"ff:.=Qffi>R+ff?"qffffdN^10x8AffP-O@gpff~A@͟ffBfflkCYff *HD"ff93EQffh6FR+ff^fG"qffff׎!%L͹}4xN^11x8AffOOHgpff~PI@͟ff (JffÔKYff }#L"ff97 MQffgNR+ffO"qffffdN^12x8AffNAOPgpff}Q@͟fffRff([SYff T"ff8UQffgwVR+ff@.W"qffff׎!%L͹}5xN^13x8AffNOXgpff}RY@͟ff(Zffj[Yff \"ff8j]QffgX^R+ff(_"qffffdN^14x8AffNwGO`gpff}HRa@͟ffbffjcYff d"ff8eQffgiqfR+ff@.g"qffff׎!%L͹}6xN^15x8AffN(Ohgpff}oi@͟ffKBjff([kYff 3l"ff8mQffgnR+ffo"qffffdN^16x8AffO-Opgpff}q@͟ffܗrffÔsYff t"ff9uQffhxTvR+ff^fw"qffff׎!%L͹}7xN^17x8AffOOxgpff~y@͟ffzfflk{Yff N|"ff:.}Qffi~R+ff"qffffd 8AffJ}8gpffyo;}9@͟ff?}Affǹ}BYff }C"ff4S}DQffc}ER+ffP߹}F"qff"FigurefB.2:Feon!ttableforxyqc10."111%separatedMETANESSandCHARACTERS 112%113%Revision1.1 T91/06/0622:52:31kris114%furstsuccesfulattempt*B.2.2xyqc10j1%$Id:xyqc10.mf,v3.01995/07/0720:14:21krisExp$-*-tex-*-2%3%XYQC10:quartercirclesforXYmodeat10point.4%Copyright(c)1992 TKristofferH.Rose5%6%ThisfileispartoftheXY-picmacropackage.7%8%TheXY-picmacropackageisfreesoftware;youcanredistributeitand/or9%modifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedby10%theFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour11%option)anylaterversion.12%13%TheXY-picmacropackageisdistributedinthehopethatitwillbe14%useful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof15%MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneral16%PublicLicenseformoredetails.17%18%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong;#)*tjB.2.COBSOLETEfF!ONTSQW571??hw19%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,Inc., 20%675MassAve,Cambridge,MA02139,USA.21%22%CONTENTS:Quartercirclesinalldirections:23%24%Ā-.25%|>)| T/\26%:oooo-' Tooo.-oo27%4g(R|_\/rH|(28%29%Code:>[-1]153147657995 T11112730%31%Eachcharacterhasacosinoidboundingbox:-)withwd=cosI=sinF,32%whereI,Faretheanglesfromdirection-->totheinitial,finaldirection.33%34font_identifier"XYQC";font_size10pt#;35font_coding_scheme:="XYquartercircles";36mode_setup;P38%METANESS...39%40qcd#=1/2designsize; %quartercirclediameter41rulew#=.4pt#; %quartercirclelinewidth42define_pixels(qcd,rulew);43%44%beginqcdrawsthequartercirclestartinginthedirectiontowardsendpoint45%andturningleft...46defbeginqc(exprcc,ex,ey)=47Kalpha:=angle(ex,ey);48Kcw:=sqrt(1/2)*abs(sind(alpha+135));49Kbeginchar(cc,cw*qcd#,0,0);50Kpickuppencirclescaledrulewrotated(alpha-90);51Kif(cc<64):drawquartercircleshifted(-.5,0)rotated(alpha-90)52#iscaledqcd53Kelse:drawquartercircleshifted(-.5,0)rotated(alpha-90)shifted(cw,0)54#iscaledqcd55Kfi56enddef;58%TESTING...weredefineopenitbecausethecharactersextendfartothe59%leftoftheboundingbox!60%61defopenit=openwindowcurrentwindow62Kfromoriginto(screen_cols,screen_rows)at(-200,200)enddef;64%FONT.65%66%Fontdimension8istherulethickness(cf.TheTeXbook,app.G).67fontdimen8:rulew#;68%69%Herearethecharacters...<#*tj572fAPPENDIXfB.LBA!CKWȈARDSCOMPeATIBILITY??hw70% 71forcc=0step1until31:72Kbeginqc(cc,cc-15,-16);endchar;73endfor;74%75forcc=32step1until63:76Kbeginqc(cc,16,cc-47);endchar;77endfor;78%79forcc=64step1until95:80Kbeginqc(cc,79-cc,16);endchar;81endfor;82%83forcc=96step1until127:84Kbeginqc(cc,-16,111-cc);endchar;85endfor;P87bye.88%89%$Log:xyqc10.mf,v$90%Revision3.0 T1995/07/0720:14:21kris91%Majorreleasew/newUser'sGuide!92%93%Revision2.6 T1992/06/2401:23:34kris94%Implementedandusedforhooks. iB.2.3xymisc101%$Id:xymisc10.mf,v3.31996/12/1903:31:56krisroseExp$-*-tex-*-2%3%XYMISC10:miscellaneouscharactersforXYmodeat10point.4%Copyright(c)1991,1992 TKristofferH.Rose5%6%ThisfileispartoftheXY-picmacropackage.7%8%TheXY-picmacropackageisfreesoftware;youcanredistributeitand/or9%modifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedby10%theFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour11%option)anylaterversion.12%13%TheXY-picmacropackageisdistributedinthehopethatitwillbe14%useful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof15%MERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneral16%PublicLicenseformoredetails.17%18%YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong19%withthismacropackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,20%675MassAve,Cambridge,MA02139,USA.21%22%CONTENTS:=#*tjB.2.COBSOLETEfF!ONTSQW573??tDMğff x^05ffJwt^1iff~p^2_ffSl^3ʹffX^4 ff4^5@IlffVe^6wHff"^7$fffffd  ^00xff7Pi)BǮ xymisc10PQfflaeffӟff=Aff ?%wff@\Sffw}{/ffyY9 fffffʟqάtL͹}0x ^01xff6PQffk9 eff ӟff Aff  %wff?ձ \Sffv{/ffQi9 ffffd ^02xׄcff5PQׄcffjeׄcffӟׄcffAׄcff%wׄcff>\Sׄcffuk{/ׄcff)y9 ׄcffJ=ffʟqάtL͹}1x ^03xff4|PQffh effXӟffAff%wff=\SfftC{/ff9 ff$ffd ^04xff3TP Qffg!eff0"ӟffО#Aff$%wff<]%\Sffs&{/ffٚ'9 ffffʟqάtL͹}2x ^05x[ۥff2,.P(Q[ۥfff*)e[ۥff&*ӟ[ۥffv"+A[ۥff,%w[ۥff:-\S[ۥffq_.{/[ۥff/9 [ۥff ffd  ^06xW ff/OP0QW ffdJK1eW ffG2ӟW ff&C3AW ff@4%wW ff8R5\SW ffo6{/W ff79 W ff 덍ffʟqάtL͹}3x d ^07xff-pP8Qffal9effhh:ӟffd;AffD`<%wff6<=\Sffl>{/ff}?9 ff aʉffdKC ^10xff+x_9 -ff5>ffd ^14x2=pff!P`Q2=pffVkae2=pff bӟ2=pffGcA2=pffd%w2=pff*re\S2=pffa0f{/2=pffg9 2=pffffʟqάtL͹}6x  ^15xffQffeffӟffAff%wff\Sff{/ff9 fffffd ff2W:}8Qfff6}9eff32}Aӟffϡ.}BAff7}C%wff;}D\Sffrҹ}E{/ffp}F9 ff"yڹFigurefB.3:Feon!ttableforxymisc10scaled578.>#*tj574fAPPENDIXfB.LBA!CKWȈARDSCOMPeATIBILITY??hw23%>Metaness. 24%>Testing...25%>Font.26%RDotfittingtherulewidth.27%RQuartercircleswithradiifrom1to10and12to30pt;allhave28%#iheight=depth=.5width=radiusandarecenteredsuchthatthey29%#ienterandleavetheboxinthemiddleofthesides.30%31font_identifier"XYMISC";font_size10pt#;32font_coding_scheme:="XYmiscellaneous";33mode_setup;P35%METANESS...36%37rulew#=.4pt#;define_whole_blacker_pixels(rulew);%linethickness38%39defpickuppen=pickuppencirclescaledrulewenddef;41%TESTING...weredefineopenitbecausethecharactersextendfartothe42%leftoftheboundingbox!43%44defopenit=%%letechar=endchar;defendchar=echar;stop"."enddef;45Kopenwindowcurrentwindow46 mfromoriginto(1000,800)at(-200,300)47Kenddef;49%FONT.50%51%Fontdimension8istherulethickness(cf.TheTeXbook,app.G)52fontdimen8:rulew#;54%DOTFORDOTTEDLINESANDDUMMYCIRCLE...55%56beginchar(0,0,0,0);pickuppen;drawdot(0,0);endchar;57beginchar(1,0,0,0);pickuppen;drawdot(0,0);endchar;58beginchar(2,0,0,0);pickuppen;drawdot(0,0);endchar;59beginchar(3,0,0,0);pickuppen;drawdot(0,0);endchar;61%QUARTERCIRCLES... TThefourcircleswithradiusNpt,0ThisGeneralPublicLicenseappliestomostoftheFereeSoft!wareFoundation'ssoft!wareandtoan!yotherprogramwhoseauthorscommittousingit.5(SomeotherFereeSoft!wareFoundationsoft!wareisco!veredbytheGNUpLibraryGeneralPublicfLicenseinstead.)Yeoucanapplyittoy!ourprograms,toMo.zWhenw!espMeakoffreesoftware,wearereferringtofreedom,notprice.OurGeneralPublicLicensesare{ designedtomak!esurethatyouhavethefreedomtodistributecopiesoffreesoftware(andchargefor>Fthisserviceify!ouwish),d>thatyoureceivesourcecoMdeorcangetitifyouwantit,d>thatyoucanc!hangexthesoftwareorusepiecesofitinnewfreeprograms;Dandthatyouknowyoucandothesethings.Teoprotecty!ourrights,weneedtomakerestrictionsthatforbidanyonetodenyyoutheserightsortoasky!outosurrendertherights.RTheserestrictionstranslatetocertainrespMonsibilitiesforyouify!oufdistributecopiesofthesoftware,orifyoumoMdifyit.Feoru_example,-ify!oudistributecopiesofsuchaprogram,-whethergratisorforafee,y!oumustgivetherecipien!tsalltherightsthatyouhave.Yeoumustmakesurethattheye,,toMo,receiveorcangetthesourcefcoMde.Andy!oumustshowthemthesetermssotheyknowtheirrights.Wee0Gprotecty!ourrightswithtwosteps:(1)copyrightthesoftware,Rand(2)o eryouthislicensewhic!hfgivesyoulegalpMermissiontocopye,distributeand/ormoMdifythesoftware.Also,0forCeac!hauthor'sprotectionandours,w!ewanttomakecertainthateveryoneunderstandsthat4thereisnow!arranty4forthisfreesoft!ware.If4thesoft!ware4ismoMdi edb!ysomeoneelseandpassedon,& w!ebwantitsrecipientstoknowthatwhattheyhaveisnottheoriginal,& sothatanyproblemsin!troMducedfbyotherswillnotre ectontheoriginalauthors'reputations.Finallye,9an!yfreeprogramisthreatenedconstantlybysoftwarepatents.Weewishtoavoidthedangerthatredistributorsofafreeprogramwillindividuallyobtainpaten!tlicenses,ine ectmakingtheprogramproprietarye.VToprev!entthis,wehavemadeitclearthatanypatentmustbMelicensedforev!eryone'sffreeuseornotlicensedatall.LW.577B#*tj578;eAPPENDIXfC.LGNUGENERALPUBLICLICENSE??hwThefprecisetermsandconditionsforcop!ying,distributionandmoMdi cationfollow."yTfermsffandconditionsforcopying,distributionandmos3di cation>0.ThisLicenseappliestoan!yprogramorotherworkwhichcontainsanoticeplacedbythecopy- righ!tholdersayingitmaybMedistributedunderthetermsofthisGeneralPublicLicense.The\Program",pbMelo!w,refers}toanysuchprogramorwork,panda\workbasedontheProgram"meansReithertheProgramoran!yderivdDativeworkundercopyrightlaw:7 thatistosaye,~#aworkcon!tainingXtheProgramorapMortionofit,TeitherverbatimorwithmoMdi cationsand/ortrans-latedTin!toanotherlanguage.«(Hereinafter,e translationisincludedwithoutlimitationintheterm\moMdi cation".)Eac!hflicenseeisaddressedas\you"..Activities otherthancop!ying,.distributionandmoMdi cationarenotcoveredbythisLicense;theyareA6outsideitsscopMe."TheactofrunningtheProgramisnotrestricted,UrandtheoutputfromtheProgramf5isco!veredf5onlyifitscon!tentsf5constituteaw!orkbasedontheProgram(indepMendentofha!ving bMeenmadebyrunningtheProgram).WhetherthatistruedepMendsonwhattheProgramdoMes.>1.Yeoul\ma!ycopyanddistributeverbatimcopiesoftheProgram'ssourcecoMdeasyoureceiveit,inran!ymedium, uprovidedthatyouconspicuouslyandappropriatelypublishoneachcopyanappropriate\cop!yrightnoticeanddisclaimerofwarranty;u'keepintactallthenoticesthatrefertothisLicenseandtotheabsenceofan!ywarranty;andgiveanyotherrecipientsoftheProgramafcop!yofthisLicensealongwiththeProgram.Yeou2.Yeoujma!ymoMdifyyourcopyorcopiesoftheProgramoranypMortionofit,thusformingaworkbasedontheProgram,andcop!yanddistributesuchmoMdi cationsorworkunderthetermsofSectionf1abMo!ve,fprovidedthatyoualsomeetalloftheseconditions:Ka))Yeoum!ustcausethemoMdi ed lestocarryprominentnoticesstatingthatyouchangedthe) lesfandthedateofan!ychange.2b))Yeoum!ustcauseanyworkthatyoudistributeorpublish,thatinwholeorinpartcontains)or-isderiv!edfromtheProgramoranypartthereof,tobMelicensedasawholeatnocharge)tofallthirdpartiesunderthetermsofthisLicense.ic))IfhthemoMdi edprogramnormallyreadscommandsin!teractivelyhwhenrun,ty!oumustcause)it,Ywhenstartedrunningforsuc!hinteractiveuseinthemostordinarywaye,Ytoprintordis-)pla!ya anannouncementincludinganappropriatecopyrightnoticeandanoticethatthereis)now!arranty(orelse,sayingthatyouprovideawarranty)andthatusersmayredistribute)theprogramundertheseconditions,andtellingtheuserho!wtoviewacopyofthisLi-)cense.5(Exception:iftheProgramitselfisin!teractivebutdoMesnotnormallyprin!tsuchan)announcemen!t,.your workbasedontheProgramisnotrequiredtoprintanannouncement.)JThese9requiremen!tsapplytothemoMdi edworkasawhole.UIfidenti ablesectionsofthatworkareZnotderiv!edfromtheProgram,)andcanbMereasonablyconsideredindependen!tandseparatew!orks_inthemselves,thenthisLicense,anditsterms,donotapplytothosesectionswheny!oudistribute~themasseparatew!orks.Butwhenyoudistributethesamesectionsaspartofawholewhic!h#"isaworkbasedontheProgram,BQthedistributionofthewholemustbMeonthetermsofthisLicense, whosepMermissionsforotherlicenseesextendtotheen!tirewhole,andth!ustoeachandfev!erypartregardlessofwhowroteit.C#*tjѯ579??hwTh!us,7itisnottheintentofthissectiontoclaimrightsorcontestyourrightstoworkwritten en!tirely6byyou;\rather,M theintentistoexercisetherighttocontrolthedistributionofderivdDativeorfcollectiv!eworksbasedontheProgram.0Inaddition,!mereaggregationofanotherw!orknotbasedontheProgramwiththeProgram(orwithaw!orkbasedontheProgram)onavolumeofastorageordistributionmediumdoMesnotbringftheotherw!orkunderthescopMeofthisLicense.Ǯ>3.YeouGma!ycopyanddistributetheProgram(oraworkbasedonit,punderSection2)inobjectcoMde+orexecutableformunderthetermsofSections1and2abo!ve+providedthatyoualsodoonefofthefollo!wing:3a))Accompan!ywitwiththecompletecorrespMondingmachine-readablesourcecoMde,{whichmust)bMe0distributedunderthetermsofSections1and2abo!ve0onamediumcustomarilyused)forfsoft!wareinterchange;or,2b))Accompan!y**itwithawritteno er,CvdDalidforatleastthreeyears,Ctogiveanythirdpartye,Cfor)aRc!hargenomorethanyourcostofphysicallypMerformingsourcedistribution,.acomplete)mac!hine-readable@XcopyofthecorrespMondingsourcecode,Ttobedistributedundertheterms)offSections1and2abMo!vefonamediumcustomarilyusedforsoft!warefinterchange;or,ic))Accompan!yQitwiththeinformationyoureceivedastotheo ertodistributecorrespMonding)source/coMde.z(Thisalternativ!eisallowedonlyfornoncommercialdistributionandonlyif)y!ou 5receivedtheprograminobjectcoMdeorexecutableformwithsuchano er,&inaccord)withfSubsectionbabMo!ve.)3The sourcecoMdeforaw!orkmeansthepreferredformoftheworkformakingmoMdi cationstoit.VFeor#anexecutablew!ork,CbcompletesourcecoMdemeansallthesourcecodeforallmodulesitcon!tains,@plus7anyassoMciatedinterfacede nition les,@plusthescriptsusedtocontrolcompilationand$installationoftheexecutable. Ho!wever,as$aspMecialexception,thesourcecoMdedistributedneednotincludean!ythingthatisnormallydistributed(ineithersourceorbinaryform)withthemajorcompMonen!ts(compiler,kernel,andsoon)oftheopMeratingsystemonwhichtheexecutableruns,funlessthatcompMonen!titselfaccompaniestheexecutable.0IffTdistributionofexecutableorobjectcoMdeismadeb!yo eringaccesstocopyfromadesignatedplace,theno eringequivdDalen!taccesstocopythesourcecoMdefromthesameplacecountsasdistributionofthesourcecoMde,ev!enthoughthirdpartiesarenotcompelledtocop!ythesourcealongfwiththeobjectcoMde.Ǯ>4.YeouJma!ynotcopye,3moMdify,sublicense,orJdistributetheProgramexceptasexpresslypro!videdunderthisLicense.An!yattemptotherwisetocopye,moMdify,sublicenseordistributetheProgramisbv!oid,andwillautomaticallyterminateyourrightsunderthisLicense.However,partieswhoha!ve/receivedcopies,morrights,mfromyouunderthisLicensewillnothavetheirlicensesterminatedsoflongassuc!hpartiesremaininfullcompliance.>5.Yeouy7arenotrequiredtoacceptthisLicense,Asincey!ouhavenotsignedit.However,Anothingelsegran!tsyoupMermissiontomodifyordistributetheProgramoritsderivdDativ!eworks.Theseactionsare}Dprohibitedb!ylawifyoudonotacceptthisLicense.'Therefore,~bymoMdifyingordistributingtheProgram(oran!yworkbasedontheProgram),dyouindicateyouracceptanceofthisLicensetotdoso,~andallitstermsandconditionsforcop!ying,distributingormoMdifyingtheProgramorw!orksfbasedonit.>6.Eac!h+timeyouredistributetheProgram(oranyworkbasedontheProgram),<\therecipientautomatically^.receiv!esalicensefromtheoriginallicensortocopye, distributeormoMdifytheD#**tj580;eAPPENDIXfC.LGNUGENERALPUBLICLICENSE??hwProgramOsubjecttothesetermsandconditions.Yeouma!ynotimpMoseanyfurtherrestrictions on~)therecipien!ts'exerciseoftherightsgrantedherein.e'YeouarenotrespMonsibleforenforcingcompliancefb!ythirdpartiestothisLicense.{荍>7.If,[as7Gaconsequenceofacourtjudgmen!torallegationofpatentinfringementorforanyotherreason6(notlimitedtopaten!tissues),ZconditionsareimpMosedonyou(whetherbycourtorder,agreemen!tCorotherwise)thatcontradicttheconditionsofthisLicense,ztheydonotexcuseyoufromUtheconditionsofthisLicense.Ify!oucannotdistributesoastosatisfysimultaneouslyy!ourobligationsunderthisLicenseandanyotherpMertinentobligations,thenasaconsequencey!oumaynotdistributetheProgramatall.;Feorexample,8/ifapatentlicensewouldnotpMermitro!yalty-freeredistributionoftheProgramb!yallthosewhoreceivecopiesdirectlyorindirectlythroughy!ou,1fthentheonlywayyoucouldsatisfybMothitandthisLicensewouldbMetorefrainen!tirelyffromdistributionoftheProgram.IfWan!ypMortionofthissectionisheldinvdDalidorunenforceableunderanyparticularcircumstance,thebalanceofthesectionisin!tendedtoapplyandthesectionasawholeisintendedtoapplyinfothercircumstances.Itwhichisimplementedbypubliclicensepractices.Man!ycpMeoplehavemadegenerouscontributionstothewiderangeofsoftwaredis-tributedOthroughthatsysteminrelianceonconsisten!tapplicationofthatsystem;litisuptotheauthor/donor4Ktodecideifheorsheiswillingtodistributesoft!ware4Kthroughan!yothersystemandfalicenseecannotimpMosethatc!hoice.This 8.If*thedistributionand/oruseoftheProgramisrestrictedincertaincoun!trieseitherbypatentsor@b!ycopyrightedinterfaces,gtheoriginalcopyrightholderwhoplacestheProgramunderthisLicensedIma!yaddanexplicitgeographicaldistributionlimitationexcludingthosecountries,sothatdistributionispMermittedonlyinoramongcoun!triesnotthusexcluded.xInsuchcase,thisLicensefincorpMoratesthelimitationasifwritteninthebodyofthisLicense.>9.TheFereeSoft!wareFoundationma!ypublishrevisedand/ornewversionsoftheGeneralPublicLicenseDfromtimetotime.CSuc!hnewversionswillbMesimilarinspirittothepresentversion,X'butma!yfdi erindetailtoaddressnewproblemsorconcerns.Eac!hWversionisgivenadistinguishingversionnumbMer.-IftheProgramspeci esav!ersionnumbMerofthisLicensewhic!happliestoitand\anylaterversion",youhavetheoptionoffollowingtheterms{andconditionseitherofthatv!ersionorofanylaterversionpublishedbytheFereeSoftwareFeoundation.#fIftheProgramdoMesnotspecifyav!ersionnumbMerofthisLicense,_youmaychoMosean!yfversioneverpublishedbytheFereeSoftwareFeoundation.t10.Ify!ouwishtoincorpMoratepartsoftheProgramintootherfreeprogramswhosedistributioncon-ditions aredi eren!t,)`writetotheauthortoaskforpMermission.Feorsoftwarewhichiscopyrightedb!yFtheFereeSoftwareFeoundation,nwritetotheFreeSoft!wareFFoundation;weFsometimesmak!eexceptions}forthis.OurdecisionwillbMeguidedb!ythetwogoalsofpreservingthefreestatusofallo derivdDativ!esofourfreesoftwareandofpromotingthesharingandreuseofsoftwaregenerallye."molNOfWȈARRANTYE$*tjѯ581??hwt11.BECA!USE:THEPROGRAMISLICENSEDFREEOFCHARGE,THEREISNOWȈAR- RANTYandyouwantittobMeofthegreatestpossibleusetothepublic,>thebMestvw!aytoachievethisistomakeitfreesoftwarewhicheveryonecanredistributeandchangeunderthesefterms. Teopdoso,2attac!hthefollowingnoticestotheprogram.Itissafesttoattachthemtothestartofeac!hHsource letomoste ectivelyconveytheexclusionofwarranty;gandeach leshouldhaveatleastthef\cop!yright"lineandapMointertowherethefullnoticeisfound.Copyright(C)19yy TThisprogramisfreesoftware;youcanredistributeitand/ormodifyitunderthetermsoftheGNUGeneralPublicLicenseaspublishedbytheFreeSoftwareFoundation;eitherversion2oftheLicense,or(atyouroption)anylaterversion.Thisprogramisdistributedinthehopethatitwillbeuseful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicenseformoredetails.YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealongwiththisprogram;ifnot,writetotheFreeSoftwareFoundation,Inc.,675MassAve,Cambridge,MA02139,USA.F$!"*tj582;eAPPENDIXfC.LGNUGENERALPUBLICLICENSE??hwAlsofaddinformationonho!wtocontactyoubyelectronicandpapMermail. Iftheprogramisin!teractive,9makeitoutputashortnoticelik!ethiswhenitstartsinaninteractivemoMde:Gnomovisionversion69,Copyright(C)19yynameofauthorGnomovisioncomeswithABSOLUTELYNOWARRANTY;fordetailstype`showw'.Thisisfreesoftware,andyouarewelcometoredistributeitundercertainconditions;type`showc'fordetails.TheW]h!ypMotheticalcommands`showw'and`showc'shouldshowtheappropriatepartsoftheGeneralPublicLicense.ӼOfcourse,thecommandsy!ouusemaybMecalledsomethingotherthan`showw'fand`sho!wc';theycouldevenbMemouse-clicksormenuitems{whateversuitsyourprogram.Yeoushouldalsogety!ouremployer(ifyouworkasaprogrammer)oryourschoMol,!ifanye,!tosigna\cop!yrightfdisclaimer"fortheprogram,ifnecessarye.Hereisasample;alterthenames: mYoyodyne,Inc.,herebydisclaimsallcopyrightinterestintheprogram m`Gnomovision'(whichmakespassesatcompilers)writtenbyJamesHacker. m,1April1989 mTyCoon,PresidentofViceThisGeneralPublicLicensedoMesnotpermitincorporatingy!ourprogramintoproprietarypro-grams.Ify!ourprogramisasubroutinelibrarye,youmayconsideritmoreusefultopMermitlinkingproprietaryQapplicationswiththelibrarye. ݽIfthisiswhaty!ouwanttodo,usetheGNUPLibraryGeneralfPublicLicenseinsteadofthisLicense.G$./*tj??9Appendix D2#Distribution T{supp ort les6'ThisyappMendixpresen!tsthesourcesofvdDarioussupport lesthatarepartoftheaxXY -picsourcedistribution (except/the leCOPYING0Fthatcon!tainsthetextreproMducedinappendixA):the leswith`h!ype'forthe\pac!kdDage,ztheinstallationinstructions,andthegenerationinstructions(tomak!eDXY-picfromthesources).%D.1 ÎHyps3eThesef lesexplainwhatXY p-picisasrequiredb!ytheCTeAN`LAGT,[wEB Xv2z" Abundle'standard. ~ǍD.1.1dCATALOG򍍑1Name:xypic2Version:3.7<1999/02/16>P4Description:Xy-picisapackagefortypesettinggraphsanddiagrams.5KItisstructuredasseveralmodules,eachdefiningacustomnotationfor6Kaparticularkindofgraphicalobjectorstructure.Exampleobjectsare7Karrows,curves,frames,andcolouring/rotationondriversthatsupport8Kit;thesecanbeorganisedinmatrix,directedgraph,path,polygon,knot,9Kand2-cellstructure.Xy-picworkswithmostformats,includingLaTeX,10KAMS-LaTeX,AMS-TeX,andplainTeX,andhasbeenusedtotypeset11Kcomplicateddiagramsfrommanyapplicationareasincludingcategory12Ktheory,automatatheory,algebra,neuralnetworks,anddatabasetheory.14Keywords:diagram,picture,graph,arrow,curve,commutativediagram.16Author:KristofferH.Rose17Problems-To:Kristoffer.Rose@ens-lyon.fr18Address:LIP/ENS-Lyon;46,Alleed'Italie;69364Lyon7;FRANCE20aXD.1.2dREADME򍍑1-*-text-*-$Id:README,v3.61998/03/0601:28:05krisroseExp$3#i======================================================4#iTHEXy-picPACKAGEFORTYPESETTINGGRAPHSANDDIAGRAMS5#i======================================================LW.583H$5*tj584)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw7Xy-picisapackagefortypesettinggraphsanddiagramswithTeX.P9Itworkswithmostformats,includingLaTeX(both2.09and2e), 10AMS-LaTeX,AMS-TeX,andplainTeX.12Ithasbeenusedtotypesetcomplicateddiagramsfrommanyapplication13areasincludingcategorytheory,automatatheory,algebra,neural14networks,anddatabasetheory.16A-o-18Seebelowinthisfileforanoverviewofthestructureandfeatures!19SeeCATALOGforuptodateversioninformation!20SeeTRAILERforauthorandaccessibilityinformation!21SeeCOPYINGfortheconditionsforredistributionandmodification!22SeeMANIFESTforacompletefilelist!23SeeVERSIONSfortheexactlistoftheversionsofallsourcefiles!24SeethevariousINSTALLfilesforhowtoinstallXy-piconyoursystem!25SeetheW3fornews!27A-o-29Xy-picisstructuredasa`kernel'andseveralorthogonalmodulescalled30`options',eachdefiningacustomnotationforaparticularkindof31graphicalobjectorstructure.33These(combinable)structuresareavailable:35*Agraphcombinatormodewherediagramsarespecifiedthewaytheyare36 mcomposedasgraphs.38*Amatrix-likemodewherethedimensionsofthedrawingarecomputedby39 maligningdiagramentriesinrowsandcolumns(thisisthe`diagram'40 mmodeXy-picversion2usersareusedto).42*Apolygonmodewherediagramsshapedasregularpolygonsareentered43 minasimpleway.45*Amodefortypesettingbeautifulknotsandlinks.47*Ageneralobject-oriented`turtlegraphic'drawinglanguagefor48 mspecifyinggraphswithobjectsandconnectionsbetweenthemina49 mmannerindependentoforientation.51Thefollowingobjectsmaybeused:53+Positionscanbegiveninvarietyofformats(extendable)including54 muserdefinedcoordinates(x,y)andrelativetopreviouspositions,55 mobjects,objectedges,andpointsonconnections.57+Objectsmaybecircular,elliptic,orrectangular(moreshapescanbe58 madded)andadjustedinseveralways.60+Largelibraryofobjectswithmnemonicnames.62+Objectsthatorientthemselfalongaconnectionwhenplacedrelative63 mtoit,e.g.,`\dir{|-}'islike\vdashbutthusoriented;newsuch64 mobjectscanbedefinedinaconvenientway.66+TeX`boxes',i.e.,textandmathematicalformulae.68+Includescirclesegmentsandoptionallyarbitraryelliptical,I$?*tjD.2.CINSTeALLATIONfINSTR!UCTIONS o&585??hw69 mquadratic,andcubicarcs.P71+Connectionsarealignedbetweenthereferencepointsofobjectsbut 72 mstartandendontheedges.74+Anyobjectcanbeusedtobuildaconnection(using`diagonal75 mfilling');libraryobjectsprovidecommonlinetypes.77+Flexiblenotationfordrawingarrowsandgeneralpathswithtail,78 mstem,andheadbuiltfromanyobject(s). TSpecialsupportforarrows79 mthatcrosseachother,arrowsthat`goby'otherentries,paired80 marrows(includingsupportfor2-cells),curvedarrows,andarrowswith81 mbends.83+Libraryofframesandbraces.85+Specialnotationforrotation,scaling,colour,andlinethickness.86 mThecorrecttypesettingofthesefeaturesrequiresabackendthat87 msupportsit(i.e.,PostScript)butevenwhenthisisnotavailable88 mXy-pictriestoapproximatewhatisrequestedsuchthatatleastthe89 mpicturesizeisstable(andthuspagebreaks).91+OutputcanusePostScriptfordrawing(several\specialformatsare92 msupported:dvips,Textures,andOzTeX--morearebeingadded93 mcontinuously:contactRossMooreforthecurrent94 mlist). TNotationforinclusionofliteralPostScriptisavailable.96*Othergraphicscanbeimportedandthen`decorated'usingXy-pic.98Allobjectformsmaybeusedwithallstructures.100A-o-102Finally,enjoyXy-pic!104Sincerely,105QKristofferH.Rose~106QRossMoore~ލD.2 ÎInstallationffinstructions{Thesei lesexplainho!wXY}s-picisdownloadedandinstalled,2ii.e.,whereithevdDarious lesofthedistri-butionfshouldreside.!PD.2.1dTRAILER⍍1-*-text-*-$Id:TRAILER,v3.71999/02/1615:12:50krisroseExp$3=======================================================================4JkANNOUNCINGtheXy-picversion3.7DIAGRAMTYPESETTINGPACKAGE5=======================================================================7ThisistoannounceareleaseofmydiagramtypesettingpackageXy-pic.9Withversion3.7weexplicitlygrantpermissiontousetheunmodified10Xy-picfontsandspecialsindistributeddocuments.12-----------------------------------------------------------------------13YGENERALJ$L!*tj586)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw14-----------------------------------------------------------------------P16Xy-picisapackagefortypesettingavarietyofgraphsanddiagrams 17withTeX. TXy-picworkswithmostformats(includingLaTeX,AMS-LaTeX,18AMS-TeX,andplainTeX),inparticularXy-picisprovidedasaLaTeX2e19`supportedpackage'(followingthe`CTANLaTeX2ebundle'standard).21FurtherspecificsofthepackageareinthedistributionREADMEfile.23-----------------------------------------------------------------------24ANEWS25-----------------------------------------------------------------------27Theprimarypurposeofrelease3.7isthegrantingofspecialpermission28tocopytheXy-picfontsandgraphicspecialsinsidedocuments,for29exampleinDVI,PostScript,andPDFfiles. TThishasnopractical30significanceexceptmakingcurrent(reasonable)practiceexplicitly31legal.33Release3.7furthermorefixesafewbugsinrelease3.6andaddsafew34features:a"smartturningpath"featureandanextensionwithmacro35expansioninkernelexpressionsandpolygonshapesbyGeorgeC.Necula,36andthebeginningsofanemulationofLaTeXpicturemodeproposedby37PaulBurchardandBillRichter.39SpecialthankstoGeorgeNeculaforthebugfixesandimpressive40extensions,toBillRichterforextendingPaulBurchard'spb-diagramto41useXy-picasabackendandforcontributingthe`picture'feature,to42BertholdHornofY&YInc.forreleasingthecopyrightontheir43PostScriptfonts,andtoPieterDoncheandMarceloCunhadosSantosfor44thebugreports.46-----------------------------------------------------------------------47AVAILABILITY48-----------------------------------------------------------------------50Xy-piccanberetrievedthroughtheWorldWideWebXy-pic`homepage':52 mURL: http://www.ens-lyon.fr/~krisrose/Xy-pic.html54aswellasbyanonymousftpfrom56 mCTAN: macros/generic/diagrams/xypic58ChecktheREADMEfileineachlocationforspecifics,inparticular59checkthatyouhavereachedaversion3.7copy(somearchivestakea60whiletomirrorthelatestfiles)!62-----------------------------------------------------------------------63HISTORY&CREDITS64-----------------------------------------------------------------------66Thefirstpublicrelease(version1.40)ofXy-picwascreatedby67KristofferH.Rose,DIKU,UofCopenhagen(nowENS-Lyon,France)and68distributedviaUsenetonDecember19,1991. TThisquicklybecame69version2ofwhichversion2.6wasthestableforsevarlyears.71Thethoroughrewritethatbecameversion3isacontinued72collaborationwithRossMoore,MacquarieU,Sydney,initiatedthroughK$X'*tjD.2.CINSTeALLATIONfINSTR!UCTIONS o&587??hw73avisittoMacquarie(Jan-May1994supportedbytheAustralian 74ResearchCouncil,MacquarieUniversity,andusingdonatedDEC75equipment). THowever,fullbackwardscompatibilityismaintained76(exceptfortheunavoidablebutfullydocumentedobscurecases).P78Xy-picisCopyright(c)1991-1998byKristofferH.Roseand1994-199879byRossMooreunderGNUCOPYLEFT(GPL)whichmeansthatyoucanuse80thepackageforanypurposebutifyouprovidethemacrosoranycode81derivedfromthemtoathirdpartythenyouareobligedtoincludethe82entireXy-picpackage(fulldetailsinthefileCOPYING). TThe83PostScriptfontsareadditionallyCopyright(c)1997Y&YInc. TThe84FONTCOPYINGfiledetailsthespecialpermissionstodistributefonts85withoutthefullrequirementsoftheGPL.87-----------------------------------------------------------------------89)IThisistheendoftheannouncement. TEnjoyXy-pic!91-----------------------------------------------------------------------3D.2.2dINSTALL1-*-text-*-$Id:INSTALL,v3.61998/03/0601:28:05krisroseExp$v4@G================================================5@GINSTALLINGTHEXy-picDIAGRAMTYPESETTINGMACROS6@G================================================9Thisfileexplainshowyouinstallthefilesinthe`run'distributionof10Xy-pic. TSee`README'forgeneralinformation.P12Contents:14-1-Copyleft 15-2-Overviewoffilesandwheretheyshouldbeinstalled16-3-Informationforspecificsystems17-4-Updatingfromversion2.6(andearlier)18-5-Bugs&comments21---------------------------------------------------------------------------22-1-COPYLEFT23---------------------------------------------------------------------------26NotethattheentireXy-picpackageisdistributedwithcopyleft:P28 mCopyright(c)1991-1998>KristofferH.Rose T29 mCopyright(c)1994-1998>RossMoore9|31 mTheXy-picpackageisfreesoftware;youcanredistributeitand/or32 mmodifyitunderthetermsoftheGNUGeneralPublicLicenseas33 mpublishedbytheFreeSoftwareFoundation;eitherversion2ofthe34 mLicense,or(atyouroption)anylaterversion.36 mTheXy-picpackageisdistributedinthehopethatitwillbe37 museful,butWITHOUTANYWARRANTY;withouteventheimpliedwarranty38 mofMERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNU39 mGeneralPublicLicenseformoredetails.L$fe*tj588)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw41 mYoushouldhavereceivedacopyoftheGNUGeneralPublicLicense 42 malongwiththispackage;ifnot,writetotheFreeSoftware43 mFoundation,Inc.,675MassAve,Cambridge,MA02139,USA.P45WhatthismeansisthatifyouinstallXy-picthenyoushould(1)make46surethatthefile`COPYING'isaccessibletotheusers,and(2)be47preparedtoprovideXy-pic(includingsources)toanyofyourusers48thatrequestit(youmaychargeafeeforthisifyouareso49inclined).51Note:Someoptionfilesmaybecopyrightedbyotherpeoplebutthe52conditionsremainthesameforanyfiledistributedaspartofXy-pic.v55---------------------------------------------------------------------------56-2-OVERVIEWOFFILESANDWHERETHEYSHOULDBEINSTALLED57---------------------------------------------------------------------------60Inthissectionweexplainin11stepswherethedifferentgroupsof61Xy-picfilesinthe`run'and`doc'distributionshouldbeinstalled.62ForeachfilecategoryweindicatethelocationrecommendedbyTDS,63theTeXDirectoryStandard(asformedbyaTUGworkinggroupofthat64name).P66IMPORTANT67---------68Ifyouhaveuserscurrentlyusingversion2.6thenmakesureyouread69section4! TPleasealsocheckthenextsectionforanysystemspecific70considerations.72SPACEREQUIREMENTS73------------------74InstallingtheXy-picpackagerequiresalmost1MBwiththemacros75macrostakingupmostofthespace. TInstallingeverything,including76sources,documentationinbothDVI,DVIPS,andPS,form,aswellas77bitmapfontsforseveralprintersandinPostScriptType1form,78requiresmorethan12MB.v81Step1.EliminatingObsoleteFiles82----------------------------------83ThenewPostScriptType1fontscontributedbyY&YInc.requirethat84youREMOVEALLCOPIESofthefollowingfilesBEFOREinstalling:86Oldfontmapfilesshouldberemoved:88 mxy.map89 mxypic.map91TDSdirectory:texmf/dvips/xypic93Alsobeawarethatsomeinstallations,forexampletheTeXLive294CD-ROM,insertthecontentsofmapfilesin`psfonts.map'(withTDS95directorytexmf/dvips/base);thenyoumustEDITittoremovealllines96thatstartwith`xy'.98RemoveoldPostScriptType1fontfiles:100 mxyatip10.pfaM$s*tjD.2.CINSTeALLATIONfINSTR!UCTIONS o&589??hw101 mxybsql10.pfa 102 mxybtip10.pfa103 mxycirc10.pfa104 mxycmat10.pfa105 mxycmbt10.pfa106 mxydash10.pfa107 mxyeuat10.pfa108 mxyeubt10.pfaP110 mxyatip10.pfb111 mxybsql10.pfb112 mxybtip10.pfb113 mxycirc10.pfb114 mxycmat10.pfb115 mxycmbt10.pfb116 mxydash10.pfb117 mxyeuat10.pfb118 mxyeubt10.pfb120TDSdirectory:texmf/fonts/type1/public/xypic122Removeold`xy.sty'and`xypic.sty'filesthatyoumighthavestored123earlierintheTDSdirectory`texmf/tex/latex/misc'.v126[FILESINxy*run.tar.gz:]129Step2.Availability&License 130------------------------------131Theseeightfilescontaingeneralinformationandshouldbeinstalled132inapubliclyreadableplace:134 mREADMEQgenericinformationonXy-pic135 mCATALOGQversioninformationandsummary136 mTRAILERQannouncementandavailability137 mINSTALLQhowtoinstall(thisfile)138 mMANIFESTQlistofallfiles139 mVERSIONSQtheRCSversionidsofallsourcefiles140 mCOPYINGQGNUGeneralPublicLicense142TDSdirectory:texmf/doc/generic/xypicv145Step3.Macros146--------------147Files`texinputs/*'areTeXandLaTeXmacrofilesthatmustbe148installedinaplacewhichTeXandLaTeXwillsearch(e.g.,withun*x149TeX,adirectoryusersincludeintheTEXINPUTSenvironmentvariable).151Thefiles`texinputs/*.ini'153TDSdirectory:texmf/tex/generic/xypicv156Step4.TeXFontMetric157-----------------------158Files`texfonts/*.tfm'shouldbeinstalledinadirectorythatTeX159willsearchforfonts(e.g.,withun*xTeX,adirectoryusersincludeN$*tj590)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw160intheTEXFONTSenvironmentvariable).P162TDSdirectory:texmf/fonts/tfm/public/xypicv165Step5.METAFONTSources 166------------------------167Files`mfinputs/*.mf'shouldbeinstalledinsomedirectorywherethe168METAFONTprogramwillsearchforthem(e.g.,withun*xTeX,a169directoryincludedintheMFINPUTSenvironmentvariable).171NOTE:TheMETAFONTsourcefilesareonlyusefuloninstallationswhere172theprinterdriverandpreviewercanutilisethemtogeneratethe173requiredbitmapfonts`on-line'. TIfthisispossibleonyour174installationthenpleaseuseit:itsavessubstantialamountsofspace175andmeansthatyouwillautomaticallyusefontsoptimisedforeach176printer(providedevrythingiscorrectlysetup,ofcourse).178TDSdirectory:texmf/fonts/source/public/xypicv181Step6.BitmapFonts[Optional]182-------------------------------183Filesmatchingthepatterns`pkfonts/cx/*.pk'and184`pkfonts/ljfour/*.pk',whereissomenumber,containbitmap185fontfilesandshouldbeinstalledwhereDVIpreviewersandprinter186driverswillfindthem(e.g.,withun*x,the`xdvi'programshouldsee187themthroughtheXDVIFONTSenvironmentvariable). T(`cx'isa300dpi188(dotsperinch)modeand`ljfour'a600dpimode.)190NOTE:Thisstepisoptionalbecausethebitmapsareonlyneeded(and191onlyrecommended)forinstallationsthatcan'tusetheMETAFONT192sourcesdirectlybutdohavea300or600dpilaserprinterdriverthat193acceptsPKbitmapfontfiles.195TDSdirectory:texmf/fonts/pk/cx/public/xypic/dpi196/and:texmf/fonts/pk/ljfour/public/xypicv199Step7.PostScriptType1Fonts200------------------------------201Files`type1/*.pfb'containversionsoftheXy-picfontsinspecial202PostScriptformthatmaybeusefulonsomeinstallations. TTheyshould203beinstalledwheretheapplicationsusingthemlookforsuchfonts(if204usedwithDVIPSthenthe`ps/xypic.map'filefromthenextgroup205shouldalsobeinstalled).207NOTE:Someinstallations,notablyteTeX0.4,willPREFERusingthese208fontsovertheMETAFONT-generatedequivalents(IMHOthisisabugin209theMakeTeXPKscript). TOnthosesystemswerecommendthatyouALSO210installthePKfontstocircumventtheproblem.212IMPORTANT:MakesurethatyoudonothaveanyoldXy-picPostScript213`xy*.pfa'fontsfloatingaroundinyoursystem-searchforandremove214allfilesnamed`xy*.pfa'whenyouhaveinstalledthenewfonts. TOne215commonwayold(andwrong)fontsismanifestiswhensomearrowheads216appearskewedortoothin.O$*tjD.2.CINSTeALLATIONfINSTR!UCTIONS o&591??hw218TDSdirectory:texmf/fonts/type1/public/xypicv221Step8.AdobeFontMetricFiles 222-------------------------------223Files`afm/*.afm'arespecialfilesfortheAdobeTypeManagerand224someothersoftware. TInstallthemifyouneedthem.P226TDSdirectory(usually):texmf/fonts/afm/public/xypic229Step9.PostScriptFontMetricFiles230------------------------------------231Files`pfm/*.pfm'arespecialfilesfortheWindowsversionofthe232AdobeTypeManagerandsomeothersoftware. TInstallthemifyouneed233them.P235TDSdirectory(usually):texmf/fonts/pfm/public/xypic238Step10.PostScriptHeaderFiles239--------------------------------240Files`ps/*'containPostScriptheaderfiles. TIfyouplantousethe241PostScriptextensionoptionthenyoushouldcopythesefilestoa242placewhereyourPostScriptDVIdriverwillfindthem.P244NOTE:ForolderversionsofDVIPS(atleastfor5.58f)youshould245replacetheoccurrencesof`<<'with`<'in`xypic.map'.247TDSdirectory(usually):texmf/dvips/xypicv250[FILESINxy*doc.tar.gz:]253Step11.Manuals 254----------------255ThetypesetUser'sGuideisdistributedasaDVIfilewhichyoushould256beabletoprint(orpreview)onceyouhaveinstalledthefonts(as257sourceorbitmapsasapplicableforyoursystem):259 mdoc/xyguide.dvi User'sGuide,typesetusingthekernelXy-picfonts260 mdoc/xyguide.dvips ---usingDVIPSspecific`specials'261 mdoc/xyguide.ps ---inPostScript(with600dpibitmapfonts)263Similarly,thereferencemanualforthekernelandthedistributed264optionsisincludedinthesameformat:266 mdoc/xyrefer.dvi ReferenceManual,usingXy-picfonts267 mdoc/xyrefer.dvips ---usingDVIPSspecific`specials'268 mdoc/xyrefer.ps ---inPostScript(with600dpibitmapfonts)270Noticethatonlythe.dvidocumentsareportableamongallTeX271installations.273TDSdirectory:texmf/doc/generic/xypicv276That'sall. TIfyouwanttoinstalltheXy-picsources(toexperiment277withdevelopment,forexample),youneedtogettheseparate278distribution`xy*src.tar.gz'.281---------------------------------------------------------------------------P$*tj592)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw282-3-INFORMATIONFORSPECIFICSYSTEMS 283---------------------------------------------------------------------------v286UN*X287----288Theaboveinstallationprocedure(usingtheTDSrecommendedplaces)is289encodedinthescript`support/install-tds':thecommandP291 m./support/install-tds293whereisthefullpathnameofthe`texmf'directory(theroot 294oftheTDStree),willinstallalltheXy-picruntimefiles(ormore295precisely:itwillperformsteps2-5and7-10above).P297NOTE:YoumustMANUALLYremoveobsoletefiles(dostep1above)!299Ifyougetthesourcedistributionasdescribedin`TRAILER'and 300changetheconfigurationsectionoftheprovided`src/Makefile'to301reflectyourlocalfilesystemconventionsasdescribedin302`src/MAKE',thenthecommandP304 mmakeTEXMF=install306willalsodothis(butwiththegeneratedfiles,ofcourse).309VMS 310---311(Mon,20Mar1995;thankstoAustinBenson312andRalfGaertner):P314(1)VMStfmandpkfilesareinafunnyfileformat,whichmeansthey315 EITHERshouldbegeneratedfromthemfsourceonaVMSmachine,OR316 beconvertedbyaconversionprogramsuchasBILF(partofthe317 DECUSTeXdistributionandtheZOOdistributionalthoughthe318 latterisreportedtoonlyworkonVAXen).320 FIX:Install.mfsourcesandpregenerate.tfmand.pkfiles321 manuallyORconvertwithBILForasimilarprogram.323(2)Atleastsome(OLD)versionsofTeXforVMShada`buglet'todo324 withsearchingforinputfiles:ifyougo\inputonVMS325 thenTeXprependsthefilenamewithachainedlogical326 "tex_inputs:"-equivalenttoaUnixpath.Unfortunately\openin327 does_not_dothis-althoughonUnixsystems\openinwillsearch328 theTEXINPUTSpathjustas\inputdoes.330 FIX:Changethefollowinglineinxy.tex332\xydef@\xyinputorelse@@#1#2{\openin\xyread@=#1334 TO336\xydef@\xyinputorelse@@#1#2{\openin\xyread@=tex_inputs:#1v339PCWITHPCTEX340-------------341OnPCTeXfontsshouldbestoredinfiles`C:\PIXEL\DPI\.pk'342whereandarereplacedbyappropriatevalues,e.g.,`600'343and`xyatip'(thankstoAlainAmiouni).Q$*tjD.2.CINSTeALLATIONfINSTR!UCTIONS o&593??hw346MACWITHTexturesorOzTeX 347--------------------------348Seethespecialfiles`INSTALL.Textures'and`INSTALL.OzTeX'.v351---------------------------------------------------------------------------352-4-UPDATINGFROMVERSION2.6(ANDEARLIER)353---------------------------------------------------------------------------356IMPORTANT:Ifyouhaveinstalledrelease3.*or2.7-2.12thenyoucan357skipthissection.Ifyouhavenot,anduseversion2.6,thenREADIT!P359Xy-picrelease2.7wasalmostacompleterewriteofXy-pic;later360releasesareupdatestothisversion. TIfyouareusingversion2.6(or361someearlierversion)thennotethefollowing:363*AllthefontshavebeenredoneANDrenamed(excepttwothathavenot364 mchanged). TThusinstallingversion3willnotbreakanyDVIfiles365 myoualreadyhavethatweretypesetusingtheoldfonts.367 mNOTE:Infactthedistributionstillcontainstheoldfontsbutonly368 masMETAFONTsources,TFMfontmetrics,andPKbitmaps.370*Thedistributioncontainsnewversionsofthefiles`xypic.tex'and371 m`xypic.sty'thatloadXy-picinaspecialcompatibilitymode. TThus372 mretypesettingyourdocumentswillcreateDVIfilesusingthenew373 mfonts. TIfyouwishtokeeptheold`xypic.tex'and`xypic.sty'then374 myoushouldrenamethembeforeinstallation;wesuggestnamingthem375 m`xypic-2.tex'and`xypic-2.sty'andREMEMBERtochangetheline376 m`\inputxypic'in`xypic-2.sty'to`\inputxypic-2'!378*Thereareafewpointswherethebackwardscompatibilityisnot379 mperfect--thesearenotedinthedocumentation.v382---------------------------------------------------------------------------383-5-BUGS&COMMENTS384---------------------------------------------------------------------------387Wewillappreciatereportsonanyproblemsyoumayencounterand388opinionsyouhaveonhowtheusefulnessofXy-piccanbeimproved.389PleasereportusingeitherP391 mElectronicmail(Internet):krisrose@ens-lyon.fr-P[preferred]393 mPapermail:QKristofferH.Rose 394QLaboratoiredel'InformatiqueduParall@Velisme395QEcoleNormaleSup@VerieuredeLyon396Q46,All@Veed'Italie397QF-69364Lyoncedex07398QFRANCEP400 mFax:Q+33472728080402 mW3Q404---------------------------------------------------------------------------406ThisistheendofINSTALL. TWehopeyou'llenjoyXy-pic!R$w*tj594)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw408Ā--RossMooreandKristofferRoseP410---------------------------------------------------------------------------412KristofferHgsbroRose,Ph.D.,prof.associ@Ve T 413Laboratoiredel'InformatiqueduParall@Velisme TequipePLUME,bureauLR5-026414EcoleNormaleSup@VerieuredeLyon;46,Alleed'Italie;F-69364Lyon07cedex415phone:+33(0)472728642;fax:...8080P417--------------------------------------------------------------------------- 1D.3 ÎGenerationThesef lesarerelevdDan!twhenXY p-picisgeneratedfromsourcesonaun*xsystem.#ލD.3.1dMAKEz1-*-text-*-$Id:MAKE,v3.51997/05/2822:40:26krisroseExp$34g================================================ 44gMAKE:Xy-picdiagramtypesettingpackageSOURCES54g================================================P7WelcometothesourcedistributionoftheXy-picmacrosfortypesetting8diagrams! TBelowyouwillfindthefollowingsections:10 m-1-Licenseinformation11 m-2-Makingthepackageandmanualfromsources12 m-3-Bugs&comments13 m-4-Distributionlog15Pleaseseethefile`README'forasummaryoffeatures`TRAILER'forhow16youcanobtainthenewestXy-pic,andthevarious`INSTALL'filesifyou17havealreadyretrievedpregeneratedmacrosandfonts.v20----------------------------------------------------------------------21 m-1-LICENSEINFORMATION22----------------------------------------------------------------------24TheXy-picpackageislicensedunder`GNUCopyLeft':26 mXy-pic:TypesettinggraphsanddiagramswithTeX.27 mCopyright(c)1991-1997 TKristofferH.Rose29 mTheXy-picmacropackageisfreesoftware;youcanredistributeit30 mand/ormodifyitunderthetermsoftheGNUGeneralPublicLicenseas31 mpublishedbytheFreeSoftwareFoundation;eitherversion2ofthe32 mLicense,or(atyouroption)anylaterversion.34 mTheXy-picmacropackageisdistributedinthehopethatitwillbe35 museful,butWITHOUTANYWARRANTY;withouteventheimpliedwarrantyof36 mMERCHANTABILITYorFITNESSFORAPARTICULARPURPOSE. TSeetheGNU37 mGeneralPublicLicenseformoredetails.39 mYoushouldhavereceivedacopyoftheGNUGeneralPublicLicense40 malongwiththispackage;ifnot,writetotheFreeSoftware41 mFoundation,Inc.,675MassAve,Cambridge,MA02139,USA.S$*tjD.3.CGENERAeTIONk+595??hw43(Someoptionsmaybecopyrightbyotherpeoplebuttheconditionsremain 44thesame).P46ThefulltextoftheGNUGeneralPublicLicenseissuppliedwithXy-pic47inthefile`COPYING'.v50----------------------------------------------------------------------51 m-2-MAKINGTHEPACKAGEANDMANUALFROMSOURCES52----------------------------------------------------------------------54ThissectiondescribeshowtomaketheXy-picpackagefromsourceson55aun*xsystem. TMakingXy-picrequiresuse(andsomeknowledge)of56severalstandardun*xutilities;furthermorethetypesettingogthe57referencemanualneedsa**LARGE**TeX(seebelow),andfull58installationrequiresboththeplainTeXandLaTeX2eformatsaswell59asMETAFONT(withtheplainandcmbases.61NOTEFORVMSUSERS:Theprocedureformakingthepackagefromsources62describedbelowdoesnotworkonVMS,ofcourse. TYoucan,however,63runtheenclosed`support/doc2tex.com'procedurefilecontributedby64R.Gaertnertocreatethe.texfilesfromthe.docfiles.66NOTEFOROTHERNON-UN*XUSERS:Ifyoudonothaveaun*xsystemthen67youarebestadvicedtogetthe`readytorun'packageandinstallit68asdescribedin`INSTALL'.70UN*XGENERATIONANDINSTALLATIONSTEPS:721.Firstmakesurethatyouhaveaseparatedirectory`src'which73containsallthefilesofthedistribution(includingthisfile).75Thefile`MANIFEST'containsalistofthefiles.772.Nextyoushouldeditthe`Configurationsection'of`Makefile'tofit78theconfigurationofyoursystembyfollowingthedirectionsgiven79there.81Whenyouhaveconfiguredeverythingthenjustdo83#imake85whichshouldgenerateallthefilesneededtousethepackage.873.YoucantestthenewlygeneratedsystembytypesettingtheUser's88Guidewhichyouprobablywantforreferenceanyway:do90#imakeguide92whichshouldproduceafile`xyguide.dvi'byrunningLaTeXseveral93timesandBibTeXonce.954.IfpossibleitisagoodideatotrytopreviewtheUser'sGuide(in96whateverwayyoudoonyoursystem)atthispoint. TThisisslightly97difficultbecauseitusestheXy-picfontswhichyouhaven't98installedyet,sothepreviewershouldbeinstructedtolookinthe99currentdirectorybeforelookinginthesystemfontdirectories. TThe100followingshowhowtodothisforthemostcommonpreviewer(onun*x101systemswithXwindows)andmightworkforyou:103#ienvXDVIFONTS=.:xdvixyguide.dviT$ʀ*tj596)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw1055.Youcantheninstallthepackagebyensuringthattheinstall 106directoriesin`Makefile'aresetupcorrectlyanddoP108#imakeinstall110Thiswillreplaceexisiting`xypic.tex'and`xypic.sty'fileswith111thenew(compatibilitymode)ones;theoldoneswillremainavailable112withan`.orig'suffix(ifyouwanttokeeptheoldversionthenread113section2of`INSTALL').1156.Youcantypesettheentiremanualwith117#imakemanual119tocreatebothfiles`xyguide.dvi'and`xyrefer.dvi';theycanbe120installedintheTEXDOCdirectorywiththecommand122#imakeinstall.manual124NOTE:thisrequiresaLARGETeXsystem:thelasttypesetting(running125LaTeXon`xyrefer.man'withoutanydriver)usesmorethan600000TeX126words,asnotedabove. TUsingKarlBerry'sWeb2C7.0thisis127achievedbyincludingthelines129extra_mem_top=400000%extrahighmemoryforchars,tokens,etc.130extra_mem_bot=400000%extralowmemoryforboxes,glue,breakpoints,etc.132inthetexmf.cnffile.1347.Youcanbuildformatfilesbythecommands136#imakexytex.fmt137#imakexylatex.fmt139(thelatterrequiresthenewstandardLaTeXreleaseakaLaTeX2e).140Theseassumethatthefiles`plain.tex'and`latex.ltx'areavailable141intheTeXsearchpath;alsoyouhavetoinstalltheformatfilesin142theappropriateplaceyourself.144Thatisall.v147----------------------------------------------------------------------148 m-3-BUGS&COMMENTS149----------------------------------------------------------------------151Iwillappreciatereportsonanyproblemsyoumayencounterand152opinionsyouhaveonhowtheusefulnessofXy-piccanbeimproved.153Pleasereportusingeither155 mElectronicmail(Internet):krisrose@brics.dk {[preferred]157 mPapermail:QKristofferH.Rose158QBRICS/ComputerScience159QUniversityofAarhus160QNyMunkegade,building540161QDK-8000AarhusC162QDENMARK164 mFax:Q+4589423255 Tatt.K.Rose/KarenMller166YoucanalwaysgetthelatestnewsofXy-picfromcomputersconnectedU$Š*tjD.3.CGENERAeTIONk+597??hw167totheInternetbyopeningtheXy-picWorldWideWebpage:P169 mW3Qv172---------------------------------------------------------------------- 173 m-4-DISTRIBUTIONLOG174----------------------------------------------------------------------176Thefollowingversionshavebeendistributedpublicly:178$Log:MAKE,v$179Revision3.5 T1997/05/2822:40:26krisrose180Fixedmissingbreaksbug.182Revision3.3 T1996/12/1903:31:56krisrose183Maintenancerelease185Revision3.1 T1995/09/0520:31:32kris186Releasing!188Revision3.0 T1995/07/0720:14:21kris189Majorreleasew/newUser'sGuide!191RenamedtoMAKEforversion3sourcedescription.193Revision2.12 T1994/10/2511:34:25kris194Interimreleasejustbeforev3[workswithAMS-LaTeX1.2]...196Revision2.11 T1994/07/0510:37:32kris197Third3betarelease[bugfixes].198Experimentalgraphfeatureincluded(forECCT-94presentation).200Revision2.10 T1994/06/1512:59:44kris201Second3betarelease[bugfixes].203Revision2.8 T1994/04/1109:31:09kris204Second(bugfix)3alpharelease[corrected].206Revision2.7 T1994/03/0802:06:01kris207Release3alpha.209MAJORREWRITEofdistributiontoprepareforXy-pic3functionality.210CurveextensioncodecontributedbyRossMoore;211supportfundingfromMURG,ARC,andequipmentfromDEC.213Revision2.6 T1992/06/2401:23:34kris214Added`hook'tipsusingnewfontxyqc10.215AddednewPOSitions:*and!.216Addedtriplelines\Ssolid,\Ddashed,\Ddotted,andcompanion\Ttip.217Reorganisedmanual.219Revision2.5 T1992/02/2403:30:54kris220Fixedbugsin\Directioncalculationlogic...221Added(FACTOR)to\rotatetoallowarbitraryrotation.222`intermediatepointsnowacceptanoptional/RADIUSargument.223Added\Tipwithwidetip.225Revision2.4 T1992/01/2202:15:10kris226Fixedbugs[withthanks]:227\\workswithAMS-LaTeX:don'tuse\Let@[WernerStruckmann/DarrelHankerson]V$m*tj598)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw228NospuriousarrowheadswithLaTeX:\pitnowundefined[WernerStruckmann] 229\Solidworks:sets\Density[DaveBowen]230Shortdiagonallineswork...majorrewriteof\connectv@[EricDomenjoud]P232Revision2.3 T1992/01/1021:38:27kris233Severalbugsfixed[withthanks]:234The\ddtoXand\uutoXarrowswereinterchanged[NicoVerwer].235Somediagonallineswerewrong[EricDomenjoud].236AMS-LaTeXusershadnameclashproblems[WernerStruckmann].237TheinstallationinstructionsintheMakefilewerebuggy[LeenTorenvliet].239Revision2.2 T1992/01/0904:05:40kris240Patchedtofixproblemwith\textandsupportAMS-LaTeX.242Revision2.1 T1992/01/0214:54:07kris243Releaseversion.245Revision1.40 T1991/12/1704:53:23kris246Versiondistributedas`finaldraft'onUsenet.248----------------------------------------------------------------------250Thisistheendofthesourceoverview. TIhopeyouwillenjoyXy-pic!252----------------------------------------------------------------------254KristofferHgsbroROSE6255BRICS6256DepartmentofComputerScienceB3.26,+4589423193(fax+4589423255)257UniversityofAarhus,NyMunkegade,build.540,8000ArhusC,DENMARK259----------------------------------------------------------------------OD.3.2dMake leb퍍1#$Id:Makefile,v3.71999/02/1615:12:50krisroseExpkrisrose$2#3#Un*xMakefileforXy-picmacros,fonts,documentation,anddistribution.4#Copyright(c)1991-1997 TKristofferH.Rose5#6#ThisfileispartoftheXy-picmacropackage.7#Copyright(c)1991-1997 TKristofferH.Rose8#SeetheREADMEandINSTALLfilesforfurtherinformation.9#10#TheXy-picpackageisfreesoftware;youcanredistributeitand/ormodify11#itunderthetermsoftheGNUGeneralPublicLicenseaspublishedbythe12#FreeSoftwareFoundation;eitherversion2oftheLicense,or(atyour13#option)anylaterversion.14#15#TheXy-picpackageisdistributedinthehopethatitwillbeuseful,but16#WITHOUTANYWARRANTY;withouteventheimpliedwarrantyofMERCHANTABILITY17#orFITNESSFORAPARTICULARPURPOSE. TSeetheGNUGeneralPublicLicense18#formoredetails.19#20#YoushouldhavereceivedacopyoftheGNUGeneralPublicLicensealong21#withthispackage;ifnot,writetotheFreeSoftwareFoundation,Inc.,W$*tjD.3.CGENERAeTIONk+599??hw22#675MassAve,Cambridge,MA02139,USA.P24VERSION=3.7 25SHORTVERSION=3727#CONTENTS:28#29#>Configurationsection:30##iDirectories.31##iFonts.32##iPrograms.33#34#>Generictargets.35#>Macros.36#>PostScriptheaders.37#>Fonts.38#>Formats.39#>Manual:User'sguideandreferencemanual.40#>Referencemanual.41#>TeXnicaldocumentation.42#>Distributiontree.43#>Ftp'abledistribution.44#>WWWpublicity.45#>Announcements.46#>Tags.47#>RCSstuff.48#>Developmenttargets.49#50#>Log.v53####CONFIGURATIONSECTION##################################################55#PleaseconfigureasinstructedbelowforeachoftheDIRECTORIES,FONTS,56#andPROGRAMSpartsbyeditingthedefinitionstofityoursystem.58####DIRECTORIES.59#60#Thefollowingvariablesdefinethedirectorieswherethevariouspartsof61#Xy-picshouldbeinstalled.62#63#Youshould*EITHER*setTDSROOTtotherootofaTDS-compliantdirectory64#tree,usuallynamed.../texmf(ifyouhaveaTDS[TeXDirectoryStructure]65#compliantsystemthenthatisinfactallyouneedtodo):66#67USR=/usr/local68TDSROOT=$(USR)/share/texmf69#70#*OR*youshouldseteachofthefollowingvariablesrightforyousystem71#(dothisifyoursetupdoesnotmatchTDSexactly):72#73TEXINPUTDIR=$(TDSROOT)/tex/generic/xypic74TEXFONTDIR=$(TDSROOT)/fonts/tfm/public/xypicX$]*tj600)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw75TEXDOCDIR=$(TDSROOT)/doc/generic/xypic 76MFINPUTDIR=$(TDSROOT)/fonts/source/public/xypic77TYPE1DIR=$(TDSROOT)/fonts/type1/public/xypic78PFMDIR=$(TDSROOT)/fonts/pfm/public/xypic79AFMDIR=$(TDSROOT)/fonts/afm/public/xypic80PDFDIR=$(TDSROOT)/pdftex/xypic81PSHEADERDIR=$(TDSROOT)/dvips/xypic82#83#FONTDIRisthedirectorywherebitmapfontsarestoredandisspecial84#(Ifyoudonotplantoinstallbitmapfontsbecausetheyareautomatically85#generatedandremembertosettheMAGSvariablebelowto`.'thenyoumay86#ignorethisstep.)87#88#Sincethelocationofindividualfontssometimesdependonpropertiesof89#thefont,youcaninsert90#91##i$${dpi} forthefontresolutionin`DotsPerInch'(NOTthe92# deviceresolution---thatshouldbeinserteddirectly)93#94##i$${mode} fortheMETAFONT`mode'usedtogeneratethefont95#96#---whatthesegetsettodependsonthenextsection.97#98#Forexample,ifyousetFONTDIR=/usr/lib/tex/pk$${dpi}anddecideinthe99#nextsectiontogeneratePKfontsat300dpiusingagenericmode100#(localfont)thenyougetfilesnamed/usr/lib/tex/pk300/xy*.300pk.101#102#Ifyourinstallationstillusesthe(inefficient)principleofhavingall103#PKfilesinthesamedirectoryastheTFMfilesthenyoushouldjustset104#FONTDIR=$(TEXFONTDIR).105#106FONTDIR=$(TDSROOT)/fonts/pk/$${mode}/public/xypic/dpi$${dpi}P108####FONTS.109#110#TheMETAFONTprogramneedstoknowthe`mode'ofyourprinterinorderto111#beabletogeneratecorrectfontsforit. TOnmostinstallationsthemode112#`localfont'ismadesynonymouswiththemoderequiredforthedefault113#printer;inthatcaseyoucanjustpickthe`MODES=localfont'line. TIf114#thisisnotthecase--oryouneedfontsforseveraloutputdevices---then115#youwillhavetoconsultthelocalMETAFONTguide/gurutoinquirewhat116#modesareusedatyoursite. TAgoodplacetolookforthemodesusedisin117#theMakeTeXPKscriptfoundonsomesites.118#119#SetMODEStothelistofprintersyouwishtouse:120#121MODES=localfont122#MODES=cxljfour123#124#YoushouldalsodecidewhichTeX\magstepsyouwishthefonttobeY%*tjD.3.CGENERAeTIONk+601??hw125#generatedat. 126#127#Thedefaultis.(dot)whichpreventsinstallationofanybitmapsbecause128#mostmoderninstallationsgeneratethemautomatically.129#130MAGS=.131#MAGS=0132#MAGS=00.512P134####PROGRAMS.135#136#Youdon'thavetoeditthefollowinglinesunlessyouhaveanon-standard137#un*xsystemorun*xTeXinstallation...138#139SHELL=/bin/sh140#141TEX=TEXFONTS=.:$(TEXFONTDIR):$$TEXFONTStex142LATEX=TEXFONTS=.:$(TEXFONTDIR):$$TEXFONTSlatex143PDFLATEX=TEXFONTS=.:$(TEXFONTDIR):$$TEXFONTSpdflatex144BIBTEX=BIBINPUTS=.bibtex145MAKEINDEX=makeindex146INITEX=TEXFONTS=.:$(TEXFONTDIR):$$TEXFONTSinitex147#148#SetMFtoacommandthatwillrunplainMETAFONTonyoursystem.149#150MF=MFINPUTS=.:$(MFINPUTDIR):$$MFINPUTSmf151#152#SetGFTOPKtothecommand"false"andPKto"gf"ifyouuseGFratherthanPK153#bitmapfontfiles. TThereisnosupportforPXL-files[aretheystillused?].154#(Note:thedefaultsettingofMAGSabovedoesn'tusebitmapsatall.)155#156GFTOPK=gftopk157PK=pk158#159#GFTOPK=false160#PK=gf161#162RM=rm-fr163CP=cp-f164MV=mv-f165#166#SettheINSTALLstocp-fifyoursystemdoesnothavetheinstallcommand.167#168INSTALL=install-c-m444169INSTALLW=install-c-m644170INSTALLX=install-c-m555171#INSTALL=cp-f172#INSTALLW=cp-f173#INSTALLX=cp-f174#Z%*tj602)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw175#SetMKDIRtoamkdircommandthatcreatesintermediatedirectories. 176#177MKDIR=mkdir-p-m755178#179#DOC2TEX:outputefficient.texfilefrominefficient.docwith180#inlineddocumentation[myfavouritehack:-]. TRemovesallDOCMODElines,181#leavingonlythingsbeforethefirstandinDOCMODE(...DOCMODE)brackets;182#alsoremovesallblanklinesandcommentlines.183#184#IfitbreaksyoursedyoucanjustsetDOC2TEXtocatalthoughthatwill185#maketheinstalledmacrofilesthreetimeslargerandthereadingofthem186#somewhatslower...sointhatcaseyouareprobablybetterofgettingthe187#`run'distributionwherethishasalreadybeendoneforyou!188#189DOC2TEX=sed\190#i-e'/^.DOCMODE(/bYes'\191#i-e'/^.DOCMODE/bNo'\192#i-e'x'\193#i-e'/%%DONTCOPY%%/bIgnore'\194#i-e'x'\195#i-e's/[ ][Y]*//g'\196#i-e's/{%.*$$/{%/'-e's/}%.*$$/}%/'-e's/%.*$$//' T\197#i-e'/^*%$$/d'-e'/^*$$/d'-e'/^*%[^%]/d'\198#i-e's/^%%\$$Id/%%$@from$$Id/'\199#i-e's/REPLACEWITHVERSION/$(VERSION)/'\200#i-e's/REPLACEWITHSHORTVERSION/$(SHORTVERSION)/'\201#i-e'bEnd'\202#i-e':No'-e's/.*/%%DONTCOPY%%/'-e'x'-e'd'\203#i-e':Yes'-e's/.*//'-e'x'-e'd'\204#i-e':Ignore'-e'x'-e'd'\205#i-e':End'206#207#MF2TFMscript:make.tfmfileandallrequestedbitmapfilesfrom.mf208#filebyexecutingMETAFONTwith$${mode}and$${dpi}asdescribedabove.209#210#NOTE:foruseasimplicitmakerule;donotmodifyunlessyouaresureyou211#needto!212#213MF2TFM=set-x;formodein$(MODES);do\214#iif["$(MAGS)"="."];then\215/$(MF)"\\mode=$$mode;input$<";\216/$(RM)$*.*gf;\217#ielse\218/formagin$(MAGS);do\219:$(MF)"\\mode=$$mode;mag=magstep($$mag);input$<";done;\220/forfin$*.*gf;doiftest-f"$$f";then\221:if$(GFTOPK)./$$f;then$(RM)$$f;fi;else:;fi;done;\222#ifi;doneP224####ENDOFCONFIGURATIONSECTION###########################################[%*tjD.3.CGENERAeTIONk+603??hw227#GENERICTARGETS. 228#229all:Qmacrosfontsobsoletefonts230.PHONY:Qallinstallcleanrealcleansterileworld231#232install:Qallinstall.macrosinstall.trailer\233Qinstall.fontsinstall.obsoletefonts\234Qinstall.psinstall.psfonts235#236clean:237#i$(RM)*.aux*.toc*.lof*.blg*.log*.idx*.ilg*.fmt\238/*.ps*.ppm*.nops*.tmp*.ans*.xyc*.xyd\239/./#**~core*.BAK*JNLxytest.*gfout240#241realclean:Qclean242#i$(RM)MANIFESTVERSIONSCATALOG243#i$(RM)xydoc.back;touchxydoc.back244#i$(RM)*.bbl*.glo*.ind\245/*.tfm*.*gf*.*pk*.tex*.dvips*.dvi*.pdf*.last*.pro\246/*.gif*.epsf*.size*.pbm*.ppm\247/*.afm*.pfm*.pfb*.asc248#i$(RM)xyguide-htmlindex*249#i$(RM)pnmrawtopcropwhite250#251sterile:Qrealcleanrcsclean252#i$(RM)xydoc.backmake.*TAGS253#i$(MAKE)Makefilexydoc.styxydoc.bib254#255world:Qrealcleanrcsclean256#itime$(MAKE)allftpftpdocwww2>&1|teemake.worldv259#MACROS.260#261TRAILERSOURCES= TRAILERCOPYINGCATALOG.doc\262 MAKEREADMEMakefile$(INSTALLSTAR)P264INSTALLSTAR= INSTALLINSTALL.OzTeXINSTALL.Textures266KERNELSOURCES= xy.docxyidioms.docxyrecat.doc268OPTIONSOURCES= \ 269#ixyframe.docxycmtip.docxytips.docxycurve.doc\270#ixyline.docxyrotate.docxycolor.docxycrayon.docxytile.doc\271#ixyimport.docxytpic.docxytp-f.doc\272#ixyps.docxyps-ps.docxyps-pro.docxyps-col.docxyps-c.docxyps-f.doc\273#ixyps-l.docxyps-r.docxyps-s.docxyps-t.doc\274#ixypsdict.docxypspatt.docxydocps.doc\275#ixydummy.docxyall.docxymatrix.docxyarrow.docxygraph.doc\276#ixy2cell.docxypoly.docxyarc.docxyknot.docxyweb.doc\277#ixydvips.docxytextures.docxy16textures.docxyoztex.docxy17oztex.doc\278#ixycmactex.docxydvitops.docxyemtex.docxydvidrv.docxyxdvi.doc\279#ixymovie.docxyv2.docxypic.doc\\%'ՠ*tj604)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw280#ixynecula.docxysmart.docP282FORMATSOURCES= xytex.inixylatex.ini284LATEXSTYLES= xy.styxypic.stymovie.cls 285OPTIONDATA= xymacpat.xyp287MACROSOURCES= $(TRAILERSOURCES)$(KERNELSOURCES)$(LATEXSTYLES)\288 $(OPTIONSOURCES)$(OPTIONDATA)$(FORMATSOURCES)290TRAILERRUN= TRAILERCOPYINGCATALOGREADME\291 $(INSTALLSTAR)VERSIONS293KERNELRUN= xy.texxyidioms.texxyrecat.tex295OPTIONRUN= \296#ixyframe.texxycmtip.texxytips.texxycurve.tex\297#ixyline.texxyrotate.texxycolor.texxycrayon.texxytile.tex\298#ixyimport.texxytpic.texxytp-f.tex\299#ixyps.texxyps-ps.texxyps-pro.texxyps-col.texxyps-c.texxyps-f.tex\300#ixyps-l.texxyps-r.texxyps-s.texxyps-t.tex\301#ixypsdict.texxypspatt.tex$(OPTIONDATA)\302#ixydummy.texxyall.texxymatrix.texxyarrow.texxygraph.tex\303#ixy2cell.texxypoly.texxyarc.texxyknot.texxyweb.tex\304#ixydvips.texxytextures.texxy16textures.texxyoztex.texxy17oztex.tex\305#ixycmactex.texxydvitops.texxyemtex.texxydvidrv.texxyxdvi.tex\306#ixymovie.texxyv2.texxypic.tex\307#ixynecula.texxysmart.tex309MACRORUN= $(KERNELRUN)$(OPTIONRUN)$(FORMATSOURCES)\310 $(LATEXSTYLES)311PSRUN= xy$(SHORTVERSION)dict.pro313SUPPORT= install-tdsdoc2tex.com\314 dvitogif89apnmrawtopcropwhite.c316#Macroshave.texsuffixandaregeneratedfromthe.docfiles.317#318.SUFFIXES:Q.tex.doc319.doc.tex:;Q$(DOC2TEX)$<>$@320#321.PHONY:Qmacrosinstall.macros322#323macros:Q$(MACRORUN)324install.macros:Q$(MACRORUN)325#i-test-d$(TEXINPUTDIR)||$(MKDIR)$(TEXINPUTDIR)326#iforfin$(MACRORUN);do$(INSTALL)$$f$(TEXINPUTDIR)/$$f;done327#328#Kerneldependencies:329#330xy.tex:Yxy.doc331xyidioms.tex:Yxyidioms.doc332xyrecat.tex:Yxyrecat.doc333#334#Extensionoptiondependencies:]%2*tjD.3.CGENERAeTIONk+605??hw335# 336xyframe.tex:Yxyframe.doc337xytips.tex:Yxytips.doc338xycmtip.tex:Yxycmtip.doc339xycurve.tex:Yxycurve.doc340xyline.tex:Yxyline.doc341xyrotate.tex:Yxyrotate.doc342xycolor.tex:Yxycolor.doc343xycrayon.tex:Yxycrayon.doc344xyimport.tex:Yxyimport.doc345xytile.tex:Yxytile.doc346#347xytpic.tex:Yxytpic.doc348xytp-f.tex:Yxytp-f.doc349#350xyemtex.tex:Yxyemtex.doc351#352xyps.tex:Yxyps.doc353xyps-ps.tex:Yxyps-ps.doc354xyps-pro.tex:Yxyps-pro.doc355xyps-col.tex:Yxyps-col.doc356xyps-c.tex:Yxyps-c.doc357xyps-f.tex:Yxyps-f.doc358xyps-l.tex:Yxyps-l.doc359xyps-r.tex:Yxyps-r.doc360xyps-s.tex:Yxyps-s.doc361xyps-t.tex:Yxyps-t.doc362xypsdict.tex:Yxypsdict.doc363xypspatt.tex:Yxypspatt.doc364#365#Featureoptiondependencies:366#367xydummy.tex:Yxydummy.doc368xyall.tex:Yxyall.doc369#370xymatrix.tex:Yxymatrix.doc371xyarrow.tex:Yxyarrow.doc372xygraph.tex:Yxygraph.doc373xy2cell.tex:Yxy2cell.doc374xypoly.tex:Yxypoly.doc375xyarc.tex:Yxyarc.doc376xyknot.tex:Yxyknot.doc377xyweb.tex:Yxyweb.doc378#379#Driveroptiondependencies:380#381xycmactex.tex:Yxycmactex.doc382xydvips.tex:Yxydvips.doc383xydvitops.tex:Yxydvitops.doc^%>*tj606)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw384xydvidrv.tex:Yxydvidrv.doc 385xydocps.tex:Yxydocps.doc386xytextures.tex:Yxytextures.doc387xy16textures.tex:Yxy16textures.doc388xyoztex.tex:Yxyoztex.doc389xymovie.tex:Yxymovie.doc390xy17oztex.tex:Yxy17oztex.doc391xyxdvi.tex:Yxyxdvi.doc392#393#Backwardscompatibilitydependencies:394#395xyv2.tex:Yxyv2.doc396xypic.tex:Yxypic.doc397#398#Requireddocumentationfiles399#400install.trailer: $(TRAILERRUN)401#i-test-d$(TEXDOCDIR)||$(MKDIR)$(TEXDOCDIR)402#iforfin$(TRAILERRUN);do$(INSTALL)$$f$(TEXDOCDIR)/$$f;donev405#PostScriptHEADERS:406#407.PHONY:install.ps408install.ps: $(PSRUN)409#itest-d$(PSHEADERDIR)||$(MKDIR)$(PSHEADERDIR)410#iforfin$(PSRUN);do$(INSTALL)$$f$(PSHEADERDIR)/$$f;done413#FONTS.414#415.PHONY:Qmfinputstexfonts$(PK)fontsfontsinstall.fonts\416Qpsfontsinstall.psfontsobsoletefontsinstall.obsoletefonts417#418METAFONTS=\419#ixydash10.mfxybsql10.mfxyd2.mf\420#ixyatip10.mfxybtip10.mfxytech.mfxyatip.mfxybtip.mfxyd.mf\421#ixycirc10.mf\422#ixycmat10.mfxycmbt10.mfxycmat11.mfxycmbt11.mf\423)Ixycmat12.mfxycmbt12.mfxycm.mf\424#ixyeuat10.mfxyeubt10.mfxyeuat11.mfxyeubt11.mf\425)Ixyeuat12.mfxyeubt12.mfxyeuler.mf426#427TEXFONTRUN=\428#ixydash10.tfmxybsql10.tfmxyatip10.tfmxybtip10.tfmxycirc10.tfm\429#ixycmat10.tfmxycmbt10.tfmxycmat11.tfmxycmbt11.tfm\430)Ixycmat12.tfmxycmbt12.tfm\431#ixyeuat10.tfmxyeubt10.tfmxyeuat11.tfmxyeubt11.tfm\432)Ixyeuat12.tfmxyeubt12.tfm433#434#Note:weonlydependonthetfm-files,soyoumustremovethemto435#regeneratethefontsatalldesiredmagnifications._%F*tjD.3.CGENERAeTIONk+607??hw436# 437.SUFFIXES:Q.mf.tfm438.mf.tfm:;Q$(MF2TFM)439#440mfinputs:Q$(METAFONTS)441#442texfonts$(PK)fontsfonts:$(METAFONTS)$(TEXFONTRUN)443install.fonts:Qfonts444#iiftest-n"$(MFINPUTDIR)";then\445/test-d$(MFINPUTDIR)||$(MKDIR)$(MFINPUTDIR);\446/forfin$(METAFONTS);do$(INSTALL)$$f$(MFINPUTDIR)/$$f;done;fi447#i-test-d$(TEXFONTDIR)||$(MKDIR)$(TEXFONTDIR)448#iforfin$(TEXFONTRUN);do$(INSTALL)$$f$(TEXFONTDIR)/$$f;done449#i#450#i["$(MAGS)"="."]||\451)Iformodein$(MODES);doformagin$(MAGS);do\452/$(RM)xytest.*gfxytest.*tfm;\453/$(MF)"\\mode=$$mode;mag=magstep($$mag);inputxytest";\454/dpi="`exprxytest.*gf:'xytest\.\([0-9]*\)gf'`";\455/forfin$(TEXFONTRUN);do\456:f="`expr$$f:'\([a-z0-9]*\)\.tfm'`.$${dpi}$(PK)";\457:if[!-f$$f];thenecho"ERROR:FONT$$fNOTGENERATED";\458:elsetest-d"$(FONTDIR)"||$(MKDIR)$(FONTDIR);\459Fe$(INSTALL)$$f$(FONTDIR)/$$f;fi;done;done;done460#461xydash10.tfm:Qxydash10.mfxyd2.mfxytest.mf462xybsql10.tfm:Qxybsql10.mfxyd.mfxytest.mf463xycirc10.tfm:Qxycirc10.mfxytest.mf464xyatip10.tfm:Qxyatip10.mfxytech.mfxyatip.mfxyd.mfxytest.mf465xybtip10.tfm:Qxybtip10.mfxytech.mfxybtip.mfxyd.mfxytest.mf466xycmat10.tfm:Qxycmat10.mfxyatip.mfxyd.mfxytest.mf467xycmbt10.tfm:Qxycmbt10.mfxybtip.mfxyd.mfxytest.mf468xyeuat10.tfm:Qxyeuat10.mfxyatip.mfxyd.mfxytest.mf469xyeubt10.tfm:Qxyeubt10.mfxybtip.mfxyd.mfxytest.mf470#471#Obsoletefonts(from2.6andbefore).472#473OBSOLETEMETAFONTS=xyline10.mfxyqc10.mfxymisc10.mf474OBSOLETETEXFONTRUN=xyline10.tfmxyqc10.tfmxymisc10.tfm475#476obsoletefonts:Q$(OBSOLETEMETAFONTS)$(OBSOLETETEXFONTRUN)477#478install.obsoletefonts: obsoletefonts479#iiftest-n"$(MFINPUTDIR)";then\480/test-d$(MFINPUTDIR)||$(MKDIR)$(MFINPUTDIR);\481/forfin$(OBSOLETEMETAFONTS);do$(INSTALL)$$f$(MFINPUTDIR)/$$f;done;fi482#i-test-d$(TEXFONTDIR)||$(MKDIR)$(TEXFONTDIR)483#iforfin$(OBSOLETETEXFONTRUN);do\484/$(INSTALL)$$f$(TEXFONTDIR)/$$f;done`%QZ*tj608)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw485#i# 486#i["$(MAGS)"="."]||\487)Iformodein$(MODES);doformagin$(MAGS);do\488/$(RM)xytest.*gfxytest.*tfm;\489/$(MF)"\\mode=$$mode;mag=magstep($$mag);inputxytest";\490/dpi="`exprxytest.*gf:'xytest\.\([0-9]*\)gf'`";\491/forfin$(OBSOLETETEXFONTRUN);do\492:f="`expr$$f:'\([a-z0-9]*\)\.tfm'`.$${dpi}$(PK)";\493:if[!-f$$f];thenecho"ERROR:FONT$$fNOTGENERATED";\494:elsetest-d"$(FONTDIR)"||$(MKDIR)$(FONTDIR);\495Fe$(INSTALL)$$f$(FONTDIR)/$$f;fi;done;done;done496#497xyline10.tfm:>xyline10.mfxytest.mf498xyqc10.tfm:Rxyqc10.mfxytest.mf499xymisc10.tfm:>xymisc10.mfxytest.mfP501#PostScriptfontsw/supportfiles...fromY&Y.502#503TYPE1FONTS=\504#ixyatip10.pfbxybsql10.pfbxybtip10.pfbxycirc10.pfbxydash10.pfb\505#ixycmat10.pfbxycmbt10.pfbxyeuat10.pfbxyeubt10.pfb506#507PFMFONTS=\508#ixyatip10.pfmxybsql10.pfmxybtip10.pfmxycirc10.pfmxydash10.pfm\509#ixycmat10.pfmxycmbt10.pfmxyeuat10.pfmxyeubt10.pfm510#511AFMFONTS=\512#ixyatip10.afmxybsql10.afmxybtip10.afmxycirc10.afmxydash10.afm\513#ixycmat10.afmxycmbt10.afmxyeuat10.afmxyeubt10.afm514#515YANDYFONTS=$(TYPE1FONTS)$(AFMFONTS)$(PFMFONTS)516#517psfonts:$(YANDYFONTS)518#519$(YANDYFONTS):YandY_xy_fonts.zip520#iunzip-aoLYandY_xy_fonts.zip521#itouch$(YANDYFONTS)522#523install.psfonts:psfontsxypic.map524#itest-d$(TYPE1DIR)||$(MKDIR)$(TYPE1DIR)525#itest-d$(PFMDIR)||$(MKDIR)$(PFMDIR)526#itest-d$(AFMDIR)||$(MKDIR)$(AFMDIR)527#itest-d$(PDFDIR)||$(MKDIR)$(PDFDIR)528#iforfin$(TYPE1FONTS);do$(INSTALL)$$f$(TYPE1DIR)/$$f;done529#iforfin$(PFMFONTS);do$(INSTALL)$$f$(PFMDIR)/$$f;done530#iforfin$(AFMFONTS);do$(INSTALL)$$f$(AFMDIR)/$$f;done531#itest-d$(PSHEADERDIR)||$(MKDIR)$(PSHEADERDIR)532#i$(INSTALL)xypic.map$(PSHEADERDIR)/xypic.map533#534#Alltogether...a%]|*tjD.3.CGENERAeTIONk+609??hw535# 536FONTSOURCES=$(METAFONTS)$(OBSOLETEMETAFONTS)xytest.mf\537#iYandY_xy_fonts.zipxypic.mapP539#FORMATS:540#541#Buildformats...542#543.SUFFIXES:Q.ini.fmt544.ini.fmt:;Q$(INITEX)$<545#546xytex.fmt:Qxytex.inimacros547xylatex.fmt:Qxylatex.inimacros548#xyamslatex.fmt: xyamslatex.inimacros549#xydoc.fmt:Qxydoc.inimacrosv552#MANUAL:USER'SGUIDEANDREFERENCEMANUAL.553#554#Note:thefirstgenerationsusetheDVIPSbackendtorunfaster.555#556.PHONY:Qguidemanualinstall.manualmanual.ps557#558MANUALDATA=ross.epskris.epsimport1.eps559MANUALSOURCES= \560#ixyguide.manxydoc.stylatin1.styxydoc.bibxydoc.back\561#ixyrefer.man$(KERNELSOURCES)$(LATEXSTYLES)$(OPTIONSOURCES)\562#i$(OPTIONDATA)$(MANUALDATA)563#564MANUALRUN=Qxyguide.dvixyrefer.dvi565#566.SUFFIXES:Q.man.dvips.dvi.pdf567.man.dvips:568#i$(MAKE)macrosfonts569#iecho"\\xyoption{dvips}\xyoption{ps}">xydoc.back570#i$(LATEX)$<571#i@-$(CP)$<.dvi$*.dvi;$(CP)$<.aux$*.aux;$(CP)$<.idx$*.idx572#i$(BIBTEX)$*573#i@-$(CP)$*.bbl$<.bbl574#i[-f$*.idx]&&$(MAKEINDEX)$*||:575#i@-$(CP)$*.ind$<.ind576#iecho"\\xyoption{dvips}\xyoption{ps}">xydoc.back577#i$(LATEX)$<578#i@-$(CP)$<.dvi$*.dvi;$(CP)$<.aux$*.aux;$(CP)$<.idx$*.idx579#i[-f$*.idx]&&makeindex$*||:580#i@-$(CP)$*.ind$<.ind581#iecho"\\xyoption{dvips}\xyoption{ps}">xydoc.back582#i$(LATEX)$<583#i@-$(CP)$<.dvi$*.dvi;$(CP)$<.aux$*.aux;$(CP)$<.idx$*.idx584#imv$*.dvi$*.dvips585#itouch$*.dvipsb%hȠ*tj610)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw586# 587.dvips.dvi:588#iecho''>xydoc.back589#i$(LATEX)$*.man590#i@-$(CP)$*.man.dvi$*.dvi;$(CP)$*.man.aux$*.aux;$(CP)$*.man.idx$*.idx591#itouch$*.dvi592#593.dvips.pdf:594#iecho''>xydoc.back595#i$(PDFLATEX)$*.man596#i@-$(CP)$*.man.pdf$*.pdf;$(CP)$*.man.aux$*.aux;$(CP)$*.man.idx$*.idx597#itouch$*.pdf598#599guide:Qxyguide.dvi600#601manual:Q$(MANUALRUN)602install.manual:Qmanual603#i-test-d$(TEXDOCDIR)||$(MKDIR)$(TEXDOCDIR)604#iforfin$(MANUALRUN);do$(INSTALL)$$f$(TEXDOCDIR)/$$f;done605#606xyguide.dvips:Qxyguide.manxydoc.stylatin1.styxydoc.bibversion.tex607xyrefer.dvips:Qxyrefer.manxydoc.stylatin1.styxydoc.bibversion.tex\608#i$(KERNELSOURCES)$(OPTIONSOURCES)$(MANUALDATA)609xytest.dvips:Qxytest.manxydoc.stylatin1.styxydoc.bibversion.tex\610#i$(KERNELSOURCES)$(OPTIONSOURCES)$(MANUALDATA)611#612xyguide.dvi:Qxyguide.dvipsversion.tex613xyrefer.dvi:Qxyrefer.dvipsversion.tex614xytest.dvi:Qxytest.dvipsversion.tex615#616xyguide.pdf:Qxyguide.dvipsversion.tex617xyrefer.pdf:Qxyrefer.dvipsversion.tex618xytest.pdf:Qxytest.dvipsversion.tex619#620version.tex:Qversion.doc621#i$(LATEX)version.doc622#623.SUFFIXES:Q.pro624xy$(SHORTVERSION)dict.pro:xydocps.texxypsdict.texxypspatt.texxyps-pro.tex625#i-$(RM)xy$(SHORTVERSION)dict.pro626#i$(TEX)xydocps.tex627#628#PostScripttargets:629#630#DVIPSshouldbeTomRokicki'sdvipsPostScriptDVIdriverasafilter.631DVIPS=dvips-D600-f632#633.SUFFIXES:Q.ps634.dvips.ps:;Q$(DVIPS)<$<>$@c%r*tjD.3.CGENERAeTIONk+611??hw635# 636xyguide.ps:Qxyguide.dvips$(PSRUN)637xyrefer.ps:Qxyrefer.dvips$(PSRUN)638#639manual.ps:Qxyguide.psxyrefer.psv642#TeXNICALDOCUMENTATION.643#644.PHONY:QTeXnical645TeXnical:Qxysource.psxysource.dvixysource.pdf646#647TeXNICALSOURCES=xysource.manCOPYING.patchxydoc.back648#649TeXNICALAUX=\650#iTRAILERCATALOGREADME$(INSTALLSTAR)MAKEMANIFEST\651#iCOPYING.tex652#653xysource.dvips:xysource.manmacros.tmp\654Qmacrosfontsobsoletefonts$(ALLSOURCES)$(TeXNICALAUX)655xysource.ps:Qxysource.dvips656xysource.dvi:Qxysource.dvips657xysource.pdf:Qxysource.dvips658#659xywork.dvips:xywork.manmacros.tmp\660Qmacrosfontsobsoletefonts$(ALLSOURCES)$(TeXNICALAUX)661xywork.ps:Qxywork.dvips662xywork.dvi:Qxywork.dvips663xywork.pdf:Qxywork.dvips664#665COPYING.tex:COPYINGCOPYING.patch666#ipatchCOPYING-oCOPYING.tex>"/dev/stderr"};\680/funcprt(s,i){\6814gprintf("\\filelinedef{%s}{%d}\\indexdef{%s}\n",FILENAME,FNR,s)};\682/funcprtdef(i){t=substr($$0,i);\6834gif(match(t,/[\\|][a-zA-Z@]*|\\.|[^\\|]|{([^{}]|\\{|\\})*}/)!=1)\684:err("WeirdTeXtoken");\6854gelseprt(substr($$0,i,RLENGTH),i)};\d%|*tj612)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw686/funcprtcsdef(i){t=substr($$0,i);\ 6874gif(match(t,/{([^{}]|\\{|\\})*}|{([^{}]|\\{|\\})*{([^{}]|\\{|\\})*}([^{}]|\\{|\\})*}/)!=1)\688:err("WeirdTeXcsnametoken");\6894gelseprt(substr($$0,i+1,RLENGTH-2),i)};\690//^\\let[^A-Za-z@]/~||\691//^\\def[^A-Za-z@]/~{prtdef(5);next};\692//^\\gdef[^A-Za-z@]/~||\693//^\\edef[^A-Za-z@]/~||\694//^\\xdef[^A-Za-z@]/~{prtdef(6);next};\695//^\\newif[^A-Za-z@]/~{prtdef(7);next};\696//^\\xydef@[^A-Za-z@]/~||\697//^\\xylet@[^A-Za-z@]/~{prtdef(8);next};\698//^\\xyfont@[^A-Za-z@]/~{prtdef(9);next};\699//^\\global\\let[^A-Za-z@]/~{prtdef(12);next};\700//^\\xywarnifdefined[^A-Za-z@]/{prtdef(17);next};\701//^\\ifx\\undefined[^A-Za-z@]/{prtdef(15);next};\702//^\\xynew@{[^{}]*}/~{prtdef(index($$0,"}")+1);next};\703//^\\xydefcsname@{/~{prtcsdef(14);next};\704//^\\xyletcsnamecsname@{/~{prtcsdef(20);next}'$$f;\705#idone|sed-e's,\\{,\\\\otherebgroup,'-e's,\\},\\\\otheregroup,'\706#i>macros.tmpP708###printf("\\macroentry{%s}{%s}{%d}\n",s,FILENAME,FNR)};\v711#Xy-pictheMOVIE:)712#713.SUFFIXES:.texmovie.gif714#715.texmovie.gif:716#i$(LATEX)'\documentclass[dvips]{movie}'\717Q'\usepackage[all]{xy}'\718Q'\begin{document}'\719Q'\input{$*.texmovie}'\720Q'\end{document}'721#i@-[-ftexput.dvi]&&$(MV)texput.dvi$*.dvi&&$(MV)texput.size$*.size722#i@-[-fmovie.cls.dvi]&&$(MV)movie.cls.dvi$*.dvi&&$(MV)movie.cls.size$*.size723#i@-[-fmovie.dvi]&&$(MV)movie.dvi$*.dvi&&$(MV)movie.size$*.size724#i./dvitogif89a$*.dvi725#726.texmovie.dvi:727#i$(LATEX)'\documentclass{article}'\728Q'\usepackage[movie,all]{xy}'\729Q'\begin{document}'\730Q'\title{Storyboardfor``$*.''}'\731Q'\maketitle'\732Q'\input{$*.texmovie}'\733Q'\end{document}'734#735dragon.gif:Qdragon.texmoviemovie.clsdvitogif89a736dragon.dvi:Qdragon.texmoviemovie.clse%Q*tjD.3.CGENERAeTIONk+613??hw737# 738sesam.gif:Qsesam.texmoviemovie.clsdvitogif89a739sesam.dvi:Qsesam.texmoviemovie.cls740#741gasket.dvi:Qgasket.texmoviemovie.clsdvitogif89a742gasket.gif:Qgasket.texmoviemovie.clsv745#DISTRIBUTIONTREE.746#747DISTDIR=$(FTPROOT)/xy-$(VERSION)748DISTFONTDIR=$(DISTDIR)/$(PK)fonts/$${mode}$${dpi}749#750#Files:751#752SOURCES=$(MACROSOURCES)$(FONTSOURCES)$(MANUALSOURCES)$(SUPPORT)753#754#Commands:755#756#TAR outputtararchivewith757#GZIP compressionfilter758#GZ filenameextensionappropriateforcompressedfiles759#760#TODO:changecompressiontoproperGNUgziponceeveryonesupportsit...761#762TAR=tarcvf-763GZIP=gzip-v9764GZ=.gz765#766#Targets:767#768.PHONY:distdist-$(VERSION)distsrcdistrundistdoc769#770distdist-$(VERSION):771#icd$(DISTDIR);\772/find.-typef-print|sed's,^./,,'|sort>MANIFEST773#i$(INSTALL)README$(DISTDIR)/README774#775distsrc:Q$(DISTDIR)/src776#777distrun:Q$(DISTDIR)/CATALOG\778Q$(DISTDIR)/TRAILER\779Q$(DISTDIR)/README\780Q$(DISTDIR)/INSTALL\781Q$(DISTDIR)/VERSIONS\782Q$(DISTDIR)/texinputs\783Q$(DISTDIR)/texfonts\784Q$(DISTDIR)/mfinputs\785Q$(DISTDIR)/$(PK)fonts\786Q$(DISTDIR)/doc/xyguide.dvi\787Q$(DISTDIR)/doc/xyrefer.dvi\f%*tj614)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw788Q$(DISTDIR)/doc/xysource.dvi\ 789Q$(DISTDIR)/ps\790Q$(DISTDIR)/type1\791Q$(DISTDIR)/pfm\792Q$(DISTDIR)/afm\793Q$(DISTDIR)/COPYING\794Q$(DISTDIR)/support795#796distdoc:Q$(DISTDIR)/doc/xyguide.dvips\797Q$(DISTDIR)/doc/xyguide.ps\798Q$(DISTDIR)/doc/xyguide.pdf\799Q$(DISTDIR)/doc/xyrefer.dvips\800Q$(DISTDIR)/doc/xyrefer.ps\801Q$(DISTDIR)/doc/xyrefer.pdf\802Q$(DISTDIR)/doc/xysource.dvips\803Q$(DISTDIR)/doc/xysource.ps804####CURRENTLYBROKEN:805#Q$(DISTDIR)/doc/xyguide-html\806#807#Explanationtargets:808#809#CATALOGisautomaticallygenerated:810#811$(DISTDIR)/CATALOG:CATALOG$(DISTDIR)812#i$(INSTALL)CATALOG$(DISTDIR)/CATALOG813#814CATALOG:QCATALOG.doc815#i$(LATEX)CATALOG.doc816#imv-fCATALOG.outCATALOGP818$(DISTDIR)/TRAILER:TRAILER$(DISTDIR)819#i$(INSTALL)TRAILER$(DISTDIR)/TRAILER821$(DISTDIR)/README:README$(DISTDIR)822#i$(INSTALL)README$(DISTDIR)/README824$(DISTDIR)/VERSIONS:VERSIONS$(DISTDIR)825#i$(INSTALL)VERSIONS$(DISTDIR)/VERSIONS827$(DISTDIR)/INSTALL:$(INSTALLSTAR)$(DISTDIR)828#iforfin$(INSTALLSTAR);doiftest-f"$$f";then\829/$(INSTALL)$$f$(DISTDIR)/$$f;else:;fi;done831$(DISTDIR)/COPYING:COPYING$(DISTDIR)832#i$(INSTALL)COPYING$(DISTDIR)/COPYING834$(DISTDIR)/FONTCOPYING:FONTCOPYING$(DISTDIR)835#i$(INSTALL)FONTCOPYING$(DISTDIR)/FONTCOPYING836#837#Directorytargets:838#839$(DISTDIR):840#i-test-d$(DISTDIR)||$(MKDIR)$(DISTDIR)g%*tjD.3.CGENERAeTIONk+615??hw842$(DISTDIR)/src:$(SOURCES)MANIFESTVERSIONSChangeLog$(DISTDIR) 843#i-test-d$(DISTDIR)/src||$(MKDIR)$(DISTDIR)/src844#iforfin$(SOURCES);doecho$$f;done|sort-fu|\845)Iwhilereadu;do$(INSTALL)$$u$(DISTDIR)/src/$$u;done846#iecho''>xydoc.back847#i$(INSTALLW)xydoc.back$(DISTDIR)/src848#i$(INSTALLW)MANIFESTVERSIONSChangeLog$(DISTDIR)/srcP850xydoc.back:851#iecho''>xydoc.back852#853#TheMANIFESTinsrcisjustalistofthedistributedsourcefiles.854#855MANIFEST:Q$(SOURCES)856#ils-alg`forfin$(SOURCES);doecho$$f;done|sort-fu`>MANIFEST857#858#TheVERSIONSisjustalistoftheRCSversions.859#860VERSIONS:Q$(SOURCES)861#ised-n's/^.*\([$$]Id[:][^$$]*[$$]\).*$$/\1/p'\862)I`forfin$(SOURCES);doecho$$f;done|sort-u`>VERSIONS864$(DISTDIR)/texinputs:macros$(DISTDIR)865#i-test-d$(DISTDIR)/texinputs\866)I||$(MKDIR)$(DISTDIR)/texinputs867#iforfin$(MACRORUN)$(LATEXSTYLES);\868)Ido$(INSTALL)$$f$(DISTDIR)/texinputs/$$f;done870$(DISTDIR)/texfonts:texfontsobsoletefonts$(DISTDIR)871#i-test-d$(DISTDIR)/texfonts\872)I||$(MKDIR)$(DISTDIR)/texfonts873#iforfin$(TEXFONTRUN)$(OBSOLETETEXFONTRUN);\874)Ido$(INSTALL)$$f$(DISTDIR)/texfonts/$$f;done876$(DISTDIR)/mfinputs:mfinputs$(OBSOLETEMETAFONTS)$(DISTDIR)877#i-test-d$(DISTDIR)/mfinputs||$(MKDIR)$(DISTDIR)/mfinputs878#iforfin$(METAFONTS)$(OBSOLETEMETAFONTS);\879)Ido$(INSTALL)$$f$(DISTDIR)/mfinputs/$$f;done881$(DISTDIR)/$(PK)fonts:$(PK)fonts$(DISTDIR)882#i-test-d$(DISTDIR)/$(PK)fonts||$(MKDIR)$(DISTDIR)/$(PK)fonts883#i:884#iformodein$(MODES);doformagin$(MAGS);do\885/$(RM)xytest.*gfxytest.*tfm;\886/$(MF)"\\mode=$$mode;mag=magstep($$mag);inputxytest";\887/dpi="`exprxytest.*gf:'xytest\.\([0-9]*\)gf'`";\888/forfin$(TEXFONTRUN);do\889:f="`expr$$f:'\([a-z0-9]*\)\.tfm'`.$${dpi}$(PK)";\890:if[!-f$$f];thenecho"ERROR:FONT$$fNOTGENERATED";\891:elsetest-d"$(DISTFONTDIR)"||$(MKDIR)$(DISTFONTDIR);\892Fe$(INSTALL)$$f$(DISTFONTDIR)/$$f;fi;done;done;done894$(DISTDIR)/ps:xy$(SHORTVERSION)dict.proxypic.map$(DISTDIR)h%*tj616)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw895#i-test-d$(DISTDIR)/ps||$(MKDIR)$(DISTDIR)/ps 896#i$(INSTALL)xy$(SHORTVERSION)*dict.pro$(DISTDIR)/ps897#i$(INSTALL)xypic.map$(DISTDIR)/psP899$(DISTDIR)/type1:$(TYPE1FONTS)$(DISTDIR)900#i-test-d$(DISTDIR)/type1||$(MKDIR)$(DISTDIR)/type1901#iforfin$(TYPE1FONTS);\902)Ido$(INSTALL)$$f$(DISTDIR)/type1/$$f;done904$(DISTDIR)/pfm:$(PFMFONTS)$(DISTDIR)905#i-test-d$(DISTDIR)/pfm||$(MKDIR)$(DISTDIR)/pfm906#iforfin$(PFMFONTS);\907)Ido$(INSTALL)$$f$(DISTDIR)/pfm/$$f;done909$(DISTDIR)/afm:$(AFMFONTS)$(DISTDIR)910#i-test-d$(DISTDIR)/afm||$(MKDIR)$(DISTDIR)/afm911#iforfin$(AFMFONTS);\912)Ido$(INSTALL)$$f$(DISTDIR)/afm/$$f;done914$(DISTDIR)/pdftex:$(DISTDIR)xypic.map915#i-test-d$(DISTDIR)/pdftex||$(MKDIR)$(DISTDIR)/pdftex916#i$(INSTALL)xypic.map$(DISTDIR)/pdftex918$(DISTDIR)/support:$(SUPPORT)919#i-test-d$(DISTDIR)/support||$(MKDIR)$(DISTDIR)/support920#iforfin$(SUPPORT);\921)Ido$(INSTALLX)$$f$(DISTDIR)/support/$$f;done923#Documenttargets:924#925$(DISTDIR)/doc/xyguide.dvi:Yxyguide.dvi$(DISTDIR)/doc926#i$(INSTALL)xyguide.dvi$(DISTDIR)/doc928$(DISTDIR)/doc/xyguide.dvips:Yxyguide.dvips$(DISTDIR)/doc929#i$(INSTALL)xyguide.dvips$(DISTDIR)/doc931$(DISTDIR)/doc/xyguide.pdf:Yxyguide.pdf$(DISTDIR)/doc932#i$(INSTALL)xyguide.pdf$(DISTDIR)/doc934$(DISTDIR)/doc/xyguide.ps:Yxyguide.ps$(DISTDIR)/doc935#i$(INSTALL)xyguide.ps$(DISTDIR)/doc937$(DISTDIR)/doc/xyguide-html:Yxyguide-html$(DISTDIR)/doc938#itarcf-xyguide-html|(cd$(DISTDIR)/doc;tarxpvf-)940$(DISTDIR)/doc/xyrefer.dvi:Yxyrefer.dvi$(DISTDIR)/doc941#i$(INSTALL)xyrefer.dvi$(DISTDIR)/doc943$(DISTDIR)/doc/xyrefer.dvips:Yxyrefer.dvipsross.epskris.epsimport1.eps\944Y$(DISTDIR)/doc945#i$(INSTALL)xyrefer.dvipsross.epskris.epsimport1.eps$(DISTDIR)/doc947$(DISTDIR)/doc/xyrefer.pdf:Yxyrefer.pdfross.epskris.epsimport1.eps\948Y$(DISTDIR)/doc949#i$(INSTALL)xyrefer.pdf$(DISTDIR)/doc951$(DISTDIR)/doc/xyrefer.ps:Yxyrefer.ps$(DISTDIR)/doc952#i$(INSTALL)xyrefer.ps$(DISTDIR)/doci%*tjD.3.CGENERAeTIONk+617??hw954$(DISTDIR)/doc/xyrefer-html:Yxyrefer-html$(DISTDIR)/doc 955#i$(INSTALL)xyrefer-html$(DISTDIR)/docP957$(DISTDIR)/doc/xysource.dvi:Yxysource.dvi$(DISTDIR)/doc958#i$(INSTALL)xysource.dvi$(DISTDIR)/doc960$(DISTDIR)/doc/xysource.dvips:Yxysource.dvipsross.epskris.epsimport1.eps\961Y$(DISTDIR)/doc962#i$(INSTALL)xysource.dvipsross.epskris.epsimport1.eps$(DISTDIR)/doc964$(DISTDIR)/doc/xysource.ps:Yxysource.ps$(DISTDIR)/doc965#i$(INSTALL)xysource.ps$(DISTDIR)/doc967$(DISTDIR)/doc:968#i-test-d$(DISTDIR)/doc||$(MKDIR)$(DISTDIR)/docv971#FTP'ABLEDISTRIBUTION.972#973FTPROOT=$$HOME/public_ftp/TeX974FTPDOCDIR=$(FTPROOT)/xy-$(VERSION)/doc975#976.PHONY:Qftpftp-$(VERSION)ftpsrcftprunftpdocftpunpacked977#978ftpftp-$(VERSION): ftpsrcftprunftpdocftpunpacked979#i$(INSTALL)TRAILER$(FTPROOT)/xy$(SHORTVERSION).TRAILER980#981ftpsrc$(FTPROOT)/xy$(SHORTVERSION)src.tar$(GZ):distsrc982#icd$(DISTDIR)/..;\983)I$(TAR)xy-$(VERSION)/src\984)I|$(GZIP)>$(FTPROOT)/xy$(SHORTVERSION)src.tar$(GZ)985#986ftpdoc$(FTPROOT)/xy$(SHORTVERSION)doc.tar$(GZ):distrundistdoc987#icd$(DISTDIR)/..;\988)I$(TAR)xy-$(VERSION)/doc\989)I|$(GZIP)>$(FTPROOT)/xy$(SHORTVERSION)doc.tar$(GZ)990#i$(GZIP)$(FTPROOT)/xyguide.dvi$(GZ)991#i$(GZIP)$(FTPROOT)/xyguide.dvips$(GZ)992#i$(GZIP)$(FTPROOT)/xyguide.ps$(GZ)993#i$(GZIP)$(FTPROOT)/xyguide.pdf$(GZ)994#i$(GZIP)$(FTPROOT)/xyrefer.dvi$(GZ)995#i$(GZIP)$(FTPROOT)/xyrefer.dvips$(GZ)996#i$(GZIP)$(FTPROOT)/xyrefer.ps$(GZ)997#i$(GZIP)$(FTPROOT)/xyrefer.pdf$(GZ)998#i$(GZIP)$(FTPROOT)/xysource.dvi$(GZ)999#i$(GZIP)$(FTPROOT)/xysource.dvips$(GZ)1000#i$(GZIP)$(FTPROOT)/xysource.ps$(GZ)1001##i$(TAR)xyguide-html|$(GZIP)>$(FTPROOT)/xyguide-html.tar.gz1002#1003ftprun$(FTPROOT)/xy$(SHORTVERSION)run.tar$(GZ):distrun1004#icd$(DISTDIR)/..;\1005)I$(TAR)\1006/`forfin$(TRAILERRUN);doechoxy-$(VERSION)/$$f;done`\j%*tj618)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw1007/xy-$(VERSION)/texinputsxy-$(VERSION)/mfinputs\ 1008/xy-$(VERSION)/texfontsxy-$(VERSION)/$(PK)fonts\1009/xy-$(VERSION)/psxy-$(VERSION)/type1xy-$(VERSION)/pfm\1010/xy-$(VERSION)/afm\1011/xy-$(VERSION)/support\1012)I|$(GZIP)>$(FTPROOT)/xy$(SHORTVERSION)run.tar$(GZ)1013#1014ftpunpacked:dist1015#itest$(DISTDIR)=$(FTPROOT)/xy-$(VERSION)||\1016)I(cd$(DISTDIR)/..;tarcf-xy-$(VERSION)|(cd$(FTPROOT);tarxvf-))1017#icd$(FTPROOT);rm-fxy;ln-fsxy-$(VERSION)xyv1020#WWW/HTMLDOCUMENTATION&HYPE.1021#1022WWWDIR=$$HOME/public_html1023#1024WWWSOURCES=QXy-pic.htmlXy.docXy.xy\1025Qman2html.gawkman2html-post.gawk.latex2html-init1026#1027.PHONY:Qguide.htmlwwwinstall.www1028#1029LATEX2HTML=Qlatex2html1030#1031LATEX2HTMLICONDIR=$$HOME/src/latex2html-96.1/icons1032LATEX2HTMLICONDIR2=$$HOME/CV1033#1034man2html=Q$(GAWK)-fman2html.gawk1035man2htmlpost=Q$(GAWK)-f../man2html-post.gawk1036#1037guide.html:Qxyguide-html1038#1039xyguide-html.tex:xyguide.dvipsxyguide.man$(WWWSOURCES)1040#i$(man2html)xyguide-html.aux1041#i$(man2html)xyguide-html.bbl1042#i@-$(CP)xyguide.man.ansxyguide.ans1043#i@-$(CP)xyguide.man.idxxyguide.idx1044#i@-$(CP)xyguide.man.indxyguide.ind1045#i$(man2html)xyguide-html.ans1046#i$(man2html)xyguide-html.idx1047#i$(man2html)xyguide-html.ind1048#i$(man2html)xyguide-html.tex1049#1050xyguide-html-act: xyguide-html.texversion.tex1051#iecho"\\xyoption{dvips}\xyoption{ps}">xydoc.back1052#i$(LATEX2HTML)xyguide-html.tex1053#1054xyguide-html:Qxyguide-html.texxyguide-html-act1055#i(cdxyguide-html;\1056)Iforfin*.html;domv$$f$$f~;\1057/$(man2htmlpost)<$$f~\k%ɷ*tjD.3.CGENERAeTIONk+619??hw1058/|sed-e's/``/"/g'-e"s/''/\"/g"-e's/ T[>]/>/g'>$$f;done;\ 1059)I(cd$$HOME/W3;tarcf-COPYING)|tarxpf-)1060#i:1061#icp"$(LATEX2HTMLICONDIR2)/18pt.html"xyguide-html1062#icatxyguide-html/*.html\1063#i|tr'"'"\n"\1064#i|sed-n's;[.][/]\([a-z_]*[.]gif\);\1;p'|sort-u\1065#i|whilereadf;\1066/doif[-f"$(LATEX2HTMLICONDIR2)/$$f"];\1067@Gthenecho"[$$f]";cp$(LATEX2HTMLICONDIR2)/$$fxyguide-html;\1068@Gelif[-f"$(LATEX2HTMLICONDIR)/$$f"];\1069@Gthenecho"[$$f]";cp$(LATEX2HTMLICONDIR)/$$fxyguide-html;\1070@Gfi;done1071#i:1072#i(cdxyguide-html;\1073)I$(RM).I*.O**.ppm*.xyc*.ans*.aux*.idx*.bbl*.log*.tex*~)1074#1075Xy.tex:#iXy.doc1076Xy.dvi:#iXy.texXy.xymacros;$(LATEX)Xy1077Xy.ps:#iXy.dvi;$(DVIPS)Xy.dvi-oXy.ps1078#1079PNMCROP=./pnmrawtopcropwhite|pnmcrop1080PGMTOGIF=pgmtoppmrgbi:1/1/1|ppmtogif-interlace-transparentrgbi:1/1/11081#1082Xy.gif:#iXy.pspnmrawtopcropwhite1083#iecho''|\1084)Igs-sDEVICE=pbmraw-r300\1085/-sOutputFile='|$(PNMCROP)>Xy.pbm'\1086/-q-Xy.ps1087#icatXy.pbm|$(PGMTOGIF)>Xy.gif1088#1089pnmrawtopcropwhite:pnmrawtopcropwhite.c1090#1091www:QXy-pic.htmlXy.gif1092####BROKEN#####guide.html1093#1094install.www:Qwww1095#i$(INSTALL)Xy-pic.htmlXy.gif$(WWWDIR)1096##i$(RM)$(WWWDIR)/xyguide-html1097##i$(MKDIR)$(WWWDIR)/xyguide-html1098##itar-cf-xyguide-html|(cd$(WWWDIR);tarxvpf-)v1101#ANNOUNCEMENTS.1102#1103MAILSOURCES=TRAILERUsersmail.Users1104#1105.PHONY:Qannounce1106announce:Q$(MAILSOURCES)1107#i@./mail.Usersl%Ѡ*tj620)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw1110#TAGSforEmacs. 1111#1112TAGS:#i$(SOURCES)1113#i-$(RM)TAGS1114#iforfin`forffin$(SOURCES);doecho$$ff;done|sort-u`;\1115#ido\1116)I$(GAWK)'\1117/funcerr(s){printf("%s,%d:%s\n",FILENAME,FNR,s)>>"/dev/stderr"};\1118/funcprt(s,n){printf("%s\177%d,%d\n",s,FNR,c+n)};\1119/funcprtdef(i){t=substr($$0,i);\11204gif(match(t,/[\\|][a-zA-Z@]*|\\.|[^\\|]|{([^{}]|\\{|\\})*}/)!=1)\1121:err("WeirdTeXtoken");\11224gelseprt(substr($$0,1,i+RLENGTH),i)};\1123/funcprtcsdef(i){t=substr($$0,i);\11244gif(match(t,/{([^{}]|\\{|\\})*}|{([^{}]|\\{|\\})*{([^{}]|\\{|\\})*}([^{}]|\\{|\\})*}/)!=1)\1125:err("WeirdTeXcsnametoken");\11264gelseprt(substr($$0,1,i+RLENGTH),i)};\1127/funcfin(){c+=length($$0)+1;next};\1128/BEGIN{c=0};\1129//^\\let[^A-Za-z@]/~||\1130//^\\def[^A-Za-z@]/~{prtdef(5);fin()};\1131//^\\gdef[^A-Za-z@]/~||\1132//^\\edef[^A-Za-z@]/~||\1133//^\\xdef[^A-Za-z@]/~{prtdef(6);fin()};\1134//^\\newif[^A-Za-z@]/~{prtdef(7);fin()};\1135//^\\xydef@[^A-Za-z@]/~||\1136//^\\xylet@[^A-Za-z@]/~{prtdef(8);fin()};\1137//^\\xyfont@[^A-Za-z@]/~{prtdef(9);fin()};\1138//^\\global\\let[^A-Za-z@]/~{prtdef(12);fin()};\1139//^\\xywarnifdefined[^A-Za-z@]/{prtdef(17);fin()};\1140//^\\ifx\\undefined[^A-Za-z@]/{prtdef(15);fin()};\1141//^\\xynew@{[^{}]*}/~{prtdef(index($$0,"}")+1);fin()};\1142//^\\xydefcsname@{/~{prtcsdef(14);fin()};\1143//^\\xyletcsnamecsname@{/~{prtcsdef(20);fin()};\1144//\?\?\=\[/ {s=$$0;i=0;\11454gwhile(first=index(s,"\?\?=[")){\1146:s=substr(s,first+4);i+=first+4;\1147:if(j=index(s,"]"))prt(substr($$0,1,i+j-1),i);\1148:elseprintf("Unmatched[]s")};fin()};\1149//^@[A-Za-z]*{/{prt($$0,index($$0,"{")+1);fin()};\1150/{fin()}'$$f>TAGS.tmp;\1151)Iwc-cTAGS.tmp|$(GAWK)'{printf"\f\n%s,%s\n","'"$$f"'",$$1}'>>TAGS;\1152)IcatTAGS.tmp>>TAGS;\1153#idone1154#i$(RM)TAGS.tmpv1157#RCSSTUFF:1158#1159.PHONY:Qcici-$(VERSION)cicircscheck\1160Qrcslistrcslockedlistrcsunlockedlist\m%*tjD.3.CGENERAeTIONk+621??hw1161Qrcscleanlistrcsuncleanlistrcscleanrcsdep 1162#1163ALLSOURCES=$(TRAILERSOURCES)$(SOURCES)$(MANUALSOURCES)$(TeXNICALSOURCES)\1164#i$(WWWSOURCES)$(MAILSOURCES)$(OBSOLETEMETAFONTS)$(TYPE1FONTS)\1165#i$(SUPPORT)xypic.map1166#1167ROSSSOURCES=INSTALL.OzTeXINSTALL.Texturesimport1.epsross.eps\1168#ixy16textures.docxy17oztex.docxy2cell.docxyarc.doc\1169#ixycolor.docxycrayon.docxycurve.doc\1170#ixydvips.docxyimport.docxyknot.docxyline.doc\1171#ixymacpat.xypxyoztex.docxypoly.docxyps-c.docxyps-col.doc\1172#ixyps-f.docxyps-l.docxyps-pro.docxyps-ps.docxyps-r.doc\1173#ixyps-s.docxyps-t.docxyps.docxypsdict.docxypspatt.docxyrotate.doc\1174#ixytextures.docxytile.docxytpic.docxyemtex.docxyweb.doc\1175#ixydvidrv.docxyxdvi.docxydvitops.docxytp-f.docxycmactex.doc1176#1177YANDYSOURCES=\1178#ixyatip10.pfaxybsql10.pfaxybtip10.pfaxycirc10.pfaxycmat10.pfa\1179#ixycmbt10.pfaxydash10.pfaxyeuat10.pfaxyeubt10.pfa\1180#1181cici-$(VERSION):$(ALLSOURCES)ciciMakefile1182cici:1183#i-rcs-l`forfin$(ALLSOURCES);doecho$$f;done|sort-u`1184#i-ci-u$(VERSION)`$(MAKE)rcslockedlist`1185#1186rcscheck:Q$(ALLSOURCES)1187#i@locked="`$(MAKE)rcslockedlist`";\1188)Iunlocked="`$(MAKE)rcsunlockedlist`";\1189)Iecho"Missingwritepermissiononlockedfiles:";\1190)Iforfin$$locked;do[-w"$$f"]||echo''$$f;done;\1191)Iecho"Wrongwritepermissiononunlockedfiles:";\1192)Iforfin$$unlocked;do[-w"$$f"]&&echo''$$f;done;\1193)Iecho"Wrong/missinglocksonross'sfiles:";\1194)Iforfin$(ROSSSOURCES);\1195)Idolock=;\1196:forffin$$locked;\1197:doif["$$f"="$$ff"];thenlock='ross';fi;done;\1198:fgrep-s"rossExp$$lock"'$$'$$f\1199@G||(/bin/echo''$$f':\c'&&grep'Id[:].*Exp'$$f||echo'?');\1200)Idone;\1201)Iecho"Wrong/missinglocksonkrisrose'sfiles:";\1202)Iforfin`$(MAKE)rcslist`;\1203)Idoforffin$(ROSSSOURCES);\1204:doif["$$f"="$$ff"];thencontinue2;fi;done;\1205:lock=;\1206:forffin$$locked;\1207:doif["$$f"="$$ff"];thenlock='krisrose';fi;done;\1208@Gfgrep-s"krisroseExp$$lock"'$$'$$f\1209@G||(/bin/echo''$$f'\c'&&grep'Id[:].*Exp'$$f||echo'');\n%6*tj622)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw1210)Idone 1211#1212rcslist:1213#i-@rlog-R`forfin$(ALLSOURCES);doecho$$f;done|sort-u`\1214/2>/dev/null|sed's;RCS/\(.*\),v;\1;'1215#1216rcslockedlist:1217#i-@rlog-R-L`forfin$(ALLSOURCES);doecho$$f;done|sort-u`\1218/2>/dev/null|sed's;RCS/\(.*\),v;\1;'1219#1220rcsunlockedlist:1221#i-@locked="`$(MAKE)rcslockedlist`";\1222/$(MAKE)rcslist|whilereadf;\1223/doecho=echo;forffin$$locked;\1224 doif["$$f"="$$ff"];thenecho=:;fi;done;\1225@G$$echo$$f;done1226#1227rcscleanlist:1228#i-@$(MAKE)rcslist\1229)I|whilereadf;doiftest-w"$$f"-o"$$f"=Makefile;then:;\1230elseecho$$f;fi;done1231#1232rcsuncleanlist:1233#i-@$(MAKE)rcslist\1234)I|whilereadf;doiftest-w"$$f"-o"$$f"=Makefile;\1235thenecho$$f;fi;done1236#1237rcsclean:1238#i-@$(MAKE)rcscleanlist|whilereadf;do$(RM)$$f;done1239#1240#Dependencies...1241#1242rcsdep:1243#i$(MAKE)rcslist|whilereadf;do\1244/echo"$$f:RCS/$$f,v;test-dRCS&&co$$f||:";doneP1246.late2html-init:;test-dRCS-a-fRCS/.late2html-init,v&&co.late2html-init||:1247CATALOG.doc:;test-dRCS-a-fRCS/CATALOG.doc,v&&coCATALOG.doc||:1248COPYING.patch:;test-dRCS-a-fRCS/COPYING.patch,v&&coCOPYING.patch||:1249COPYING:;test-dRCS-a-fRCS/COPYING,v&&coCOPYING||:1250FONTCOPYING.patch:;test-dRCS-a-fRCS/FONTCOPYING.patch,v&&coFONTCOPYING.patch||:1251FONTCOPYING:;test-dRCS-a-fRCS/FONTCOPYING,v&&coFONTCOPYING||:1252INSTALL.OzTeX:;test-dRCS-a-fRCS/INSTALL.OzTeX,v&&coINSTALL.OzTeX||:1253INSTALL.Textures:;test-dRCS-a-fRCS/INSTALL.Textures,v&&coINSTALL.Textures||:1254INSTALL:;test-dRCS-a-fRCS/INSTALL,v&&coINSTALL||:1255MAKE:;test-dRCS-a-fRCS/MAKE,v&&coMAKE||:1256Makefile:;test-dRCS-a-fRCS/Makefile,v&&coMakefile||:1257README:;test-dRCS-a-fRCS/README,v&&coREADME||:1258TRAILER:;test-dRCS-a-fRCS/TRAILER,v&&coTRAILER||:1259Users:;test-dRCS-a-fRCS/Users,v&&coUsers||:o%ޠ*tjD.3.CGENERAeTIONk+623??hw1260Xy-pic.blurb:;test-dRCS-a-fRCS/Xy-pic.blurb,v&&coXy-pic.blurb||: 1261Xy-pic.html:;test-dRCS-a-fRCS/Xy-pic.html,v&&coXy-pic.html||:1262Xy-pic.xbm:;test-dRCS-a-fRCS/Xy-pic.xbm,v&&coXy-pic.xbm||:1263Xy.doc:;test-dRCS-a-fRCS/Xy.doc,v&&coXy.doc||:1264Xy.xy:;test-dRCS-a-fRCS/Xy.xy,v&&coXy.xy||:1265YandY_xy_fonts.zip:;test-dRCS-a-fRCS/YandY_xy_fonts.zip,v&&coYandY_xy_fonts.zip||:1266doc2tex.com:;test-dRCS-a-fRCS/doc2tex.com,v&&codoc2tex.com||:1267dvitogif89a:;test-dRCS-a-fRCS/dvitogif89a,v&&codvitogif89a||:1268gasket.texmovie:;test-dRCS-a-fRCS/gasket.texmovie,v&&cogasket.texmovie||:1269import1.eps:;test-dRCS-a-fRCS/import1.eps,v&&coimport1.eps||:1270install-tds:;test-dRCS-a-fRCS/install-tds,v&&coinstall-tds||:1271kris.eps:;test-dRCS-a-fRCS/kris.eps,v&&cokris.eps||:1272latin1.sty:;test-dRCS-a-fRCS/latin1.sty,v&&colatin1.sty||:1273mail.Users:;test-dRCS-a-fRCS/mail.Users,v&&comail.Users||:1274man2html-post.gawk:;test-dRCS-a-fRCS/man2html-post.gawk,v&&coman2html-post.gawk||:1275man2html.gawk:;test-dRCS-a-fRCS/man2html.gawk,v&&coman2html.gawk||:1276movie.cls:;test-dRCS-a-fRCS/movie.cls,v&&comovie.cls||:1277pnmrawtopcropwhite.c:;test-dRCS-a-fRCS/pnmrawtopcropwhite.c,v&&copnmrawtopcropwhite.c||:1278ross.eps:;test-dRCS-a-fRCS/ross.eps,v&&coross.eps||:1279version.doc:;test-dRCS-a-fRCS/version.doc,v&&coversion.doc||:1280xy.doc:;test-dRCS-a-fRCS/xy.doc,v&&coxy.doc||:1281xy.sty:;test-dRCS-a-fRCS/xy.sty,v&&coxy.sty||:1282xy16textures.doc:;test-dRCS-a-fRCS/xy16textures.doc,v&&coxy16textures.doc||:1283xy17oztex.doc:;test-dRCS-a-fRCS/xy17oztex.doc,v&&coxy17oztex.doc||:1284xy2cell.doc:;test-dRCS-a-fRCS/xy2cell.doc,v&&coxy2cell.doc||:1285xyall.doc:;test-dRCS-a-fRCS/xyall.doc,v&&coxyall.doc||:1286xyamslatex.ini:;test-dRCS-a-fRCS/xyamslatex.ini,v&&coxyamslatex.ini||:1287xyarc.doc:;test-dRCS-a-fRCS/xyarc.doc,v&&coxyarc.doc||:1288xyarrow.doc:;test-dRCS-a-fRCS/xyarrow.doc,v&&coxyarrow.doc||:1289xyatip10.mf:;test-dRCS-a-fRCS/xyatip10.mf,v&&coxyatip10.mf||:1290xybsql10.mf:;test-dRCS-a-fRCS/xybsql10.mf,v&&coxybsql10.mf||:1291xybtip10.mf:;test-dRCS-a-fRCS/xybtip10.mf,v&&coxybtip10.mf||:1292xycirc10.enc:;test-dRCS-a-fRCS/xycirc10.enc,v&&coxycirc10.enc||:1293xycirc10.mf:;test-dRCS-a-fRCS/xycirc10.mf,v&&coxycirc10.mf||:1294xycm.mf:;test-dRCS-a-fRCS/xycm.mf,v&&coxycm.mf||:1295xycmactex.doc:;test-dRCS-a-fRCS/xycmactex.doc,v&&coxycmactex.doc||:1296xycmat10.mf:;test-dRCS-a-fRCS/xycmat10.mf,v&&coxycmat10.mf||:1297xycmat11.mf:;test-dRCS-a-fRCS/xycmat11.mf,v&&coxycmat11.mf||:1298xycmat12.mf:;test-dRCS-a-fRCS/xycmat12.mf,v&&coxycmat12.mf||:1299xycmbt10.mf:;test-dRCS-a-fRCS/xycmbt10.mf,v&&coxycmbt10.mf||:1300xycmbt11.mf:;test-dRCS-a-fRCS/xycmbt11.mf,v&&coxycmbt11.mf||:1301xycmbt12.mf:;test-dRCS-a-fRCS/xycmbt12.mf,v&&coxycmbt12.mf||:1302xycmtip.doc:;test-dRCS-a-fRCS/xycmtip.doc,v&&coxycmtip.doc||:1303xycolor.doc:;test-dRCS-a-fRCS/xycolor.doc,v&&coxycolor.doc||:1304xycrayon.doc:;test-dRCS-a-fRCS/xycrayon.doc,v&&coxycrayon.doc||:1305xycurve.doc:;test-dRCS-a-fRCS/xycurve.doc,v&&coxycurve.doc||:1306xyd.enc:;test-dRCS-a-fRCS/xyd.enc,v&&coxyd.enc||:1307xyd.mf:;test-dRCS-a-fRCS/xyd.mf,v&&coxyd.mf||:1308xyd2.enc:;test-dRCS-a-fRCS/xyd2.enc,v&&coxyd2.enc||:p&*tj624)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw1309xyd2.mf:;test-dRCS-a-fRCS/xyd2.mf,v&&coxyd2.mf||: 1310xydash10.mf:;test-dRCS-a-fRCS/xydash10.mf,v&&coxydash10.mf||:1311xydoc.bib:;test-dRCS-a-fRCS/xydoc.bib,v&&coxydoc.bib||:1312xydoc.sty:;test-dRCS-a-fRCS/xydoc.sty,v&&coxydoc.sty||:1313xydocps.doc:;test-dRCS-a-fRCS/xydocps.doc,v&&coxydocps.doc||:1314xydriver.doc:;test-dRCS-a-fRCS/xydriver.doc,v&&coxydriver.doc||:1315xydummy.doc:;test-dRCS-a-fRCS/xydummy.doc,v&&coxydummy.doc||:1316xydvidrv.doc:;test-dRCS-a-fRCS/xydvidrv.doc,v&&coxydvidrv.doc||:1317xydvips.doc:;test-dRCS-a-fRCS/xydvips.doc,v&&coxydvips.doc||:1318xydvitops.doc:;test-dRCS-a-fRCS/xydvitops.doc,v&&coxydvitops.doc||:1319xyemtex.doc:;test-dRCS-a-fRCS/xyemtex.doc,v&&coxyemtex.doc||:1320xyeuat10.mf:;test-dRCS-a-fRCS/xyeuat10.mf,v&&coxyeuat10.mf||:1321xyeuat11.mf:;test-dRCS-a-fRCS/xyeuat11.mf,v&&coxyeuat11.mf||:1322xyeuat12.mf:;test-dRCS-a-fRCS/xyeuat12.mf,v&&coxyeuat12.mf||:1323xyeubt10.mf:;test-dRCS-a-fRCS/xyeubt10.mf,v&&coxyeubt10.mf||:1324xyeubt11.mf:;test-dRCS-a-fRCS/xyeubt11.mf,v&&coxyeubt11.mf||:1325xyeubt12.mf:;test-dRCS-a-fRCS/xyeubt12.mf,v&&coxyeubt12.mf||:1326xyeuler.doc:;test-dRCS-a-fRCS/xyeuler.doc,v&&coxyeuler.doc||:1327xyframe.doc:;test-dRCS-a-fRCS/xyframe.doc,v&&coxyframe.doc||:1328xygraph.doc:;test-dRCS-a-fRCS/xygraph.doc,v&&coxygraph.doc||:1329xyguide.man:;test-dRCS-a-fRCS/xyguide.man,v&&coxyguide.man||:1330xyidioms.doc:;test-dRCS-a-fRCS/xyidioms.doc,v&&coxyidioms.doc||:1331xyimport.doc:;test-dRCS-a-fRCS/xyimport.doc,v&&coxyimport.doc||:1332xyknot.doc:;test-dRCS-a-fRCS/xyknot.doc,v&&coxyknot.doc||:1333xylatex.ini:;test-dRCS-a-fRCS/xylatex.ini,v&&coxylatex.ini||:1334xyline.doc:;test-dRCS-a-fRCS/xyline.doc,v&&coxyline.doc||:1335xyline10.mf:;test-dRCS-a-fRCS/xyline10.mf,v&&coxyline10.mf||:1336xymacpat.xyp:;test-dRCS-a-fRCS/xymacpat.xyp,v&&coxymacpat.xyp||:1337xymatrix.doc:;test-dRCS-a-fRCS/xymatrix.doc,v&&coxymatrix.doc||:1338xymisc10.mf:;test-dRCS-a-fRCS/xymisc10.mf,v&&coxymisc10.mf||:1339xymovie.doc:;test-dRCS-a-fRCS/xymovie.doc,v&&coxymovie.doc||:1340xyoztex.doc:;test-dRCS-a-fRCS/xyoztex.doc,v&&coxyoztex.doc||:1341xypic.doc:;test-dRCS-a-fRCS/xypic.doc,v&&coxypic.doc||:1342xypic.map:;test-dRCS-a-fRCS/xypic.map,v&&coxypic.map||:1343xypic.sty:;test-dRCS-a-fRCS/xypic.sty,v&&coxypic.sty||:1344xypoly.doc:;test-dRCS-a-fRCS/xypoly.doc,v&&coxypoly.doc||:1345xyps-c.doc:;test-dRCS-a-fRCS/xyps-c.doc,v&&coxyps-c.doc||:1346xyps-col.doc:;test-dRCS-a-fRCS/xyps-col.doc,v&&coxyps-col.doc||:1347xyps-dto.doc:;test-dRCS-a-fRCS/xyps-dto.doc,v&&coxyps-dto.doc||:1348xyps-dvi.doc:;test-dRCS-a-fRCS/xyps-dvi.doc,v&&coxyps-dvi.doc||:1349xyps-f.doc:;test-dRCS-a-fRCS/xyps-f.doc,v&&coxyps-f.doc||:1350xyps-l.doc:;test-dRCS-a-fRCS/xyps-l.doc,v&&coxyps-l.doc||:1351xyps-one.doc:;test-dRCS-a-fRCS/xyps-one.doc,v&&coxyps-one.doc||:1352xyps-oz.doc:;test-dRCS-a-fRCS/xyps-oz.doc,v&&coxyps-oz.doc||:1353xyps-pro.doc:;test-dRCS-a-fRCS/xyps-pro.doc,v&&coxyps-pro.doc||:1354xyps-ps.doc:;test-dRCS-a-fRCS/xyps-ps.doc,v&&coxyps-ps.doc||:1355xyps-pub.doc:;test-dRCS-a-fRCS/xyps-pub.doc,v&&coxyps-pub.doc||:1356xyps-r.doc:;test-dRCS-a-fRCS/xyps-r.doc,v&&coxyps-r.doc||:1357xyps-s.doc:;test-dRCS-a-fRCS/xyps-s.doc,v&&coxyps-s.doc||:q&*tjD.3.CGENERAeTIONk+625??hw1358xyps-t.doc:;test-dRCS-a-fRCS/xyps-t.doc,v&&coxyps-t.doc||: 1359xyps-txo.doc:;test-dRCS-a-fRCS/xyps-txo.doc,v&&coxyps-txo.doc||:1360xyps-txt.doc:;test-dRCS-a-fRCS/xyps-txt.doc,v&&coxyps-txt.doc||:1361xyps-wdo.doc:;test-dRCS-a-fRCS/xyps-wdo.doc,v&&coxyps-wdo.doc||:1362xyps.doc:;test-dRCS-a-fRCS/xyps.doc,v&&coxyps.doc||:1363xypsdict.doc:;test-dRCS-a-fRCS/xypsdict.doc,v&&coxypsdict.doc||:1364xypspatt.doc:;test-dRCS-a-fRCS/xypspatt.doc,v&&coxypspatt.doc||:1365xyqc10.mf:;test-dRCS-a-fRCS/xyqc10.mf,v&&coxyqc10.mf||:1366xyrecat.doc:;test-dRCS-a-fRCS/xyrecat.doc,v&&coxyrecat.doc||:1367xyrefer.man:;test-dRCS-a-fRCS/xyrefer.man,v&&coxyrefer.man||:1368xyrotate.doc:;test-dRCS-a-fRCS/xyrotate.doc,v&&coxyrotate.doc||:1369xysmart.doc:;test-dRCS-a-fRCS/xysmart.doc,v&&coxysmart.doc||:1370xysource.man:;test-dRCS-a-fRCS/xysource.man,v&&coxysource.man||:1371xystyle.doc:;test-dRCS-a-fRCS/xystyle.doc,v&&coxystyle.doc||:1372xytech.mf:;test-dRCS-a-fRCS/xytech.mf,v&&coxytech.mf||:1373xytest.mf:;test-dRCS-a-fRCS/xytest.mf,v&&coxytest.mf||:1374xytex.ini:;test-dRCS-a-fRCS/xytex.ini,v&&coxytex.ini||:1375xytextures.doc:;test-dRCS-a-fRCS/xytextures.doc,v&&coxytextures.doc||:1376xytile.doc:;test-dRCS-a-fRCS/xytile.doc,v&&coxytile.doc||:1377xytips.doc:;test-dRCS-a-fRCS/xytips.doc,v&&coxytips.doc||:1378xytp-f.doc:;test-dRCS-a-fRCS/xytp-f.doc,v&&coxytp-f.doc||:1379xytpic.doc:;test-dRCS-a-fRCS/xytpic.doc,v&&coxytpic.doc||:1380xyv2.doc:;test-dRCS-a-fRCS/xyv2.doc,v&&coxyv2.doc||:1381xyweb.doc:;test-dRCS-a-fRCS/xyweb.doc,v&&coxyweb.doc||:1382xyxdvi.doc:;test-dRCS-a-fRCS/xyxdvi.doc,v&&coxyxdvi.doc||:v1385#DEVELOPMENTTARGETS:1386#1387.PHONY:QInstall.macrosInstallFtpsrcFtpdocFtpWorldMinorP1389Install.macros:1390#i$(MAKE)9|USR=$$HOME/pub7yIinstall.macros1392Install:1393#i$(MAKE)9|USR=$$HOME/pub7yIinstall1395Ftpsrc:1396#i$(MAKE)-PMODES='ljfourcx'7yI\1397 MAGS='00.512'7yI\1398nE FTPROOT=$$HOME/public_ftp/TeX7yIftpsrc1400Ftpdoc:1401#i$(MAKE)"}MODES='ljfourcx'7yI\1402tMAGS='00.512'7yI\1403bŷFTPROOT=$$HOME/public_ftp/TeX7yIftpdoc1405Ftp:1406#i$(MAKE)"}MODES='ljfourcx'7yI\1407tMAGS='00.512'7yI\1408bŷFTPROOT=$$HOME/public_ftp/TeX7yIftp1410Www:1411#i$(MAKE)WWWROOT=$$HOME/public_html7yIinstall.wwwr&)t*tj626)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw1413World: 1414#i$(MAKE)"}LATEX='timelatex'7yI\1415nE MODES='ljfourcx'7yI\1416tMAGS='00.512'7yIworld1417#imvmake.worldmake.WorldP1419TMPFTPROOT=$$HOME/tmp/new-ftp-root1421Minor: 1422#i$(MKDIR)$(TMPFTPROOT)1423#i$(MAKE)"}LATEX='timelatex'7yI\1424nE MODES='ljfourcx'7yI\1425tMAGS='00.512'7yI\1426bŷFTPROOT=$(TMPFTPROOT)7yIworld1427#imvmake.worldmake.Minor1428#1429#i@echo"Makingpatch:";\1430)Icd$(TMPFTPROOT);\1431)Idiff-urN$(FTPROOT)/xy-$(VERSION)xy-$(VERSION)>FIX;\1432)In=`cd$(FTPROOT);lsxy$(SHORTVERSION)fix*|wc-w2>/dev/null`;\1433)In=`expr$$n+1`;\1434)Ifix=$(FTPROOT)/xy$(SHORTVERSION)fix`printf'%.2d'$$n`;\1435)Icp-vfFIX$$fix;gzip-v9$$fix1436#1437#i@echo"Updatingrealftparchive$(FTPROOT):";\1438)Icd$(TMPFTPROOT);\1439)Ifindxy*-typef-print\1440)I|whilereadf;\14414gdocmp-s$$f$(FTPROOT)/$$f\1442Fe||{echo$$f;$(MKDIR)`dirname$(FTPROOT)/$$f`;\1443bŷif[-w$$f];then$(INSTALLW)$$f$(FTPROOT)/$$f;\1444bŷelse[$(INSTALL) T$$f$(FTPROOT)/$$f;\1445bŷfi;};\14464gdone1447#i$(RM)$(TMPFTPROOT)v1450#LOG1451#1452#$Log:Makefile,v$1453#Revision3.7 T1999/02/1615:12:50krisrose1454#Interimrelease(Y&Yfontsnowfree).1455#1456#Revision3.6 T1998/03/0601:28:05krisrose1457#Releasing(withY&Yfonts).1458#1459#Revision3.5 T1997/05/2813:05:01krisrose1460#Fixedmissingbreaksbug.1461#1462#Revision3.4 T1997/05/1803:04:44krisrose1463#Essentialbugfixes.1464#Andmoviesnowincluded!s&77*tjD.3.CGENERAeTIONk+627??hw1465# 1466#Revision3.3 T1996/12/1917:05:13krisrose1467#Maintenancerelease!1468#1469#Revision3.2 T1995/09/1918:22:27kris1470#Bugfixrelease.1471#1472#Revision3.1 T1995/09/0520:31:32kris1473#Releasing!1474#1475#Revision3.0 T1995/07/0720:14:21kris1476#Majorreleasew/newUser'sGuide!1477#1478#Revision2.14 T1995/07/0602:56:02kris1479#Buglets...1480#1481#Revision2.13 T1995/07/0415:10:01kris1482#Readytoreleasev3?1483#1484#Revision2.12 T1994/10/2511:46:25kris1485#Interimreleasejustbeforev3[workswithAMS-LaTeX1.2]...1486#1487#Revision2.11 T1994/07/0510:37:32kris1488#Third3betarelease[bugfixes].1489#Experimentalgraphfeatureincluded(forECCT-94presentation).1490#1491#Revision2.10 T1994/06/1513:35:19kris1492#Second3betarelease[bugfixes].1493#1494#Revision2.9 T1994/06/0914:53:07kris1495#Release3beta.1496#1497#Revision2.8 T1994/04/0804:30:00kris1498#Second(bugfix)3alpharelease.1499#1500#Revision2.7 T1994/03/0802:06:01kris1501#Release3alpha.1502#1503#Revision2.6.9.1 T1994/03/0704:22:46kris1504#Lastinternal3alphaandpre-2.7release.1505#1506#MAJORREORGANISATIONforversion2.7...1507#1508#Revision2.6 T1992/06/2401:23:34kris1509#Readytoreleasev.2.6.1510#1511#Revision2.5 T1992/02/2403:30:54kris1512#Defaultmagstepsnowjust0,0.5,1,and2.1513#t&A*tj628)APPENDIXfD.LDISTRIBUTIONSUPPOReTFILES??hw1514#Revision2.3 T1992/01/1302:12:28kris 1515#Fixedinstallationinstructionsandotherdetails.1516#1517#Revision2.1 T1992/01/0214:54:07kris1518#Releaseversion.1519#1520#Revision1.6 T1991/12/1704:51:16kris1521#Versiondistributedwith`finaldraft'onUsenet.P1523#TellEmacsthatthisisaMakefileandhowitisformatted:1524#LocalVariables:1525#mode:fundamental1526#fill-prefix:"#"1527#fill-column:771528#End:u&J*tj??wBibliograph8y5[1]=AdobMefSystemsIncorporated.PostScriptLpanguageReferenceManual,fsecondedition,1990.⍍[2]=AmericanfMathematicalSoMciet!ye.A,[wM S-LnAT"R[wE)XV)ersion1.1User'sGuide,f1.1edition,1991.[3]=Karl}Berrye.\PExppandedplainT"R[wE)X,v!ersion2.6edition,Ma!y1994.\PAvdDailableforanonymousftp =fromfCTeANinmacros/eplain/doc.[4]=Mic!helGoMossens,FerankMittelbach,andAlexanderSamarin.]TheBLnAT"R[wE)XComppanion.Addison-=Weesley,f1994.[5]=BrianAW.Kernighan.PIC|alanguagefort!ypMesettinggraphics.SoftwarpeaPracticeandExperience,=12(1):1{21,f1982.[6]=DonaldfE.Kn!uth.TheT"R[wE)Xbpook.Addison-Weesley,f1984.[7]=DonaldfE.Kn!uth.TheMETAF9ONTbpook.Addison-Weesley,f1986.[8]=DonaldE.Kn!uth.Computer`EMopdernT)ypefaces,-v!olumeAofComputers`E&T)ypesetting.Addison-=Weesley,f1986.[9]=LesliefLampMort.LnAT"R[wE)X|ADopcumentPreparationSystem.Addison-Weesley,f1986.[10]=LesliefLampMort.LnAT"R[wE)X|ADopcumentPreparationSystem.Addison-Weesley,f2ndedition,1994.[11]=TeomasRokic!ki.`KD\VIPS:5AT"R[wE)XDriver.DistributedwiththedvipsprogramfoundonCTeAN=arc!hives.[12]=Kristo erOH.Rose.\Ho!wtotypMesetprettydiagramarrowswithT,[wEB X|designdecisionsusedinXYuG-pic.InJih)=rȈZlatul YskdDa,)editor,EurpoT"R[wE)X'92|Proceedingsofthe7thEuropeanT"R[wE)XConference,=pagesf183{190,Prague,Czec!hoslovdDakia,fSeptembMer1992.CzechoslovdDakT,[wEB XUsersGroup.[13]=Kristo erTH.Rose. JT!ypMesettingdiagramswithXYx^-pic:User'smanual. JInJih)=rȈZlatul YskdDa,ledi-=tor,uEurpoT"R[wE)X?'92|Proceedingsofthe7thEuropeanT"R[wE)XConference,upages273{292,Prague,=Czec!hoslovdDakia,fSeptembMer1992.CzechoslovdDakT,[wEB XUsersGroup.[14]=Kristo er\H.Rose.D)XZY-pic,User'sGuide.bDIKU,\Univ!ersityofCopMenhagen,k~Universitetsparken1,=DK{2100fKbMenha!vn,3.0edition,June1995.[15]=Kristo erH.RoseandRossR.MoMore.XY -piccompletesourceswithT,[wEB Xnicalcommen!tarye.not=y!etfavdDailable,June1995.[16]=Kristo er@H.RoseandRossR.MoMore.+XZY-picxNRpeferenceManual.DIKU,@Univ!ersityofCopMen-=hagen,fUniv!ersitetsparken1,DK{2100KbMenhavn,3.0edition,June1995.[17]=Mic!haelD.SpivdDak.-Thec#JoyofT"R[wE)X|AcGourmetGuidetoT)yppesettingwiththeA,[wM S-T"R[wEXMacrpo=Package.AmericanfMathematicalSoMciet!ye,secondedition,1990.LW.629v&M*tj630{kBIBLIOGRAPHY??hw[18]=TUG7Weorking7GroupTW!G-TDS. AdirectorystructureforT,[wEB X lesv!ersion0.98. URL,May =1995.AvdDailablefwithURLftp://jaspMer.ora.com/pub/t!wg-tds/.w&\*tj??򒍟IndexK n򒍑!,f23 漍&,f342',f295(),f23(0),f23(0,0),f545(1),f23*,f23,295,306,313,343,357,500,554**,f23,305,357*stylechar@P@,fxynecula.doc:106*stylechar@|@,fxyline.doc:114+,f23,,f23,302-,f23,295,298.,f23.xyd,f69/,f295,299,304,313//,f23:,f23,46::,f23;,f23<,f23,295,300,305<>,f23<>(.5),f295,298=,f23,295,297,299,300,305,306>,f23,295,300,305?,f23,305@,f23,295,354,456@!,f355,456@!0,f355@!=,f355@!C,f355@!R,f355@(,f41,314,456@),f41@*,f357,456@+,f41@-,f41@/,f314,456@1,f359@<,f315,456򒍒K@=,f41 ȐK@?,f315,456K@@,f41K@C,f354K@H,f355K@L,f355K@M,f355K@R,f354K@W,f355K@`,f456K@i,f41K\[,fxy.doc:2538K[.],f54K[=,f46,59,238,245K[P:,f281K[],f54,55K[c],f54K[d],f54K[dvips],f11K[l],f54K[o],f54K[r],f54K[textures],f11K[u],f54K\\,f342K^,f295,301{303,305,456K_,f295,301{303,305,456K`,f295,301K`s,f446K{\styletoks@},fxy.doc:3894K{\xypatread@},fxytile.doc:264K|,f295,456K|<<,f554K|DOCMODE,fxy.doc:70K~,f295~K0,f20,23,456K1,f456K2,f456K3,f456K10,f215K11,f215LW.631x&]̠*tj632rINDEX??hw12,f215oA,f8 \a,fxy.doc:2062a,f23\A@,fxyidioms.doc:85\ABfromdiag@,fxyarrow.doc:849\aboveDirection@,fxy.doc:7265\activatedriver@,fxy.doc:6705\activatedriversupport@,fxy.doc:6708\activateEM@,fxyemtex.doc:132\activatetips@,fxytips.doc:128\activateTPIC@,fxytpic.doc:222activ!efcharacters,4\ad,fxy.doc:2063haddfopi,46\add@m@keys,fmovie.cls:95\addAND@,fxy.doc:296\addAT@,fxy.doc:293\addbeforeDrop@@,fxyframe.doc:113\addDASH@,fxy.doc:299\addDOLL@,fxy.doc:295\addDOT@,fxy.doc:300\addEQ@,fxy.doc:302\addFalse@,fxy.doc:318\addGT@,fxy.doc:303\addHASH@,fxy.doc:294\addLQ@,fxy.doc:304\addLT@,fxy.doc:301\ADDOP@,fxy.doc:3595\Addop@,fxy.doc:3631\ADDOP@minus,fxy.doc:3612\ADDOP@plus,fxy.doc:3605\addPLUS@,fxy.doc:298\addq@,fxymatrix.doc:183\addq@@,fxymatrix.doc:188\addq@i,fxymatrix.doc:190\addq@ii,fxymatrix.doc:193\addRQ@,fxy.doc:297\addtoarinit@,fxyarrow.doc:1264\addtoarlabels@,fxyarrow.doc:1267\addtocrv@,fxycurve.doc:1931\addtocrvpts@,fxycurve.doc:2032\addtoDrop@@,fxyframe.doc:111\addtostyletoks@,fxy.doc:3895\addtotoks@,fxy.doc:724\addTrue@,fxy.doc:319\adjust@forsegments@,fxycurve.doc:4114\adjustBaseOrient@,fxyarc.doc:1388\adjustbsplineedges@,fxycurve.doc:4132hwK\adjustLR@,fxy.doc:3142 ÍK\adjustmaxmin@,fxycurve.doc:3744K\adjustMinMaxcirc@,fxycurve.doc:4479K\adjustUD@,fxy.doc:3148K\afterADDOP,fxy.doc:3591K\afterADDOP,f53K\afterADDOP@,fxy.doc:3593K\afteraliases@@,fxyarrow.doc:1058K\afterar@@,fxyarrow.doc:1218K\AfterBeginDocument,fxyps-ps.doc:179K\afterCIR@,fxy.doc:6070K\afterCIRDIAG@,fxy.doc:6071K\afterCIRorDIAG,fxy.doc:6068K\afterCOORD,fxy.doc:1377K\afterCOORD,f24K\afterCOORD@,fxy.doc:1382K\afterCURVE,fxycurve.doc:1978K\afterCURVEaction@,fxycurve.doc:274K\afterDIAG,fxy.doc:4297K\afterDIRECTION@,fxy.doc:4239K\afterDIRECTIONorEMPTY,fxy.doc:4233K\aftergo,fxyv2.doc:266K\aftergo,f556K\afterMORPHISM,fxy2cell.doc:161K\afterNODE,fxygraph.doc:213K\afterNODE@@,fxygraph.doc:211K\afternudge,fxy2cell.doc:827K\afterPATH,fxyarrow.doc:187K\afterPATH,f295K\afterPATH@,fxyarrow.doc:185K\afterPLACE,fxy.doc:2274K\afterPLACE@,fxy.doc:2291K\afterPOS,fxy.doc:1370K\afterPOS,f24,65,301K\afterPOS@,fxy.doc:1375K\aftertwo@CELL,fxy2cell.doc:1225K\aftertwoCELL,fxy2cell.doc:1226K\afterVECTOR@,fxy.doc:1391K\afterVECTORorEMPTY,fxy.doc:1384K\afterVECTORorEMPTY,f24K\ahook,fxyv2.doc:366K\ahook,f558K\ahook@,fxy.doc:5730K\ahook@@,fxy.doc:5731K\AliasPattern,fxytile.doc:286K\aliaspattern@@,fxytile.doc:316KalloMcation,f15K\almostz@,fxy.doc:659K\alphanum,fxypoly.doc:428y&f*tjINDEXr633??hwA,[wM S-LAGT,[wEB X,f7,67 ÍA,[wM S-T,[wEB X,f7\apit,f554\appendtoholder@,fxyknot.doc:1092\appendtoholder@@,fxyknot.doc:1096\appendtoholder@@@,fxyknot.doc:1100\appendtoholer@,fxyknot.doc:1115\applyFIFOstyle@,fxy.doc:4162\applyLIFOstyle@,fxy.doc:4190\ar,fxyarrow.doc:1226\ar,f59,299,307,446\ar@,fxyarrow.doc:1248\ar@anchor,fxyarrow.doc:1270\ar@curve,fxyarrow.doc:1736\ar@curve@,fxyarrow.doc:1747\ar@curveinout,fxyarrow.doc:1712\ar@curveinout@,fxyarrow.doc:1710\ar@curveslash,fxyarrow.doc:1673\ar@error,fxyarrow.doc:1324\ar@form,fxyarrow.doc:1287\ar@i,fxyarrow.doc:1346\ar@ii,fxyarrow.doc:1354\ar@iii,fxyarrow.doc:1359\ar@iv,fxyarrow.doc:1365\ar@modifiers,fxyarrow.doc:1781\ar@PATH,fxyarrow.doc:1406\ar@slashing,fxyarrow.doc:1675\ar@slide,fxyarrow.doc:1796\ar@style,fxyarrow.doc:1332\ar@upsidedown,fxyarrow.doc:1807\ar@x,fxyarrow.doc:1377\arafterPOS@,fxyarrow.doc:1408\arafterPOS@@,fxyarrow.doc:1211\arc@,fxyarc.doc:91\arc@i,fxyarc.doc:123\arcbisector,fxyarc.doc:1013\arcCenter@,fxyarc.doc:1020\arcCenter@i,fxyarc.doc:1026\arcmagic,fxyarc.doc:890\arcmagic@@,fxyarc.doc:889\arcomponent@,fxyarrow.doc:1424\arcomponent@@,fxyarrow.doc:1215\arcomponent@i,fxyarrow.doc:1438\arcomponent@ii,fxyarrow.doc:1440\arcomponent@x,fxyarrow.doc:1468\arcomponenttype@@,fxyarrow.doc:1216\arconn@,fxyarrow.doc:1457\arcScale@@,fxyarc.doc:252\arcScale@dim,fxyarc.doc:262hwK\ARCturn@,fxyarc.doc:961 K\ARCturn@@,fxyarc.doc:964K\ARCturn@@@,fxyarc.doc:970K\arexit@@,fxyarrow.doc:1213K\arhead@@,fxyarrow.doc:1208K\arinit@@,fxyarrow.doc:1212K\arlabels@@,fxyarrow.doc:1210K\armodifiers@@,fxyarrow.doc:1209Karray,f361K\arraystretch,fxy.doc:6152K\arrow,fxyv2.doc:599Karro!wfhead,312Karro!wfstem,312Karro!wftail,312K\arrowobject,fxy2cell.doc:207K\Arrowobject@,fxy2cell.doc:208K\Arrowtok@,fxy2cell.doc:1447K\arSAFE,fxyarrow.doc:1228K\arsavedPATHafterPOS@@,fxyarrow.doc:1412K\arstem@@,fxyarrow.doc:1207K\arstemprefix@@,fxyarrow.doc:1205K\artail@@,fxyarrow.doc:1206K\artip@,fxyarrow.doc:1442K\arvariant@@,fxyarrow.doc:1204K\astop,fxyv2.doc:349K\astop,f558K\AtBeginDvi,fxyidioms.doc:175K\aTip,fxyv2.doc:358K\atip,fxyv2.doc:353K\aTip,f558K\atip,f558K\atip@,fxy.doc:5621K\atip@@,fxy.doc:5630K\atip@cm,fxytips.doc:125K\atip@xy,fxytips.doc:49K\aturn,fxyv2.doc:369K\aturn,f558K\aturn@,fxy.doc:5760K\aturn@@,fxy.doc:5761K\AveryUNLIKELYc@ntr@lSEQUENCE@@,:xyidioms.doc:98oKB,f8K\B@,fxyidioms.doc:86K\backwardSectors@,fxyarc.doc:1255Kbanner,f13K\basefromthebase@,fxy.doc:1879K\baseOrient@,fxyarc.doc:325K\bblacked@,fxyframe.doc:469K\belowDirection@,fxy.doc:7282K\bendPLACE@,fxycurve.doc:1378z&u*tj634rINDEX??hw\bhook,fxyv2.doc:367 Í\bhook,f558\bhook@,fxy.doc:5738\bhook@@,fxy.doc:5739\blacked@,fxyframe.doc:461\blacked@@,fxyframe.doc:474\blacktriangle,fxypoly.doc:587hbModyfoftheoptioni,91\boxz@,fxyidioms.doc:114\bpit,f554\bprevPLACE@,fxycurve.doc:1379\break@end,fxycurve.doc:2933\break@start,fxycurve.doc:2869\breakendcontinue@,fxycurve.doc:2888\breakendcontinue@i,fxycurve.doc:2895\breakendfound@,fxycurve.doc:2923\breakstartcontinue@,fxycurve.doc:2802\breakstartcontinue@i,fxycurve.doc:2808\breakstartfound@,fxycurve.doc:2821\bsegment@@i,fxycurve.doc:4194\bsegment@@ii@i,fxycurve.doc:4227\bsegment@@ii@iii,fxycurve.doc:4178\bsegment@@iv,fxycurve.doc:4204\bsegment@@y@iv,fxycurve.doc:4237\bsegment@i,fxycurve.doc:4260\bsegment@i@iv,fxycurve.doc:4276\bsegment@z,fxycurve.doc:4298\bsegment@z@i,fxycurve.doc:4314\bsplinecancel@,fxycurve.doc:3452\bsplineconnect@,fxycurve.doc:4012\bsplined@,fxycurve.doc:4110\bsplined@@,fxycurve.doc:4002\bsplineiiiconnect@,fxycurve.doc:3960\bsplineivconnect@,fxycurve.doc:3968\bsplinesegment@,fxycurve.doc:4328\bsplinesegment@iii,fxycurve.doc:4351\bsplinesegment@iv,fxycurve.doc:4377\bstartPLACE@,fxycurve.doc:1377\bstop,fxyv2.doc:350\bstop,f558\bthisPLACE@,fxycurve.doc:1380\bTip,fxyv2.doc:359\btip,fxyv2.doc:354\bTip,f558\btip,f558\btip@,fxy.doc:5622\btip@@,fxy.doc:5631\btip@cm,fxytips.doc:126\btip@xy,fxytips.doc:50hwK\bturn,fxyv2.doc:370 K\bturn,f558K\bturn@,fxy.doc:5766K\bturn@@,fxy.doc:5767K\buildcircle@,fxycurve.doc:4604oKC,f23,40Kc,f21Kc,f23K\c@poly@count,fxynecula.doc:107K\Calong@@,fxy.doc:7930K\cancelPSdict@,fxyps-ps.doc:489KcartesianfcoMordinatesystem,21KcategoryfcoMde,4K\Cbreak@@,fxy.doc:7932K\CCintercept@@,fxycurve.doc:1664KCD,f23K\cD,fxyv2.doc:199K\cD,f556K\centerobject@,fxy.doc:3731K\cfromcontrols@,fxyarc.doc:508K\cfromid@,fxy.doc:2896K\cfromp@,fxy.doc:1629K\cfroms@,fxy.doc:2681K\cfromthec@,fxy.doc:1660K\cfromthep@,fxy.doc:1664K\cH,fxyv2.doc:200K\cH,f556K\change@oxy@,fxy.doc:860K\changedriver@single,fxy.doc:6690K\checkafterCURVE@,fxycurve.doc:710K\checkcrvtilde@,fxycurve.doc:947K\checkendcurve@,fxycurve.doc:680K\checkEqOpen@,fxyarc.doc:1128K\checkfoundEbreak@,fxycurve.doc:2850K\checkfoundSbreak@,fxycurve.doc:2831K\checkgroupbreak@,fxyknot.doc:1069K\checkmodmap@,fxy2cell.doc:494K\checkoverlap@@,fxy.doc:8044K\checkpolytok@,fxypoly.doc:519K\checkRadOpen@,fxyarc.doc:215K\checkslidemore@,fxycurve.doc:1188K\checksplinefind@,fxycurve.doc:1315K\checkstartDirection@,fxyarc.doc:1303K\checkXy@rules@,fxy.doc:5172K\checkxyPScolor@,fxyps-c.doc:109K\checkxyPScolor@@,fxyps-c.doc:108K\checkXyStyle@,fxy.doc:3970K\checkZeroEdge@,fxy.doc:3154K\chooseangleinterval@,fxy.doc:2038{&*tjINDEXr635??hw\Cintercept@@,fxy.doc:7931 Íhciri,f85,88\cir,fxy.doc:5986\cir,f88,549\CIR@,fxy.doc:6073\cir@,fxy.doc:5989\CIR@@,fxy.doc:6075\cir@cir,fxy.doc:6000\cir@diag,fxy.doc:6012\cir@i,fxy.doc:6023\CIRacw@,fxy.doc:6273\cirbuild@,fxy.doc:6135\circhar@,fxy.doc:6141\circhar@@,fxy.doc:6145\circleArc@,fxyarc.doc:991\circleCentre@,fxy.doc:7441\circlecentredEdge@,fxy.doc:7477\circlecentredInner@,fxy.doc:7491\circlecentredOuter@,fxy.doc:7495\circlecentredUnder@,fxy.doc:7481\circleCorner@,fxycurve.doc:4715\Circled,fxyv2.doc:495\circled,fxyv2.doc:494\Circled,f560\circled,f560\circled@,fxyframe.doc:518\circled@x@,fxyframe.doc:526\circled@x@@,fxyframe.doc:528\circledobjects@,fxycurve.doc:4557\circleEdge,fxy.doc:7420\circleEdge@,fxy.doc:7425\circleInner@,fxy.doc:7455\circleOuter@,fxy.doc:7461\circleProp@,fxy.doc:7431circles,f14\circlescale@,fxy.doc:7489\circletemplate@,fxycurve.doc:4646\circleUnder@,fxy.doc:7437\Circmagic,fxycurve.doc:4445\Circmagic@@,fxycurve.doc:4444\CIRcw@,fxy.doc:6284\CIRfull@,fxy.doc:6125\CIRhi@@,fxy.doc:6113\CIRin@@,fxy.doc:6064\CIRlo@@,fxy.doc:6112\CIRorient@@,fxy.doc:6066\CIRout@@,fxy.doc:6065\cirrestrict@@,fxy.doc:6168\CIRtest@@,fxy.doc:6111hwK\CIRtest@inside,fxy.doc:6295 ÍK\CIRtest@outside,fxy.doc:6298KCL,f23K\cL,fxyv2.doc:197K\cL,f556K\Clast@@,fxy.doc:7933K\clearcurve,fxycurve.doc:1847K\clearq@,fxymatrix.doc:179K\clearsearchflag@,fxycurve.doc:716Kcm,f215K\cmerge@,fxy.doc:1785K\cmergethec@,fxy.doc:1782K\codeof,fxy.doc:226K\codeof,f4K\codeof@,fxy.doc:227K\Col,fxymatrix.doc:160K\Col,f359K\colorxy,fxyps-ps.doc:271Kcolumnfspacing,354K\comma@@,fxy.doc:1591Khcommandi,f65K\CompileAllDiagrams,fxyv2.doc:797K\CompileFixPoint,fxy.doc:4821K\CompileFixPoint,f67K\CompileMatrices,fxymatrix.doc:283K\compilename@@,fxy.doc:4743K\CompilePrefix,fxy.doc:4734K\CompilePrefix,f67Kcompiling,f67KhcompMositei,f46K\composite,fxy.doc:3319K\composite,f46,50,82K\composite@,fxy.doc:3321K\composite@i,fxy.doc:3328K\composite@ii,fxy.doc:3335K\composite@iii,fxy.doc:3337K\composite@iv,fxy.doc:3347K\composite@x,fxy.doc:3352K\compositemap,fxy2cell.doc:1249K\compositemap@,fxy2cell.doc:273K\compositemapp,fxy2cell.doc:1263K\computeLeftUpness@,fxy.doc:3360K\connect,fxy.doc:4534Kconnect,f20K\connect,f65K\connect@,fxy.doc:2140K\Connect@@,fxy.doc:3226K\connect@iii,fxyv2.doc:615K\connect@Twocell,fxy2cell.doc:1411|&n*tj636rINDEX??hw\connectDrop@@,fxy.doc:2154 ÍconnectionfmethoMds,111\connectobjectbox@@,fxy.doc:2153\connectpostXY@style@,fxy.doc:2156\connectpreXY@style@,fxy.doc:2155\connectRest@@,fxy.doc:2158\connectRestore@,fxy.doc:2171\connectStore@,fxy.doc:2160con!text,f17\controlpts,:xycurve.doc:1961,xycurve.doc:1989\convertframed,fxyv2.doc:497\convertframed@i,fxyv2.doc:499\convexhull,:xycurve.doc:1962,xycurve.doc:1991\Conway,fxyknot.doc:1231hcoMordi,f23,280\COORD@,fxy.doc:1513,xynecula.doc:74cop!yleft,ficop!yright,fi\corn@@,fxyframe.doc:380\corn@x@,fxyframe.doc:374\corn@x@@,fxyframe.doc:378hcorneri,f23\CORNER@,fxy.doc:1443\CORNER@i,fxy.doc:1450\CORNER@ii,fxy.doc:1467\cosDirection,fxy.doc:685\cosFivePIon,fxypoly.doc:697\cosFourPIon,fxypoly.doc:688\cosPIon,fxypoly.doc:663\cosThreePIon,fxypoly.doc:679\cosTwoPIon,fxypoly.doc:670\count@@,xyidioms.doc:197,xyidioms.doc:200\count@@@,:xyidioms.doc:198,xyidioms.doc:201\cplusthec@,fxy.doc:1694CR,f23\cR,fxyv2.doc:198\cR,f556\Creset@@,fxy.doc:7925\croplattice,fxyweb.doc:190\crv,fxycurve.doc:264\crv@,fxycurve.doc:267\crv@cnt@,fxycurve.doc:84\crv@getStyles@,fxycurve.doc:781\crv@noobject,fxycurve.doc:354\crv@normaltemplate,fxycurve.doc:314\crv@othertemplate,fxycurve.doc:315\crv@saveStyles@,fxycurve.doc:777\crv@special,fxycurve.doc:391\crv@specialtemplate@,fxycurve.doc:390hwK\crv@specialtemplate@@,fxycurve.doc:316 ÍK\crvconnect@@,fxycurve.doc:968K\crvi,fxycurve.doc:324K\crvi,f314K\crvobjects@,fxycurve.doc:605K\crvpts@,fxycurve.doc:86K\crvresetbreaks@,fxycurve.doc:1366K\crvs,fxycurve.doc:323K\crvs@,fxycurve.doc:326K\crvSTYLE@@,fxycurve.doc:352K\crvXY@post@,fxycurve.doc:775K\crvXY@pre@,fxycurve.doc:774K\Cshavec@@,fxy.doc:7927K\Cshavep@@,fxy.doc:7926K\cskew@,fxy.doc:1740K\cskewthec@,fxy.doc:1737K\Cslidec@@,fxy.doc:7929K\Cslidep@@,fxy.doc:7928K\csname,f4K\csp@,fxy.doc:700K\ctipEdge@,fxy.doc:5595KCU,f23K\cubic@start@,fxycurve.doc:3926K\cubicARC@,fxyarc.doc:925K\cubicARC@i,fxyarc.doc:914K\cubicARCcontrols@@,fxyarc.doc:405K\cubicCircleControls@@,fxycurve.doc:4496K\cubiccoarsedir@,fxycurve.doc:3868K\cubicconnect@,fxycurve.doc:3718K\cubicDadvance@@@,fxycurve.doc:3823K\cubicdecast@,fxycurve.doc:3795K\cubiced@,fxycurve.doc:3939K\cubiced@@,fxycurve.doc:3832K\cubicfinedir@,fxycurve.doc:3851K\cubicIadvance@,fxycurve.doc:1519K\cubicinfo@,fxycurve.doc:3894K\cubicinsidehull@,fxycurve.doc:1796K\cubicIpt@,fxycurve.doc:1517K\cubicoutsidehull@,fxycurve.doc:1789K\cubicoutsidehull@i,fxycurve.doc:1800K\cubicoutsidehull@ii,fxycurve.doc:1807K\cubicplot@maybe,fxycurve.doc:3825K\cubicplot@maybeii,fxycurve.doc:3827K\cubicrec@,fxycurve.doc:3819K\cubicreverse@,fxycurve.doc:3906K\cubicreverse@@,fxycurve.doc:3909K\cubicsegment@,fxycurve.doc:3721K\cubicsetparams@,fxycurve.doc:3933K\cubictestcvxhull@,fxycurve.doc:1612}&*tjINDEXr637??hw\cubictestcvxhull@i,fxycurve.doc:1618 curren!tfobjectstyle,46,56\curve,fxycurve.doc:256\curve@check,fxyarrow.doc:1759\curveobject,fxy2cell.doc:1087\curveSTYLE@,fxycurve.doc:273\cuspidalARC@,fxyarc.doc:931\cv@end,fxycurve.doc:1919\cv@restore,fxycurve.doc:1920\cv@start,fxycurve.doc:1918\czeroEdge@,fxy.doc:1123oDM޹,f20D,f23,40\D@c,fxy.doc:614\D@p,fxy.doc:622\d@X,fxy.doc:673\d@Y,fxy.doc:674Dzc.y,f21Dzp],f21\darken@,fmovie.cls:271\dash@,fxy.doc:5498\dasharstem@,fxyarrow.doc:1320\dashcorner@,fxycurve.doc:4712\dashcorner@@,fxyframe.doc:390\dashcorntemp@@,fxycurve.doc:4706\Dashed,fxyv2.doc:307\dashed,fxyv2.doc:306\Dashed,f557\dashed,f557\dashedcircle@,fxycurve.doc:4665\dashedSpread@,fxy.doc:5514dashes,f14\dashframed,fxyv2.doc:505\dashframed,f560\dashhfillchar,fxyframe.doc:413\dashsquiggle@,fxy.doc:5529\dashsquiggledSpread@,fxy.doc:5540\dashvfillchar,fxyframe.doc:414\dbldottedcircle@,fxycurve.doc:4669\dbraced,fxyframe.doc:724\Dc,fxyv2.doc:215\Dc,f556\dcurveObject@,fxy2cell.doc:1091\Ddashed,fxyv2.doc:308\Ddashed,f557\dDirection@,fxy.doc:7073\Ddotted,fxyv2.doc:312\Ddotted,f557\ddtol,fxyv2.doc:696hwK\ddtor,fxyv2.doc:697 ÍKhdecori,f65Kdecoration,f21K\def,f3K\defarstem@,fxyarrow.doc:1313Kdefaultfen!trye,357K\defaultinstallps@,fxyps-ps.doc:210K\defaultlatticebody,fxyweb.doc:267K\defaultpattfile@,fxytile.doc:265K\define,f555Kde nefhshapMei,36K\definemorphism,fxyv2.doc:628K\definemorphism,f561K\definesupermorphism,fxy2cell.doc:163K\deflatticebody@,fxyweb.doc:266Khdiagi,f46K\DIAG@,fxy.doc:4299K\DIAG@@,fxy.doc:4307K\DIAG@@@,fxy.doc:4313K\diagram,fxyv2.doc:536K\diagram,f561K\diagram@,fxyv2.doc:538K\diagram@@,fxyv2.doc:552K\diagramcompileto,fxyv2.doc:769K\diagramnocompile,fxyv2.doc:793K\dimen@half,fxycurve.doc:2251K\dimen@nth,fxycurve.doc:2256Kdimensionfregisters,7K\dir,fxy.doc:5035K\dir,f70,72,82,312{314Kdir0{(},fxy.doc:5713Kdir0{)},fxy.doc:5719Kdir0{*},fxy.doc:5912Kdir0{+},fxy.doc:5896Kdir0{--},fxy.doc:5494Kdir0{-},fxy.doc:5128Kdir0{.},fxy.doc:5326Kdir0{//},fxy.doc:5907Kdir0{/},fxy.doc:5903Kdir0{<<},fxy.doc:5837Kdir0{<},fxy.doc:5617Kdir0{>>|},fxy.doc:5862Kdir0{>>},fxy.doc:5829Kdir0{>|},fxy.doc:5856Kdir0{>},fxy.doc:5611Kdir0{o},fxy.doc:5917Kdir0{x},fxy.doc:5900Kdir0{|-},fxy.doc:5890Kdir0{|<<},fxy.doc:5877~&*tj638rINDEX??hwdir0{|<},fxy.doc:5868 Ídir0{||},fxy.doc:5850dir0{|},fxy.doc:5690dir0{},fxy.doc:5072dir0{~},fxy.doc:5399dir0{~~},fxy.doc:5526dir1{(},fxy.doc:5710dir1{)},fxy.doc:5716dir1{--},fxy.doc:5491dir1{-},fxy.doc:5125dir1{..},fxy.doc:5547dir1{.},fxy.doc:5323dir1{<<},fxy.doc:5832dir1{<},fxy.doc:5614dir1{>>|},fxy.doc:5859dir1{>>},fxy.doc:5824dir1{>|},fxy.doc:5853dir1{>},fxy.doc:5608dir1{|-},fxy.doc:5880dir1{|<<},fxy.doc:5871dir1{|<},fxy.doc:5865dir1{||},fxy.doc:5840dir1{|},fxy.doc:5682dir1{},fxy.doc:5073dir1{~},fxy.doc:5396dir1{~~},fxy.doc:5523dir2{--},fxy.doc:5492dir2{-},fxy.doc:5126dir2{..},fxy.doc:5548dir2{.},fxy.doc:5324dir2{<<},fxy.doc:5835dir2{<},fxy.doc:5642dir2{>>|},fxy.doc:5860dir2{>>},fxy.doc:5827dir2{>|},fxy.doc:5854dir2{>},fxy.doc:5641dir2{|-},fxy.doc:5886dir2{|<<},fxy.doc:5873dir2{|<},fxy.doc:5866dir2{||},fxy.doc:5846dir2{|},fxy.doc:5687dir2{},fxy.doc:5076dir2{~},fxy.doc:5397dir2{~~},fxy.doc:5524dir3{--},fxy.doc:5493dir3{-},fxy.doc:5127dir3{..},fxy.doc:5549dir3{.},fxy.doc:5325dir3{<<},fxy.doc:5836hwKdir3{<},fxy.doc:5658 ÍKdir3{>>|},fxy.doc:5861Kdir3{>>},fxy.doc:5828Kdir3{>|},fxy.doc:5855Kdir3{>},fxy.doc:5657Kdir3{|-},fxy.doc:5888Kdir3{|<<},fxy.doc:5875Kdir3{|<},fxy.doc:5867Kdir3{||},fxy.doc:5848Kdir3{|},fxy.doc:5688Kdir3{},fxy.doc:5077Kdir3{~},fxy.doc:5398Kdir3{~~},fxy.doc:5525K\dir@,fxy.doc:5042K\dir@i,fxy.doc:5037K\dir@ii,fxy.doc:5040Kdir^{'},fxy.doc:5754Kdir^{(},fxy.doc:5711Kdir^{)},fxy.doc:5717Kdir^{<<},fxy.doc:5833Kdir^{<},fxy.doc:5615Kdir^{>>},fxy.doc:5825Kdir^{>},fxy.doc:5609Kdir^{`},fxy.doc:5757Kdir^{|-},fxy.doc:5882Kdir^{||},fxy.doc:5842Kdir^{|},fxy.doc:5683Kdir^{},fxy.doc:5074Kdir_{'},fxy.doc:5755Kdir_{(},fxy.doc:5712Kdir_{)},fxy.doc:5718Kdir_{<<},fxy.doc:5834Kdir_{<},fxy.doc:5616Kdir_{>>},fxy.doc:5826Kdir_{>},fxy.doc:5610Kdir_{`},fxy.doc:5758Kdir_{|-},fxy.doc:5884Kdir_{||},fxy.doc:5844Kdir_{|},fxy.doc:5685Kdir_{},fxy.doc:5075K\Direction,fxy.doc:681Khdirectioni,f46Kdirection,f16K\Direction,f81,82K\DIRECTION@,fxy.doc:4242K\DIRECTION@group,fxy.doc:4381K\DIRECTION@i,fxy.doc:4414K\DIRECTION@open,fxy.doc:4253K\DIRECTION@v,fxy.doc:4356&m*tjINDEXr639??hwdirectional,f15 Í\DirectionChar,fxy.doc:688\DirectionChar,f80\Directionfromdiag@,fxy.doc:4324\DirectionfromtheDirection@,fxy.doc:6997\Directiontest@@,fxy.doc:7021dir{},fxy.doc:5079dir{(},fxy.doc:5714dir{)},fxy.doc:5720dir{*},fxy.doc:5909dir{+},fxy.doc:5894dir{--},fxy.doc:5495dir{-},fxy.doc:5129dir{..},fxy.doc:5550dir{.},fxy.doc:5327dir{//},fxy.doc:5905dir{/},fxy.doc:5902dir{::},fxy.doc:5551dir{:},fxy.doc:5328dir{<<},fxy.doc:5838dir{<},fxy.doc:5618dir{==},fxy.doc:5496dir{=},fxy.doc:5130dir{>>|},fxy.doc:5863dir{>>},fxy.doc:5830dir{>|},fxy.doc:5857dir{>},fxy.doc:5612dir{o},fxy.doc:5914dir{x},fxy.doc:5898dir{|-},fxy.doc:5891dir{|<<},fxy.doc:5878dir{|<},fxy.doc:5869dir{|=},fxy.doc:5892dir{||},fxy.doc:5851dir{|},fxy.doc:5691dir{},fxy.doc:5070dir{~},fxy.doc:5400dir{~~},fxy.doc:5527\dlDirection@,fxy.doc:7068\DN@,fxyidioms.doc:109\DNii@,fxyidioms.doc:110\do,fxy.doc:6837\dobspline@,fxycurve.doc:4017\docecho@,fxy.doc:93\docfinish@,fxy.doc:94\doCircleArc@@,fxyarc.doc:437\doCircleArc@@@,fxyarc.doc:447\doCircleArcs@,fxyarc.doc:548\doCircleQuadrant@@,fxycurve.doc:4512hwK\doCircleQuadrant@@@,fxycurve.doc:4522 ÍK\doCircleSectors@,fxyarc.doc:1199K\docm@,fxy.doc:81K\docm@i,fxy.doc:82K\docm@ii,fxy.doc:83K\docm@iii,fxy.doc:85K\docm@iv,fxy.doc:90KDOCMODE,f1,7K\documentclass,f11K\doEllipseSectors@,fxyarc.doc:1284K\doii,fxy.doc:6842K\doMergeBoth@@,fxyarc.doc:489K\doMergeBothArc@,fxyarc.doc:483K\doMergeEnd@@@,fxyarc.doc:458K\doMergeEndArc@,fxyarc.doc:500K\doMergeEndArc@@,fxyarc.doc:452K\doMergeStart@@,fxyarc.doc:474K\doMergeStartArc@,fxyarc.doc:468K\dontleave@,fxy.doc:773K\doPSspecialRotate@@,fxyps-r.doc:143K\doShow,fxy.doc:6741K\doskewEllipse@,fxyarc.doc:1333K\dosolidcircle@,fxycurve.doc:4535K\dosolidcircle@@,fxycurve.doc:4543K\doSpecialRotate@,fxyrotate.doc:359K\dosplineplotpt@,fxycurve.doc:3429K\doSplineSegment@,fxycurve.doc:4848K\doSplineStraight@,fxycurve.doc:4844K\doStraightArc@@,fxyarc.doc:504K\dotcorner@,fxycurve.doc:4710K\dotcorner@@,fxyframe.doc:389K\dotcorntemp@@,fxycurve.doc:4708K\dotframed,fxyv2.doc:504K\dotframed,f560K\Dotted,fxyv2.doc:311K\dotted,fxyv2.doc:310K\Dotted,f557K\dotted,f557K\dottedcircle@,fxycurve.doc:4659K\dottedSpread@,fxy.doc:5366K\dottedSpread@i,fxy.doc:5374K\dottedwith,fxyv2.doc:314K\dottedwith,f557K\double@,fxy.doc:5466K\doublecircle@,fxycurve.doc:4647K\Dp,fxyv2.doc:222K\Dp,f556K\dparenthesized,fxyframe.doc:821K\draw@polyframe,fxynecula.doc:146&ӫ*tj640rINDEX??hw\draw@polygon,fxynecula.doc:213 Í\drDirection@,fxy.doc:7079hdriv!eri,f92\driverextensioncomplain@,fxy.doc:6920\Drop,fxyv2.doc:272\drop,fxy.doc:4531\Drop,f557\drop,f65\drop@,fxy.doc:2104\Drop@@,fxy.doc:3225\drop@Twocell,fxy2cell.doc:1409\dropentry@,fxymatrix.doc:659\droplabel@,fxyarrow.doc:944\Droprule@,fxy.doc:5303\droptwocelldrop@,fxy2cell.doc:376\droptwocelllabel@,fxy2cell.doc:367\droptwocelllabel@@,fxy2cell.doc:368\droptwocelltext@,fxy2cell.doc:374\dsize,f555\dumpPSdict,fxyps.doc:663\dumpPSdict{},f260\dumpPSdict@@,fxyps-ps.doc:158\dumpsizefile,fmovie.cls:284\dvidrv@@,fxydvidrv.doc:42\dvidrvEmTeX@,fxydvidrv.doc:59\dvidrvEmTeX@@,fxydvidrv.doc:58\dvidrvLine@,fxydvidrv.doc:67\dvidrvLine@@,fxydvidrv.doc:66\dvimessage@,fxy.doc:6929\dvips@,fxyps.doc:270\dvips@@,fxydvips.doc:42\dvips@Color@,fxydvips.doc:71\dvipsColor@@,fxydvips.doc:85\dvipsCrayola@,fxydvips.doc:119\dvipsCrayola@@,fxydvips.doc:117\dvipsCurrpt@,fxydvips.doc:200\dvipsCurrpt@@,fxydvips.doc:201\dvipsDict@,fxydvips.doc:169\dvipsEM@,fxydvips.doc:290\dvipsEM@@,fxydvips.doc:289\dvipsFrames@,fxydvips.doc:257\dvipsFrames@@,fxydvips.doc:255\dvipsInclude@,fxydvips.doc:170\dvipsLine@,fxydvips.doc:244\dvipsLine@@,fxydvips.doc:242\dvipsMacro@,fxydvips.doc:168\dvipsone@,fxyps.doc:274\dvipsPS@,fxydvips.doc:212\dvipsPS@@,fxydvips.doc:138hwK\dvipsPS@unload,fxydvips.doc:140 K\dvipsPStypes@,fxydvips.doc:151K\dvipsRaw@,fxydvips.doc:171K\dvipsRotate@,fxydvips.doc:224K\dvipsRotate@@,fxydvips.doc:222K\dvipsRotScale@,fxydvips.doc:231K\dvipsSpecial@,fxydvips.doc:167K\dvipsTiles@,fxydvips.doc:270K\dvipsTiles@@,fxydvips.doc:268K\dvipsTPIC@,fxydvips.doc:282K\dvipsTPIC@@,fxydvips.doc:281K\DVITOPS,fxydvitops.doc:32K\dvitops@,fxyps.doc:273K\dvitops@@,fxydvitops.doc:41K\dvitops@Color@,fxydvitops.doc:74K\dvitopsBegin@,fxydvitops.doc:179K\dvitopsColor@@,fxydvitops.doc:72K\dvitopsColor@x,fxydvitops.doc:183K\dvitopsCrayon@,fxydvitops.doc:136K\dvitopsCrayon@@,fxydvitops.doc:135K\dvitopsCurrpt@,fxydvitops.doc:208K\dvitopsDict@,fxydvitops.doc:175K\dvitopsEnd@,fxydvitops.doc:180K\dvitopsFrames@,fxydvitops.doc:286K\dvitopsFrames@@,fxydvitops.doc:284K\dvitopsInclude@,fxydvitops.doc:176K\dvitopsLine@,fxydvitops.doc:273K\dvitopsLine@@,fxydvitops.doc:271K\dvitopsMacro@,fxydvitops.doc:174K\dvitopsOrigin@,fxydvitops.doc:178K\dvitopsPS@,fxydvitops.doc:216K\dvitopsPS@@,fxydvitops.doc:143K\dvitopsPS@unload,fxydvitops.doc:145K\dvitopsPStypes@,fxydvitops.doc:157K\dvitopsRaw@,fxydvitops.doc:177K\dvitopsRotate@,fxydvitops.doc:230K\dvitopsRotate@@,fxydvitops.doc:228K\dvitopsRotate@x,fxydvitops.doc:181K\dvitopsRotScale@,fxydvitops.doc:237K\dvitopsSpecial@,fxydvitops.doc:173K\dvitopsTiles@,fxydvitops.doc:297K\dvitopsTPIC@,fxydvitops.doc:310K\dvitopsTPIC@@,fxydvitops.doc:308K\dvitopsTransform@x,fxydvitops.doc:182K\dvitype@,fxyps-ps.doc:96K\dX,fxyv2.doc:226K\dY,fxyv2.doc:227oKE,f23,40,103K\eat@,fxyidioms.doc:106&1*tjINDEXr641??hw\edef,f22 ÍEdge,f20Edgezc.y,f21Edgezp],f21\Edge@c,fxy.doc:617\Edge@p,fxy.doc:625\EdgefromtheEdge@,fxyframe.doc:104\ellipA,fxyimport.doc:56\ellipse,fxyarc.doc:62\ellipse@whichdblfrm@,fxyframe.doc:589\ellipse@whichfrm@,fxyframe.doc:580\ellipseArc@,fxyarc.doc:393\ellipsecentredEdge@,fxy.doc:7506\ellipsecentredInner@,fxy.doc:7543\ellipsecentredOuter@,fxy.doc:7534\ellipsecentredUnder@,fxy.doc:7522\ellipsed@,fxyframe.doc:641\ellipsed@e@,fxyframe.doc:633\ellipsed@ei@,fxyframe.doc:615\ellipsed@i,fxyframe.doc:649\ellipsed@i@,fxyframe.doc:598\ellipsed@x@,fxyframe.doc:652\ellipsed@x@@,fxyframe.doc:654\ellipsedashframed@,fxyframe.doc:660\ellipsedotframed@,fxyframe.doc:658\ellipseEdge@,fxy.doc:7603\ellipseInner@,fxy.doc:7671\ellipseOuter@,fxy.doc:7669\ellipseScale@,fxyarc.doc:281\ellipseScale@dim,fxyarc.doc:277\ellipsesolidframed@,fxyframe.doc:656\ellipticARC@,fxyarc.doc:922\ellsave@,fxyarc.doc:1158\EMalternative@,fxyemtex.doc:105\emptyspline@,fxycurve.doc:3365\endcrv@,fxycurve.doc:742\endcrv@@,fxycurve.doc:276\endcsname,f4\endcurve,fxycurve.doc:1982\enddiagram,f561\endellipse@@,fxyarc.doc:65\endgraph,fxygraph.doc:172\endpatread@,fxytile.doc:301\endxy,fxy.doc:1142\endxy,f19{21,64\endxycurve@,fxycurve.doc:1979\endXYdict@,fxyps-ps.doc:470en!ter,f17\enter@,fxy.doc:767hwKen!tryfheight,355 Ken!tryfmargin,355Ken!tryfwidth,355K\entry@,fxymatrix.doc:607K\entry@@,fxymatrix.doc:614K\entry@@i,fxymatrix.doc:621K\entry@@norm,fxymatrix.doc:644K\entry@@star,fxymatrix.doc:625K\entry@@star@i,fxymatrix.doc:628K\entry@@star@ii,fxymatrix.doc:635K\entrybox,fxymatrix.doc:1192K\entrymodifiers,fxymatrix.doc:1187K\entrymodifiers,f357K\entrymodifiers@,fxymatrix.doc:1190KError,f14KhescapMei,f458Keu,f215K\everyentry,fxymatrix.doc:1243K\everyentry,f359K\everyentry@,fxymatrix.doc:1246K\everyxy,fxy.doc:1127K\everyxy@@,fxy.doc:1130Kexecution,f19K\expandbeforenext@,fxynecula.doc:52Kextension,f92Kexten!ts,f20K\extractparameterm@,fxymovie.doc:64Ke|,f280oK\F,fmovie.cls:238,xymovie.doc:80K\F@,fmovie.cls:241K lefheader,1K\filepattern@@,fxytile.doc:310K\Filled,fxyv2.doc:514K\filled,fxyv2.doc:508K\filled@,fxyframe.doc:945K\filled@Circle@,fxyframe.doc:991K\filled@Ellipse@,fxyframe.doc:992K\filled@Oval@,fxyframe.doc:990K\filled@Rectangle@,fxyframe.doc:989K\filled@Region@,fxyframe.doc:981K\filledCircle@@,fxyframe.doc:971K\filledCircle@PS,fxyps-f.doc:195K\filledCircle@TPIC@@,fxytp-f.doc:242K\filledEllipse@@,fxyframe.doc:972K\filledEllipse@PS,fxyps-f.doc:197K\filledEllipse@TPIC@@,fxytp-f.doc:244K\filledOval@@,fxyframe.doc:973K\filledOval@PS,fxyps-f.doc:199K\filledOval@TPIC@@,fxytp-f.doc:245&*tj642rINDEX??hw\filledRectangle@@,fxyframe.doc:970 Í\filledRectangle@PS,fxyps-f.doc:193\filledRectangle@TPIC@@,fxytp-f.doc:238\findbreakwarning@,fxycurve.doc:2797\findIsegment@,fxycurve.doc:1528\findIsegment@i,fxycurve.doc:1537\findIsegment@ii,fxycurve.doc:1541\findIsegment@x,fxycurve.doc:1545\findIsegment@y,fxycurve.doc:1550\finishq@,fxymatrix.doc:197\firstbspline@,fxycurve.doc:4024\firstPS@,fxyps-ps.doc:137\firstPS@@,fxyps-ps.doc:139\firstsplinepoint@,fxycurve.doc:2405 xedfgrid,355\fixedDirection@,fxy.doc:7112\fixedRadiusArc@,fxyarc.doc:228\fixedRadiusArc@i,fxyarc.doc:232\flagwarn@,fxycurve.doc:717fon!ts,f14\forceload@XYdict,fxyps-ps.doc:613formatfdepMendencies,7formats,f7\forwardSectors@,fxyarc.doc:1226\foundpattern@,fxytile.doc:314\Fr,fmovie.cls:239,xymovie.doc:81fractionfcomputation,18\frame@compute,fmovie.cls:216\frame@emph@,fxyframe.doc:940\frame@emph@@,fxyframe.doc:943\frame@emph@PS,fxyps-f.doc:202\frame@fill@,fxyframe.doc:939\frame@fill@@,fxyframe.doc:942\Framed,fxyv2.doc:492\framed,fxyv2.doc:491\Framed,f560\framed,f560\framed@,fxyframe.doc:284\framed@@,fxyframe.doc:330\framed@body@,fxyframe.doc:343\framed@body@@,fxyframe.doc:358\framesetthick@,fxyframe.doc:287\framesetthick@line,fxyframe.doc:305\framezerodot@@,fxyframe.doc:265french.sty,f4\frm,fxyframe.doc:63\frm,f40,197\frm{**},f209\frm{*},f209hwKfrm2{-e},fxyframe.doc:573 ÍKfrm2{.e},fxyframe.doc:572K\frm@,fxyframe.doc:86K\frm@dashh@@,fxyframe.doc:406K\frm@dashv@@,fxyframe.doc:409K\frm@doth@@,fxyframe.doc:258K\frm@dotv@@,fxyframe.doc:260K\frm@generic,fxyframe.doc:92K\frm@i,fxyframe.doc:76K\frm@rddashh@@,fxyframe.doc:428K\frm@rddashv@@,fxyframe.doc:430K\frm@solidh@@,fxyframe.doc:289K\frm@solidv@@,fxyframe.doc:290K\frm@thickc@@,fxyframe.doc:307Kfrm[]{--},fxyframe.doc:404Kfrm[]{-},fxyframe.doc:282Kfrm[]{.},fxyframe.doc:256Kfrm[]{=},fxyframe.doc:298Kfrm[]{},fxyframe.doc:207Kfrm[o]{--},fxyframe.doc:578Kfrm[o]{-},fxyframe.doc:575Kfrm[o]{.},fxyframe.doc:577Kfrm[o]{=},fxyframe.doc:576Kfrm[o]{},fxyframe.doc:208Kfrm[P]{-},fxynecula.doc:141Kfrm[P]{.},fxynecula.doc:142Kfrm[P]{=},fxynecula.doc:143K\frmDrop@,fxyframe.doc:99K\frmradius@@,fxyframe.doc:74Kfrm{(},fxyframe.doc:811Kfrm{)},fxyframe.doc:812Kfrm{**},fxyframe.doc:934Kfrm{*},fxyframe.doc:929Kfrm{,},fxyframe.doc:452Kfrm{-,},fxyframe.doc:459Kfrm{--},fxyframe.doc:399Kfrm{-e},fxyframe.doc:569Kfrm{-o},fxyframe.doc:543Kfrm{-},fxyframe.doc:281Kfrm{..},fxyframe.doc:263Kfrm{.e},fxyframe.doc:568Kfrm{.o},fxyframe.doc:536Kfrm{.},fxyframe.doc:252Kfrm{=},fxyframe.doc:292Kfrm{\\otherebgroup},fxyframe.doc:714Kfrm{\\otheregroup},fxyframe.doc:715Kfrm{^)},fxyframe.doc:814Kfrm{^\\otheregroup},fxyframe.doc:717Kfrm{_)},fxyframe.doc:815'Π*tjINDEXr643??hwfrm{_\\otheregroup},fxyframe.doc:718 frm{ee},fxyframe.doc:571frm{e},fxyframe.doc:567frm{o-},fxyframe.doc:421frm{oo},fxyframe.doc:507frm{o},fxyframe.doc:497frm{},fxyframe.doc:206\Fshape@,fxyframe.doc:1018,xynecula.doc:550\Fshape@i,fxyframe.doc:1025\Fshape@ii,fxyframe.doc:1030\Fshape@iii,fxyframe.doc:1034\Fshape@whichframe,fxynecula.doc:554\Fshape@x,fxyframe.doc:1037\fullCircle@,fxyarc.doc:191\fullEllipse@,fxyarc.doc:377\fullPi@,fxycurve.doc:4447ogerman.sty,f4\getarcExtents@,fxyarc.doc:1075\getarcExtents@ii,fxyarc.doc:1082\getarcExtents@iv,fxyarc.doc:1086\getarcOrientation@,fxyarc.doc:1092\getarcOrientation@i,fxyarc.doc:1098\getarcparams@,fxyarc.doc:204\getbsplineparams@,fxycurve.doc:4015\getcrvsegsnum@,fxycurve.doc:2581\getcubicparams@,fxycurve.doc:3890\getEndDirection@,fxyarc.doc:1108\getEndDirection@i,fxyarc.doc:1133\getEndDirection@x,fxyarc.doc:1138\getEqDirection@,fxyarc.doc:1119\getSpecialRotate@,fxyrotate.doc:339\getsplineedges@,fxycurve.doc:2213\getsplineedges@safe,fxycurve.doc:2197\getsplineedges@safe@,fxycurve.doc:2201\getsquineparams@,fxycurve.doc:3629\gettwocelledges@,fxy2cell.doc:1781\gettwocelledges@@,fxy2cell.doc:1786\getxyDirection@,fxy.doc:7235\getxypattern@,fxytile.doc:305\getxypattern@@,fxytile.doc:306\global,f8GNUfCop!yleft,i\go,fxyv2.doc:265\go,f556\GRAPH,fxygraph.doc:174hgraphi,f458\graph,fxygraph.doc:164graph!E,fxygraph.doc:500graph!M,fxygraph.doc:455hwKgraph!P,fxygraph.doc:495 K\GRAPH@,fxygraph.doc:176K\GRAPHafterar@,fxygraph.doc:206K\GRAPHar@,fxygraph.doc:203K\GRAPHeveryarrow@@,fxygraph.doc:530K\GRAPHeveryentry,fxygraph.doc:464K\GRAPHeveryline@@,fxygraph.doc:533K\GRAPHnodemodifiers@@,fxygraph.doc:312K\GRAPHsaved@afterar@@,fxygraph.doc:201K\GRAPHsaved@PATHafterPOS,fxygraph.doc:200K\graphsetup@,fxygraph.doc:535K\graphsetup@i,fxygraph.doc:537K\grow,fxyv2.doc:431K\grow,f559K\grow@,fxyv2.doc:435K\grow@@,fxyv2.doc:436oKh,f46K\H@max,fxymatrix.doc:521K\H@maxin,fxymatrix.doc:505K\H@maxout,fxymatrix.doc:506K\halfEllipse@,fxyarc.doc:1349K\halfPi@,fxycurve.doc:4448K\halfrootthree,fxy.doc:1851K\halfrootthree,f30K\halfroottwo,fxy.doc:1849K\halfroottwo,f30K\halign,f361K\halve@dimen,fxycurve.doc:2254K\hbox,f46K\Hcap,fxyknot.doc:1975K\hcap,fxyknot.doc:1545K\Hcross,fxyknot.doc:1967K\hcross,fxyknot.doc:385K\hcrossneg,fxyknot.doc:393Kheight,f251K\hidePSmessages,fxyps-ps.doc:449K\hloop,fxyknot.doc:1608K\hole,fxyarrow.doc:1003K\hole,f306,559K\holesize,fxyknot.doc:1801K\hollowpoint@,fxy.doc:5915K\hook@,fxy.doc:5722K\hook@@,fxy.doc:5723KhoMoks,f14K\hover,fxyknot.doc:479K\Hrow@c@@,fxymatrix.doc:504K\Hrow@HWmax,fxymatrix.doc:543K\Hrow@in,fxymatrix.doc:502K\Hrow@max,fxymatrix.doc:540'H*tj644rINDEX??hw\Hrow@out,fxymatrix.doc:503 \Hrow@R,fxymatrix.doc:537\htwist,fxyknot.doc:658\htwistneg,fxyknot.doc:666\huncross,fxyknot.doc:401\hunder,fxyknot.doc:489\hunover,fxyknot.doc:499\huntwist,fxyknot.doc:674\HW@max,fxymatrix.doc:523\HWmax@max,fxymatrix.doc:546\HWmax@set,fxymatrix.doc:549oi,f46\idfrombase@,fxy.doc:2865\idfromc@,fxy.doc:2862\idfromcxy@,fxy.doc:2893\idfroms@,fxy.doc:2729\idfromstack@,fxy.doc:2868\idfromxy@,fxy.doc:2890idioms,f7\ifDIRECTIONempty@,fxy.doc:4240\ifEMspecials@,fxyemtex.doc:59\ifHidden@,fxy.doc:3220\ifInside@,fxy.doc:7398\ifInvisible@,fxy.doc:3219\ifjusthvtest@,fxy.doc:5212\iflastframe@,:movie.cls:167,xymovie.doc:89\ifm@caption,fmovie.cls:40\ifm@count,fmovie.cls:46\ifm@time,fmovie.cls:52\ifnoisymatrices@,fxymatrix.doc:219\ifoldxymatrix@,fxymatrix.doc:422\ifoutlineread@,fxy.doc:4887\ifPATHomitslide@@,fxyarrow.doc:313\ifPATHsingle@,fxyarrow.doc:209\ifpoly@badinters,fxynecula.doc:261\ifpoly@closedrange,fxynecula.doc:409\ifsilentxy@,fxy.doc:1538\ifsm@acceptable,fxysmart.doc:297\ifsm@firstseg,fxysmart.doc:296\ifsplinefar@,fxycurve.doc:2170\ifsplineplot@,fxycurve.doc:2171\ifsupportwarnings@,fxy.doc:6901\iftmp@,fxy.doc:662\ifTPICspecials@,fxytpic.doc:61\ifunsupportwarnings@,fxy.doc:6882\ifVECTORempty@,fxy.doc:1390\ifxydrivernoloads@,fxy.doc:6931\ifxyPSshapes@,fxyps-ps.doc:636\ifxysaving@,fxy.doc:4781hwK\imposeDirection@,fxy.doc:7210 K\imposeDirection@i,fxy.doc:7221K\includePSmessage@,fxyps-ps.doc:473K\includePSmessage@@,fxyps-ps.doc:472K\includeXYPSdict@,fxyps-ps.doc:468K\includeXYPSdict@@,fxyps-ps.doc:464K\includeXYPSdict@r,fxyps-ps.doc:466K\initbreaks@,fxycurve.doc:1368K\initshape@,fxycurve.doc:795K\innercroplatticeloop@,fxyweb.doc:212K\innerlatticeloop@,fxyweb.doc:173K\inputxy,f1K\inputxypic,f563K\insertmatrixingraph@,fxygraph.doc:468K\installCrayolaColors@,fxycrayon.doc:46K\installDVITOPSrotate@,fxydvitops.doc:245K\installEMline@,fxyemtex.doc:202K\installPScolor@,fxyps-c.doc:87K\installPSfills@,fxyps-f.doc:204K\installPSframes@,fxyps-f.doc:67K\installPSline@,fxyps-l.doc:83K\installPSlinestyles@,fxyps-l.doc:103K\installPSpatterns@,fxyps-t.doc:82K\installPSpolylines@,fxyps-l.doc:138K\installPSrotscale@,fxyps-r.doc:79K\installPSstyle@,fxyps-s.doc:90K\installTPICcurves@,fxytpic.doc:413K\installTPICfills@,fxytp-f.doc:247K\installTPICframes@,fxytp-f.doc:55K\installTPICline@,fxytpic.doc:318K\installxyps@,fxyps-ps.doc:160K\installxyps@@,fxyps-ps.doc:164K\installxyps@orig,fxyps-ps.doc:199K\installxyps@x,fxyps-ps.doc:168K\intercepthull@,fxycurve.doc:1715K\interceptinsidehull@,fxycurve.doc:1735K\interceptoutsidehull@,fxycurve.doc:1761K\interpARC@,fxyarc.doc:934K\interpolateinterval@,fxy.doc:2043K\interpolatepoint@,fxy.doc:2050K\intersect@,fxy.doc:2450K\invisbreaks@,fxycurve.doc:1365K\inxy@,fxy.doc:869K\inxypoly@,fxypoly.doc:245Kitalicfcorrections,15K\iterate@,fxy.doc:837oK\jot,f36K\jumpMOVE@,fxygraph.doc:241K\jumpMOVE@@,fxygraph.doc:240'%*tjINDEXr645??hw\K@,fxy.doc:678 \K@dXdY,fxy.doc:682\K@dYdX,fxy.doc:683\khole,fxyknot.doc:1052\KK@,fxy.doc:679\knothole,fxyknot.doc:1051\knothole@,fxyknot.doc:1048\knotholesize,fxyknot.doc:1800\knotholesize@,fxyknot.doc:1798\KNOTstyle,fxyknot.doc:1790\knotSTYLE,fxyknot.doc:1781\knotstyle,fxyknot.doc:1784\knotstyles,fxyknot.doc:1787\knottips,fxyknot.doc:1803oL,f20L,f23,40\L@,fxycurve.doc:4461\L@c,fxy.doc:615\L@p,fxy.doc:623Lzc.y,f21Lzp],f21labMelfseparation,355\labelbox,fxyarrow.doc:1025\labelbox,f306\labelmargin,fxyarrow.doc:987\labelmargin,f306\labelmargin@,fxyarrow.doc:985\labelstyle,fxyarrow.doc:1024\labelstyle,f306\lastbreak@@,fxy.doc:7935\lastbreaks@,fxycurve.doc:1373\lastbspline@,fxycurve.doc:4069\lastbspline@@,fxycurve.doc:4056\lastobject,f16\lastobjectbox@,fxy.doc:646\lastprentry@@,fxymatrix.doc:380\lastsplinepoint@,fxycurve.doc:2406LAGT,[wEB X,f7,11\LaTeXdiagrams,fxyv2.doc:543\LaTeXdiagrams,f561LAGT,[wEB Xv2z".,f11\lattice@A,fxyweb.doc:50\lattice@B,fxyweb.doc:51\latticeA,fxyweb.doc:52\latticeB,fxyweb.doc:53\latticebody,:xyweb.doc:131,xyweb.doc:278,xyweb.doc:90\lbraced,fxyframe.doc:765\Lc,fxyv2.doc:216\Lc,f556hwKLD,f23 K\lDirection@,fxy.doc:7106Klea!ve,f17K\leave@,fxy.doc:777K\Leftness@,fxy.doc:3222K\let,f3,4K\lighten@,fmovie.cls:270K\line@,fxy.doc:5132K\line@@,fxy.doc:5155Khlisti,f458K\literal@,fxyidioms.doc:105K\lltod,fxyv2.doc:692K\lltou,fxyv2.doc:693K\LoadAllPatterns,fxytile.doc:280Kloading,f1,3,4,11K\LoadPattern,fxytile.doc:283K\loadPSdriver@,fxyps.doc:266K\loadtipfonts@,fxytips.doc:119K\loadxystyle@,fxy.doc:3984Klogo,f13K\loop,f18K\loop@,fxy.doc:836K\loop@@,fmovie.cls:58K\lowercurveobject,fxy2cell.doc:1089K\lowertwocell,fxy2cell.doc:1248K\lowertwocell@,fxy2cell.doc:271K\lowertwocelll,fxy2cell.doc:1259K\Lp,fxyv2.doc:223K\Lp,f556K\lparenthesized,fxyframe.doc:846K\ltxdiagram@,fxyv2.doc:547KLU,f23oK\m@caption,fmovie.cls:143K\m@height,fxymovie.doc:61K\m@keys,fmovie.cls:133,movie.cls:94K\m@nicetotal,fmovie.cls:225K\m@scene,fxymovie.doc:90K\m@width,fxymovie.doc:62K\MacPatterns,fxytile.doc:60K\makeatletter,f4K\makeatother,f4K\MakeOutlines,fxy.doc:4869K\MakeOutlines,f69KmathfmoMde,20K\mathbf,fxy2cell.doc:882K\mathsurround,f21Khmatrixi,f343Kmatrix,f342Kmatrixforien!tation,354'7/*tj646rINDEX??hwmatrixfspacing,354 \matrixsize@,fxymatrix.doc:218\maxcol@,fxymatrix.doc:163\maxcolrow@,fxymatrix.doc:164\maxrow@,fxymatrix.doc:162\maxTPICpoints,fxytpic.doc:81\maybeunraise@,fxy.doc:1155\merge,fxyv2.doc:268\merge,f557\mergecropextents@,fxyweb.doc:227messages,f13\middlebspline@,fxycurve.doc:4102\middlebspline@@,fxycurve.doc:4071\mkHmax@,fxymatrix.doc:527\mkHrow@,fxymatrix.doc:525\mkHWdefaults@,fxymatrix.doc:531\mkHWmax@,fxymatrix.doc:529\mkWcol@,fxymatrix.doc:526\mkWmax@,fxymatrix.doc:528\moddefs@,fxy2cell.doc:1022hmoMdi eri,f46,280\modifystyle@,fxy.doc:4114\modmap@,fxy2cell.doc:1010\modmapobject,fxy2cell.doc:1054\modmapobject@,fxy2cell.doc:1055\modPSboxz@,fxyps-ps.doc:412\modPSconnect@,fxyps-ps.doc:427\modPSdrop@,fxyps-ps.doc:417\modXYstyle@,fxy.doc:3953\modXYstyle@@,fxy.doc:3959\modXYtransform@,fxyrotate.doc:205\morepatread@,fxytile.doc:302\morphism,fxyv2.doc:613\morphism,f561hmo!vei,f458\MOVE@,fxygraph.doc:243\MOVE@hop,fxygraph.doc:267\MOVE@letter,fxygraph.doc:248\MOVE@place,fxygraph.doc:272\MOVE@x,fxygraph.doc:256movie,f250\MovieSetup,fmovie.cls:138,xymovie.doc:68\MovieSetup,f251\MultipleDrivers,fxy.doc:6699\MultipleDrivers,f93\myPOS,fxy2cell.doc:1286o\newdir,fxy.doc:5795\newdir,f82,312\newdir@,fxy.doc:5797hwK\newdriver,fxy.doc:6808 4K\newdriver,f95K\newgraphescape,fxygraph.doc:598K\newgraphescape,f367K\newgraphescape@,fxygraph.doc:607K\newlinechar,f14K\newxyColor,fxycolor.doc:175K\newxycolor,fxycolor.doc:174K\newxycolor,f235K\newxycolor@,fxycolor.doc:193K\newxyPattern,fxytile.doc:117K\newxypattern,fxytile.doc:114K\newxypattern,f242K\newxypattern@,fxytile.doc:123K\newxypattern@i,fxytile.doc:115K\newxyPSshape,fxyps-ps.doc:683K\newxyshape,fxyps-ps.doc:661K\newxystyle,fxy.doc:4088K\next,:movie.cls:131,movie.cls:30,movie.cls:31, Kxy.doc:417,:xy.doc:420,xy.doc:6836,xy.doc:6841,Kxy.sty:43,:xyknot.doc:1403,xyknot.doc:332 4K\next,f3K\nextbreak@@,fxy.doc:8091K\nextcptlabel,fxycurve.doc:1859K\no@,fxy.doc:5081K\no@@,fxy.doc:7986K\noCalong@@,fxy.doc:7952K\noCbreak@@,fxy.doc:7973K\noCintercept@@,fxy.doc:7960K\noClast@@,fxy.doc:7974K\NoCompileAllDiagrams,fxyv2.doc:798K\NoCompileMatrices,fxymatrix.doc:284K\NoComputerModernTips,fxycmtip.doc:52K\noCshavec@@,fxy.doc:7942K\noCshavep@@,fxy.doc:7937K\noCslidec@@,fxy.doc:7948K\noCslidep@@,fxy.doc:7944KhnoMdei,f458K\NODE@,fxygraph.doc:220K\NODE@arc,fxygraph.doc:501K\NODE@arc@,fxygraph.doc:503K\NODE@escape,fxygraph.doc:430K\NODE@i,fxygraph.doc:274K\NODE@it,fxygraph.doc:309K\NODE@matrix,fxygraph.doc:457K\NODE@matrix@,fxygraph.doc:459K\NODE@poly,fxygraph.doc:496K\NODE@poly@,fxygraph.doc:497K\NODE@x,fxygraph.doc:307'F9*tjINDEXr647??hw\NODEit@,fxygraph.doc:314 \NODEit@i,fxygraph.doc:319\noDictmessage@,fxyps-ps.doc:492\NoDVIPScolor@,fxydvips.doc:87\NoDVIPScolordvi@,fxydvips.doc:102\NoDVITOPScolor@,fxydvitops.doc:89\NoEMlinewidth,fxyemtex.doc:212\NoEMspecials,fxyemtex.doc:61\noinsert@,fxy.doc:8002\nointerceptwarning@,fxycurve.doc:1712\NoisyDiagrams,fxyv2.doc:554\NoisyDiagrams,f561\NoisyEMTeX,fxyemtex.doc:86\NoisyMatrices,fxymatrix.doc:222\NoisyTPIC,fxytpic.doc:130\none,fxyv2.doc:300\none,f557\NooldOzTeXColor@,fxy17oztex.doc:92\NooldTexturesColor@,fxy16textures.doc:86\NoOutlines,fxy.doc:4876\NoOutlines,f69\NoOzTeXColor@,fxyoztex.doc:97\NoPScolor,fxyps-c.doc:74\NoPSframes,fxyps-f.doc:75\NoPSlines,fxyps-l.doc:87\NoPSrotate,fxyps-r.doc:90\NoPSspecials,fxyps.doc:312\NoPSspecials,f255\NoPStiles,fxyps-t.doc:91\NoResizing,fxyrotate.doc:120\NoRules,fxy.doc:5214\NoRules,f74\notempty,fxyidioms.doc:120\NoTexturesColor@,fxytextures.doc:95\notip,fxyv2.doc:346\notip,f558\NoTips,fxytips.doc:176\NoTips,f216\NoTPICframes,fxytp-f.doc:63\NoTPICspecials,fxytpic.doc:63\notrelaxorelse@,fxy.doc:1430\NoXDVIcolor@,fxyxdvi.doc:104\NoXDVIcolordvi@,fxyxdvi.doc:119\nter@,fxy.doc:770\nudgepos@,fxy2cell.doc:828\nudgepos@@,fxy2cell.doc:845\null@xy@ps,fxyps-ps.doc:214\numcontrolpts,fxycurve.doc:1881o\obeyDVIPSlines@,:xydvips.doc:182,xydvitops.doc:201hwK\obeyoldOzTeXlines@,fxy17oztex.doc:155 K\obeyoldTextureslines@,:xy16textures.doc:165K\obeyoutlines@,fxyps-ps.doc:566K\obeyOzTeXlines@,fxyoztex.doc:160K\obeyTextureslines@,fxytextures.doc:170K\obeyXDVIlines@,fxyxdvi.doc:195Khobjecti,f46K\object,fxy.doc:3292Kobject,f20K\object,f45,46,72KobjectfmethoMds,48K\OBJECT@,fxy.doc:3074,xynecula.doc:64K\object@,fxy.doc:3294K\OBJECT@@,fxy.doc:3125K\OBJECT@change,fxy.doc:3522K\OBJECT@change@,fxy.doc:3543K\OBJECT@direction,fxy.doc:4223K\OBJECT@letter,fxy.doc:3079K\OBJECT@other,fxy.doc:3092K\OBJECT@set,fxy.doc:3532K\OBJECT@shape,fxy.doc:3749K\OBJECT@shapei,fxy.doc:3779K\OBJECT@shift,fxy.doc:3410K\OBJECT@shift@,fxy.doc:3416K\OBJECT@x,fxy.doc:3176KhobjectbMo!xi,f46K\objectbox,fxy.doc:3239,xy.doc:3253K\objectbox,f45,47,49,306K\objectEdge,fxy.doc:3698K\objectheight,fxy.doc:3490K\objectheight,f52K\objectheight@,fxy.doc:3486K\objectmargin,fxy.doc:3488K\objectmargin,f52,305,306K\objectmargin@,fxy.doc:3484K\objectstyle,:xy.doc:3241,xy.doc:3255,xy.doc:3668, Kxypoly.doc:135,fxypoly.doc:588K\objectwidth,fxy.doc:3489K\objectwidth,f52K\objectwidth@,fxy.doc:3485K\old@OzTeX@PS@,fxy17oztex.doc:190K\oldconnect,fxyv2.doc:616K\oldoztexColor@@,fxy17oztex.doc:78K\oldOzTeXColours@,fxy17oztex.doc:80K\oldOzTeXCrayon@@,fxy17oztex.doc:111K\oldOzTeXCurrpt@,fxy17oztex.doc:166K\oldOzTeXCurrpt@@,fxy17oztex.doc:167K\oldOzTeXDict@,fxy17oztex.doc:134K\oldOzTeXFrames@,fxy17oztex.doc:219'V*tj648rINDEX??hw\oldoztexFrames@@,fxy17oztex.doc:217 Í\oldOzTeXinclude@,fxy17oztex.doc:135\oldoztexLine@,fxy17oztex.doc:206\oldoztexLine@@,fxy17oztex.doc:204\oldOzTeXMacro@,fxy17oztex.doc:133\oldoztexPS@@,:xy17oztex.doc:121,xy17oztex.doc:177\oldOzTeXPStypes@,fxy17oztex.doc:138\oldoztexPSunload@,fxy17oztex.doc:123\oldOzTeXraw@,fxy17oztex.doc:136\oldOzTeXRotate@,fxy17oztex.doc:254\oldoztexRotate@@,fxy17oztex.doc:252\oldOzTeXSpecial@,fxy17oztex.doc:132\oldOzTeXTiles@,fxy17oztex.doc:232\oldoztexTiles@@,fxy17oztex.doc:230\oldTextures@@,fxy16textures.doc:43\oldtexturesColor@@,fxy16textures.doc:84\oldTexturesColours@,fxy16textures.doc:71\oldtexturesCrayon@,fxy16textures.doc:106\oldtexturesCrayon@@,:xy16textures.doc:105\oldtexturesCurrpt@,fxy16textures.doc:172\oldtexturesCurrpt@@,:xy16textures.doc:173\oldtexturesFrames@,fxy16textures.doc:231\oldtexturesFrames@@,:xy16textures.doc:229\oldTexturesInclude@,:xy16textures.doc:145\oldtexturesLine@,fxy16textures.doc:217\oldtexturesLine@@,fxy16textures.doc:215\oldTexturesMacro@,fxy16textures.doc:144\oldtexturesPS@,fxy16textures.doc:190\oldtexturesPS@@,fxy16textures.doc:113\oldtexturesPStypes@,:xy16textures.doc:148\oldtexturesPSunload@,:xy16textures.doc:115\oldTexturesRaw@,fxy16textures.doc:146\oldtexturesRotate@,fxy16textures.doc:203\oldtexturesRotate@@,:xy16textures.doc:201\oldTexturesSpecial@,:xy16textures.doc:143\oldtexturesTiles@,fxy16textures.doc:245\oldtexturesTiles@@,fxy16textures.doc:243\omitarrows@,fxy2cell.doc:508\omittingTokens@,fxyarc.doc:1142\OnlyOutlines,fxy.doc:4871\OnlyOutlines,f69\openpattfile@,fxytile.doc:273horien!ti,f85orien!tation,f354\origPATHturn@,fxysmart.doc:108\outlines@@,fxy.doc:4865\outlines@make,fxy.doc:4862\outlines@no,fxy.doc:4861\outlines@only,fxy.doc:4863hwK\outofranges@,fxy.doc:2690 K\outputstyle@,fxy.doc:4119K\outputxyline@,fxyline.doc:599K\outputxylinecap@,fxyline.doc:319K\outputxylinejoin@,fxyline.doc:344K\outputxylinemiter@,fxyline.doc:369K\oxy@,fxy.doc:858K\OzTeX@,fxyps.doc:272K\OzTeX@@,fxy17oztex.doc:53,xyoztex.doc:59K\oztexColor@@,fxyoztex.doc:83K\OzTeXColours@,fxyoztex.doc:85K\OzTeXCrayon@@,fxyoztex.doc:116K\OzTeXCurrpt@,fxyoztex.doc:171K\OzTeXCurrpt@@,fxyoztex.doc:172K\OzTeXDict@,fxyoztex.doc:139K\OzTeXFrames@,fxyoztex.doc:217K\oztexFrames@@,fxyoztex.doc:215K\OzTeXinclude@,fxyoztex.doc:140K\oztexLine@,fxyoztex.doc:204K\oztexLine@@,fxyoztex.doc:202K\OzTeXMacro@,fxyoztex.doc:138K\oztexPS@,fxyoztex.doc:182K\oztexPS@@,fxyoztex.doc:126K\OzTeXPStypes@,fxyoztex.doc:143K\oztexPSunload@,fxyoztex.doc:128K\OzTeXraw@,fxyoztex.doc:141K\OzTeXRotate@,fxyoztex.doc:252K\oztexRotate@@,fxyoztex.doc:250K\OzTeXRotScale@,:xyoztex.doc:265,xyoztex.doc:276K\OzTeXSpecial@,fxyoztex.doc:137K\OzTeXTiles@,fxyoztex.doc:230K\oztexTiles@@,fxyoztex.doc:228oKP,f23,40,103Kp,f21Kp,f23Kpac!kdDage,f11K\parallelDirection@,fxyarc.doc:1372K\parEllipse@,fxyarc.doc:1374K\parseCURVE@,fxycurve.doc:498K\parsecurve@,fxycurve.doc:586K\parseCURVE@@,fxycurve.doc:500K\parsecurve@@,fxycurve.doc:587K\parsepattern@@,fxytile.doc:309K\partroottwo,fxy.doc:1850K\partroottwo,f30K\PATH,fxyarrow.doc:183K\PATH,f295,307K\PATH@,fxyarrow.doc:211K\PATH@normal,fxyarrow.doc:216'g*tjINDEXr649??hw\PATHaction,fxyarrow.doc:455 Í\PATHaction,f299\PATHaction@,fxyarrow.doc:462\PATHaction@default,fxyarrow.doc:454\PATHafter@@,fxyarrow.doc:237\PATHafterPOS,fxyarrow.doc:590\PATHafterPOS,f301\PATHafterPOS@default,fxyarrow.doc:589\PATHanchor@,fxyarrow.doc:377\PATHanchor@i,fxyarrow.doc:379\PATHanchor@toks,fxyarrow.doc:390\PATHbefore@@,fxyarrow.doc:236\PATHcontinue@@,fxyarrow.doc:278\PATHextra@@,fxyarrow.doc:276\PATHfail@@,fxyarrow.doc:234\PATHfinal@,fxyarrow.doc:287\PATHfinishsegments@,fxyarrow.doc:414\PATHfinishsegments@i,fxyarrow.doc:419\PATHinit@@,fxyarrow.doc:274\PATHinitstraight@,fxyarrow.doc:297\PATHit@,fxyarrow.doc:394\PATHit@i,fxyarrow.doc:396\PATHitshapes@@,fxyarrow.doc:392\PATHlabelabove@,fxyarrow.doc:935\PATHlabelabove@@,fxyarrow.doc:941\PATHlabelalias@,fxyarrow.doc:1052\PATHlabelbelow@,fxyarrow.doc:938\PATHlabelbelow@@,fxyarrow.doc:942\PATHlabelbreak@,fxyarrow.doc:959\PATHlabelit@@,fxyarrow.doc:362\PATHlabels@,fxyarrow.doc:364\PATHlabelsevery@@,fxyarrow.doc:239\PATHlabelsextralast@,fxyarrow.doc:294\PATHlabelslast@@,fxyarrow.doc:241\PATHlabelsnext@@,fxyarrow.doc:240\PATHlastout@@,fxyarrow.doc:661\PATHpost@@,fxyarrow.doc:277\PATHpostpos@@,fxyarrow.doc:771\PATHsegment@,fxyarrow.doc:315\PATHsegment@@,fxyarrow.doc:346\PATHsetting@,fxyarrow.doc:243\PATHslide@@,fxyarrow.doc:312\PATHsmartturn@cir,fxysmart.doc:122\PATHsmartturn@i,fxysmart.doc:128\PATHstraight@,fxyarrow.doc:280\PATHturn@,xyarrow.doc:667,xysmart.doc:109\PATHturn@cir,fxyarrow.doc:677\PATHturn@diag,fxyarrow.doc:704\PATHturn@i,fxyarrow.doc:773hwK\PATHturn@ii,fxyarrow.doc:834 ÍK\pfromc@,fxy.doc:1632K\pfromthec@,fxy.doc:1672K\pfromthep@,fxy.doc:1668K\pit,f554Khplacei,f23K\PLACE@,fxy.doc:2293K\PLACE@@,fxy.doc:2324K\PLACE@intercept,fxy.doc:2307K\PLACE@intercept@,:xy.doc:2316,xycurve.doc:1650K\placeAllQuadrants@,fxycurve.doc:4578K\placeCircObject@,fxycurve.doc:4599K\placeCircQuadrant@,fxycurve.doc:4590K\PLACEedgec@,fxy.doc:2289K\PLACEedgec@@,fxy.doc:2286K\PLACEedgep@,fxy.doc:2288K\PLACEedgep@@,fxy.doc:2285K\PLACEf@,fxy.doc:2283Kplacemen!tfstate,21K\placeQuadrants@,fxycurve.doc:4572KplainT,[wEB X,f7K\plainxy@,fxy.doc:892K\point@,fxy.doc:5330K\pointlike@,fxy.doc:5332K\poly@append,fxynecula.doc:204K\poly@append@,fxynecula.doc:205K\poly@cachehit,fxynecula.doc:279K\poly@cachehitdisable,fxynecula.doc:283K\poly@close,fxynecula.doc:208K\poly@close@,fxynecula.doc:209K\poly@drawseg,fxynecula.doc:234K\poly@empty,fxynecula.doc:169K\poly@findextent,fxynecula.doc:536K\poly@getinterspoints,fxynecula.doc:517K\poly@intersdoit,fxynecula.doc:307K\poly@interseg,fxynecula.doc:357K\poly@intersfinish,fxynecula.doc:336K\poly@intersprobecache,fxynecula.doc:289K\poly@isinrange,fxynecula.doc:410K\poly@isonray,fxynecula.doc:447K\poly@isonseg,fxynecula.doc:437K\poly@map,fxynecula.doc:170K\poly@map@stop,fxynecula.doc:178K\poly@mapExpand,fxynecula.doc:180K\poly@parse,fxynecula.doc:186K\poly@setEdge,fxynecula.doc:135K\poly@setEdge@,fxynecula.doc:136K\poly@setorigin,fxynecula.doc:345K\poly@setorigin@,fxynecula.doc:346'z*tj650rINDEX??hw\poly@setp,fxynecula.doc:229 Í\poly@setp@,fxynecula.doc:230\polygonEdge,fxynecula.doc:243\polygonEdge@Dist,fxynecula.doc:402\polygonEdge@Inner,fxynecula.doc:483\polygonEdge@Inters,fxynecula.doc:263\polygonEdge@Outer,fxynecula.doc:524\polygonEdge@Under,fxynecula.doc:457\POS,fxy.doc:1368hpMosi,f23\POS,f24,65,299\POS@,fxy.doc:1593\POS@colon,fxy.doc:1603\POS@star,fxy.doc:1608pMositions,f20\postShape@@,fxyrotate.doc:194\postspline@,fxycurve.doc:2683\postStyle@@,fxy.doc:3981\postXY@style@,fxy.doc:3854\postxyescape@,fxyps-s.doc:74\postxyline@,fxyline.doc:595\postxyline@@,fxyline.doc:592\postxylinecap@,fxyline.doc:317\postxylinecap@@,fxyline.doc:314\postxylinejoin@,fxyline.doc:342\postxylinejoin@@,fxyline.doc:339\postxylinemiter@,fxyline.doc:367\postxylinemiter@@,fxyline.doc:364\postXYtransform@,:xyps-r.doc:114,xyrotate.doc:186\postXYtransform@@,fxyrotate.doc:189\pre@emit,fxymatrix.doc:444\pre@emit@,fxymatrix.doc:481\pre@emit@i,fxymatrix.doc:485\pre@emit@ii,fxymatrix.doc:492\preARC@,fxyarc.doc:69\preconnect,fxy.doc:4537\preconnect@,fxy.doc:2144\prentry@,fxymatrix.doc:365\prentry@@,fxymatrix.doc:384\prentry@@@,fxymatrix.doc:424\prentry@@@i,fxymatrix.doc:429\prentry@@norm,fxymatrix.doc:405\prentry@@star,fxymatrix.doc:389\prentry@@star@i,fxymatrix.doc:392\prentry@@star@ii,fxymatrix.doc:396\prentry@@x,fxymatrix.doc:410\preShape@@,fxyrotate.doc:193\preStyle@@,fxy.doc:3980\prevEdge@@,fxy.doc:3123hwK\prevEdgefromtheEdge@,fxyframe.doc:107 K\prevhowclose@,fxycurve.doc:1748K\prevXypostStyle@@,fxy.doc:4065K\prevXypreStyle@@,fxy.doc:4064K\preXY@style@,fxy.doc:3853K\prexyescape@,fxyps-s.doc:73K\prexyline@,fxyline.doc:594K\prexyline@@,fxyline.doc:590K\prexylinecap@,fxyline.doc:316K\prexylinecap@@,fxyline.doc:312K\prexylinejoin@,fxyline.doc:341K\prexylinejoin@@,fxyline.doc:337K\prexylinemiter@,fxyline.doc:366K\prexylinemiter@@,fxyline.doc:362K\preXYstyle@@,fxy.doc:3982K\preXYtransform@,:xyps-r.doc:113,xyrotate.doc:185K\preXYtransform@@,fxyrotate.doc:188KprivdDacye,f3K\processArcDirections@,fxyarc.doc:1150K\processArcDirections@@,fxyarc.doc:1160K\processDirections@@,fxyarc.doc:1146K\PSdict@@,fxyps-ps.doc:63K\Pshape@,fxynecula.doc:109K\PSignore@,fxyps-ps.doc:447K\PSinclude@@,fxyps-ps.doc:66K\PSincrease@,fxyps.doc:500K\PSmacro@,fxyps-ps.doc:453K\PSmacro@@,fxyps-ps.doc:62K\PSmessage@,fxyps-ps.doc:446K\PSraw@@,fxyps-ps.doc:67K\PSread@@,fxyps-ps.doc:65K\PSspecial@@,fxyps-ps.doc:64K\PSspecialdict@@,fxyps-ps.doc:69K\PSspecials@,fxyps.doc:448K\PSspecials@@,fxyps.doc:453K\PStracing,fxyps-ps.doc:450K\pure@crv,fxycurve.doc:277oK\q,fxypoly.doc:609Kq,f46K\qartPi@,fxytpic.doc:348K\qc,fxyv2.doc:449K\qc,f559K\qcount@,fxymatrix.doc:176K\qcount@@,fxymatrix.doc:177K\qspline,fxycurve.doc:4773K\quadARC@,fxyarc.doc:928Kqueue,f17K\queue@,fxymatrix.doc:173K\queue@@,fxymatrix.doc:174' *tjINDEXr651??hw\quotesmash,:xy.doc:6093,xy.doc:6192,xy.doc:6212 \quotient@,fxy.doc:812\quotient@@,fxy.doc:824\quotPTK@,fxy.doc:701\quotsign@@,fxy.doc:808oR,f8,20R,f23,40\R@,fxyidioms.doc:87\R@c,fxy.doc:616\R@p,fxy.doc:624Rzc.y,f21Rzp],f21hradiusi,f85\rbraced,fxyframe.doc:781\Rc,fxyv2.doc:217\Rc,f556RD,f23\rDirection@,fxy.doc:7084\readoutline@,fxy.doc:4889\readoutline@@,fxy.doc:4867\readsplineparams@,fxycurve.doc:2193\readxycurve,fxycurve.doc:1922\readxycurve@,fxycurve.doc:1921\realinstallxyps@x,fxyps-ps.doc:178\ReCompileAllDiagrams,fxyv2.doc:799\recovercurve@,fxycurve.doc:342\recovercv@end,fxycurve.doc:349\recoverXyStyle@,fxy.doc:4072\rectangleDist@,fxy.doc:7787\rectangleDist@i,fxy.doc:7796\rectangleEdge,fxy.doc:7697\rectangleEdge@,fxy.doc:7731\rectangleEdge@i,fxy.doc:7737\rectangleEdge@ii,fxy.doc:7744\rectangleEdge@iii,fxy.doc:7750\rectangleProp@,fxy.doc:7819\rectangleUnder@,fxy.doc:7769\redefine,f555rede ned,f3\relax,f3,4,65\reloadxyEM@,fxyemtex.doc:138\reloadxyTPIC@,fxytpic.doc:228\removePT@,fxy.doc:809\resetbreaks@,fxycurve.doc:1361\resetcrvobjects@,fxycurve.doc:606\resetDirection@,fxy.doc:7314\resetPS@,fxyps.doc:314\resetStyle@,fxy.doc:3856\resetstyle@@,fxy.doc:4118hwK\resetTransform@,fxyrotate.doc:226 K\resetupDirection@,fxy.doc:7321K\resetvariant@,fxyarrow.doc:1339K\resetxyline@,fxyline.doc:597K\resetxyline@@,fxyline.doc:601K\resetxyline@i,fxyline.doc:598K\resetxylinecap@,fxyline.doc:320K\resetxylinecap@@,fxyline.doc:322K\resetxylinecap@i,fxyline.doc:321K\resetxylinejoin@,fxyline.doc:345K\resetxylinejoin@@,fxyline.doc:347K\resetxylinejoin@i,fxyline.doc:346K\resetxylinemiter@,fxyline.doc:370K\resetxylinemiter@@,fxyline.doc:372K\resetxylinemiter@i,fxyline.doc:371K\restore,fxy.doc:4581K\restore,f65K\restoreframestyles@,fxyframe.doc:1056K\restR@max,fxyframe.doc:958K\reverseDirection@,fxy.doc:7253K\reversesplineval@,fxycurve.doc:3135K\rotate,fxyv2.doc:405K\rotate,f558K\rotate@i,fxyv2.doc:410K\rotate@ii,fxyv2.doc:412K\rounddashframed,fxyv2.doc:506K\rounddashframed,f560K\Row,fxymatrix.doc:159K\Row,f359Kro!wfspacing,354K\Rp,fxyv2.doc:224K\Rp,f556K\rparenthesized,fxyframe.doc:860K\rrtod,fxyv2.doc:694K\rrtou,fxyv2.doc:695KRU,f23K\rungraphescape@,fxygraph.doc:614K\runs@,fxy.doc:2688K\runxywith@,fxy.doc:6445oKs,f23K\s@bot,fxy.doc:2673K\s@top,fxy.doc:2674K\samecurve,fxycurve.doc:614K\save,fxy.doc:4576K\save,f65K\save@,fxy.doc:4579K\savealias@,fxyarrow.doc:1061K\saveC,fxy.doc:4577K\savecrvobjects@,fxycurve.doc:1963'*tj652rINDEX??hw\savecrvparams@,fxycurve.doc:815 Í\savectrlptsnum@,fxycurve.doc:2042\savecurve,fxycurve.doc:613\saveframestyles@,fxyframe.doc:1052\saveid@,fxy.doc:2843\saveid@COORD,fxy.doc:2882\saveid@COORD@@,fxy.doc:2856\saveid@COORDi,fxy.doc:2887\saveid@COORDii,fxy.doc:2888\savesame@,fxycurve.doc:341\savescope@,fxycurve.doc:2036\saveshape@,fxycurve.doc:804\savespline@,fxycurve.doc:2106\savesplineparams@,fxycurve.doc:2119\savesplinerefs@,fxycurve.doc:2122\savetwocellobjects,fxy2cell.doc:1103\saveXyStyle@,fxy.doc:4067\sbendh,fxyknot.doc:1652\sbendv,fxyknot.doc:1648\scanbspline@,fxycurve.doc:4106\scene,fxymovie.doc:92\scene,f250\scene@,fxymovie.doc:97\scene@frame,movie.cls:196,xymovie.doc:117scratc!hfregisterconventions,8\sd@X,fxy.doc:675\sd@Y,fxy.doc:676\searchBreakEsegment@,fxycurve.doc:2854\searchBreakSsegment@,fxycurve.doc:2835\searchflag@,fxycurve.doc:714\searchforEndsegment@,fxycurve.doc:2710\searchforStartsegment@,fxycurve.doc:2650\searchnextpt@,fxycurve.doc:695\selectdriver@,fxy.doc:6684\selectdriver@multiple,fxy.doc:6693\selectdriver@single,fxy.doc:6687\SelectTips,fxytips.doc:77\SelectTips,f215semidirectional,f15\SemiDirectionChar,fxy.doc:689\sempty@,fxy.doc:2752\senter@,fxy.doc:2741\setafterCURVEaction@,fxycurve.doc:551\setafterCURVEaction@@,fxycurve.doc:562\setbase@,fxy.doc:1869\setbase@@,fxy.doc:1875\setboxz@h,fxyidioms.doc:112\setcrvobjects@,fxycurve.doc:2339\setcubicdir@,fxycurve.doc:3847hwK\setcubicknotdir@,fxycurve.doc:3874 ÍK\setcubiczerodir@,fxycurve.doc:3878K\setcurve@,fxycurve.doc:102K\setcurvearexit@,fxyarrow.doc:1757K\setcurvearinit@,fxyarrow.doc:1753K\setcurvearinit@i,fxyarrow.doc:1752K\setcurveSTYLE@,fxycurve.doc:528K\setcurveSTYLE@@,fxycurve.doc:529K\setm@caption,fmovie.cls:177K\setsearchflag@,fxycurve.doc:715K\setsplinetest@,fxycurve.doc:3225K\setsplineundertest@,fxycurve.doc:3203K\setsquinedir@,fxycurve.doc:3606K\setsquineknotdir@,fxycurve.doc:3615K\setsquinezerodir@,fxycurve.doc:3619K\setstdsplinedrop@,fxycurve.doc:2317K\settomin@,fxy.doc:7757K\setTPICcircstyle@,fxytp-f.doc:197K\setupcubic@,fxycurve.doc:3737K\setupDirection@,fxy.doc:7023K\setupDirection@i,fxy.doc:7027K\setupDirection@ii,fxy.doc:7170K\setupsquine@,fxycurve.doc:3534K\setupxyEMTeX@,fxyemtex.doc:118K\setupxyPS@,fxyps.doc:497K\setupxyPS@@,fxyps-ps.doc:165K\setupxyPSlevelA@,fxyps.doc:710K\setupxyPSlevelB@,fxyps.doc:728K\setupxyPSlevelC@,fxyps.doc:734K\setupxyPSlevelD@,fxyps.doc:744K\setupxyPSlevelO@,fxyps.doc:487K\setupxyTPIC@,fxytpic.doc:203K\setxyPSlevel@,fxyps.doc:489K\shaded@,fxyframe.doc:455Kshape[!...],fxyps-ps.doc:231Kshape[*...],fxyrotate.doc:160Kshape[.],fxy.doc:3764Kshape[<...],fxyrotate.doc:159Kshape[=...],fxy.doc:4040Kshape[@...],fxyrotate.doc:158Kshape[],fxy.doc:3759Kshape[c],fxy.doc:3729Kshape[d],fxy.doc:3725Kshape[dblsize],fxyrotate.doc:166Kshape[F...],fxyframe.doc:1013Kshape[flip],fxyrotate.doc:164Kshape[halfsize],fxyrotate.doc:165Kshape[hflip],fxyrotate.doc:168Kshape[Inner],fxy.doc:3761'ݠ*tjINDEXr653??hwshape[l],fxy.doc:3717 Íshape[left],fxyrotate.doc:162shape[o],fxy.doc:3762shape[Outer],fxy.doc:3760shape[psxy],fxyps-ps.doc:235shape[r],fxy.doc:3713shape[right],fxyrotate.doc:163shape[u],fxy.doc:3721shape[vflip],fxyrotate.doc:167\shiftdir@,fxy.doc:5810\ShowOutlines,fxy.doc:4874\ShowOutlines,f69\showPSmessages,fxyps-ps.doc:448\silencexy@,fxy.doc:1540\SilentMatrices,fxymatrix.doc:221\SilentMatrices,f343\sinDirection,fxy.doc:686\sinFivePIon,fxypoly.doc:701\sinFourPIon,fxypoly.doc:692\sinit@,fxy.doc:2739\sinPIon,fxypoly.doc:666\sinThreePIon,fxypoly.doc:683\sinTwoPIon,fxypoly.doc:674hsizei,f46\skewCircle@,fxyarc.doc:1323\skewEllB@,fxyarc.doc:1377\skewEllipse@,fxyarc.doc:1318\skipspecials@,fxy.doc:73,xy.doc:74\sleave@,fxy.doc:2746hslidei,f23\SloppyCurves,fxycurve.doc:2290\sloppyendcrv@,fxycurve.doc:729\sm@accumext,fxysmart.doc:426\sm@advancecount@,fxysmart.doc:267\sm@computeext,fxysmart.doc:392\sm@conn,fxysmart.doc:165\sm@conndraw,fxysmart.doc:447\sm@connect@,fxysmart.doc:509\sm@drawseg,fxysmart.doc:462\sm@drawseglist,fxysmart.doc:454\sm@drop@,fxysmart.doc:512\sm@maxcost,fxysmart.doc:162\sm@nil,fxysmart.doc:160\sm@nnil,fxysmart.doc:161\sm@roundcount@,fxysmart.doc:284\sm@showext,fxysmart.doc:361\sm@straight,fxysmart.doc:491\sm@stri,fxysmart.doc:505\sm@trycirclelist,fxysmart.doc:301hwK\sm@trycirclelist@i,fxysmart.doc:367 ÍK\sm@trycircles,fxysmart.doc:221K\sm@tryclcar,fxysmart.doc:373K\smap@,fxy.doc:2761K\smapp@@,fxy.doc:2769K\smapxy@@,fxy.doc:2767K\smapxy@i,fxy.doc:2771K\smconn,fxysmart.doc:519K\Solid,fxyv2.doc:303K\solid,fxyv2.doc:302K\Solid,f557K\solid,f557K\solid@,fxy.doc:5166K\solidcircle@,fxycurve.doc:4542K\solidcorner@,fxyframe.doc:362K\solidhrule@,fxy.doc:5262K\solidhrule@pre,fxy.doc:5265K\solidhrule@typeset,fxy.doc:5284K\solidhrule@typeset@,fxy.doc:5291K\solidpoint@,fxy.doc:5910K\solidSpread@,fxy.doc:5186K\solidvrule@,fxy.doc:5223K\solidvrule@pre,fxy.doc:5226K\solidvrule@typeset,fxy.doc:5245K\solidvrule@typeset@,fxy.doc:5252K\space@,fxyidioms.doc:118Kspacing,f354K\spline@@find,fxycurve.doc:3141K\spline@@knot,fxycurve.doc:3178K\spline@end@,fxycurve.doc:3071K\spline@end@@,fxycurve.doc:3074K\spline@find,fxycurve.doc:3115K\splineadvance@@,fxycurve.doc:2355K\splinealong@,fxycurve.doc:1238K\splinealong@@,fxycurve.doc:1265K\splineBErec@,fxycurve.doc:2762K\splinebox@,fxycurve.doc:2136K\splinebreak@,fxycurve.doc:1386K\splinebreakcancel@,fxycurve.doc:3451K\splineBreakEndtest@,fxycurve.doc:2440K\splineBreakStarttest@,fxycurve.doc:2437K\splineBrec@,fxycurve.doc:2736K\splineBSrec@,fxycurve.doc:2746K\splinecancel@,fxycurve.doc:3443K\splineclosest@,fxycurve.doc:1595K\splineconn@,fxycurve.doc:2331K\splineConnect@,fxycurve.doc:4836K\splineconnect@,fxycurve.doc:1064K\splinecontinue,fxycurve.doc:2391'*tj654rINDEX??hw\splinecontinue@,fxycurve.doc:2385 Í\splinecontinue@@,fxycurve.doc:2388\splined@@@,fxycurve.doc:2417\splineDadvance@,fxycurve.doc:3059\splineDadvance@@,fxycurve.doc:3061\splinedashed@,fxycurve.doc:3306\splinedbldotted@,fxycurve.doc:3313\splinedefaulttol@,fxycurve.doc:2283\splinedepth@,fxycurve.doc:2147\splinedotted@,fxycurve.doc:3310\splinedoubled@,fxycurve.doc:3297\splineDrop@,fxycurve.doc:4832\splinedrop@,fxycurve.doc:2316\splineEdge,fxycurve.doc:822\splineendScan@,fxycurve.doc:2527\splineEndtest,fxycurve.doc:2445\splineEndtest@,fxycurve.doc:2434\splineErec@,fxycurve.doc:2685\splineextra@@,fxycurve.doc:2340\splinef@breakpt,fxycurve.doc:2779\splinef@end,fxycurve.doc:3211\splinef@pt,fxycurve.doc:3212\splinef@pt@@,fxycurve.doc:2786\splinefcontinue@,fxycurve.doc:3186\splinefindBEnd@,fxycurve.doc:2946\splinefindBStart@,fxycurve.doc:2884\splinefindEnd@,fxycurve.doc:2696\splinefindEnd@@,fxycurve.doc:2665\splinefindStart@,fxycurve.doc:2632\splinefindStart@@,fxycurve.doc:2624\splinefindtest@,fxycurve.doc:3198\splinefinish@,fxycurve.doc:3461\splinefinish@@,fxycurve.doc:3441\splinefinishf@,fxycurve.doc:3094\splinefocus@,fxycurve.doc:3236\splinefrec@,fxycurve.doc:3081\splineglue@,fxycurve.doc:3425\splinegoal@,fxycurve.doc:3455\splineHadvance@,fxycurve.doc:1821\splineHadvance@i,fxycurve.doc:1822\splineHadvance@x,fxycurve.doc:1825\splineHnear@test,fxycurve.doc:1769\splineignore@,fxycurve.doc:2178\splineinsidehull@,fxycurve.doc:1731\splineintercept@,fxycurve.doc:1470\splineintercept@i,fxycurve.doc:1472\splineinterceptTest@,fxycurve.doc:1582\splineIplace@,fxycurve.doc:1495\splineIrec@,fxycurve.doc:1509hwK\splineIsegment@,fxycurve.doc:1523 ÍK\splineknotpoint@,fxycurve.doc:2400K\splineknotpoint@@,fxycurve.doc:2402K\splinelast@,fxycurve.doc:1403K\splinelength@,fxycurve.doc:2158K\splinenear@,fxycurve.doc:2344K\splineNointercept@,fxycurve.doc:1456K\splinenostart@,fxycurve.doc:2523K\splineoutsidehull@,fxycurve.doc:1750K\splineoutsidehull@@,fxycurve.doc:1753K\splineplot@maybe,fxycurve.doc:2451K\splineplot@maybe@@,fxycurve.doc:2452K\splineplotpt@,fxycurve.doc:3417K\splinepoint,fxycurve.doc:2383K\splinepoint@,fxycurve.doc:2381K\splinepoint@@,fxycurve.doc:2377K\splineRecordBreakEValue,:xycurve.doc:3021K\splineRecordBreakValue@,:xycurve.doc:2980K\splineRecordEBreakValue@,:xycurve.doc:2908K\splineRecordEndBreakValue@,:xycurve.doc:2993K\splineRecordEndValue@,fxycurve.doc:2969K\splineRecordSBreakValue@,:xycurve.doc:2916K\splineRecordValue@,fxycurve.doc:2958K\splinereset@,fxycurve.doc:1110K\splinereverse@@,fxycurve.doc:2676K\splinereverse@@@,fxycurve.doc:2677K\splineribboned@,fxycurve.doc:3300K\splinescan@,fxycurve.doc:2465K\splinescanbreak@,fxycurve.doc:2544K\splinescanEndtest,fxycurve.doc:2729K\splinescanStarttest,fxycurve.doc:2724K\splinesegment@,fxycurve.doc:3239K\splineset@,fxycurve.doc:3252K\splineset@@,fxycurve.doc:3325K\splinesetting@,fxycurve.doc:3402K\splinesetting@@,fxycurve.doc:3404K\splineshavec@,fxycurve.doc:1138K\splineshavep@,fxycurve.doc:1129K\splineSintercept@,fxycurve.doc:1665K\splineslidec@,fxycurve.doc:1167K\splineslidec@@,fxycurve.doc:1219K\splineslidec@@@,fxycurve.doc:1172K\splineslidemore@,fxycurve.doc:1198K\splineslidep@,fxycurve.doc:1149K\splineslidep@@@,fxycurve.doc:1153K\splineslowEnd@,fxycurve.doc:2517K\splineSlowEndtest,fxycurve.doc:2449K\splineslowScan@,fxycurve.doc:2511K\splineSlowStarttest,fxycurve.doc:2447'Ϯ*tjINDEXr655??hw\splinesolid@,fxycurve.doc:3294 Í\splineSrec@,fxycurve.doc:2614\splinestartScan@,fxycurve.doc:2493\splineStarttest,fxycurve.doc:2444\splineStarttest@,fxycurve.doc:2432\splinetest@,fxycurve.doc:3073\splinetestcvxhull@,fxycurve.doc:1726\splinetol@,fxycurve.doc:2152\splinetolerance,fxycurve.doc:2285\splinetolerance@,fxycurve.doc:2279\splinetooclose@,fxycurve.doc:2365\splinetooclose@@,fxycurve.doc:2366\splinetrace@,fxycurve.doc:2179\splinetracing,fxycurve.doc:2177\splinetrebled@,fxycurve.doc:3303\splineTrec@,fxycurve.doc:3380\splineval@,fxycurve.doc:2142\splinewhich,fxycurve.doc:3462\splinewideend,fxycurve.doc:2605\splinewidestart,fxycurve.doc:2597\splinezeroend,fxycurve.doc:2590\splinezerostart,fxycurve.doc:2584\splitRadius@,fxyarc.doc:302\splitRadius@dim,fxyarc.doc:293\spop@,fxy.doc:2735\Spread@@,fxy.doc:8043\spreaddiagramcolumns,fxyv2.doc:566\spreaddiagramcolumns,f561\spreaddiagramrows,fxyv2.doc:565\spreaddiagramrows,f561\spushc@,fxy.doc:2716\spushid@,fxy.doc:2720\squarify,fxyv2.doc:442\squarify,f559\squash,fxyv2.doc:425\squash,f559\squiggle@,fxy.doc:5402\squiggle@@,fxy.doc:5413\squiggledSpread@,fxy.doc:5429squiggles,f14\squine@start@,fxycurve.doc:3659\squineconnect@,fxycurve.doc:3515\squined@,fxycurve.doc:3669\squined@@,fxycurve.doc:3673\squineDadvance@@@,fxycurve.doc:3594\squinedecast@,fxycurve.doc:3579\squineDwhich@,fxycurve.doc:3472\squineIadvance@,fxycurve.doc:1513\squineinfo@,fxycurve.doc:3633hwK\squineIpt@,fxycurve.doc:1511 ÍK\squineplot@maybe,fxycurve.doc:3596K\squinerec@,fxycurve.doc:3590K\squinereverse@,fxycurve.doc:3643K\squinesegment@,fxycurve.doc:3518K\squinesetparams@,fxycurve.doc:3665K\squinetestcvxhull@,fxycurve.doc:1605K\squinewhich@,fxycurve.doc:3464K\ssize,f555K\Ssolid,fxyv2.doc:304K\Ssolid,f557K\sssize,f555K\ssz,fxycurve.doc:203K\STACK@,fxy.doc:2698K\STACK@load,fxy.doc:2711K\startxycurve@,fxycurve.doc:1916K\startxycurve@@,fxycurve.doc:1910Kstate,f21K\stdsplineconn@,fxycurve.doc:2332Khstepi,f458K\stop,fxyv2.doc:348K\stop,f558K\stopper@,fxy.doc:5693K\stopper@@,fxy.doc:5695K\straight@,fxy.doc:8046K\straight@typeset,fxy.doc:8071K\straightArc@,fxyarc.doc:1310K\straightCbreak@,fxy.doc:8093K\straightcheckoverlap@,fxy.doc:8067K\straightClast@,fxy.doc:8103K\straighth@,fxy.doc:8149K\straightv@,fxy.doc:8176K\straitalong@,fxycurve.doc:1022K\straitbreak@,fxycurve.doc:1057K\straitconnect@,fxycurve.doc:984K\straitintercept@,fxycurve.doc:1056K\straitlast@,fxycurve.doc:1058K\straitreset@,fxycurve.doc:1000K\straitshavec@,fxycurve.doc:1013K\straitshavep@,fxycurve.doc:1006K\straitslidec@,fxycurve.doc:1004K\straitslidep@,fxycurve.doc:1003K\stripRCS,fxy.doc:412K\stripRCS,f13K\stripRCS@,fxy.doc:413K\stripRCS@@,fxy.doc:415Kst!yle,f56Kstyle[bevel],fxyline.doc:251Kstyle[butt],fxyline.doc:255'*tj656rINDEX??hwstyle[miter],fxyline.doc:253 style[projcap],fxyline.doc:257style[roundcap],fxyline.doc:256style[roundjoin],fxyline.doc:252style[thicker],fxyline.doc:119style[thinner],fxyline.doc:118st!ylefoption,11\styledboxz@,fxy.doc:3908\supermorphism,fxy2cell.doc:160\swap,fxyv2.doc:270\swap,f557\swap@,fxy.doc:1639\swapdimen@,fxy.doc:1635\swaptoks@@,fxy.doc:1637systemfdepMendencies,7o\tartPi@,fxytpic.doc:349\testAND@,fxy.doc:316\testbreakedges@,fxycurve.doc:3012\tests@,fxy.doc:2683\testsplineedges@,fxycurve.doc:2484T,[wEB XfreferencepMoin!t,20\Text,fxyv2.doc:168\Text,f555\text,f555\Text@,fxyv2.doc:172\Text@i,fxyv2.doc:176\Text@ii,fxyv2.doc:186\TextC,fxyv2.doc:170\Textures@,fxyps.doc:271\Textures@@,fxytextures.doc:47\texturesColor@@,fxytextures.doc:93\TexturesColor@push,fxytextures.doc:76\TexturesColours@,fxytextures.doc:78\texturesCrayon@,fxytextures.doc:115\texturesCrayon@@,fxytextures.doc:114\texturesCurrpt@,fxytextures.doc:177\texturesCurrpt@@,fxytextures.doc:178\TexturesDict@,fxytextures.doc:162\texturesFrames@,fxytextures.doc:233\texturesFrames@@,fxytextures.doc:231\TexturesInclude@,fxytextures.doc:164\texturesLine@,fxytextures.doc:219\texturesLine@@,fxytextures.doc:217\TexturesMacro@,fxytextures.doc:161\texturesPS@,fxytextures.doc:193\texturesPS@@,fxytextures.doc:123\texturesPStypes@,fxytextures.doc:147\texturesPSunload@,fxytextures.doc:124\TexturesRaw@,fxytextures.doc:165hwK\texturesRotate@,fxytextures.doc:205 ÍK\texturesRotate@@,fxytextures.doc:203K\TexturesSpecial@,fxytextures.doc:160K\TexturesSpecialDict@,fxytextures.doc:163K\texturesTiles@,fxytextures.doc:247K\texturesTiles@@,fxytextures.doc:245K\theF,fmovie.cls:158,xymovie.doc:78K\theFr,fmovie.cls:159,xymovie.doc:79K\theFrame,fmovie.cls:155K\thelineno@,fxy.doc:471K\thematrixCOORD@@,fxymatrix.doc:804K\thematrixprefix@@,fxymatrix.doc:805K\theMOVE@@,fxygraph.doc:218K\theScene,fmovie.cls:156,xymovie.doc:77K\tildeARC@,fxyarc.doc:904K\Tip,fxyv2.doc:356K\tip,fxyv2.doc:352K\Tip,f558K\tip,f558K\Tip@,fxy.doc:5644K\tip@,fxy.doc:5620K\Tip@@,fxy.doc:5651K\tip@@,fxy.doc:5629K\Tip@@eu,fxytips.doc:146K\tip@cm,fxytips.doc:124K\Tip@eu,fxytips.doc:140K\tip@x,fxy.doc:5624K\Tip@xy,fxytips.doc:52K\tip@xy,fxytips.doc:48Ktipfamilycm,fxytips.doc:115Ktipfamilyeu,fxytips.doc:136K\tipfamily@@,fxytips.doc:74K\tipjot@,fxy.doc:5822K\tipjot@xy,fxytips.doc:55K\TIPS,fxytips.doc:88Ktips,f14K\tipsize@@,fxytips.doc:75K\todl,fxyv2.doc:705K\todr,fxyv2.doc:706K\toks@,f17K\toks@ii,xyidioms.doc:188,xyidioms.doc:208K\told,fxyv2.doc:701K\tolu,fxyv2.doc:702K\ToPOS,fxy.doc:4554K\toradians@,fxy.doc:2048K\tord,fxyv2.doc:703K\toru,fxyv2.doc:704K\toul,fxyv2.doc:707K\tour,fxyv2.doc:708'ݠ*tjINDEXr657??hw\toXY@,fxyv2.doc:680 Í\TPIC,fxytpic.doc:32\TPICalternative@,fxytpic.doc:190\transformConnect@,fxyrotate.doc:222\transformDrop@,fxyrotate.doc:218\transformstyle@,fxy.doc:4122\transformstyle@@,fxy.doc:4121\transxyline@,fxyline.doc:608\transxyline@@,fxyline.doc:610\TrefoilA,fxyknot.doc:1466\TrefoilB,fxyknot.doc:1476\TrefoilC,fxyknot.doc:1486\triple@,fxy.doc:5474\triplecircle@,fxycurve.doc:4650\trpldottedcircle@,fxycurve.doc:4672\tsize,f555\Ttip,fxyv2.doc:364\Ttip,f558\Ttip@,fxy.doc:5660\Ttip@@,fxy.doc:5667\Ttip@@eu,fxytips.doc:159\Ttip@eu,fxytips.doc:152\Ttip@xy,fxytips.doc:53hturni,f446\TurnRadius,fxyv2.doc:717\turnradius,fxyarrow.doc:872\turnradius,f305\turnradius@,fxyarrow.doc:870\tw@@cell@,fxy2cell.doc:467\tw@@cell@@,fxy2cell.doc:691\tw@cell@,fxy2cell.doc:463\tw@cell@@,fxy2cell.doc:693\tw@cell@@@,fxy2cell.doc:281\twocell,fxy2cell.doc:1246\twocell@,fxy2cell.doc:267\twocell@@,fxy2cell.doc:1449\twocell@@@@,fxy2cell.doc:1232\twocell@DONE,fxy2cell.doc:1384\twocell@path,fxy2cell.doc:1193\twocellhead,fxy2cell.doc:453\twocellhead@,fxy2cell.doc:455\twocelll,fxy2cell.doc:1251\twocellmod@,fxy2cell.doc:462\twocellPATH,fxy2cell.doc:1224\twocellpath,fxy2cell.doc:1207\twocellstyle,fxy2cell.doc:365\twocelltail,fxy2cell.doc:454\twocelltail@,fxy2cell.doc:456\twodecimals@,fmovie.cls:228hwK\twoPi@,fxycurve.doc:4446 K\txt,fxy.doc:6331K\txt,f89K\txt@,fxy.doc:6333K\txt@i,fxy.doc:6337K\txt@ii,fxy.doc:6354K\txtline@,fxy.doc:6343K\txtline@@,fxy.doc:6342K\typesetoutline@,fxy.doc:4895oKU1,f20KU,f23,40K\U@c,fxy.doc:613K\U@p,fxy.doc:621KUzc.y,f21KUzp],f21K\ubraced,fxyframe.doc:736K\Uc,fxyv2.doc:214K\Uc,f556K\ucurveObject@,fxy2cell.doc:1090K\uDirection@,fxy.doc:7095K\ulDirection@,fxy.doc:7101K\unenter@,fxy.doc:775K\uninstallEMline@,fxyemtex.doc:207K\UninstallPolylines@,fxyline.doc:529K\uninstallTPICcurves@,fxytpic.doc:417K\uninstallTPICframes@,fxytpic.doc:435K\uninstallTPICline@,fxytpic.doc:323K\UnloadColor@,fxycolor.doc:108K\UnloadColor@@,fxycolor.doc:113K\UnloadDVITOPSrotate@,fxydvitops.doc:252K\UnloadFrames@,fxyframe.doc:1130K\UnloadLine@,fxyline.doc:561K\Unloadpattern@,fxytile.doc:221K\UnloadpolySpecials@,fxyline.doc:470K\UnloadPS@,fxyps-ps.doc:87K\UnloadPS@@,fxyps-ps.doc:90K\UnloadPSpatterns@,fxyps-t.doc:88K\UnloadPSps@,fxyps-ps.doc:71K\UnloadRotate@,fxyrotate.doc:362K\Unloadstyle@,fxy.doc:3994K\unsetupDirection@,fxy.doc:7327K\unsilencexy@,fxy.doc:1546K\Up,fxyv2.doc:221K\Up,f556K\uparenthesized,fxyframe.doc:831K\Upness@,fxy.doc:3223K\uppercurveobject,fxy2cell.doc:1088K\uppertwocell,fxy2cell.doc:1247K\uppertwocell@,fxy2cell.doc:269(*tj658rINDEX??hw\uppertwocelll,fxy2cell.doc:1255 \urDirection@,fxy.doc:7090\UseAllTwocells,fxy2cell.doc:142\UseCompositeMaps,fxy2cell.doc:138\UseComputerModernTips,fxycmtip.doc:51\UseCrayolaColors,fxycolor.doc:269\UseCrayolaColors,f235\UseCurveFrames,fxyframe.doc:1117\UseCurveFrames@,fxyframe.doc:1114\UseDVIPSspecials,fxyps.doc:235\UseDVITOPSspecials,fxyps.doc:240\UseEMlinewidth,fxyemtex.doc:211\UseEMspecials,fxyemtex.doc:60\UseFontFrames,fxyframe.doc:1122\UseFontFrames@,fxyframe.doc:1119\UseHalfTwocells,fxy2cell.doc:130\UseOzTeXspecials,fxyps.doc:239\usepackage,f11\UsePatternFile,fxytile.doc:278\UsePostScriptSpecials,fxyps.doc:238\UsePS@specials,fxyps.doc:186\UsePScolor,fxyps-c.doc:73\UsePSframes,fxyps-f.doc:74\UsePSheader{},f260\UsePSheader{},f260\UsePSheader@,xyps-ps.doc:509,xyps.doc:634\UsePSlines,fxyps-l.doc:86\UsePSrotate,fxyps-r.doc:89\UsePSspecials,fxyps.doc:171\UsePSspecials{},f255\UsePSspecials@,fxyps.doc:290\UsePSspecials@i,fxyps.doc:172\UsePSspecials@x,fxyps.doc:315\UsePStiles,fxyps-t.doc:90\UseResizing,fxyrotate.doc:121\UseRules,fxy.doc:5215\UseRules,f74\UseSingleDriver,fxy.doc:6698\UseSingleDriver,f93\UseTexturesPSspecials,fxyps.doc:236\UseTexturesSpecials,fxyps.doc:237\UseTips,fxytips.doc:174\UseTips,f216\UseTPICframes,fxytp-f.doc:62\UseTPICspecials,fxytpic.doc:62\UseTwocells,fxy2cell.doc:126\uutol,fxyv2.doc:698\uutor,fxyv2.doc:699ov,f46hwK\Vcap,fxyknot.doc:1983 K\vcap,fxyknot.doc:1549K\Vcross,fxyknot.doc:1953K\vcross,fxyknot.doc:381K\vcrossneg,fxyknot.doc:389K\vDirection@,fxy.doc:7299Khv!ectori,f23K\VECTOR@,fxy.doc:1420K\VECTOR@a,fxy.doc:1435K\VECTOR@letter,fxy.doc:1432K\VECTOR@other,fxy.doc:1477K\VECTOR@other@open,fxy.doc:1498Kv!ersion,f7,13K\vfromabsolute@,fxy.doc:1647K\vfromabsolute@@,fxy.doc:1649K\vfromcartesian@,fxy.doc:1863K\vfromcartesian@@,fxy.doc:1865K\vfromcartesianangle@,fxy.doc:1955K\vfromslide@,fxy.doc:2514K\vfromslide@i,fxy.doc:2517K\vloop,fxyknot.doc:1612K\vover,fxyknot.doc:474K\vtwist,fxyknot.doc:654K\vtwistneg,fxyknot.doc:662K\vuncross,fxyknot.doc:397K\vunder,fxyknot.doc:484K\vunover,fxyknot.doc:494K\vuntwist,fxyknot.doc:670oK\W@,fxyidioms.doc:116K\W@max,fxymatrix.doc:522K\W@maxin,fxymatrix.doc:499K\W@maxout,fxymatrix.doc:500KWarning,f14Kw!arningfmessages,3K\Wcol@C,fxymatrix.doc:538K\Wcol@c@@,fxymatrix.doc:498K\Wcol@HWmax,fxymatrix.doc:544K\Wcol@in,fxymatrix.doc:496K\Wcol@max,fxymatrix.doc:541K\Wcol@out,fxymatrix.doc:497K\wdz@,fxyidioms.doc:113K\whichCurveObject@,fxy2cell.doc:480K\whichframe@@,fxyframe.doc:1015K\whichinfo,fxy2cell.doc:826K\whichnudge,fxy2cell.doc:825K\whichoptions@@,fxyframe.doc:1016K\whichPSspecials@,fxyps.doc:310Kwidth,f251K\writeoutline@,fxy.doc:4878(*tjINDEXr659??hw\writeoutline@@,fxy.doc:4866 \writePSdict@@,fxyps-ps.doc:533oX,f20\X,fxyframe.doc:898x,f23,38\X@c,fxy.doc:611\X@max,fxy.doc:636\X@min,fxy.doc:634\X@origin,fxy.doc:627\X@p,fxy.doc:619\X@xbase,fxy.doc:629\X@ybase,fxy.doc:631Xzorigin6,f21XȮxbasekf,f21XȮybaseq,f21Xzc.y,f21Xzp],f21XzmaxQֹ,f20Xzmin,f20\xbendd,fxyknot.doc:1674\xbendl,fxyknot.doc:1666\xbendr,fxyknot.doc:1662\xbendu,fxyknot.doc:1670\Xc,fxyv2.doc:212\Xc,f556\Xcap,fxyknot.doc:1895\xcaph,fxyknot.doc:1557\xcapv,fxyknot.doc:1553\xdashed,f561\xdotted,f561\xdouble,f561\xdvi@@,fxyxdvi.doc:56\xdvi@Color@,fxyxdvi.doc:87\xdviColor@@,fxyxdvi.doc:102\xdviCrayola@,fxyxdvi.doc:136\xdviCrayola@@,fxyxdvi.doc:134\xdviCurrpt@,fxyxdvi.doc:213\xdviCurrpt@@,fxyxdvi.doc:214\xdviDict@,fxyxdvi.doc:182\xdviFrames@,fxyxdvi.doc:270\xdviFrames@@,fxyxdvi.doc:268\xdviInclude@,fxyxdvi.doc:183\xdviLine@,fxyxdvi.doc:257\xdviLine@@,fxyxdvi.doc:255\xdviMacro@,fxyxdvi.doc:181\xdviPS@,fxyxdvi.doc:225\xdviPS@@,fxyxdvi.doc:153\xdviPS@unload,fxyxdvi.doc:155\xdviPStypes@,fxyxdvi.doc:166hwK\xdviRaw@,fxyxdvi.doc:184 ÍK\xdviRotate@,fxyxdvi.doc:237K\xdviRotate@@,fxyxdvi.doc:235K\xdviRotScale@,fxyxdvi.doc:244K\xdviSpecial@,fxyxdvi.doc:180K\xdviTiles@,fxyxdvi.doc:283K\xdviTiles@@,fxyxdvi.doc:281K\xdviTPIC@,fxyxdvi.doc:296K\xdviTPIC@@,fxyxdvi.doc:294K\xline,f561K\Xmax,fxyv2.doc:238K\Xmax,f556K\Xmin,fxyv2.doc:236K\Xmin,f556K\Xorigin,fxyv2.doc:229K\Xorigin,f556K\Xover,fxyknot.doc:1870K\xoverh,fxyknot.doc:515K\xoverv,fxyknot.doc:505K\Xp,fxyv2.doc:219K\Xp,f556K\xto,f561K\Xtwist,fxyknot.doc:1845K\xunderh,fxyknot.doc:520K\xunderv,fxyknot.doc:510K\Xunover,fxyknot.doc:1882K\xunover,fxyknot.doc:525K\xunoverh,fxyknot.doc:535K\xunoverv,fxyknot.doc:530K\Xuntwist,fxyknot.doc:1855K\Xxbase,fxyv2.doc:231K\Xxbase,f556K\XXover,fxyknot.doc:1916K\XXtoY@,fxyv2.doc:673K\XXtwist,fxyknot.doc:1930K\XY,fxyv2.doc:67K\Xy,fxy.doc:451K\xy,fxy.doc:1109Kxy,f215K\Xy,f13K\xy,f19{22,64XYLU-pic,f13XYLU-picturefstate,21Kxy.sty,f11K\xy@,fxy.doc:857K\xy@@,fxy.doc:886K\xy@@atfont,fxytips.doc:61K\xy@@btfont,fxytips.doc:62K\xy@@crvaddstack,fxycurve.doc:940(%>*tj660rINDEX??hw\xy@@crvaddstack@,fxycurve.doc:945 Í\xy@@crvmods@,fxycurve.doc:650\xy@@crvmods@@,fxycurve.doc:661\xy@@crvmods@@@,fxycurve.doc:662\xy@@samecurve@,fxycurve.doc:340\xy@begindvi,fxyidioms.doc:165\xy@cosabs@@,fxymatrix.doc:301\xy@cossign@@,fxymatrix.doc:299\xy@cotabs@@,fxymatrix.doc:304\xy@crv@mods@@,fxycurve.doc:655\xy@crvmods@,fxycurve.doc:637\xy@crvmods@@,fxycurve.doc:643\xy@crvmods@@@,fxycurve.doc:656\xy@crvmods@@@@,fxycurve.doc:641\xy@curve@,fxycurve.doc:599\xy@curve@@,fxycurve.doc:600\xy@curve@@@,fxycurve.doc:601\xy@end,fxy.doc:1167\xy@linecap@,fxyline.doc:307\xy@linecap@@,fxyline.doc:557\xy@linecap@i,fxyline.doc:299\xy@linejoin@,fxyline.doc:330\xy@linejoin@@,fxyline.doc:558\xy@linejoin@i,fxyline.doc:300\xy@linemiter@,fxyline.doc:355\xy@linemiter@@,fxyline.doc:559\xy@linemiter@i,fxyline.doc:301\xy@maxX@@,fxymatrix.doc:440\xy@maxY@@,fxymatrix.doc:442\xy@minX@@,fxymatrix.doc:439\xy@minY@@,fxymatrix.doc:441\xy@newCOORD@,fxynecula.doc:67\xy@newOBJECT@,fxynecula.doc:57\xy@oldCOORD@,fxynecula.doc:66\xy@oldOBJECT@,fxynecula.doc:56\xy@polystyle@,fxyline.doc:478\xy@polystyle@@,fxyline.doc:527\xy@sinabs@@,fxymatrix.doc:302\xy@sinsign@@,fxymatrix.doc:300\xy@spline@,fxycurve.doc:4775\xy@spline@g,fxycurve.doc:4804\xy@spline@i,fxycurve.doc:4784\xy@spline@ii,fxycurve.doc:4788\xy@spline@ii@@,fxycurve.doc:4798\xy@spline@iii,fxycurve.doc:4800\xy@spline@iv,fxycurve.doc:4813\xy@spline@v,fxycurve.doc:4822\xy@spline@x,fxycurve.doc:4827\xy@style@,fxy.doc:3969hwK\xy@tanabs@@,fxymatrix.doc:303 ÍK\xy@transform@,fxyrotate.doc:192K\xyactive@Warning,fxycurve.doc:516K\xyadddriversupport@,fxy.doc:6831K\xyaddsupport,fxy.doc:6828K\xyaddsupport,f95K\xyaddunsupport,fxy.doc:6829K\xyaddunsupport,f95K\xyadjustBREAK@i,fxyknot.doc:1196K\xyadjustJOIN@i,fxyknot.doc:1189K\xyadjustknotPLACE@,fxyknot.doc:1161K\xyadjustknotPLACE@@,fxyknot.doc:1169K\xyadjustknotPLACE@i,fxyknot.doc:1155Kxyatip10,f14K\xyatipfont,fxy.doc:567K\xyatipfont,f14,15,80K\Xybase,fxyv2.doc:233K\Xybase,f556K\xyBEcolorcheck@,fxycolor.doc:295K\xybox,fxy.doc:3390K\xybox,f46K\xybspline@,fxycurve.doc:3975K\xybspline@iii,fxycurve.doc:3955K\xybspline@iv,fxycurve.doc:3963K\xybsplinemethods@,fxycurve.doc:3983Kxybsql10,f14K\xybsqlfont,fxy.doc:570K\xybsqlfont,f14,15,77,81,82K\xybsqlh@,fxy.doc:572K\xybsqll@,fxy.doc:571K\xybsqlw@,fxy.doc:573Kxybtip10,f14K\xybtipfont,fxy.doc:568K\xybtipfont,f14,15,80K\xybug@,fxy.doc:489K\xyc@trlpts@,fxycurve.doc:1950K\xyc@trlpts@@,fxycurve.doc:1952K\xyc@vxhull@,fxycurve.doc:1955K\xyc@vxhull@@,fxycurve.doc:1958K\xycapSpecial@@,fxyline.doc:324K\xycatcodes,fxy.doc:58K\xycatcodes,f4,92K\xycheck@end,fxy.doc:1165K\xycheck@end@,fxy.doc:1166Kxycirc10,f14K\xycircfont,fxy.doc:575K\xycircfont,f14,15,87K\xycircle,fxycurve.doc:4463K\xycircle@,fxycurve.doc:4466(3*tjINDEXr661??hw\xycircle@i,fxycurve.doc:4473 Í\xycircleframe@x@,fxyframe.doc:1098\xycircleframe@x@i,fxyframe.doc:1101\xycircleframe@x@x,fxyframe.doc:1111\xyclearcrv@,fxycurve.doc:1843\xyclosedown@@,fxyidioms.doc:155\xycolor@,fxycolor.doc:105\xycolor@@,fxycolor.doc:102\xycolor@begin,fxydvitops.doc:121\xycolor@end,fxydvitops.doc:122\xycolor@pop,fxycolor.doc:159\xycolor@push,fxycolor.doc:160\xycolor@push@@,fxycolor.doc:158\xycolor@raw@@,fxyps-c.doc:139\xycolormessage@,fxycolor.doc:83\xycolorwarning@,fxycolor.doc:81\xycolorwarning@@,fxycolor.doc:77\xycomment@,fxy.doc:4789\xycompile,fxy.doc:4738\xycompile,f65,67\xycompile@@,fxy.doc:4731\xycompiled,fxy.doc:4805\xycompileno@@,fxy.doc:4732\xycompileto,fxy.doc:4746\xycompileto,f65\xycontrolpt,fxycurve.doc:1895\xycontrolpt@,fxycurve.doc:1883\xyCOORD@,fxy.doc:1508\xyCOORD@letter,fxy.doc:1515\xyCOORD@other,fxy.doc:1528\xyCOORD@other@open,fxy.doc:1548\xycroplattice@,fxyweb.doc:193\xycrvconn@,fxycurve.doc:1948\xycrvdrop@,fxycurve.doc:1947\xycrvmods@,fxycurve.doc:635\xyctrlpts,fxycurve.doc:2019\xyctrlpts@,fxycurve.doc:2011\xycubicbezier@,fxycurve.doc:3691\xycubicmethods@,fxycurve.doc:3697\xycurve@,fxycurve.doc:595\xycurve@@,fxycurve.doc:597\xycvxhull,fxycurve.doc:2085\xycvxhull@,fxycurve.doc:2070\xycvxhulldrop@,fxycurve.doc:2087xyd.mf,f15xyd2.mf,f15xydash10,f14\xydashfont,fxy.doc:562\xydashfont,f14,15,72,74,81hwK\xydashh@,fxy.doc:564 ÍK\xydashl@,fxy.doc:563K\xydashw@,fxy.doc:565K\xydate,fxy.doc:421K\xydate,f13K\xydecagon@@,fxypoly.doc:1021K\xydef@,fxy.doc:39,3K\xydefaultdriver@,fxyps-ps.doc:196K\xydefcsname@,fxy.doc:201K\xydelayimport@,fxyimport.doc:114K\XYdict@,fxyps-ps.doc:599K\XYdict@@,fxyps-ps.doc:600K\xydist@,fxycurve.doc:3045K\xydodecagon@@,fxypoly.doc:1109K\xydopoly@style,fxyline.doc:491K\xydopoststyles@,fxy.doc:3942K\xydopoststyles@@,fxy.doc:3940K\xydoprestyles@,fxy.doc:3941K\xydoprestyles@@,fxy.doc:3939K\xydoTPICcircle@,fxytpic.doc:335K\xydriver@unload@support@@,fxy.doc:6668K\xydriverfail@,fxy.doc:6935K\xydrivernoload@,fxy.doc:6932K\xydriversloaded@@,fxy.doc:6655K\xydriversselected@@,fxy.doc:6656K\xydropRotated@,fxyrotate.doc:400K\xydropRotated@@,fxyrotate.doc:398K\xydummyrequires@@,fxydummy.doc:46K\xyDVITOPScolor@,fxydvitops.doc:99K\xyDVITOPScolor@i,fxydvitops.doc:103K\xyeat@,fxy.doc:4679K\xyeatall@,fxymatrix.doc:382K\xyecho,fxy.doc:4619K\xyecho,f66K\xyecho@,fxy.doc:4622K\xyellipseframe@x@,fxyframe.doc:1099K\xyEM@noisy,fxyemtex.doc:84K\xyEM@special,fxyemtex.doc:80K\xyEMlinewidth@,fxyemtex.doc:200K\xyEMstraight@,fxyemtex.doc:151K\xyemtex@line,fxyemtex.doc:71K\xyemtex@lineto,fxyemtex.doc:69K\xyemtex@moveto,fxyemtex.doc:70K\xyemtex@pen,fxyemtex.doc:73K\xyemtex@point,fxyemtex.doc:72K\xyemtex@solid@,fxyemtex.doc:146K\xyemtex@splinesolid@,fxyemtex.doc:189K\xyendcompiled,fxy.doc:4815K\xyenddocmode@,fxy.doc:6586(D*tj662rINDEX??hw\xyendinput,fxy.doc:6575 Í\xyendinput,f91,92,95\xyerror@,fxy.doc:479\xyerror@RC,fxymatrix.doc:867\xyescape@@,fxyps-s.doc:70\xyescapeSpecial@,:xyps-s.doc:76,xyps-s.doc:77\xyevery@,fxy.doc:6483\xyeveryrequest,fxy.doc:6489\xyeveryrequest,f91\xyeverywithoption,fxy.doc:6490\xyeverywithoption,f91\xyexportwarning@,fxyimport.doc:127\xyextern@,fxyimport.doc:117\xyextern@i,fxyimport.doc:119\xyextern@ii,fxyimport.doc:123\xyextern@x,fxyimport.doc:130\xyFN@,fxyidioms.doc:108\xyfont@,fxy.doc:559\xygetfilepatterns@,fxytile.doc:267\xygetknotPLACE@@,fxyknot.doc:1181\xygetpolyprefix@,fxypoly.doc:274\xygetpostBREAK@,fxyknot.doc:1202\xygraph,fxygraph.doc:162\xygraph,f361\Xygreet@,fxy.doc:423\xyhcap,fxyknot.doc:1567\xyhcross,fxyknot.doc:413\xyhcrossneg,fxyknot.doc:419\xyheptagon@@,fxypoly.doc:919\xyhexagon@@,fxypoly.doc:893\xyhloop,fxyknot.doc:1618\xyhover,fxyknot.doc:547\xyhtwist,fxyknot.doc:692\xyhtwistneg,fxyknot.doc:698\xyhuncross,fxyknot.doc:425\xyhunder,fxyknot.doc:553\xyhunover,fxyknot.doc:559\xyhuntwist,fxyknot.doc:695xyidioms.doc,f7\xyidiomsloaded,fxyidioms.doc:25\xyignore,fxy.doc:4675\xyignore,f65\xyignore@,fxy.doc:4677\xyignorescale@,fxyrotate.doc:291\xyignoreSizeMod@,fxyrotate.doc:402\xyimport,fxyimport.doc:112\xyimport@,fxyimport.doc:113\xyimportdefault@,fxyimport.doc:126\xyinitial@,fxy.doc:854hwK\xyinputorelse@,fxy.doc:735 ÍK\xyinputorelse@@,fxy.doc:741K\xyinside@,fxy.doc:1113K\xyjoinSpecial@@,fxyline.doc:349K\xyk@@,fxyknot.doc:1138K\xyk@joincontrol@,fxyknot.doc:1508K\xykbacktemp@,fxyknot.doc:1044K\xykbacktips@,fxyknot.doc:1038K\xykbreak@,fxyknot.doc:1056K\xykcaph,fxyknot.doc:1586K\xykcapv,fxyknot.doc:1579K\xykcheckscale@,fxyknot.doc:857K\xykcheckTIPS@,fxyknot.doc:1272K\xykcross@,fxyknot.doc:365K\xykcrossh,fxyknot.doc:446K\xykcrossv,fxyknot.doc:438K\xykflexbase,fxyknot.doc:1833K\xykflexbase@,fxyknot.doc:1832K\xykflexiscale@,fxyknot.doc:866K\xykflexiscale@@,fxyknot.doc:883K\xykforetemp@,fxyknot.doc:1041K\xykforetips@,fxyknot.doc:1035K\xykhadjust@,fxyknot.doc:906K\xykhobject@,fxyknot.doc:800K\xykholesize,fxyknot.doc:1799K\xykholetemp@,fxyknot.doc:1047K\xykhscale@@,fxyknot.doc:897K\xykhuadjust@,fxyknot.doc:918K\xykhuobject@,fxyknot.doc:815K\xykhvadjust@,fxyknot.doc:914K\xykhvobject@,fxyknot.doc:810K\xykillstyles@,fxyps.doc:1042K\xykillstyles@@,fxyps-s.doc:50K\xykjoin@,fxyknot.doc:1529K\xykjoincontrol,fxyknot.doc:1512K\xykjoincontrol@,fxyknot.doc:1514K\xykjoincontrol@@,fxyknot.doc:1507K\xykjoincontrol@i,fxyknot.doc:1520K\xykkeepscale@,fxyknot.doc:843K\xyklooph,fxyknot.doc:1634K\xykloopv,fxyknot.doc:1628K\xykmidbreak@,fxyknot.doc:953K\xykmidbreak@@,fxyknot.doc:1812K\xykmidPLACE@,fxyknot.doc:1816K\xyknegflexscale@,fxyknot.doc:893K\xyknegflexscale@@,fxyknot.doc:892K\xyknoflexscale@,fxyknot.doc:888K\xyknoflexscale@@,fxyknot.doc:887K\xyknotTIPS@,fxyknot.doc:1804(U*tjINDEXr663??hw\xyknottips@,fxyknot.doc:1286 Í\xyknotTIPS@@,fxyknot.doc:1805\xyknulltemp@,fxyknot.doc:1055\xykoverh,fxyknot.doc:601\xykoverstring@,fxyknot.doc:368\xykoverv,fxyknot.doc:594\xykparsebreak@,fxyknot.doc:1008\xykparsecross@,fxyknot.doc:324\xykparsecross@@,fxyknot.doc:342\xykparsejoin@,fxyknot.doc:1391\xykparsejoin@@,fxyknot.doc:1424\xykparsescale@,fxyknot.doc:754\xykparsetips@,fxyknot.doc:1243\xykparsetips@@,fxyknot.doc:1248\xykPLACE@,fxyknot.doc:1817\xykpostbreak@,fxyknot.doc:949\xykpostbreak@@,fxyknot.doc:1811\xykpostPLACE@,fxyknot.doc:1815\xykprebreak@,fxyknot.doc:945\xykprebreak@@,fxyknot.doc:1810\xykprePLACE@,fxyknot.doc:1814\xykrescale@,fxyknot.doc:855\xykrescale@@,fxyknot.doc:870\xyksavescale@,fxyknot.doc:822\xyksbendh,fxyknot.doc:1718\xyksbendv,fxyknot.doc:1711\xykSCALE@@,fxyknot.doc:1807\xykscaleerror@,fxyknot.doc:767\xyksetjoin@,fxyknot.doc:1532\xyktwisth,fxyknot.doc:727\xyktwistv,fxyknot.doc:711\xykuncrossh,fxyknot.doc:462\xykuncrossv,fxyknot.doc:454\xykunderstring@,fxyknot.doc:369\xykunoverh,fxyknot.doc:617\xykunoverv,fxyknot.doc:609\xykuntwisth,fxyknot.doc:734\xykuntwistv,fxyknot.doc:719\xykvadjust@,fxyknot.doc:910\xykvobject@,fxyknot.doc:805\xykvscale@@,fxyknot.doc:901\xykxbendd,fxyknot.doc:1750\xykxbendl,fxyknot.doc:1738\xykxbendr,fxyknot.doc:1732\xykxbendu,fxyknot.doc:1744\xykxcaph,fxyknot.doc:1598\xykxcapv,fxyknot.doc:1592\xykxoverh,fxyknot.doc:629\xykxoverv,fxyknot.doc:623hwK\xykxunoverh,fxyknot.doc:642 ÍK\xykxunoverv,fxyknot.doc:635K\xykz,fxyknot.doc:1136K\xykzbendh,fxyknot.doc:1704K\xykzbendv,fxyknot.doc:1725K\xylargePolygon@,fxypoly.doc:1161K\xylattice,fxyweb.doc:161K\xylattice@,fxyweb.doc:163K\xylet@,fxy.doc:40,3K\xyletcsnamecsname@,fxy.doc:211K\xylinecap@,fxyline.doc:221K\xylinejoin@,fxyline.doc:222K\xylinemiter@,fxyline.doc:223K\xylineSpecial@@,fxyline.doc:611K\xylinethick@,fxyline.doc:132K\xylinewidth@,fxyline.doc:587K\xylinewidth@@,fxyline.doc:556K\xylinewidth@i,fxyline.doc:137K\xyLoadDrivers@,fxy.doc:6701K\xyloaded,fxy.doc:24K\xylocalColor@,fxycolor.doc:106K\xylocalpattern@,fxytile.doc:213K\xylowtolerance@,fxycurve.doc:2292K\xymakeADD@,fxy.doc:306K\xymath@,fxy.doc:1110K\xymatrix,fxymatrix.doc:238K\xymatrix,f59,342K\xymatrix@addop,fxymatrix.doc:982K\xymatrix@addop@,fxymatrix.doc:983K\xymatrix@addop@@,fxymatrix.doc:942K\xymatrix@addop@x,fxymatrix.doc:989K\xymatrix@at,fxymatrix.doc:944K\xymatrix@C,fxymatrix.doc:993K\xymatrix@change,fxymatrix.doc:1157K\xymatrix@fix,fxymatrix.doc:965K\xymatrix@fix@,fxymatrix.doc:973K\xymatrix@fix@x,fxymatrix.doc:979K\xymatrix@H,fxymatrix.doc:998K\xymatrix@ii,fxymatrix.doc:255K\xymatrix@insert,fxymatrix.doc:693K\xymatrix@insert@,fxymatrix.doc:697K\xymatrix@L,fxymatrix.doc:996K\xymatrix@M,fxymatrix.doc:995K\xymatrix@measureit,fxymatrix.doc:552K\xymatrix@measureit@@,fxymatrix.doc:568K\xymatrix@mods,fxymatrix.doc:1143K\xymatrix@mods@error,fxymatrix.doc:1184K\xymatrix@mods@x,fxymatrix.doc:1165K\xymatrix@mods@xx,fxymatrix.doc:1177(fΠ*tj664rINDEX??hw\xymatrix@prefix,fxymatrix.doc:242 Í\xymatrix@pretypeset,fxymatrix.doc:348\xymatrix@R,fxymatrix.doc:992\xymatrix@rotation,fxymatrix.doc:306\xymatrix@set,fxymatrix.doc:1153\xymatrix@setup,fxymatrix.doc:247\xymatrix@typeset,fxymatrix.doc:586\xymatrix@W,fxymatrix.doc:999\xymatrixcolsep,fxymatrix.doc:1018\xymatrixcolsep@,fxymatrix.doc:1015\xymatrixcompile,fxymatrix.doc:280\xymatrixcompile,f343\xymatrixcompile@,fxymatrix.doc:281\xymatrixCOORD@,fxymatrix.doc:807\xymatrixCOORD@after,fxymatrix.doc:863\xymatrixCOORD@error,fxymatrix.doc:835\xymatrixCOORD@i,fxymatrix.doc:813\xymatrixCOORD@i@d,fxymatrix.doc:824\xymatrixCOORD@i@l,fxymatrix.doc:825\xymatrixCOORD@i@r,fxymatrix.doc:826\xymatrixCOORD@i@u,fxymatrix.doc:823\xymatrixCOORD@ii,fxymatrix.doc:828\xymatrixCOORD@other,fxymatrix.doc:839\xymatrixCOORD@x,fxymatrix.doc:847\xymatrixCOORD@xx,fxymatrix.doc:855\xymatrixnocompile,fxymatrix.doc:224\xymatrixnocompile,f343\xymatrixprefix@@,fxymatrix.doc:240\xymatrixrowsep,fxymatrix.doc:1017\xymatrixrowsep@,fxymatrix.doc:1014\xymatrixsavedCOORD@,fxymatrix.doc:346\xymidcross@,fxyknot.doc:356\xymiterSpecial@@,fxyline.doc:374\xynamestyle@,fxy.doc:4042\xynamestyle@@,fxy.doc:4048\xynametransform@,fxyrotate.doc:255\xynew@,fxy.doc:41,3\xyNoColor@,fxycolor.doc:101\xyNoColor@@,fxycolor.doc:103\xynoedgespline@,fxycurve.doc:2491\xynolinecap@,fxyline.doc:546\xynolinejoin@,fxyline.doc:547\xynolinemiter@,fxyline.doc:548\xynolinewidth@,fxyline.doc:544\xynomath@,fxy.doc:1111\xynonagon@@,fxypoly.doc:983\xyNopattern@,fxytile.doc:208\xyNopattern@@,fxytile.doc:210\xynopolystyle@,fxyline.doc:492hwK\xyNoResizing@,fxyrotate.doc:123 ÍK\xyNoResizing@@,fxyrotate.doc:130K\xynumctrlpts@,fxycurve.doc:85K\xyoctagon@@,fxypoly.doc:949K\xyoldOzTeXheader,fxy17oztex.doc:194K\xyoption,fxy.doc:6404K\xyoption,f11,90,91K\xyoption@@,fxy.doc:6402K\xyoption@truncated,fxy.doc:6412K\xyOzTeXheader,fxyoztex.doc:192K\xypattern@,fxytile.doc:212K\xypattern@@,fxytile.doc:209K\xypatternmessage@,fxytile.doc:106K\xypatternwarning@,fxytile.doc:104K\xypatternwarning@@,fxytile.doc:100K\xypentagon@@,fxypoly.doc:871Kxypic.sty,f563Kxypic.tex,f563K\xypoly@,fxypoly.doc:224K\xypoly@@,fxypoly.doc:316K\xypoly@@@,fxypoly.doc:751K\xypoly@@@x,fxypoly.doc:771K\xypoly@@i,fxypoly.doc:305K\xypoly@i,fxypoly.doc:262K\xypoly@n,fxypoly.doc:252K\xypoly@SIDES@,fxypoly.doc:489K\xypoly@SPOKES@,fxypoly.doc:477K\xypoly@x,fxypoly.doc:246K\xypolybody@,fxypoly.doc:1172K\xypolydash@Special,fxyline.doc:468K\xypolydashPS@Special,fxyps-l.doc:134K\xypolydefaults@,fxypoly.doc:320K\xypolydot@Special,fxyline.doc:467K\xypolydotPS@Special,fxyps-l.doc:133K\xypolyeofill@Special,fxyline.doc:466K\xypolyeofillPS@Special,fxyps-l.doc:136K\xypolyfill@Special,fxyline.doc:465K\xypolyfillPS@Special,fxyps-l.doc:135K\xypolygon,fxypoly.doc:222K\xypolygon@@,fxypoly.doc:1183K\xyPolygon@@@,fxypoly.doc:784K\xypolyiterate@,fxypoly.doc:1173K\xypolyline,fxyline.doc:389K\xypolyline@,fxyline.doc:391K\xypolyline@Special,fxyline.doc:464K\xypolylinePS@Special,fxyps-l.doc:132K\xypolyloop@,fxypoly.doc:1174K\xypolyname,fxypoly.doc:272K\xypolynode,fxypoly.doc:212(xj*tjINDEXr665??hw\xypolynode@,fxypoly.doc:211 Í\xypolynospec@,fxyline.doc:501\xypolynullvertex@,fxypoly.doc:353\xypolynum,fxypoly.doc:215\xypolyNUMSIDES@,fxypoly.doc:214\xypolyparams@,fxypoly.doc:361\xypolyPREFIX@,fxypoly.doc:270\xypolyPREFIX@@,fxypoly.doc:271\xypolyprefix@@,fxypoly.doc:285\xypolyrepeat@,fxypoly.doc:1171\xypolystraight@,fxyline.doc:516\xypolytoosmall@,fxypoly.doc:773\xypolyvertex@,fxypoly.doc:356\xypolyVERTEXerror@,fxypoly.doc:377\xypolywhich@,fxypoly.doc:463\xypolywidevertex@,fxypoly.doc:359\xyPOS@,fxy.doc:1560\xypost@Style@,fxy.doc:3932\xypostcross@,fxyknot.doc:351\xypostcurve@,fxycurve.doc:3248\xypre@skipStyle@,fxy.doc:3936\xypre@Style@,fxy.doc:3923\xyprecross@,fxyknot.doc:346\xyprecurve@,fxycurve.doc:3247\XYpredict@,fxyps-ps.doc:597\XYpredict@@,fxyps-ps.doc:588\XYpredict@r,fxyps-ps.doc:596\xyprovide,fxy.doc:6558\xyprovide,f91,92\xyPS@@,fxyps-ps.doc:527\xyPS@@@,fxyps-ps.doc:528\xyPS@color@@,fxyps-c.doc:138\xyps@options,fxyps.doc:307\xyPS@pattern@@,fxyps-t.doc:129\xyPSabtip@,fxyps.doc:847\xyPSabtip@i,fxyps.doc:860\xyPSahook@,fxyps.doc:876\xyPSalternative@,fxyps.doc:695\xyPSatip@,fxyps.doc:843\xyPSatip@i,fxyps.doc:856\xyPSaturn@,fxyps.doc:883\xyPSbhook@,fxyps.doc:877\xyPSbtip@,fxyps.doc:845\xyPSbtip@i,fxyps.doc:858\xyPSbturn@,fxyps.doc:884\xyPScapSpecial@,fxyps-l.doc:99\xyPSchar@,fxyps.doc:772\xyPScharmessage@,fxyps-ps.doc:643\xyPScharwarning@@,fxyps-ps.doc:638hwK\xyPScirbuild@,fxyps.doc:988 ÍK\xyPScirc@,fxyps.doc:977K\xyPScirc@Special,fxyps-f.doc:174K\xyPScirchar@,fxyps.doc:937K\xyPScirchar@@,fxyps.doc:955K\xyPScirchar@@@,fxyps.doc:967K\xypscircle@,fxyps-f.doc:162K\xyPScircled@x@,fxyps-f.doc:102K\xyPScircled@x@@,fxyps-f.doc:109K\xyPSCIRfull@,fxyps.doc:985K\xyPScirrest@,fxyps.doc:949K\xyPScm@,fxyps.doc:820K\xyPScm@@,fxyps.doc:821K\xyPScmatip@,fxyps.doc:829K\xyPScmbtip@,fxyps.doc:830K\xyPScmtip@,fxyps.doc:828K\xyPScolor@,fxyps-c.doc:126K\xyPScolor@@,fxyps-c.doc:128K\xyPScubic@,fxyps.doc:1117K\xyPScurrpt@,fxyps-ps.doc:325K\xyPScurrpt@@,fxyps-ps.doc:336K\xyPScurrpt@@@,fxyps-ps.doc:335K\xyPSdash@,fxyps.doc:915K\xyPSdashcirc@Special,fxyps-f.doc:176K\xyPSdashed@,fxyps.doc:1056K\xyPSdashedSpread@,fxyps.doc:1057K\xyPSdashhfill@,fxyps-f.doc:135K\xyPSdashoval@Special,fxyps-f.doc:178K\xyPSdashvfill@,fxyps-f.doc:136K\xyPSdefaultdict,:xyps-ps.doc:503,xyps.doc:628K\xyPSdefaultdict,f260K\xyPSdictknown@,fxyps-ps.doc:475K\xyPSdotcirc@Special,fxyps-f.doc:175K\xyPSdotoval@Special,fxyps-f.doc:177K\xyPSdottedSpread@,fxyps.doc:1054K\xyPSdriver,fxyps-ps.doc:197K\xypsellipse@,fxyps-f.doc:166K\xyPSellipsed@x@,fxyps-f.doc:117K\xyPSellipsed@x@@,fxyps-f.doc:125K\xyPSescapestyle@,fxyps-s.doc:60K\xyPSfillcirc@Special,fxyps-f.doc:225K\xyPSfilledRegion,fxyps-f.doc:189K\xyPSfillellipse@Special,fxyps-f.doc:228K\xyPSfilloval@Special,fxyps-f.doc:222K\xyPSfliptrue@,fxyps.doc:913K\xyPSfont@,fxyps.doc:784K\xyPSframed@body@,fxyps-f.doc:86K\xyPSframed@oval@,fxyps-f.doc:98K\xyPShook@,fxyps.doc:875(*tj666rINDEX??hw\xyPSjoinSpecial@,fxyps-l.doc:100 Í\xyPSlineSpecial@,fxyps-l.doc:98\xyPSmath@,fxyps-c.doc:105\xyPSmiterSpecial@,fxyps-l.doc:101\xyPSnewcolor@,fxyps-c.doc:113\xyPSnewpattern@,fxyps-t.doc:104\xyPSnomath@,fxyps-c.doc:106\xyPSnotfinished@@,fxyps-ps.doc:697\xyPSnotimplemented@@,fxyps-ps.doc:694\xyPSobeylines@@,fxyps-ps.doc:68\xypsoval@,fxyps-f.doc:148\xyPSoval@Special,fxyps-f.doc:173\xyPSpattern@,fxyps-t.doc:117\xyPSpattern@@,fxyps-t.doc:120\xyPSpoint@,fxyps.doc:1083\xyPSpost@,fxyps-ps.doc:438\xyPSposttransform@,fxyps-r.doc:111\xyPSpre@,fxyps-ps.doc:437\xyPSpretransform@,fxyps-r.doc:110\xyPSpsxy@,fxyps-ps.doc:320\xyPSrawA@,fxyps-ps.doc:401\xyPSrawAA@,fxyps-ps.doc:402\xyPSrawstyleA@,fxyps-s.doc:98\xyPSrawZ@,fxyps-ps.doc:404\xyPSrotate@@,fxyps-r.doc:136\xyPSrotSplit@,fxyps-r.doc:116\xyPSscale@@,fxyps-r.doc:126\xyPSsemichar@,fxyps.doc:775\xyPSsemifont@,fxyps.doc:785\xyPSshapechar@,fxyps-ps.doc:391\xyPSshipout@,fxyps-ps.doc:110\xyPSshipout@i,fxyps-ps.doc:112\xyPSshipout@ii,fxyps-ps.doc:113\xyPSshipout@PSii,fxyps-ps.doc:125\xyPSsolid@,fxyps.doc:1051\xyPSsolidSpread@,fxyps.doc:1052\xyPSspecialRotate@,fxyps-r.doc:140\xyPSsplinedashed@,fxyps.doc:1132\xyPSsplinedotted@,fxyps.doc:1135\xyPSsplinesolid@,fxyps.doc:1129\xyPSsplitescape@,fxyps-s.doc:61\xyPSsplitPS@,fxyps-s.doc:67\xyPSsplitshape@,fxyps-ps.doc:392\xyPSspread@,fxyps.doc:1060\xyPSsquiggle@,fxyps.doc:893\xyPSsquine@,fxyps.doc:1122\xyPSstopper@,fxyps.doc:910\xyPSstraight@,fxyps.doc:1014\xyPSTip@,fxyps.doc:802hwK\xyPStip@,fxyps.doc:799 ÍK\xyPSTip@eu@,fxyps.doc:806K\xyPStips@,fxyps.doc:837K\xyPSTtip@,fxyps.doc:803K\xyPSTtip@eu@,fxyps.doc:807K\xyPSTtips@,fxyps.doc:863K\xyPSwarning@,fxyps.doc:317K\xyPSwhichabtip@,fxyps.doc:854K\xyPSwhichatip@,fxyps.doc:850K\xyPSwhichbtip@,fxyps.doc:852K\xyPSzerodot@,fxyps.doc:1091K\xyq@,fxymatrix.doc:675K\xyq@@toksix@,fxymatrix.doc:677K\xyq@@toksix@i,fxymatrix.doc:680K\xyqall@,fxymatrix.doc:670K\xyqs@,fxymatrix.doc:684K\xyquadbezier@,fxycurve.doc:3488K\xyquadmethods@,fxycurve.doc:3495K\xyquiet,fxy.doc:4659K\xyquiet,f65,66K\xyread@,fxy.doc:697K\xyreadpatfile@,fxytile.doc:294K\xyrealshipout@,fxyps-ps.doc:109K\xyrecat,fxy.doc:310Kxyrecat.tex,f5K\xyrecat@,fxy.doc:309K\xyrecompile@,fxy.doc:4764K\xyrecompile@@,fxy.doc:4744K\xyReloadDrivers,fxy.doc:6703K\xyReloadDrivers,f93,94K\xyReloadDrivers@,fxy.doc:6702K\xyrequire,fxy.doc:6421K\xyrequire,f90K\xyrescale@,fxyrotate.doc:281K\xyresetcatcodes,fxy.doc:311K\xyreuncatcodes,fxy.doc:47K\xyRotate@,fxyrotate.doc:357K\xyrotatechar@,fxyrotate.doc:325K\xyrotateSizeMod@,fxyrotate.doc:379K\xyRotScale@@,fxyps-r.doc:164K\xysave@,fxy.doc:4783K\xysave@@toksix@,fxy.doc:4786K\xysaveMinMax@,fxy2cell.doc:1215K\xysaving@,fxy.doc:4778K\xysbendh,fxyknot.doc:1686K\xysbendv,fxyknot.doc:1685K\xyscale@,fxyrotate.doc:360K\xyscalechar@,fxyrotate.doc:269K\xyscalechars@,fxyrotate.doc:271(#*tjINDEXr667??hw\xyselectoptionsupport@,fxy.doc:6721 Í\xysetjoincontrol@,fxyknot.doc:1206\xysetknotPLACE@,fxyknot.doc:1172\xysetknotPLACE@@,fxyknot.doc:1176\xysetlinecap@,fxyline.doc:269\xysetlinecap@@,fxyline.doc:294\xysetlinejoin@,fxyline.doc:275\xysetlinejoin@@,fxyline.doc:295\xysetmiterlimit@,fxyline.doc:281\xysetmiterlimit@@,fxyline.doc:296\xysetpostbreak@,fxyknot.doc:1205\xysetup@@,fxyidioms.doc:133\xysetup@dummy,fxyidioms.doc:132\xyshape@bevel@,fxyline.doc:267\xyshape@butt@,fxyline.doc:261\xyshape@dblsize@,fxyrotate.doc:301\xyshape@flip@,fxyrotate.doc:302\xyshape@halfsize@,fxyrotate.doc:300\xyshape@hflip@,fxyrotate.doc:304\xyshape@left@,fxyrotate.doc:408\xyshape@miter@,fxyline.doc:265\xyshape@projcap@,fxyline.doc:263\xyshape@rdcap@,fxyline.doc:262\xyshape@rdjoin@,fxyline.doc:266\xyshape@right@,fxyrotate.doc:409\xyshape@thicker@,fxyline.doc:134\xyshape@thinner@,fxyline.doc:135\xyshape@vflip@,fxyrotate.doc:303\xyshearchar@,fxyrotate.doc:424\xyShowDrivers,fxy.doc:6735\xyShowDrivers,f94\xysidesofhull@,fxycurve.doc:1624\xysidesofinterval@,fxycurve.doc:1555\xySpecialRotate@,fxyrotate.doc:358\xySpecialRotate@i,fxyrotate.doc:328\xysplinespecialcases@,fxycurve.doc:3270\xysquare@@,fxypoly.doc:853\xystackcolor@,fxycolor.doc:143\xystackcolor@i,fxycolor.doc:147\xystandardcolors@,fxycolor.doc:230\xystandardpatterns@,fxytile.doc:254\xystatus,fxy2cell.doc:1245\xystatus@,fxy.doc:4640\xystatus@c,fxy.doc:4655\xystatus@cp,fxy.doc:4648\xysupportwarning@,fxy.doc:6903\xysupportwarnings@@,fxy.doc:6917\xytestforsupport@,fxy.doc:6855\xytilde@Warning,fxycurve.doc:518hwK\xytotoks@,fxy.doc:2758 ÍK\xytotoks@@toksix@,fxy.doc:2759K\xytpfloaded,fxytp-f.doc:25K\xyTPIC@accumulate,fxytpic.doc:399K\xytpic@ar,fxytpic.doc:119K\xytpic@bk,fxytpic.doc:126K\xytpic@circhar@,fxytpic.doc:355K\xytpic@cnt,fxytpic.doc:79K\xytpic@da,fxytpic.doc:116K\xytpic@dad,fxytpic.doc:170K\xytpic@dashed@,fxytpic.doc:241K\xytpic@dashed@@,fxytpic.doc:168K\xytpic@dot@@,fxytpic.doc:157K\xytpic@dotted@@,fxytpic.doc:169K\xytpic@dt,fxytpic.doc:117K\xytpic@dtd,fxytpic.doc:172K\xytpic@fp,fxytpic.doc:114K\xytpic@ia,fxytpic.doc:120K\xytpic@in,fxytpic.doc:149K\xytpic@ip,fxytpic.doc:115K\xytpic@line,fxytpic.doc:162K\xytpic@max,fxytpic.doc:80K\xyTPIC@noisy,fxytpic.doc:129K\xytpic@pa,fxytpic.doc:109K\xytpic@pn,fxytpic.doc:108K\xytpic@point@,fxytpic.doc:244K\xytpic@polydashed@,fxytpic.doc:176K\xytpic@polydotted@,fxytpic.doc:177K\xytpic@polysolid@,fxytpic.doc:175K\xytpic@postpoly@,fxytpic.doc:178K\xytpic@pt,fxytpic.doc:146K\xytpic@reset@,fxytpic.doc:100K\xytpic@set@,fxytpic.doc:102K\xytpic@sh,fxytpic.doc:121K\xytpic@solid@,fxytpic.doc:236K\xytpic@solid@@,fxytpic.doc:167K\xytpic@sp,fxytpic.doc:118K\xyTPIC@special,fxytpic.doc:128K\xyTPIC@spline@ii@,fxytpic.doc:387K\xytpic@splinedashed@,fxytpic.doc:295K\xytpic@splinedotted@,fxytpic.doc:297K\xytpic@splinesolid@,fxytpic.doc:294K\xytpic@style@@,fxytpic.doc:99K\xytpic@wh,fxytpic.doc:125K\xytpic@width@,fxytpic.doc:158K\xyTPICcirc@Special,fxytp-f.doc:222K\xyTPICcirchar@i,fxytpic.doc:381K\xyTPICcircle@,fxytp-f.doc:200K\xyTPICcircled@x@,fxytp-f.doc:92(Q*tj668rINDEX??hw\xyTPICcircled@xx,fxytp-f.doc:97 Í\xyTPICdashcirc@,fxytp-f.doc:102\xyTPICdashcirc@Special,fxytp-f.doc:224\xyTPICdashellip@,fxytp-f.doc:105\xyTPICdashrect@Special,fxytp-f.doc:221\xyTPICdotcirc@,fxytp-f.doc:100\xyTPICdotcirc@Special,fxytp-f.doc:223\xyTPICdotellip@,fxytp-f.doc:104\xyTPICdotrect@Special,fxytp-f.doc:220\xyTPICellipse@,fxytp-f.doc:214\xyTPICellipsed@x@,fxytp-f.doc:111\xyTPICellipsed@xx,fxytp-f.doc:116\xyTPICfillcirc@Special,fxytp-f.doc:267\xyTPICfilledoval@,fxytp-f.doc:163\xyTPICfilledRegion,fxytp-f.doc:235\xyTPICfillellipse@Special,:xytp-f.doc:270\xyTPICfilloval@Special,fxytp-f.doc:264\xyTPICfillrect@Special,fxytp-f.doc:261\xyTPICframed@body@,fxytp-f.doc:71\xyTPICframed@rect@i,fxytp-f.doc:81\xyTPICfullcircle@,fxytpic.doc:341\xyTPIClinewidth@,fxytpic.doc:316\xyTPICmaxwarning@,fxytpic.doc:84\xyTPICoval@,fxytp-f.doc:150\xyTPICoval@i,fxytp-f.doc:161\xyTPICpartcircle@,fxytpic.doc:343\xyTPICqspline@,fxytpic.doc:403\xyTPICrect@,fxytp-f.doc:126\xyTPICrect@Special,fxytp-f.doc:219\xyTPICrect@x,fxytp-f.doc:145\xyTPICspline@,fxytpic.doc:300\xyTPICspline@dot,fxytpic.doc:306\xyTPICsplit@,fxytpic.doc:137\xyTPICstraight@,fxytpic.doc:249\xytracelineno@,fxy.doc:474\xytracing,fxy.doc:4633\xytracing,f65,66\xytracing@,fxy.doc:4637\xytriangle@@,fxypoly.doc:839\xytrigerror@,fxypoly.doc:661\xyuncatcodes,fxy.doc:46\xyuncatcodes,f4\xyundecagon@@,fxypoly.doc:1063\xyundefinedEffect@,fxyps-ps.doc:671\xyundefinedLine@,fxyline.doc:541\xyundefinedRotate@,fxyrotate.doc:53\xyundefinedStyle@,fxy.doc:4098\xyunload@,fxy.doc:6937\xyunloadEM@,fxyemtex.doc:125hwK\xyunloadTPIC@,fxytpic.doc:215 ÍK\xyunsupportwarning@,fxy.doc:6884K\xyunsupportwarnings@@,fxy.doc:6898K\xyUseResizing@,fxyrotate.doc:135K\xyUseResizing@@,fxyrotate.doc:136K\xyvcap,fxyknot.doc:1566K\xyvcross,fxyknot.doc:410K\xyvcrossneg,fxyknot.doc:416K\xyVECTOR@,fxy.doc:1415K\xyverbose,fxy.doc:4625K\xyverbose,f65,66K\xyverbose@,fxy.doc:4629K\xyversion,fxy.doc:418K\xyversion,f13K\xyviitoi,fxyv2.doc:670K\xyviitoii,fxyv2.doc:671K\xyvloop,fxyknot.doc:1617K\xyvover,fxyknot.doc:544K\xyvtwist,fxyknot.doc:683K\xyvtwistneg,fxyknot.doc:686K\xyvuncross,fxyknot.doc:422K\xyvunder,fxyknot.doc:550K\xyvunover,fxyknot.doc:556K\xyvuntwist,fxyknot.doc:689K\xywarnifdefined,fxy.doc:36K\xywarnifdefined,f3K\xywarning@,fxy.doc:476K\xywidthchar@,fxyline.doc:144K\xywith@@,fxy.doc:6443K\xywithoption,fxy.doc:6447K\xywithoption,f8,90,91K\xywithrun@,fxy.doc:6457K\xywithtest@,fxy.doc:6454K\xywrite@,fxy.doc:698K\xyxbendd,fxyknot.doc:1692K\xyxbendl,fxyknot.doc:1690K\xyxbendr,fxyknot.doc:1689K\xyxbendu,fxyknot.doc:1691K\xyxcaph,fxyknot.doc:1569K\xyxcapv,fxyknot.doc:1568K\xyxoverh,fxyknot.doc:569K\xyxoverv,fxyknot.doc:563K\xyxunderh,fxyknot.doc:572K\xyxunderv,fxyknot.doc:566K\xyxunover,fxyknot.doc:575K\xyxunoverh,fxyknot.doc:581K\xyxunoverv,fxyknot.doc:578K\xyxy@,fxy.doc:1125K\xyxy@@ix@,fxy.doc:879(l*tjINDEXr669??hw\xyzbendh,fxyknot.doc:1684 y\xyzbendv,fxyknot.doc:1687VgYn,f20y,f23,38\Y@c,fxy.doc:612\Y@max,fxy.doc:637\Y@min,fxy.doc:635\Y@origin,fxy.doc:628\Y@p,fxy.doc:620\Y@xbase,fxy.doc:630\Y@ybase,fxy.doc:632Yzorigin6,f21YȮxbasekf,f21YȮybaseq,f21Yzc.y,f21Yzp],f21YzmaxQֹ,f20Yzmin,f20\Yc,fxyv2.doc:213\Yc,f556\Ymax,fxyv2.doc:239\Ymax,f556\Ymin,fxyv2.doc:237\Ymin,f556\Yorigin,fxyv2.doc:230\Yorigin,f556\Yp,fxyv2.doc:220\Yp,f556\Yxbase,fxyv2.doc:232\Yxbase,f556\Yybase,fxyv2.doc:234\Yybase,f556\zbendh,fxyknot.doc:1644\zbendv,fxyknot.doc:1656zerofpMosition,20\zerocorner,fxyframe.doc:360\zerodash@i,fxycurve.doc:4683\zeroDivide@,fxy.doc:2470\zeroDivide@@,fxy.doc:2468\zeroDivide@message,fxy.doc:2469\zeroDivideLimit,fxy.doc:2478\zeroDivideLimit@,fxy.doc:2476\zeroDivideLimit@@,fxy.doc:2472\zerodot,fxy.doc:5321\zerodot,f16,76\zerodot@i,fxycurve.doc:4678\zerodotbox@,fxy.doc:654\zeroEdge,fxy.doc:7406\zeroEdge,f48hwK\zeroit@,fxy.doc:1448 K\Zoom@,fmovie.cls:252K\zz@,fxy.doc:660,16(л;Q(Pi)BǮ xymisc10Oq xyqc10N6δ xyline10M-ff cmcsc10L"xmsam5H2@cmbx8G- cmcsc10FR6ff cmss12A5D xyeubt10@5D xyeuat10;"V cmbx10:j cmti99Etcmbx68 3 cmmi10Aacmr6|{Ycmr8o> logo105D xycmbt105D xycmat10FQ xycirc105D xybsql105D xybtip105D xyatip106δ xydash10K`y 3 cmr10 !", cmsy10 b> cmmi10 0ercmmi7K`y cmr10ٓRcmr7u cmex10(2