%!PS % A Tutorial and Directory for my Gonzo PostScript Utilities % =========================================================== % by Don Lancaster GG #79 GONZOTUT.PSL /ggnum 79 store % Copyright c 2006 by Don Lancaster & Synergetics, Box 809, Thatcher, AZ, 85552 % (928) 428-4073 Email: don@tinaja.com Website: http://www.tinaja.com % Consulting services available http://www.tinaja.com/info01.html % Linking welcome. Reposting expressly forbidden. % All commercial rights and all electronic media rights ~fully~ reserved. % Linking usually welcome. Reposting expressly forbidden. Version 1.1 % IMPORTANT NOTE: Don Lancaster's file gonzo.ps is required for this program. % After obvious location mods, uncomment ONE of the following two lines: (C:\\Documents and Settings\\don\\Desktop\\gonzo\\gonzo.ps) run % use internal gonzo % (A:\\gonzo.ps) run % use external gonzo % NOTE THAT ALL PS FILENAME STRINGS !!!DEMAND!!! DOUBLE REVERSE SLASHES. % GONZO20A Guru Gonzo PostScript power tools (Interim release) % Includes gonzo justification and layout utilities. % Copyright c 1990, 1996, 2001 by Don Lancaster and Synergetics, Box 809, % Thatcher Arizona, 5552 (928) 428-4073 don@tinaja.com support % via http://www.tinaja.com All commercial rights and all electronic % media rights **FULLY** reserved. Reposting is expressly forbidden. % Many routines removed and cleaned at #58 %%%%%%%%%%% links menu directory %%%%%%%%%%%% % This code locks pdfmark commands out of a PostScript printer. /pdfmark where {pop}{userdict /pdfmark /cleartomark load put} ifelse % /surl "start url" marks the beginning of a text sequence to be urled. % It also paints the text blue... /surl {mark /blue cvx 0.33 /setgray cvx % change text to blue /currentpoint cvx % remember box start /urly /exch cvx /store cvx /urlx /exch cvx /store cvx ] cvx % complete deferred command printlist exch 3 index exch put % stuff into gonzo printlist exch 1 add exch % increment gonzo list count } def % /eurl "end url" unmarks the end of a text sequence and sets up % the pdfmark needed to define the Acrobat web link. /eurl {mark % start deferred proc exch % position url string % /black cvx 0 /setgray cvx % turn blue marker off % maintextcolor /setrgbcolor cvx % reset to main text color??? /aqua cvx /black cvx /makeurl cvx % defer call of url builder ] cvx % complete deferred proc printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } def % /makeurl generates the pdfmark, receiving a {(urlstring) makeurl}. % Note that it is not called until formatted printlist time... /urlover 0.2 def % fraction of hot area over bounds /makeurl { /cururlname exch store % save the url string mark % start pdfmark currentfont /ScaleMatrix get 3 get /fsize exch store % guess height /Rect [ urlx fsize urlover mul sub % set box left x urly fsize urlover mul sub % set box left y currentpoint exch fsize urlover mul add exch fsize add ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def % /makeurlx generates the box specific pdfmark, receiving % a {(urlstring) makeurl}. % Note that it is not called until formatted printlist time... /makeurlx { /cururlnamex exch store % save the url string mark % start pdfmark /Rect [ xpos % set box left x ypos 0.9 sub % set box left y xpos 2.8 add % box right x ypos 0.9 sub 2.8 add % box right y ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def /maintextcolor {0 0 0 } def % text link specific data -- use dictionary instead below { /cubic01 {(http://www.tinaja.com/cubic01.asp) eurl} def /hack62 {(http://www.tinaja.com/glib/hack62.pdf) eurl} def /increment {(http://www.tinaja.com/text/bezgen3.html) eurl} def /interpolate {(http://members.bellatlantic.net/~vze2vrva/design.html) eurl } def /bezmath {(http://www.tinaja.com/text/bezmath.html) eurl } def /table {(http://www.tinaja.com/psutils/imtable.psl) eurl } def } pop % zzz keep for search marker % dictionary method << % entered during gg79 /readfiles (http://www.adobe.com/devnet/acrobat/downloads/Acrobat_SDK_readme.html) /bookcvr1.pdf (http://www.tinaja.com/glib/bookcvr1.pdf) /swingtlt.pdf (http://www.tinaja.com/glib/swingtlt.pdf) /curvetr2.pdf (http://www.tinaja.com/psutils/curvetr2.pdf) /curvetr2.psl (http://www.tinaja.com/psutils/curvetr2.psl) /blanksusa (http://www.blanksusa.com) /gonzotut.psl (http://www.tinaja.com/glib/gonzotut.psl) /ps8dprp1.pdf (http://www.tinaja.com/glib/ps8dprp1.pdf) /pdfedit1.pdf (/http://www.tinaja.com/glib/pdfedit1.pdf) % entered during gg78 /enhebay6.psl (http://www.tinaja.com/glib/enhebay6.psl) /enhebay6.pdf (http://www.tinaja.com/glib/enhebay6.pdf) /slashdot (http://www.slashdot.org) /blackrangelodge (http://www.blackrangelodge.com/) /kijiji (http://www.phoenix.kijiji.com) /aznews (http://www.usnpl.com/aznews.html) /azschools (http://www.ade.state.az.us/schools/schools/districts.asp) /azcounties (http://www.az.gov/webapp/portal/displaycontent.jsp?name=county) /aztowns( http://www.azleague.org/index.cfm?fuseaction=about.cities) /natuniv (http://www.utexas.edu/world/univ/state/) /natcc (http://www.50states.com/college/arizona.htm) /barbiecollect (http://www.barbiecollector.com/shop/dept.aspx?deptid=2&shelfid=02&view=all) /googlebarbie (http://www.google.com/search?q=barbie+doll&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /wikibarbie (http://en.wikipedia.org/wiki/Barbie) /countyourassests (http://www.soldyourway.com/) /christies (http://www.christies.com/home_page/home_page.asp) /sothebys (http://www.sothebys.com) /franklinmint (http://en.wikipedia.org/wiki/Franklin_Mint) /klausbarbie (http://en.wikipedia.org/wiki/Klaus_Barbie) /enhebay5.pdf (http://www.tinaja.com/glib/enhebay5.pdf) /whtnu06 (http://www.tinaja.com/whtnu07.asp) /whtnu07 (http://www.tinaja.com/whtnu07.asp) % entered during gg77 /fastmsol.pdf (http://www.tinaja.com/glib/fastmsol.pdf) % entered during gg76 /ieeefp (http://en.wikipedia.org/wiki/IEEE_754) /ps8dprpt.psl (http://www.tinaja.com/psutils/ps8dprpt.psl) % entered during gg75 /pstrans2.pdf (http://www.tinaja.com/glib/pstrans2.pdf) /ghostscript (http://pages.cs.wisc.edu/~ghost/doc/AFPL/index.htm) /PLRM (http://www.adobe.com/products/postscript/pdfs/PLRM.pdf) /pdfref (http://www.adobe.com/devnet/pdf/pdf_reference.html) % entered during gg 74 /ebaymktsearch (http://pages.ebay.com/marketplace%5Fresearch/) /ebaystat.psl (http://www.tinaja.com/glib/ebaystat.psl) /ebayadvsearch (http://search.ebay.com/ws/search/AdvSearch?sofindtype=13&_trksid=m37) /ebaystatservice (http://www.medved.net/cgi-bin/cal.exe?EIND) % entered during gg 73 /bridge701.psl (http://www.tinaja.com/magsn_5/bridge701.psl) /bridge701.pdf (http://www.tinaja.com/magsn_5/bridge701.pdf) /demo28a (http://www.tinaja.com/demo28a.asp) /gaussjordan (http://en.wikipedia.org/wiki/Gauss-Jordan_elimination) /sinseries (http://www.ucl.ac.uk/Mathematics/geomath/level2/series/ser11.html) /newtonmethod (http://en.wikipedia.org/wiki/Newton's_method) /trigidentity (http://www.sosmath.com/trig/Trig5/trig5/trig5.html) /demo28a.asp (http://www.tinaja.com/demo28a.asp) % entered during gg 71 /detmssol.pdf (http://www.tinaja.com/glib/detmssol.pdf) /detmssol.psl (http://www.tinaja.com/glib/detmssol.psl) /alvinpile (http://www.tinaja.com/glib/enhebay2.pdf) % duplicate name /dilbert (http://www.dilbert.com) /putty (http://www.putty.nl) /legible1.pdf (http://www.tinaja.com/glib/legible1.pdf) /muse144.pdf (http://www.tinaja.com/glib/muse144.pdf) /webcolr.pdf (http://www.tinaja.com/psutils/webcolor.pdf) /ifilter (http://www.adobe.com/support/downloads/detail.jsp?ftpID=2611) /drmsbiz1 (http://reform.house.gov/UploadedFiles/MG%20Williams%20July%2025%20Testimony.pdf) /drmsbiz2 (http://www.gao.gov/new.items/d05277.pdf) /drmsclosed (http://www.drms.dla.mil/A76/transitionsitelistrevised.pdf) /drmsmap (http://www.drms.dla.mil/meo/routemap.htm) /drms (http://www.drms.dla.mil/) /enhebay4.pdf (http://www.tinaja.com/glib/enhebay4.pdf) % entered during gg 70 /insidegame (http://www.amazon.com/exec/obidos/ISBN%3D1585006246/donlancastersgurA/002-8267096-8078436) /auctionbytes (http://www.auctionbytes.com) /texasauctionlaw (Texas auction law: http://www.license.state.tx.us/auc/auction.htm) /shermananti (http://www.gamingip.com/Statutes/ShermanAct/ST-Sherman1-4.html) /mainantique (http://www.antiquedigest.com/articles/auclaw.htm) /finex1 (http://www.tinaja.com/images/bargs/pwrssrx3.jpg) /knockback.psl (http://www.tinaja.com/psutils/knockback.psl) /krylondull (http://www.krylon.com/main/product_template.cfm?levelid=5&sub_levelid=8&productid=1822&content=product_details) /adeptaabb (http://www.tinaja.com/images/bargs/araabbb.jpg) /bonnette (http://www.bonnetteauctions.com/) /walmartauctionsignup (mailto://Joan.Ramsey@Wal-Mart.com) /walmartauction (http://walmartstores.com/GlobalWMStoresWeb/navigate.do?catg=504&contId=49) /ucc (http://www.law.cornell.edu/ucc/) /whtnu06 (http://www.tinaja.com/whtnu06.asp) % entered during gg69 /wikicat (http://en.wikipedia.org/wiki/Catenary) /bezcat.psl (http://www.tinaja.com/glib/bezcat.psl) /nubz4pts1.pdf (http://www.tinaja.com/glib/nubz4pts1.pdf) % entered during gg68 /nobodydog (http://www.unc.edu/depts/jomc/academics/dri/idog.html) /kaizen (http://en.wikipedia.org/wiki/Kaizen) /circuitcellar (http://www.circuitcellar.com/guru/) /makemag (http://www.makezine.com/) /adamsadventures (http://www.msadams.com/downloads.htm) /linux (http://www.linux.org/) /opensource (http://www.opensource.org/) /craigslist (http://phoenix.craigslist.org/) /autotrader (http://www.autotrader.com/) /lulu (http://www.lulu.com/) /bookmarket (http://www.bookmarket.com/ondemand.html) /burgerking (http://www.bk.com) /newtek (http://www.newtek.com) /memsnet (http://www.memsnet.org/) /muse131.pdf (http://www.tinaja.com/glib/muse131.pdf) /muse120.pdf (http://www.tinaja.com/glib/muse120.pdf) /supercap (http://www.sciencemag.org/cgi/content/abstract/313/5794/1760?maxtoshow=&HITS=10&hits=10&RESULTFORMAT=&fulltext=carbon+pore+sizes&searchid=1&FIRSTINDEX=0&resourcetype=HWCIT) /quantumdots (http://www.google.com/search?q=%22quantum+dots%22+solar&sourceid=mozilla-search&start=0&start=0&ie=utf-8&oe=utf-8&client=firefox-a&rls=org.mozilla:en-US:official) /datasheetarchive (http://www.datasheetarchive.com/chipPhotos/photosA.html) /googleearth (http://www.earth.google.com) /toystory (http://us.imdb.com/title/tt0114709/) /robotmovie (http://us.imdb.com/title/tt0358082/) /cars (http://us.imdb.com/title/tt0317219/) /netflix (http://www.netflix.com/) /blockbuster (http://www.blockbuster.com/online/) % entered during gg67 /puzz01.psl (http://www.tinaja.com/psutils/puzz01.psl) /alphamet1 ( http://www.tkcs-collins.com/truman/alphamet/alphamet.shtml) /alphamet2 (http://www.tkcs-collins.com/truman/alphamet/alpha_gen.shtml) /alphamet3 (http://users.aol.com/s6sj7gt/mikealp.htm) /msinexec.pdf (http://www.tinaja.com/glib/msinexec.pdf) /paradigm.pdf (http://www.tinaja.com/glib/paradigm.pdf) % entered during gg66 /thunderbird (http://www.thunderbird.com) /spysweeper (http://www.webroot.com/consumer/products/spysweeper/?rc=1651) /norton (http://www.symantec.com/index.htm) /pestpatrol (http://www.pestpatrol.com/) /firefox (http://www.firefox.com) /sciencemag (http://www.sciencemag.org/) /worldfact (http://www.cia.gov/cia/publications/factbook/) /internetdog (http://www.unc.edu/depts/jomc/academics/dri/idog.html) /zipcode (http://www.usps.com/ncsc/lookups/lookup_zip+4.html) /weather (http://www.weather.com/) /thomasreg (http://www.thomasregister.com/) /topozone (http://www.topozone.com/) /yahoostock (http://finance.yahoo.com/) /reversephone (http://www.reversephonedirectory.com/) /uspto (http://www.uspto.gov/patft/index.html) /msnbc (http://www.msnbc.com/) /imdb (http://us.imdb.com/) /loanamort (http://www.hsh.com/calc-amort.html) /kellybook (http://www.kbb.com/) /googlemaps (http://maps.google.com/) /newyorker (http://www.newyorker.com/) /currexch (http://www.xe.net/ucc/) /chemele (http://www.chemicalelements.com) /cnn (http://www.cnn.com) /areacodes (http://decoder.americom.com/cgi-bin/decoder.cgi) /tinajaoffsite (http://www.tinaja.com#offsite) /tinajaengines (http://www.tinja.com#engines) /walmart (http://www.walmart.com) /rssbook (http://www.amazon.com/exec/obidos/ISBN%3D0764588486/donlancastersgurA/002-5434897-4181636) /webwb01 (http://www.tinaja.com/webwb01.asp) /weblib01 (http://www.tinaja.com/weblib01.asp) /validator (http://rss.scripting.com/) /webbooks (http://www.tinaja.com/books/bkwbmast.asp) /golive (http://www.adobe.com/products/golive/) /frontpage (http://office.microsoft.com/en-us/FX010858021033.aspx) /htmlbooks (http://www.tinaja.com/books/bkhtml.asp) /htmldummybook (http://www.amazon.com/exec/obidos/ISBN=0764507230/donlancastersgurA/) /naa (http://www.auctioneers.org) /histolog.pdf (http://www.tinaja.com/glib/histolog.pdf) /analogeb.pdf (http://www.tinaja.com/glib/analogeb.pdf) /enhebay3.pdf (http://www.tinaja.com/glib/enhebay3.pdf) /ipswitch (http://www.ipswitch.com/Products/WS_FTP) /networksolutions (http://www.networksolutions.com) /whois (http://www.networksolutions.com/cgi-bin/whois/whois) % entered furing gg65 msexec summary /picpro (http://www.tinaja.com/glib/mspicpro.pdf) /fourier (http://www.tinaja.com/glib/muse90.pdf) % entered during GG64 log log graphs /pdfrm1 (http://partners.adobe.com/public/developer/en/acrobat/sdk/pdf/pdf_creation_apis_and_specs/pdfmarkReference.pdf) /loglog01.psl (http://www.tinaja.com/psutils/loglog01.psl) /loglog01.pdf (http://www.tinaja.com/glair/loglog01.pdf) /bookcvr1.psl (http://www.tinaja.com/psutils/bookcvr1.psl) /bookcvr1.pdf (http://www.tinaja.com/glair/bookcvr1.pdf) % entered during gg 63 two phase magic sinewaves /numschip.pdf (http://www.tinaja.com/glib/numschip.pdf) /mspicpro.pdf (http://www.tinaja.com/glib/mspicpro.pdf) % entered during gg 62 enhance III /analogeb.pdf (http://www.tinaja.com/glib/analogeb.pdf) /rss (http://www.tinaja.com/whtnu.xml) /oreproptable (http://www.tinaja.com/whtnu05.asp#rogue3) /javascriptslideshow (http://www.codelifter.com/main/javascript/slideshow4.html) /logrptx2.psl (http://www.tinaja.com/psutils/logrptx2.psl) % entered during GG61 /jpg2pdf.pdf (http://www.tinaja.com/glib/jpg2pdf.pdf) /barcodeonline (http://www.raise-the-bar.co.uk/cgi-bin/webbarcodegen.pl) /barcodegen (http://www.terryburton.co.uk/barcodewriter/) /barcodetutorial (http://www.barcode-us.com/info_center/bookinfo.htm) /isbn (http://www.isbn.org/standards/home/index.asp) /bookcovr.psl (http://www.tinaja.com/glib/bookcovr.psl) /bookcovr.pdf (http://www.tinaja.com/glib/bookcovr.pdf) /begstuff (http://www.tinaja.com/post01.asp#begstuff) /ghostscript (http://www.cs.wisc.edu/~ghost/) /bod01 (http://www.tinaja.com/bod01.asp) % entered during GG 60 /bezlenjf.pdf (http://www.tinaja.com/glib/bezlenjf.pdf) /bzlnsub1.psl (http://www.tinaja.com/psutils/bzlnsub1.psl) /cubemath.pdf (http://www.tinaja.com/glib/cubemath.pdf) % entered during GG 59 /imbz4p01.psl (http://www.tinaja.com/psutils/imbz4p01.psl) /cubemath.pdf (http://www.tinaja.com/glib/cubemath.pdf) /bernstein (http://graphics.idav.ucdavis.edu/education/CAGDNotes/Bernstein-Polynomials.pdf) /ellipse4.psl (http://www.tinaja.com/glib/ellipse4.psl) /wnhsl (http://www.tinaja.com/whatnu05.asp#hsl) /stalac.pdf (http://www.tinaja.com/glib/stalac.pdf) /santa01 (http://www.tinaja.com/santa01.asp) /imxytab.psl (http://www.tinaja.com/psutils/imxytab.psl) /nonlingr.pdf (http://www.tinaja.com/glib/nonlingr.pdf) /unibmm01.psl (http://www.tinaja.com/psutils/unibm01.psl) /webimage.pdf (http://www.tinaja.com/glib/webimage.pdf) /keycor01.pdf (http://www.tinaja.com/glib/keycor01.pdf) /nubkg01.psl (http://www.tinaja.com/psutils/nubkg01.psl) /basis.pdf (http://www.tinaja.com/glib/basis.pdf) /fixtlt01.psl (http://www.tinaja.com/psutils/fixtlt01.psl) /swingtlt.pdf (http://www.tinaja.com/glib/swingt01.pdf) /swingt01.psl (http://www.tinaja.com/glib/swingt01.psl) /perspec1.pdf (http://www.tinaja.com/glib/perspec1.pdf) /starwars.psl (http://www.tinaja.com/psutils/starwars.psl) /video901.jpg (http://www.tinaja.com/images/bargs/finalc9.jpg) /video901.bmp (http://www.tinaja.com/images/bargs/finalc9.bmp) /autobmf1.psl (http://www.tinaja.com/psutils/autobmf1.psl) /bmfauto1.pdf (http://www.tinaja.com/glib/bmfauto1.pdf) /autobm1.psl (http://www.tinaja.com/psutils/autobmf1.psl) /bmdemo1.bmp (http://www.tinaja.com/psutils/bmdemo1.bmp) /adobeifilter (http://www.adobe.com/support/downloads/product.jsp?product=1&platform=Windows) /myriadfont (http://store.adobe.com/type/browser/P/P_1706.html) /stonefont (http://store.adobe.com/type/browser/F/STAQ/F_STAQ-11705000.html) /cleartype (http://grc.com/cleartype.htm) /adobeacrobat (http://www.adobe.com/products/acrobat/main.html) /acroread (http://www.adobe.com/products/acrobat/readstep2.html) /dutchdare (http://www.darenet.nl/page/language.view/home) /sedn (news:///sci.electronics.design) /sern (news:///sci.electronics.repair) /mcmaster (http://www.mcmaster.com/ ) /smallparts (http://www.smallparts.com/ ) /grainger (http://www.grainger.com/Grainger/ ) /mouser (http://www.mouser.com/ ) /digikey (http://www.digikey.com/ ) /allied (http://www.alliedelec.com/ ) /newark (http://www.newark.com/) /thomasreg (http://www.thomasregister.com/) /whtnu05 (http://www.tinaja.com/whtnu05.asp) /refurblg.pdf (http://www.tinaja.com/glib/refurblg.pdf) /refurb.pdf (http://www.tinaja.com/glib/refurb.pdf) /advetorl.pdf (http://www.tinaja.com/glib/advetorl.pdf) /sotofamilia (http://cgi6.ebay.com/ws/eBayISAPI.dll?MfcISAPICommand=ViewListedItems&userid=sotofamilia&include=0&since=7&sort=3&rows=100) /marcia.pdf (http://www.tinaja.com/glib/marcia.pdf) /auctscne.pdf (http://www.tinaja.com/glib/auctscne.pdf) /ebaysell.pdf (http://www.tinaja.com/glib/ebaysell.pdf) /ebayspoof (mailto:spoof@ebay.com) /auct01links (http://www.tinaja.com/auct01.asp#links) /enhebay2.pdf (http://www.tinaja.com/glib/enhebay2.pdf) /enhebay1.pdf (http://www.tinaja.com/glib/enhebay1.pdf) /pdfflash.pdf(http://www.tinaja.com/glib/pdfflash.pdf) /adobejava (http://partners.adobe.com/public/developer/pdf/topic_js.html) /p3anim01.pdf (http://www.tinaja.com/glib/p3anim01.pdf) /xpdf (http://www.foolabs.com/xpdf/) /heapsort.pdf (http://www.tinaja.com/glib/heapsort.pdf) /strconv.pdf (http://www.tinaja.com/glib/strconv.pdf) /pdfrefman (http://partners.adobe.com/public/developer/pdf/index_reference.html) /uncompresspdf.api (http://www.tinaja.com/plugins/uncompressPDF.api) /adobeebooks (http://www.adobe.com/epaper/ebooks/main.html) /viewpdf1.psl (http://www.tinaja.com/psutils/viewpdf1.psl) /adobeacrobatsdk (http://partners.adobe.com/public/developer/acrobat/sdk/index_doc.html) /adobejavascriptguide (http://partners.adobe.com/public/developer/acrobat/sdk/index_doc.html#js) /wordfreq.pdf (http://www.tinaja.com/glib/wordfreq.pdf) /azauct01.pdf (http://www.tinaja.com/glib/azauct01.pdf) /startsdk.pdf (http://www.tinaja.com/glib/startsdk.pdf) /flatevue.pdf (http://www.tinaja.com/glib/flatvue.pdf) /wordfrq1.psl (http://www.tinaja.com/psutils/wordfrq1.psl) /otherwf (http://www.mytranslate.com/wordfrequency.htm) /homonyms (http://www.cooper.com/alan/homonym_list.html) /wrightauct (http://www.wrightbrosauctioneers.com/) /a1auct (http://www.a1auctionz.com/) /auctbroke (http://www.auctionbrokers.us/) /ronbrunk (http://www.brunksauction.com/) /americawest (http://www.yellowpages-ads.com/01231827) /azauctioneers (http://www.arizonaauctioneers.com/) /dickerson (http://www.cfdauction.com/) /wsmauct (http://www.westernsalesmanagement.com/) /asustore (http://property.asu.edu/) /uaauct (http://pacs.web.arizona.edu/pacs_home.html) /schoolauct (http://web.archive.org/web/20040229230404/http://www.dist.maricopa.edu/surplus/other.html) /haynieauct (http://www.chuckhaynieauctions.com/pages/1/index.htm) /crawfordauct (http://www.tumbleweedauction.com/) /mangold (http://www.azauctioneers.org/members/8402_OCMangold.asp) /tingle (http://brucetingleauctioneering.com/) /countass (http://www.soldyourway.com/) /southwestliq (http://www.swliquidators.com/) /maricopacoll (http://www.dist.maricopa.edu/surplus/) /sierraauct (http://www.sierraauction.com/) /cunninghamauct (http://www.auctionaz.com/) /auctappr (http://www.auctionandappraise.com/) /azauctionassn (http://www.azauctioneers.org/home.asp) /natauctionassn (http://www.auctioneers.org/) /azclassifieds (http://www.arizclassified.com/classifieds/index.inn) /azrepublic (http://www.azcentral.com/class/merch/) /tudailystar (http://classified.tucson.com/index.php?site_name=citizen) /enhebay1.pdf (http://www.tinaja.com/glib/enhebay1.pdf) /busonly.psl (http://www.tinaja.com/psutils/busonly.psl) /rebound1.psl (http://www.tinaja.com/glib/rebound1.psl) /rebound1.pdf (http://www.tinaja.com/glib/rebound1.pdf) /funfield.pdf (http://www.tinaja.com/glib/funfield.pdf) /psar2img.pdf (http://www.tinaja.com/glib/psar2img.pdf) /dovebid (http://www.dovebid.com) /michaelfox (http://www.michaelfox.com) /mjauctions (http://www.mjauctions.com) /ucc (http://www.law.cornell.edu/ucc/) /arizlaw (http://www.azleg.state.az.us/ArizonaRevisedStatutes.asp) /vickrey (http://www.vanderbilt.edu/econ/reiley/papers/VickreyHistory.pdf) /whtnu04 (http://www.tinaja.com/whtnu04.asp) /logrpt01.psl (http://www.tinaja.com/psutils/logrpt01.psl) /nutilt01.psl (http://www.tinaja.com/psutils/nutilt01.psl) /nubkg01.psl (http://www.tinaja.com/psutils/nubkg01.psl) /dodbur01.psl (http://www.tinaja.com/psutils/dodbur01.psl) /ebayphen.pdf (http://www.tinaja.com/glib/ebayphen.pdf) /gallery.pdf (http://www.tinaja.com/glib/gallery.pdf) /histolog (http://www.tinaja.com/glib/histolog.pdf) /bmfonts (http://www.tinaja.com/glib/bmfonts.pdf) /dodbur (http://www.tinaja.com/glib/dodgebur.pdf) /ebayphoto (http://www.tinaja.com/glib/ebayfoto.pdf) /auctscne (http://www.tinaja.com/glib/auctscne.pdf) /stepprep (http://www.tinaja.com/glib/stepprep.pdf) /phonenums (http://www.switchboard.com/bin/cgiqa.dll?MG=) /reversephone (http://www.reversephonedirectory.com/) /scholar (http://www.scholar.google.com/) /shieldsup (https://grc.com/x/ne.dll?bh0bkyd2) /sotofamilia (http://cgi6.ebay.com/ws/eBayISAPI.dll?MfcISAPICommand=ViewListedItems&userid=sotofamilia&include=0&since=7&sort=3&rows=100) /topozone (http://www.topozone.com/) /thomasreg (http://www.thomasregister.com/) /uhaul (http://www.uhaul.com/) /ups (http://www.ups.com/) /usps (http://www.usps.com/) /vrane (http://www.vrane.com) /wayback (http://web.archive.org/) /whois (http://www.networksolutions.com/cgi-bin/whois/whois) /grainger (http://www.grainger.com/) /zipcodes (http://www.usps.com/ncsc/lookups/lookup_zip+4.html) /mcmaster (http://www.mcmaster.com/) /mscsupply (http://www.mscdirect.com/) /natauctioneers (http://www.auctioneers.org/) /newspapers (http://www.usnpl.com/) /norfolk (http://www.norfolkandwaay.com) /quickphrase (http://www.typingmaster.com/index.asp?go=quickphrase) /myebays (http://www.tinaja.com/glib/myebays.pdf) /moreebay (http://www.tinaja.com/glib/moreebay.pdf) /mapsonus (http://www6.mapsonus.com/) /aafont01 (http://www.tinaja.com/aafont01.asp) /froogle (http://www.froogle.com) /govliquidation (http://www.govliquidation.com) /intershipper (http://www.intershipper.com) /kelly (http://www.kbb.com) /paypal (https://www.paypal.com/refer/pal=don%40tinaja.com) /ebaysell (http://www.tinaja.com/glib/ebaysell.pdf) /ebaybuy (http://www.tinaja.com/glib/ebaybuy.pdf) /deja (http://groups.google.com/googlegroups/deja_announcement.html) /drhtml (http://www2.imagiware.com/RxHTML/) /fedex (http://www.fedex.com/us/) /currency (http://www.xe.net/ucc/) /terraserver (http://terraserver-usa.com/) /areacode (http://decoder.americom.com/cgi-bin/decoder.cgi) /asiansources (http://www.asia.globalsources.com/HOMEPAGES/ASOL/HOME) /ebaystore (http://stores.ebay.com/synergeticsabeja) /amazon (http://www.amazon.com/exec/obidos/redirect-home/donlancastersgur/) /aucres01 (http://www.tinaja.com/aucres01.asp) /auctlinks (http://www.tinaja.com/auct01.asp#links) /wayback (http://www.archive.org/web/web.php) /agilent (http://www.agilent.com) /fields01.psl (http://www.tinaja.com/glib/fields01.psl) /fields01.pdf (http://www.tinaja.com/glib/fields01.pdf) /maxwells (http://hyperphysics.phy-astr.gsu.edu/hbase/electric/maxeq.html#c3) /muse121 (http://www.tinaja.com/glib/muse121.pdf) /maxwellbook (http://www.amazon.com/exec/obidos/ISBN=0486606368/donlancastersgurA) /transtronics (http://www.transtronics.com) /sigview.pdf (http://www.tinaja.com/glib/sigview.pdf) /mscal28nd.asp (http://www.tinaja.com/mscal28nd.asp) /microchip (http://www.microchip.com) /numschip.pdf (http://www.tinaja.com/glib/numschip.pdf) /numschip.psl (http://www.tinaja.com/glib/numschip.psl) /msd28a.asm (http://www.tinaja.com/glib/msd28a.asm) /lineartechnology (http://www.lineartechnology.com) /bmtypewr (http://www.tinaja/com/psutils/bmtypewr.psl) /distlang.pdf (http://www.tinaja.com/glib/distlang.pdf) /muse141 (http://www.tinaja.com/glib/muse141.pdf) /screenthief (http://www.keyscreen.com/KeyScreen(s)5/scrnthf.htm) /giffont (http://www.tinaja.com/bmfonts/giffont1.bmp) /f507bg.txt (http://www.tinaja.com/bmfonts/f507bg.txt) /f507bg.psl (http://www.tinaja.com/bmfonts/f507bg.psl) /f507bg.pdf (http://www.tinaja.com/bmfonts/f507bg.pdf) /f607bg.txt (http://www.tinaja.com/bmfonts/f607bg.txt) /f707bg.txt (http://www.tinaja.com/bmfonts/f707bg.txt) /imgwrds1.psl (http://www.tinaja.com/psutils/imgwrds1.psl) /bmfont01 (http://www.tinaja.com/bmfont01.asp) /expbmp.psl (http://www.tinaja.com/glib/expbmp.psl) /kikisu (http://www.tinaja.com/images/bargs/ki710101.jpg) /hp3336a (http://www.tinaja.com/images/bargs/hp333601.jpg) /bmtransfer (http://www.tinaja.com/bmfonts/lettex01.bmp) /histolog.pdf (http://www.tinaja.com/glib/histolog.pdf) /histolog.psl (http://www.tinaja.com/glib/histolog.psl) /site01 (http://www.tinaja.com/site01.asp) /dayproc1.psl (http://www.tinaja.com/psutils/dayproc1.psl) /trail30.psl (http://www.tinaja.com/psutils/trail30.psl) /logrptm1.psl (http://www.tinaja.com/psutils/logrptm1.psl) /logrpt01.psl (http://www.tinaja.com/psutils/logrpt01.psl) /powerfit (http://www.tinaja.com/glib/powerfit.pdf) /pssort (http://www.tinaja.com/glib/pssort.pdf) /heapsort (http://www.tinaja.com/glib/heapsort.pdf) /bashpseu (http://www.tinaja.com/glib/bashpseu.pdf) /pseudo01 (http://www.tinaja.com/pseudo01.asp) /muse112 (http://www.tinaja.com/glib/muse112.pdf) /muse113 (http://www.tinaja.com/glib/muse113.pdf) /muse89 (http://www.tinaja.com/glib/muse89.pdf) /muse151 (http://www.tinaja.com/glib/muse151.pdf) /muse153 (http://www.tinaja.com/glib/muse153.pdf) /pssecrets (http://www.tinaja.com/glib/pssecrets.pdf) /bouncy (http://www.tinaja.com/glib/bouncy.pdf) /vectstep (http://www.tinaja.com/glib/vectstep.pdf) /muse102 (http://www.tinaja.com/glib/muse102.pdf) /onesword (http://www.tinaja.com/text/onesword.html) /emergop2 (http://www.tinaja.com/glib/emergop2.pdf) /wave01 (http://www.tinaja.com/wave01.asp) /chaincode (http://www.tinaja.com/text/chain01.html) /muse152 (http://www.tinaja.com/glib/muse152.pdf) /atg1 (http://www.tinaja.com/glib/atg1.pdf) /hack62 (http://www.tinaja.com/glib/hack62.pdf) /psinscrt (http://www.tinaja.com/glib/psinscrt.pdf) /fern2img (http://www.tinaja.com/psutils/fern2img.psl) /thefern (http://www.tinaja.com/psutils/fern2img.pdf) /cmoscb (http://www.amazon.com/exec/obidos/ISBN%3D0750699434/donlancastersgurA/002-0496817-3688016) /activecb (http://www.amazon.com/exec/obidos/ISBN%3D075062986X/donlancastersgurA/002-0496817-3688016) /hack64 (http://www.tinaja.com/glib/hack64.pdf) /nss (http://www.caves.org) /sinquest (http://www.tinaja.com/glib/sinquest.pdf) /askguru (http://www.tinaja.com/glair01.asp) /assycb (http://www.amazon.com/exec/obidos/ISBN%3D0672223317/donlancastersgurA/002-3338585-9572047) /muse105 (http://www.tinaja.com/glib/muse105.pdf) /muse107 (http://www.tinaja.com/glib/muse107.pdf) /resbn90 (http://www.tinaja.com/glib/resbn90.pdf) /hackar3 (http://www.tinaja.com/glib/hackar3.pdf) /testdemo (http://www.tinaja.com/glib/FULL60-1.ASC) /mschips (http://www.tinaja.com/glib/mschips.pdf) /sigview (http://www.sigview.com) /ggsigview (http://www.tinaja.com/glib/sigview.pdf) /mock (http://www.technicalworks.com) /xtronics (http://www.xtronics.com/) /oshen (http://www.oshonsoft.com/pic.html) /heapps01 (http://www.tinaja.com/psutils/heapps01.psl) /distlangpdf (http://www.tinaja.com/glib/distlang.pdf) /strconv (http://www.tinaja.com/glib/strconv.pdf) /fancysort (http://linux.wku.edu/~lamonml/algor/sort) /presort (http://www.tinaja.com/psutils/presort1.psl) /psnt (http://www.tinaja.com/glib/psnt.pdf) /insort (http://www.tinaja.com/psutils/insort.ps) /bublsort (http://www.tinaja.com/psutils/bublsort.ps) /oldstrconv (http://www.tinaja.com/psutils/strconv.html) /psdisk03 (http://www.tinaja.com/glib/psdisk03.pdf) /muse01 (http://www.tinaja.com/muse01.asp) /gonzopow (http://www.tinaja.com/glib/gonzopow.pdf) /analogeb (http://www.tinaja.com/glib/analogeb.pdf) /psdisk03 (http://www.tinaja.com/glib/psdisk03.pdf) /flut01 (http://www.tinaja.com/flut01.asp) /clpng (news:///comp.lang.postscript) /ctpng (news:///comp.text.pdf) /yahoo (http://www.yahoo.com) /google (http://www.google.com) /scodes (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) /whois (http://www.networksolutions.com/en_US/whois/index.jhtml) /zekes (http://www.zekes.com) /logfileformat (http://www.microsoft.com/windows2000/en/server/iis/default.asp?url=/windows2000/en/server/iis/htm/core/iicnvlg.htm) /logrpt01.psl (http://www.tinaja.com/psutils/logrpt01.psl) /logrpt01.log (http://www.tinaja.com/psutils/logrpt01.log) /ex031126 (http://www.tinaja.com/psutils/ex031126.log) /picup01 (http://www.tinaja.com/picup01.asp) /webwb01 (http://www.tinaja.com/webwb01.asp) /muse90 (http://www.tinaja.com/glib/muse90.pdf) /vismagsn (http://www.tinaja.com/glib/vismagsn.psl) /vismagsn.pdf (http://www.tinaja.com/glib/vismagsn.pdf) /msquant (http://www.tinaja.com/glib/msquant.psl) /optjit01 (http://www.tinaja.com/psutils/optjit01.psl) /optjit01demo (http://www.tinaja.com/psutils/optjit01.pdf) /qall01 (http://www.tinaja.com/psutils/qall01.psl) /deltapat (http://www.tinaja.com/psutils/deltapat.pdf) /deltapat.pdf (http://www.tinaja.com/psutils/deltapat.pdf) /deltapat.psl (http://www.tinaja.com/psutils/deltapat.psl) /mindist1 (http://www.tinaja.com/glib/mindist1.pdf) /deltams1 (http://www.tinaja.com/glib/deltams1.pdf) /grabjpg (http://www.tinaja.com/psutils/grabjpg.psl) /gallery (http://www.tinaja.com/glib/gallery.pdf) /nutour01 (http://wwww.tinaja.com/nutour01.pdf) /linkpdf1 (http://www.tinaja.com/glib/linkpdf1.html) /ebayfoto (http://www.tinaja.com/glib/ebayfoto.pdf) /jpeg2pdf.html (http://www.tinaja.com/text/jpeg2pdf.html) /pdf2bmp (http://www.tinaja.com/psutils/pdf2bmp.psl) /bitmfont (http://www.tinaja.com/psutils/bitmfont.txt) /antifontpsl (http://www.tinaja.com/psutils/antifont.psl) /antifonttxt (http://www.tinaja.com/psutils/antifont.txt) /histog01 (http://www.tinaja.com/psutils/histog01.psl) /swingtlt (http://www.tinaja.com/glib/swingtlt.pdf) /newsamoe (news:///alt.marketing/online.ebay) /webtrends (http://www.netiq.com/webtrends/default.asp) /stegan (http://63.140.207.28/books/bkwater.asp) /nodi (http://www.pages.ebay.com/help/community/notice-infringe2.pdf) /ebayvero (http://www.pages.ebay.com/help/community/vero-program.html) /aboutme (http://members.ebay.com/aboutme/abeja/) /magfill2 (http://www.tinaja.com/psutils/magfill2.psl) /bmprpt01 (http://www.tinaja.com/psutils/bmprpt01.psl) /waywere (http://www.tinaja.com/glib/waywere.pdf) /nikon (http://www.nikon.com) /bayer (http://www.coreco.com/Web/wbtools3.nsf/0/87fce126f109ea3a05256c7100591c9a?OpenDocument) /hewpack (http://www.hp.com) /auct01 (http://www.tinaja.com/auct01.asp) /blat01 (http://www.tinaja.com/blat01.asp) /moreebay (http://www.tinaja.com/glib/moreebay.pdf) /auctscne (http://www.tinaja.com/glib/auctscne.pdf) /autourl (http://www.tinaja.com/glib/autourl.pdf) /msintro1 (http://www.tinaja.com/glib/msintro1.pdf) /msintrosource (http://www.tinaja.com/glib/msintro1.psl) /knockout (http://www.tinaja.com/glib/knockout.bmp) /stepsynt (http://www.tinaja.com/glib/stepsynt.pdf) /msintro1 (http://www.tinaja.com/glib/msintro1.pdf) /msinprop (http://www.tinaja.com/glib/msinprop.pdf) /muse106 (http://www.tinaja.com/glib/muse106.pdf) /muse142 (http://www.tinaja.com/glib/muse142.pdf) /math01 (http://www.tinaja.com/math01.asp) /cubic01 (http://www.tinaja.com/cubic01.asp) /bez4pts (http://www.tinaja.com/glib/bez4pts.pdf) /muse145 (http://www.tinaja.com/glib/muse145.pdf) /muse148 (http://www.tinaja.com/glib/muse148.pdf) /curveft3 (http://www.tinaja.com/psutils/curveft3.psl) /fuzzybez (http://www.tinaja.com/glib/fuzzybez.pdf) /bmprpt01 (http://www.tinaja.com/psutils/bmprpt01.psl) /nowhit01 (http://www.tinaja.com/psutils/nowhit01.psl) /blender (http://www.tinaja.com/psutils/blender.psl) /speedup2 (http://www.tinaja.com/glib/speedup2.pdf) /histog01 (http://www.tinaja.com/psutils/histog01.psl) /imgviewer32 (http://www.arcatapet.net/imgv32.cfm) /basis (http://www.tinaja.com/glib/basis.pdf) /expbmp (http://www.tinaja.com/glib/expbmp.pdf) /dodbur01 (http://www.tinaja.com/psutils/dodbur01.psl) /dodgebur (http://www.tinaja.com/glib/dodgebur.pdf) /magfill1 (http://www.tinaja.com/psutils/magfill1.psl) /swingt01 (http://www.tinaja.com/psutils/swingt01.psl) /before01 (http://www.tinaja.com/images/bargs/marcon01.jpg) /during01 (http://www.tinaja.com/images/bargs/marcon01.bmp) /after01 (http://www.tinaja.com/images/bargs/marconz1.jpg) /repobmp (http://www.tinaja.com/glib/repobmp.pdf) /basis01 (http://www.tinaja.com/glib/basis.pdf) /arcata (http://www.arcatapet.net/imgv32.cfm) /comparebmp (http://www.designer-info.com/Writing/bmp_tiff_jpeg_gif.htm) /imagimag (http://www.tinaja.com/glib/imagimag.pdf) /myebays (http://www.tinaja.com/glib/myebays.pdf) /stepprep (http://www.tinaja.com/glib/stepprep.pdf) /aafont01 (http://www.tinaja.com/aafont01.asp) /here1 (http://village.infoweb.ne.jp/~fwhw1257/study/bmpform.htm) /here2 (http://www.daubnet.com/formats/BMP.html) /bittype (http://www.tinaja.com/psutils/pdf2bmp.psl) /photocombine (http://www.tinaja.com/psutils/blender.psl) /psl (http://www.tinaja.com/psutils/) % dummy temp /psl1 (http://www.tinaja.com/psutils/pdf2bmp.psl) /psl2 (http://www.tinaja.com/psutils/acatdata.psl) /psl3 (http://www.tinaja.com/psutils/catwords.psl) /psl4 (http://www.tinaja.com/psutils/graburls.psl) /psl5 (http://www.tinaja.com/psutils/blender.psl) /psl6 (http://www.tinaja.com/psutils/catools1.psl) /psl7 (http://www.tinaja.com/psutils/strconv.html) /psl8 (http://www.tinaja.com/psutils/bodcat.psl) /psl9 (http://www.tinaja.com/psutils/flatvue1.psl) /psl10 (http://www.tinaja.com/psutils/fern2img.psl) /psl11 (http://www.tinaja.com/psutils/flutools.psl) /psl12 (http://www.tinaja.com/psutils/mscal156q.psl) /psl13 (http://www.tinaja.com/psutils/weblogu2.psl) /psl14 (http://www.tinaja.com/psutils/pfa2pfb.psl) /psl15 (http://www.tinaja.com/psutils/pfb2pfa.psl) /psl16 (http://www.tinaja.com/glib/psdisk03.psl) /psl17 (http://www.tinaja.com/psutils/disktool.psl) /psl18 (http://www.tinaja.com/glib/psinscrt.psl) /psl19 (http://www.tinaja.com/glib/pssearch.psl) /psl20 (http://www.tinaja.com/text/refsum1.html) /psl21 (http://www.tinaja.com/text/reflog1.html) /psl22 (http://www.tinaja.com/psutils/reflog1.psl) /psl23 (http://www.tinaja.com/psutils/refsum1.psl) /psl24 (http://www.tinaja.com/psutils/searepl.psl) /psl25 (http://www.tinaja.com/psutils/weberru2.psl) /psl26 (http://www.tinaja.com/psutils/grabsrch.psl) /psl27 (http://www.tinaja.com/psutils/grabrefs.psl) /magsn01 (http://www.tinaja.com/magsn01.asp) /gonzoutils (http://www.tinaja.com/post01.asp#gonzo) /disktool (http://www.tinaja.com/psutils/disktool.ps) /elesimp (http://www.tinaja.com/glib/elesimp.pdf) /tn5603 (http://partners.adobe.com/asn/developer/pdfs/tn/TN5603.Filters.pdf) /fern2img (http://www.tinaja.com/psutils/fern2img.psl) /fern (http://www.tinaja.com/psutils/fern2img.pdf) /oldfern (http://www.tinaja.com/psutils/fernx1.pdf) /acrosdk (http://partners.adobe.com/asn/developer/acrosdk/main.html) /refman2 (http://partners.adobe.com/asn/developer/pdfs/tn/psrefman.pdf) /refman3 (http://partners.adobe.com/asn/developer/pdfs/tn/PLRM.pdf) /s3011 (http://partners.adobe.com/asn/developer/pdfs/tn/PS3010and3011.Supplement.pdf) /s2011 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2011.supplement.pdf) /s2012 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2012.supplement.pdf) /s2013 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2013.supplement.pdf) /s2014 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2014.supplement.pdf) /s2015 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2015.supplement.pdf) /s2016 (http://ftp.ktug.or.kr/obsolete/info/adobe/devtechnotes/pdffiles/ps2016.supplement.pdf) /ghost (http://www.cs.wisc.edu/~ghost/) /distlang (http://www.tinaja.com/psutils/distlang.html) /adobepst (http://partners.adobe.com/asn/developer/technotes/) /maildon (mailto:don@tinaja.com) /tinaja (http://www.tinaja.com) /adobe (http://www.adobe.com) /adobesdk (http://partners.adobe.com/asn/developer/acrosdk/main.html) /pstrans (http://www.tinaja.com/glib/pstrans.pdf) /borland (http://www.borland.com/products/downloads/download_cbuilder.html) /ebay (http://cgi6.ebay.com/ws/eBayISAPI.dll?ViewSellersOtherItems&userid=abeja&completed=0&sort=2&since=-1&include=0&page=1&rows=100) /searepl (http://www.tinaja.com/psutils/searepl.psl) /aasdk (http://www.tinaja.com/plugins/AboutAcrobatSDK.api) /uncomp (http://www.tinaja.com/plugins/UncompressPDF.api) /addimage (http://www.tinaja.com/plugins/AddImage.api) /samplejpg (http://www.tinaja.com/plugins/sample.jpg) /transparency (http://www.tinaja.com/plugins/Transparency.api) /threerects (http://www.tinaja.com/plugins/threerects.pdf) /watermark (http://www.tinaja.com/plugins/Watermark.api) /verifyurls (http://www.tinaja.com/plugins/VerifyURLS.api) /flate (http://www.tinaja.com/glib/flatvue.pdf) /pstrans (http://www.tinaja.com/glib/pstrans.pdf) /advt01 (http://www.tinaja.com/advt01.asp) /amlink01 (http://www.tinaja.com/amlink01.asp) /ng1 (news:///comp.text.pdf) /ng2 (news:///comp.lang.postscript) /msc++ (http://msdn.microsoft.com/visualc/productinfo/default.asp) /degub (http://www.tinaja.com/glib/degub.pdf) % dead /ghostscript (http://www.artifex.com/pressreleases/GS70.htm) /demox.psl (http://www.tinaja.com/glib/g9demox.psl) /demox.pdf (http://www.tinaja.com/glib/g9demox.pdf) /demo.pdf (http://www.tinaja.com/glib/g9demo.pdf) /flatvue (http://www.tinaja.com/glib/flatvue.psl) /pdfrefman (http://partners.adobe.com/asn/developer/acrosdk/docs.html) /psrefman (http://partners.adobe.com/asn/developer/technotes/postscript.html) /pdfmrm (http://partners.adobe.com/asn/developer/acrosdk/docs.html) /tipdf (http://partners.adobe.com/asn/developer/acrosdk/docs.html) /asdk (http://partners.adobe.com/asn/developer/acrosdk) /mtcr (http://support.adobe.com/devsup/devsup.nsf/docs/51864.htm) /flatvue1 (http://www.tinaja.com/psutils/flatvue1.psl) /acrob01 (http://www.tinaja.com/acrob01.asp) /post01 (http://www.tinaja.com/post01.asp) /info01 (http://www.tinaja.com/info01.asp) /gurgrm01 (http://www.tinaja.com/gurgrm01.asp) /energfun (http://www.tinaja.com/glib/energfun.pdf) { /tilley (http://www.tilleyfoundation.com) /mnglobal (http://www.mnglobal.com/energy/pg2.htm) /keely (http://www.keelynet.com) /evolve (http://www.evolvedtechnology.com) /hack64 (http://www.tinaja.com/glib/hack64.pdf) /hackar3 (http://www.tinaja.com/glib/hackar3.pdf) /resbn58 (http://www.tinaja.com/glib/resbn58.pdf) /bppt (http://www.batterypoweronline.com) /muse112 (http://www.tinaja.com/glib/muse112.pdf) /muse113 (http://www.tinaja.com/glib/muse113.pdf) /energfun (http://www.tinaja.com/glib/energfun.pdf) /bashpseu (http://www.tinaja.com/glib/bashpseu.pdf) /adobe (http://www.adobe.com) /netscape (http://www.netscape.com) /gallypsl (http://www.tinaja.com/galley1.psl) /gallypdf (http://www.tinaja.com/galley1.pdf) /atn5150 (http://partners.adobe.com/asn/developer/acrosdk/docs/createpdfapi/pdfmarkReference.pdf) /nutour (http://www.tinaja.com/bargains/nutour02.pdf) /nutoursource (http://www.tinaja.com/bargains/nutour02.psl) /bwhistle (http://www.tinaja.com/glib/bwhistle.pdf) /gonzo1 (http://www.tinaja.com/post01.asp#gonzo) /barg01 (http://www.tinaja.com/barg01.asp) /weblib01 (http://www.tinaja.com/weblib01.asp) /gurgrm01 (http://www.tinaja.com/gurgrm01.asp) /z1 (http://www.tinaja.com/bargains/thumb/albradz2.jpg) /z2 (http://www.tinaja.com/bargains/sbtesteq.asp) /z3 (http://www.tinaja.com/images/bargs/albrad02.jpg) /z4 (http://www.tinaja.com/bargains/thumb/tutenaz2.jpg) /z5 (http://www.tinaja.com/bargains/sbphone.asp) /z6 (http://www.tinaja.com/images/bargs/tutena02.jpg) /sourceme (http://www.tinaja.com/glib/gallery.psl) /sourceme2 (http://www.tinaja.com/glib/autourl.psl) } pop >> {mark exch /eurl cvx ] cvx def} forall %%%%%%%%%%%%%%%% New colorizer patches %%%%%%%%%%%%%%%%%% /boxgrays 0.899 def /grayshade boxgrays def /mastergray boxgrays def /staytint {0.33 setgray} def /staytint1 {0.25 setgray} def /showadgrays true def /red {0 settint} def /Zmacro {staytint /ypos ypos 2 add def 72 300 div setlinewidth xpos ypos moveto txtwide 0 rlineto stroke /ypos ypos -2 add def tintoff} def % hair rule /amacro {(zy0) stringmacro /ypos ypos ypara add def 0.33 setgray } def % start drop cap /bmacro {(iFy1) stringmacro /ypos ypos ypara add def black} def % finish drop cap % Gonzo character colorizer /blueon {mark /blue cvx 0.33 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /blueoff {mark /beige cvx 0 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton {mark 0.33 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1 {mark 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1b {mark beige cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1a {mark /aqua cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1p {mark /burple cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1r {mark /red cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1a {mark /aqua cvx % try for aqua after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tinton1b {mark /beige cvx % try for beige after url??? 0.25 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /tintoff {mark 0 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def %%%%%%%%%%%%%% COMPACT VERSION OF COLORIZER II %%%%%%%%%%%%%%%%%%%%%% /settint {dup /currenttint exch store 5.999 mul dup floor cvi /&cbar exch store dup floor sub /&cwt exch store [ {/setgray [ /dup cvx 0.3 &cwt 0.59 mul add /ge cvx [1 /exch cvx &cwt 0.59 mul 0.30 add /sub cvx 1 &cwt sub 0.59 mul 0.11 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx /exch cvx ] cvx [ &cwt 0.59 mul 0.3 add /div cvx /dup cvx &cwt /mul cvx 0] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 1 &cwt sub 0.3 mul add /ge cvx [1 &cwt sub 0.3 mul 0.59 add /sub cvx &cwt 0.3 mul 0.11 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx /exch cvx 1 /exch cvx] cvx [1 &cwt sub 0.3 mul 0.59 add /div cvx /dup cvx 1 &cwt sub /mul cvx /exch cvx 0] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 &cwt 0.11 mul add /ge cvx [&cwt 0.11 mul 0.59 add /sub cvx 1 &cwt sub 0.11 mul 0.30 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx 1 /exch cvx] cvx [0 /exch cvx &cwt 0.11 mul 0.59 add /div cvx /dup cvx &cwt /mul cvx] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.59 1 &cwt sub mul 0.11 add /ge cvx [1 &cwt sub 0.59 mul 0.11 add /sub cvx &cwt 0.59 mul 0.30 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx 1] cvx [0 /exch cvx 1 &cwt sub 0.59 mul 0.11 add /div cvx /dup cvx 1 &cwt sub /mul cvx /exch cvx] cvx /ifelse cvx /setrgbcolor cvx] cvx /def cvx} {/setgray [/dup cvx 0.11 &cwt 0.30 mul add /ge cvx[&cwt 0.30 mul 0.11 add /sub cvx 1 &cwt sub 0.30 mul 0.59 add /div cvx /dup cvx 1 &cwt sub /mul cvx &cwt /add cvx /exch cvx 1] cvx [ &cwt 0.30 mul 0.11 add /div cvx /dup cvx &cwt /mul cvx /exch cvx 0 /exch cvx ] cvx /ifelse cvx /setrgbcolor cvx ] cvx /def cvx} {/setgray [ /dup cvx 0.30 1 &cwt sub 0.11 mul add /ge cvx[ 1 /exch cvx 1 &cwt sub 0.11 mul 0.30 add /sub cvx &cwt 0.11 mul 0.59 add /div cvx /dup cvx &cwt /mul cvx 1 &cwt sub /add cvx ] cvx [ 1 &cwt sub 0.11 mul 0.30 add /div cvx /dup cvx 1 &cwt sub /mul cvx 0 /exch cvx] cvx /ifelse cvx /setrgbcolor cvx ] cvx /def cvx} ] &cbar get exec exec} bind def /beige {0.10 settint} def % examples of convenience operators /aqua {0.52 settint} def /blue {0.67 settint} def /lime {0.44 settint} def /burple {0.75 settint} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /guru { gonzo begin ps.util.1 begin printerror nuisance begin} def % guru % activate gonzo utilities 50 50 10 setgrid % create grid % 56 61 showgrid /setpagefonts { /cstretch 0.015 def /sstretch 0.015 def /font0 /StoneSans-Bold 1.6 gonzofont /font1 /StoneSans 0.95 gonzofont /font2 /StoneSans [0.95 0 0.25 0.95 0 0 ] gonzofont /font4 /StoneSans 0.85 gonzofont /font3 /StoneSans-Bold 0.85 gonzofont /font6 /StoneSans-Bold 0.85 gonzofont /font7 /StoneSans-Bold 1.05 gonzofont % subheaders /font8 /StoneSans-Bold [0.65 0 0 0.65 0 0.4] gonzofont /txtwide 36 store /yinc 1.2 store /kern 0.1 store /pm 1.5 store aqua 0.33 setgray font1 black /amacro { mark /aqua cvx 0.33 /setgray cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch } def /bmacro { mark /black cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch } def /shiftin {xpos /xposhold exch store /xpos xpos 3 add store} def /shiftout {/xpos xposhold store} def /texttop 51 store /textleft 3 store /cmacro {aqua 0.25 setgray (znhL7) stringmacro /xpos xpos 1.7 sub store /ypos ypos .1 sub def } def % left title /dmacro {black (pL1hz) stringmacro /xpos xpos 1.7 add store /ypos ypos .1 add def} def % normal text after centered title /fmacro % try and fake | {mark /gsave cvx /currentpoint cvx /moveto cvx 0.1 /setlinewidth cvx 0 0.65 /rlineto cvx /stroke cvx /grestore cvx ] cvx printlist exch 3 index exch put % stuff into gonzo printlist exch 1 add exch % increment gonzo list count } def } def setpagefonts % -2 50.5 (optional header here \274) cl %% Set document opening conventions. Note DOCVIEW limited. [/CropBox [0 0 520 620] % set the wierd size /PAGES pdfmark [ {Catalog} << /ViewerPreferences << /FitWindow true /CenterWindow true >> /PageLayout /OneColumn % continous /Pagemode /UseNone % no thumbs /View [/XYZ null null 1 ] % force 100% >> /PUT pdfmark %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% page manager /pagenum 1 store /startnewpage { black beige 0.35 setgray 21 -2.5 (|3\320|j|j) ggnum 10 string cvs mergestr (|j.|j) mergestr pagenum 10 string cvs mergestr (|j|j\320) mergestr cc aqua showpage %% start next page /pagenum pagenum 1 add store 50 50 10 setgrid % create grid setpagefonts font1 textleft texttop } def /su {surl font6} store /to {tinton1 font6} store /tx {tintoff font1} store /tabs [7 20] store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % //// REVISED DIPDRAW PROC ///// electronics begin % dipdraw - draws a dip integrated circuit. (old code to be improved) % Enter with currentpoint set to pin 1 and scale % set so that 1.0 = distance between pins. Then % do a numpins-(name)-(hipins)-(lopins) dipdraw % Pin callouts preceeded by / will be complemented. % main dipdraw entry: /dipdraw { save /dipsnap exch def /hipins exch def /lopins exch def /chipname exch def /numpins exch def mark 0 0 0 0 0 0 0 0 0 0 0 0 % temp patch /howlong {numpins 2 div cvi 1 add} def /howhigh {4 numpins 36 ge {1 add} if} def /stub {howhigh 1.4 sub 2 div} def % internal service subs start here: /pinproc {numpins 2 div cvi{newpath 0 cpos 0.37 0 360 arc gsave 1 setgray fill grestore 0.067 setlinewidth stroke pin# 5 string cvs dup stringwidth pop 2 div neg cpos 0.2 sub moveto show 1 0 translate /pin# pin# dir add def} repeat } def /stretchprint { dup stringwidth pop 2 div neg exch length 1 sub stretch mul 2 div sub 0 moveto callout (/) anchorsearch true eq {currentpoint exch stretch add exch moveto pop dup /callout exch def stringwidth pop callout length 1 sub stretch mul add /barwide exch def 0.033 setlinewidth gsave currentpoint 0.55 add moveto barwide 0 rlineto stroke grestore} if stretch 0 callout ashow pop} def /pincallouts{0 vpos translate {workstring ( ) search true eq {/callout exch def pop /workstring exch def callout stretchprint 1 0 translate}{dup /callout exch def stretchprint exit } ifelse}loop} def % actual dipdraw process starts here: % ........ the outline: gsave 1 setlinecap 1 setlinejoin currentpoint translate newpath -1 howhigh 2 div 0.7 -90 90 arc 0 stub rlineto howlong 0 rlineto 0 howhigh neg rlineto howlong neg 0 rlineto closepath gsave grayshade setgray fill grestore grayshade dup 1 ne {0.33}{0} ifelse setgray 0.36 setlinewidth stroke newpath -.55 .45 0.15 0 360 arc fill black % ........ pin circles and numbers: /Helvetica-Bold findfont [0.4 0 0 0.55 0 0] makefont setfont gsave /pin# 1 def /dir 1 def /cpos 0 def pinproc grestore gsave /pin# numpins def /dir -1 def /cpos howhigh def pinproc grestore % pin callouts: /Helvetica findfont [0.35 0 0 0.6 0 0] makefont setfont /stretch 0.033 def gsave /workstring hipins def /vpos 0.6 def pincallouts grestore gsave /workstring lopins def /vpos howhigh 1.05 sub def pincallouts grestore % device number: grayshade 1 ne {0.33}{0} ifelse setgray /Helvetica-Bold findfont [1.4 0 0 1 0 0] makefont setfont /stretch 0.05 def gsave numpins 2 div 1 sub 2 div howhigh 2 div 0.33 sub translate chipname dup /callout exch def stretchprint grestore black % end cleanup: grestore grestore cleartomark dipsnap restore} def end % get out of electronics? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Burplebox routines /burpwide 29.5 store /burpcom {save /burpx exch store /bht exch store save /burp1 exch store xpos ypos translate -1 .2 mt bht yinc mul .4 add pd burpwide pr bht yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore} store /burpwidew 32 store /burpcomw {save /burpx exch store /bht exch store save /burp1 exch store xpos 1 sub ypos translate 0 .2 mt bht yinc mul .4 add pd burpwidew pr bht yinc mul .4 add pu closepath 0.9 setgray fill burp1 restore} store { /burplebox1 {1.5 burpcom} store /burplebox1.5 {2 burpcom} store /burplebox2 {2.5 burpcom} store /burplebox2.5 {3 burpcom} store /burplebox3 {3.5 burpcom} store /burplebox3.5 {4 burpcom} store /burplebox4 {4.5 burpcom} store /burplebox4.5 {5 burpcom} store /burplebox5 {5.5 burpcom} store /burplebox5.5 {6 burpcom} store /burplebox6 {6.5 burpcom} store /burplebox6.5 {7 burpcom} store /burplebox7 {7.5 burpcom} store /burplebox7.5 {8 burpcom} store /burplebox8 {8.5 burpcom} store /burplebox8.5 {9 burpcom} store /burplebox9 {9.5 burpcom} store /burplebox9.5 {10 burpcom} store /burplebox10 {10.5 burpcom} store /burplebox10.5 {11 burpcom} store /burplebox11 {11.5 burpcom} store /burplebox11.5 {12 burpcom} store /burplebox12 {12.5 burpcom} store /burplebox11w {11.5 burpcomw} store /burplebox12.5 {13 burpcom} store /burplebox13 {13.5 burpcom} store /burplebox13.5 {14 burpcom} store /burplebox14 {14.5 burpcom} store /burplebox14.5 {15 burpcom} store /burplebox15{15.5 burpcom} store /burplebox15.5{16 burpcom} store /burplebox16 {16.5 burpcom} store /burplebox16.5 {17 burpcom} store /burplebox17 {17.5 burpcom} store /burplebox17.5 {18 burpcom} store /burplebox18 {18.5 burpcom} store /burplebox18.5 {19 burpcom} store /burplebox19 {19.5 burpcom} store /burplebox19.5 {20 burpcom} store /burplebox20 {20.5 burpcom} store /burplebox21.5 {22 burpcom} store /burplebox22{22.5 burpcom} store /burplebox22.5 {23 burpcom} store /burplebox23 {23.5 burpcom} store /burplebox23.5 {24 burpcom} store /burplebox24{24.5 burpcom} store /burplebox25{25.5 burpcom} store /burplebox25.5{26 burpcom} store /burplebox27{27.5 burpcom} store /burplebox28 {28.5 burpcom} store /burplebox28.5 {29 burpcom} store /burplebox30 {30.5 burpcom} store /burplebox31 {31.5 burpcom} store /burplebox31.5 {32 burpcom} store /burplebox33.5 {34 burpcom} store /burplebox34 {34.5 burpcom} store /burplebox38 {38.5 burpcom} store /burplebox38.5{39 burpcom} store /burplebox40{40.5 burpcom} store /burplebox40.5{41 burpcom} store /burplebox41.5{42 burpcom} store /burplebox42 {42.5 burpcom} store /burplebox42.5{43 burpcom} store % nearly a full page /burplebox43 {43.5 burpcom} store } pop 1 1 50 {cvi /size exch store % make all the burpleboxes (burplebox) size 20 string cvs mergestr cvn mark size 0.5 add /burpcom cvx ] cvx store (burplebox) size 0.5 add 20 string cvs mergestr cvn mark size 1 add /burpcom cvx ] cvx store } for /burplebox34w{34.5 burpcomw} store /burplebox34.5w{35 burpcomw} store /burplebox38w{38.5 burpcomw} store /burplebox38.5w{39 burpcomw} store /burplebox40w{40.5 burpcomw} store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % New sequence of auto positioning figures... % combined autopos jpeg conversion and hotlink: /autoimageandlink1 {save /af1 exch store xpos ypos yinc add translate 6.3 -14.1 684 384 .033 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/cabsvid1.jpg) % url first % (http://www.tinaja.com/images/bargs/ce47u25v.jpg) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\78_ebayskill_VI\\cabsvid1.jpg) jpegimageprocwithlink af1 restore} store /autoimageandlink2 {save /af2 exch store xpos ypos yinc add translate 18 -11.8 684 487 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/ce47u25v.jpg) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\70_ebayskill_iv\\ce47u25v.jpg) jpegimageprocwithlink af2 restore} store /autoimageandlink3 {save /af1 exch store xpos ypos yinc add translate 1 -12 684 487 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/pwrssrx3x.bmp) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\70_ebayskill_iv\\origpwri.jpg) jpegimageprocwithlink af1 restore} store /autoimageandlink4 {save /af2 exch store xpos ypos yinc add translate 18 -12 -1.5 add 684 487 .022 % xpos ypos xres yres pixscale (http://www.tinaja.com/images/bargs/pwrssrx3.bmp) % url first (C:\\Documents and Settings\\don\\Desktop\\gurugrams\\70_ebayskill_iv\\finpwri.jpg) jpegimageprocwithlink af2 restore} store /jpegimageprocwithlink { % hoffset voffset hres vres save /snap2 exch def /infilename exch store % grab passed pix file /inurllink exch store % grab link filename /photoscale exch store /vpixels exch store /hpixels exch store translate % adjust position for final figure ??? inurllink setareaurl % autolink sizing /DeviceRGB setcolorspace % pick color model 0 0 translate % set page position hpixels vpixels scale % magnify unit square photoscale dup scale /infile infilename (r) file def % establish input read file /Data {infile /DCTDecode filter} def % define a data source << % start image dicationary /ImageType 1 % always one /Width hpixels % JPEG width in pixels /Height vpixels % JPEG height in pixels /ImageMatrix [hpixels 0 0 vpixels neg 0 vpixels ] /DataSource Data % proc to get filtered JPEG /BitsPerComponent 8 % color resolution /Decode [0 1 0 1 0 1] % per red book 4.10 >> image % call the image operator ypos snap2 restore /ypos exch def } def /setareaurl { % for auto include routine /cururlname exch store mark % start pdfmark /Rect [ 0 0 hpixels photoscale mul vpixels photoscale mul ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators } def %%%%%%%%%%%%% ordinary tracking figures /autofig1 { /figadvance 23 store save /snap1 exch store xpos 2 add ypos figadvance sub translate figure1 snap1 restore /ypos ypos figadvance sub yinc sub store } store /autofig2 { /figadvance 13 store save /snap2 exch store xpos 2 add ypos figadvance sub translate figure2 snap2 restore /ypos ypos figadvance sub yinc sub store } store /autofig3 { /figadvance 13 store save /snap2 exch store xpos 2 add ypos figadvance sub translate figure3 snap2 restore /ypos ypos figadvance sub yinc sub store } store /autofig4 { /figadvance 13 store save /snap2 exch store xpos 2 add ypos figadvance sub translate figure4 snap2 restore /ypos ypos figadvance sub yinc sub store } store %%%%%%%%%%%%%%% fixed position figures here %%%%%%%%%%%%%%% /figure1 {0 0 mt 10 pu 10 pr 10 pd closepath fill} store % temp tester /figure1 { save /f1snap exch store mark 5 12.2 translate -55 rotate 0.09 dup scale -100 -100 translate /solvexy {/ff exch store % grab values - not optimized /ee exch store /dd exch store /cc exch store /bb exch store /aa exch store cc aa dd div ff mul sub bb aa ee mul dd div sub div /yy exch store /xx cc bb yy mul sub aa div store xx yy } store /bez4ptsx1 {aload pop % unpack array /y3 exch store /x3 exch store % stash data. Strange /y5 exch store /x5 exch store % numbering is in use /y4 exch store /x4 exch store /y0 exch store /x0 exch store % find the chords /c1 x4 x0 sub dup mul y4 y0 sub dup mul add sqrt store /c2 x5 x4 sub dup mul y5 y4 sub dup mul add sqrt store /c3 x3 x5 sub dup mul y3 y5 sub dup mul add sqrt store % guess at the best t values % /t1 c1 dup c2 add c3 add div store % /t2 c1 c2 add dup c3 add div store /b0 {1 exch sub dup dup mul mul} store /b1 {dup 1 exch sub dup mul mul 3 mul} store /b2 {dup 1 exch sub exch dup mul mul 3 mul} store /b3 {dup dup mul mul} store % ai + bj = k t1 b1 t1 b2 x4 x0 t1 b0 mul sub x3 t1 b3 mul sub t2 b1 t2 b2 x5 x0 t2 b0 mul sub x3 t2 b3 mul sub solvexy /x2 exch store /x1 exch store t1 b1 t1 b2 y4 y0 t1 b0 mul sub y3 t1 b3 mul sub t2 b1 t2 b2 y5 y0 t2 b0 mul sub y3 t2 b3 mul sub solvexy /y2 exch store /y1 exch store x0 y0 moveto x1 y1 x2 y2 x3 y3 curveto } def /data [100 100 180 120 270 190 320 100 sub 300] store % /data [100 100 200 120 300 190 200.24 300] store /bdot {gsave 16 dup scale 0 0 dot grestore} store /bdot8 {gsave 6 dup scale 0 0 dot grestore} store data 0 get data 1 get mt bdot data 2 get data 3 get mt bdot data 4 get data 5 get mt bdot data 6 get data 7 get mt bdot /t1 0.33 store /t2 0.67 store 100 100 moveto % demo - comment before use data bez4ptsx1 0.35 setlinewidth stroke true { 1 0 0 setrgbcolor /t1 0.28 store /t2 0.72 store 100 100 moveto % demo - comment before use data bez4ptsx1 0.35 setlinewidth stroke 0 0 1 setrgbcolor /t1 0.37 store /t2 0.63 store 100 100 moveto % demo - comment before use data bez4ptsx1 0.35 setlinewidth stroke } if cleartomark f1snap restore } store /figure1 { save /f1snap exch store 5 -7.5 translate 0.1 dup scale /dots [0.0 0.0 0.264953 1.54495 0.604746 3.07298 1.03917 4.57484 1.59717 6.03836 2.31306 7.42849 3.22877 8.69581 4.37073 9.76335 5.71563 10.5583 7.19172 11.074 8.7265 11.3795 10.2797 11.5763 11.8334 11.7684 13.371 12.0601 14.8541 12.5554 16.2111 13.3298 17.3652 14.3824 18.2898 15.6429 19.0102 17.0323 19.5673 18.4938 20.0 20.0] store 0 0 10 setgrid 20 20 showgrid /x0 0 store /y0 0 store /x1 3 store /y1 20 store /x2 16 store /y2 4 store /x3 20 store /y3 20 store x0 y0 moveto x1 y1 x2 y2 x3 y3 curveto black line1 stroke 0 1 20 {2 mul /jj exch store dots jj get dots jj 1 add get mt dot } for f1snap restore } store %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%% special figure one for gg61 book layout /figure1 { save /f1xsnap exch store gsave % temp 10.2 0.8 translate 0.4 dup scale % adjust fit on page % add an active link for expandion temporary /cururlname (http://www.tinaja.com/glib/loglog01.pdf) store mark % start pdfmark /Rect [ 0 0 30 30 ] /Border [ 0 0 0] % [0 0 0 ] = none; [0 0 2] = debug /Color [ .7 0 0 ] /Action <> /Subtype /Link /ANN % annotation type pdfmark % call pdf operators % Custom Engineering Graphs: A log log display % ================================== % by Don Lancaster % Copyright c 2006 by Don Lancaster & Synergetics, Box 809, Thatcher, AZ, 85552 % (928) 428-4073 Email: don@tinaja.com Website: http://www.tinaja.com % Consulting services available http://www.tinaja.com/info01.html % All commercial rights and all electronic media rights ~fully~ reserved. % Linking usually welcome. Reposting expressly forbidden. Version 1.1 % An example of using my Gonzo Utilities to do a custom engineering graph. % Detailed example does a scatterplot on a 3x3 log graph. % IMPORTANT NOTE: Don Lancaster's file gonzo.ps is required for this program. % This may be freely downloaded from http://www.tinaja.com/post01.asp#gonzo % To activate after obvious location mods, uncomment ONE of the following two lines: % (C:\\Documents and Settings\\don\\Desktop\\gonzo\\gonzo.ps) run % use internal gonzo % (A:\\gonzo.ps) run % use external gonzo % Plus the next line when Gonzo is to be activated... % gonzo begin ps.util.1 begin nuisance begin % NOTE THAT ALL PS FILENAME STRINGS !!!DEMAND!!! DOUBLE REVERSE SLASHES. % To use this program, you modify your values and save it as an ordinary ASCII % textfile. That file is then sent to Acrobat Distiller for coversion to a .PDF % file format. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%% Fixzed Input Data %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /backgroundcolor {0.8 1 1} store % background color of graph /graphlinecolor {0 0.8 0.8}store % line color of graph /datadotcolor {0.3 0.3 0.3} store % dot color % loglines establishes the fine line detail of the log plots % always refers to a 1,1 lower left axis and NOT to the actual % scaled data values /loglines [ 1 2 3 4 5 6 7 8 9 10 20 30 40 50 60 70 80 90 100 200 300 400 500 600 700 800 900 1000 ] store /xdatascale 1.0 store % scale factor to make left data = 1 /ydatascale 10 store % scale factor to make bottom data = 1 /xaxisname (TREES PER ACRE) store % x axis label /yaxisname (TREE DIAMETER IN INCHES) store % y axis label /xnums [1 10 100 1000] store % scaled x axis data /ynums [.1 1.0 10 100] store % scaled y axis data /maintitle (HULAPAI TIMBER ALLOTMENT\n( T20N R15E ) ) store % main title % /inputdata may be cut and pasted here or run as a separate textfile % below. Format is an array of [ x0, y0, x1, y1, .... xn, yn ] data % values. Limited to a maximum of 32767 data value pairs. Data is % ACTUAL values, not graph scaled ones. /inputdata [ 3.0634 0.3678 3 3 3 30 30 0.4 30 4 30 40 300 0.5 300 5 300 50 100 {90 random 10 add 90 random 10 add 10 div } repeat % fake some dense data ] store % Note: fonts must be defined BELOW and AFTER grid is established. % Availability of STONE font is recommended for this demo. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%% File Read Input Data %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Any and all of the above data may optionally be read from a textfile. % If used, be sure to use a DOUBLE reverse % slash every time you want a single one in a PostScript string. % Be sure to provide complete, correct, and accurate location for access. % /datafilename (C:\\Documents and Settings\\don\\Desktop\\trees\\tree1.txt) store % Uncomment the following line ONLY if external data is to be disk read... % datafilename run % run additional data from external file. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% Low Level Graph Creating Code %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % /makeagrid establishes the grid size. Each 10 x 10 area will be one % decade. Also puts down edges and background of log display area /makeagrid { % 100 100 10 setgrid % establish xposn yposn size grid /cstretch 0.01 store % adjust font to grid /sstretch 0.01 store backgroundcolor setrgbcolor % paint background. Comment out 0 0 mt 30 pu 30 pr 30 pd % or use [1 1 1] for white closepath fill graphlinecolor setrgbcolor % paint decades heavier line2 1 setlinecap 1 setlinejoin [ {-0.3 0 mt 30.3 r}10 4 ] yrpt % [{action} spacing repeats ] [ {0 -0.3 mt 30.3 u}10 4 ] xrpt } store % /make3x3log provides the inside detail for the log graphs. Both axes % done separately just in case semilog is later needed /make3x3log { line1 % thin line 0 1 loglines length 1 sub % draw verticals {/ptr exch store loglines ptr get log 10 mul 0 mt 30 u } for 0 1 loglines length 1 sub % draw horizontals {/ptr exch store loglines ptr get 0 exch log 10 mul mt 30 r } for } store % /plotdata scales and plots the data points from the inputdata array /plotdata { datadotcolor setrgbcolor % set dot color 0 2 inputdata length 2 sub % go through plotdata list {/ptr1 exch store % save location inputdata ptr1 get % get x value xdatascale mul log 10 mul inputdata ptr1 1 add get % get y value ydatascale mul log 10 mul mt dot % and plot dot } for } store % /addaxis lables the axes /addaxis { /font1 /StoneSans-Bold 0.85 gonzofont % numeric value font /font2 /StoneSans-Bold 1.2 gonzofont % title value font font1 % pick numeric font black % and color 0 1 xnums length 1 sub { % show the x axis nums /ptr2 exch store ptr2 10 mul -1.5 xnums ptr2 get 20 string cvs cc } for 0 1 ynums length 1 sub { % show the y axis nums /ptr2 exch store -0.9 ptr2 10 mul 0.3 sub ynums ptr2 get 20 string cvs cr } for font2 15 -3.5 xaxisname cc gsave -3.5 15 translate 90 rotate 0 0 yaxisname cc grestore } store % /addboiler provides the main graph name, can later extensively annotate. /addboiler { /font3 /StoneSans-Bold 2 gonzofont % title value font font3 /yinc 2.2 store 15 35 maintitle cc % print main title } store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% High Level Graph Creating Code %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This routine combines the needed steps for the complete log log plot. /makealogloggraph { makeagrid % sets up grid make3x3log % draws log graph addaxis % letters the axes plotdata % plots data points addboiler % adds title and desc } store % temp defaults. uncomment for debug % /make3x3log {} store % /addaxis {} store % /plotdata {} store /addboiler {} store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%% Actual Graph Creator %%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This routine actually draws the graph makealogloggraph grestore % undo translate and page positioning f1xsnap restore } store %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%% specific to gg65 ms executive summary %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%% specific figures for append %%%%%%%%%%%%%% /ms0360 { save /snapxx exch store 5 -2 translate % reposition absolute on page 0.76 dup scale /hh {32 mul 90 div 0.78 mul } store /uu 12.5 store /posninc 90 7.5 div store /p1s 11.086 store % best efficiency leans /p1e 12.913 store /p2s 22.211 store /p2e 25.788 store /p3s 33.416 store /p3e 38.583 store /p4s 44.733 store /p4e 51.266 store /p5s 56.192 store /p5e 63.807 store /p6s 67.819 store /p6e 76.180 store /p7s 79.628 store /p7e 88.371 store /msinplot {gsave translate 0.5 0 0.5 setrgbcolor line1 gsave % [{0 12 moveto 0.8 u} posninc hh 8] xrpt grestore 0 0 mt p1s hh pr uu pu p1e p1s sub hh pr uu pd p2s p1e sub hh pr uu pu p2e p2s sub hh pr uu pd p3s p2e sub hh pr uu pu p3e p3s sub hh pr uu pd p4s p3e sub hh pr uu pu p4e p4s sub hh pr uu pd p5s p4e sub hh pr uu pu p5e p5s sub hh pr uu pd p6s p5e sub hh pr uu pu p6e p6s sub hh pr uu pd p7s p6e sub hh pr uu pu p7e p7s sub hh pr uu pd 90 p7e sub hh pr gsave 0 0.83 0.83 setrgbcolor fill grestore line3 1 setlinecap 1 setlinejoin 0 0.33 0.33 setrgbcolor stroke grestore} store 0.8 1 scale % 40 100 showgrid /lilplot0 {gsave translate 0.5 0.5 scale 0 0 msinplot grestore} store /lilplot1 {gsave translate -0.5 0.5 scale 0 0 msinplot grestore} store /lilplot2 {gsave translate 0.5 -0.5 scale 0 0 msinplot grestore} store /lilplot3 {gsave translate -0.5 -0.5 scale 0 0 msinplot grestore} store 0 10 lilplot0 25 10 lilplot1 24.5 10 lilplot2 49.5 10 lilplot3 snapxx restore } store %%%%%%%%%%%%%%%%%%%%% /spectrumplot {save /snap3 exch store /cstretch 0.01 store /sstretch 0.01 store /font0 /StoneSans-Bold 1.2 gonzofont /font1 /StoneSans-Bold 1 gonzofont font1 /kern 0.1 store /yinc 1.1 store 7.5 5.8 translate % adjust position 0.7 dup scale gsave 0.75 1 1 setrgbcolor 0 0 mt 15 pu 36.5 pr 15 pd closepath fill grestore % 33 13 showgrid % uncomment to view gsave line1 [{0 0 mt 0.3 d} 2 19] xrpt grestore gsave line1 [{-0.4 3 mt 36.9 r} 3 5] yrpt grestore line1 36.5 0 mt 15 u 0 1 1 setrgbcolor 0 setlinecap line1 0.5 0 mt 15 pu 1 pr 15 pd gsave closepath fill grestore 0 0.33 0.33 setrgbcolor stroke 1 0 1 setrgbcolor 28.5 0 mt 4.2 pu 1 pr 4.2 pd gsave closepath fill grestore 0.33 0 0.33 setrgbcolor stroke 1 0 1 setrgbcolor 30.5 0 mt 2.25 pu 1 pr 2.25 pd gsave closepath fill grestore 0.33 0 0.33 setrgbcolor stroke 1 0 1 setrgbcolor 32.5 0 mt 3 pu 1 pr 3 pd gsave closepath fill grestore 0.33 0 0.33 setrgbcolor stroke 1 0 1 setrgbcolor 34.5 0 mt 0.5 pu 1 pr 0.5 pd gsave closepath fill grestore 0.33 0 0.33 setrgbcolor stroke black % /font1 /Helvetica 0.8 gonzofont font1 font1 /yinc 2 store /kern 0.1 store gsave 1.45 -0.9 translate 90 rotate black 0 0 (1 3 5 7 9 11 13 15 17 19 21 23 25 27 29 31 33 35) cr grestore font0 0.25 dup dup setrgbcolor % temp gray 12.5 -4 (HARMONIC NUMBER) cl font1 -1 -0.3 (0.0) cr -1 2.7 (0.2) cr -1 5.7 (0.4) cr -1 8.7 (0.6) cr -1 11.7 (0.8) cr -1 14.7 (1.0) cr gsave -3.5 4.0 translate 90 rotate % black font0 0 0 (AMPLITUDE) cl grestore black line2 0 0 mt -.5 0 mt 37 r 0 -.5 mt 16 u black font1 11 12.6 ((|jbest efficiency n|j=|j28|j a|j=|j0.97|j)) cl % flashtext font0 1 0 0 setrgbcolor 15 6.65 (All Intermediate\nHarmonics are ZERO|j!!!) cc snap3 restore } store %%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%% /plot2897 {save /snap4 exch store /cstretch 0.01 store /sstretch 0.01 store /font0 /StoneSans-Bold 1.2 gonzofont /font1 /StoneSans-Bold 1 gonzofont font1 /kern 0.1 store /yinc 1.1 store 3.2 14 translate % adjust position 0.85 dup scale %%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%% pattern utilities %%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%% /bluerndcolor [153 215 230 40] store % random pattern colors [red blue green variance ] /slidewide 40 store /slidehigh 36.5 store /DeviceRGB setcolorspace % pick color model /hpixels 50 store % size of pattern image /vpixels 50 store /issize hpixels vpixels mul store % makestring converts a stack top array into a string... /makestring {dup length string dup /NullEncode filter 3 -1 roll {1 index exch write} forall pop} def % /buildpixels makes three nearby colors given [r b g texture] all 0-255 integers /buildpixels {aload pop /texture exch store /b0 exch store /g0 exch store /r0 exch store 123 srand /r1 r0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /g1 g0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /b1 b0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /r2 r0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /g2 g0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /b2 b0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /r3 r0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /g3 g0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store /b3 b0 texture random texture 2 div sub add cvi dup 255 ge {pop 255}if dup 0 lt {pop 0} if store } store % /makeimagestring creates a sting usable for a pattern image /makeimagestring { 12345 srand % make repeatable /iarray mark issize { r1 g1 b1} repeat ] store % fill all with color 1 issize 2 div cvi { iarray issize % fill half with color 2 random 3 mul cvi [ r2 g2 b2 ] putinterval} repeat issize 2 div cvi { iarray issize % fill third with color 3 random 3 mul cvi [ r3 g3 b3 ] putinterval} repeat iarray makestring } store % /rndimage shows the random string as a patternable image /bodyrandimage { gsave 5 dup scale << % start image dicationary /ImageType 1 % always one /Width hpixels % width in pixels /Height vpixels % height in pixels /ImageMatrix [hpixels 0 0 vpixels neg 0 vpixels ] /DataSource bodypatstring % proc to get string data /BitsPerComponent 8 % color resolution /Decode [0 1 0 1 0 1] % per red book 4.10 >> image % call the image grestore } def /accentrandimage { gsave 5 dup scale << % start image dicationary /ImageType 1 % always one /Width hpixels % width in pixels /Height vpixels % height in pixels /ImageMatrix [hpixels 0 0 vpixels neg 0 vpixels ] /DataSource accentpatstring % proc to get string data /BitsPerComponent 8 % color resolution /Decode [0 1 0 1 0 1] % per red book 4.10 >> image % call the image grestore } def % using a separate pattern dictionary for each pattern... /bodypatdict << /PatternType 1 % Tiling pattern /PaintType 1 % Colored /TilingType 1 /BBox [0 0 50 50] /XStep 5 /YStep 5 /PaintProc { begin bodyrandimage end} >> store /accentpatdict << /PatternType 1 % Tiling pattern /PaintType 1 % Colored /TilingType 1 /BBox [0 0 50 50] /XStep 5 /YStep 5 /PaintProc { begin accentrandimage end} >> store % /makepatternstrings generates the needed patterns /makepatternstrings { [230 100 230 120] pop bluerndcolor buildpixels makeimagestring /bodypatstring exch store } store bluerndcolor buildpixels makepatternstrings %%%%%%%% end pattern utils %%%%%%%% save /snap1 exch store % show the body background bodypatdict matrix % Identity matrix makepattern % Instantiate the pattern /bodypat exch def 0 0 % for the actual slide size slidewide slidehigh /Pattern setcolorspace bodypat setcolor rectfill % Fill rectangle with pattern snap1 restore %%%% end % 40 36 showgrid /cstretch 0.01 store /sstretch 0.01 store /font1 /StoneSans-Bold 0.95 gonzofont % parameter value font /font2 /StoneSans [0.85 0 0 1 0 0 ] gonzofont % numeric value font /orange { 241 255 div 158 255 div 30 255 div setrgbcolor } store /magenta { 254 255 div 156 255 div 255 236 div setrgbcolor } store /ltblue { 207 255 div 255 255 div 255 255 div setrgbcolor } store /white {1 1 1 setrgbcolor} store /lime { 54 255 div 255 255 div 52 255 div setrgbcolor } store /aqua { 102 255 div 255 255 div 201 255 div setrgbcolor } store orange %%%%%%%%%%%% orange series gsave .8 .8 translate [{orange 0 0 mt 1.7 pu 12.0 pr 1.7 pd closepath fill white 2.9 .2 mt 1.3 pu 8.2 pr 1.3 pd fill} 2.2 14] yrpt font1 0.33 dup dup setrgbcolor /dat1 [(p7e:) (p7s:) (p6e:) (p6s:) (p5e:) (p5s:) (p4e:) (p4s:) (p3e:) (p3s:) (p2e:) (p2s:) (p1e:) (p1s:)] store font1 0.12 dup dup setrgbcolor 0 1 dat1 length 1 sub {/ii exch store 1.23 0.6 ii 2.2 mul add dat1 ii get cc} for /dat2 [ (89.76625289081) (75.93480958918) (75.13315213749) (63.77803849250) (62.12795009229) (52.45588082770) (49.57368364472) (41.56706542527) (37.14383081926) (30.95837849073) (24.75285471101) (20.53940226898) (12.37453450377) (10.24045703622) ] store font2 0 1 dat2 length 1 sub {/ii exch store 3.7 0.55 ii 2.2 mul add dat2 ii get cl} for gsave 0 31.2 translate lime 0 0 mt 3.7 pu 12 pr 3.7 pd fill 13 0 mt 3.7 pu 25 pr 3.7 pd fill % right lime font1 0.12 dup dup setrgbcolor /yinc 1.2 store 6 2 (Pulse Positions\nin Degrees) cc 25 2.2 (Target Amplitude: ) cr 25 1.9 1.3 sub (Target Power: ) cr [{white 25.7 0.3 mt 1.3 pu 8.2 pr 1.3 pd fill} 1.7 2] yrpt font2 26 2.2 (0.970000000) cl 26 0.6 (0.9409 ) cl grestore % lime grestore % undo whole left %%%%%%%% %%%%%%%%%%%% mid blue series gsave 13.8 .8 translate [{ltblue 0 0 mt 1.7 pu 12.0 pr 1.7 pd closepath fill white 2.9 .2 mt 1.3 pu 8.2 pr 1.3 pd fill} 2.2 12] yrpt font1 0.33 dup dup setrgbcolor /dat3 [(h25:) (h23:) (h21:) (h19:) (h17:) (h15:) (h13:) (h11:) (h09:) (h07:) (h05:) (h03:) ] store font1 0.12 dup dup setrgbcolor 0 1 dat3 length 1 sub {/ii exch store 1.23 0.6 ii 2.2 mul add dat3 ii get cc} for /dat4 [ (-0.00000000014) (-0.00000000032) (-0.00000000004) (-0.00000000021) (-0.00000000022) (-0.00000000002) (-0.00000000024) ( 0.00000000044) (-0.00000000022) (-0.00000000011) (-0.00000000013) (0.000000000070) ] store font2 0 1 dat4 length 1 sub {/ii exch store 3.7 0.55 ii 2.2 mul add dat4 ii get cl} for gsave % magenta series magenta [{magenta 0 26.4 mt 1.7 pu 25.0 pr 1.7 pd closepath fill} 2.2 2 ] yrpt font1 0.12 dup dup setrgbcolor 0.8 26.8 (THD ) cl 0.8 6.2 add 26.8 (is ) cl 0.8 15.3 add 26.8 (percent.) cl 0.8 26.8 2.3 add (Fundamental Amplitude:) cl white 3.2 5.2 add 26.6 mt 1.3 pu 7.2 pr 1.3 pd fill white 14.2 28.8 mt 1.3 pu 7.2 pr 1.3 pd fill % fund amp box white 3.2 26.6 mt 1.3 pu 3.2 pr 1.3 pd fill 0.12 dup dup setrgbcolor font2 3.6 26.8 (2-28) cl 8.7 26.8 (0.00000006128) cl font2 14.7 27 2.1 add (0.97000000) cl grestore % burple grestore % whole middle %%%%%%%% %%%%%%%%%%%% right blue series gsave 26.8 .8 translate [{ltblue 0 0 mt 1.7 pu 12.0 pr 1.7 pd closepath fill white 2.9 .2 mt 1.3 pu 8.2 pr 1.3 pd fill} 2.2 12] yrpt [{aqua 0 19.8 mt 1.7 pu 12.0 pr 1.7 pd closepath fill white 2.9 20 mt 1.3 pu 8.2 pr 1.3 pd fill } 2.2 2] yrpt % emphasis font1 0.33 dup dup setrgbcolor /dat1 [(h49:) (h47:) (h45:) (h43:) (h41:) (h39:) (h37:) (h35:) (h33:) (h31:) (h29:) (h27:) ] store font1 0.12 dup dup setrgbcolor 0 1 dat1 length 1 sub {/ii exch store 1.23 0.6 ii 2.2 mul add dat1 ii get cc} for /dat6 [ (-0.00924395093) ( 0.00562585661) (-0.00342276346) ( 0.00211106203) (-0.00078946014) ( 0.00660309293) ( 0.04412815271) ( 0.17750740386) ( 0.20474366480) (-0.15202976905) (-0.28097991216) (-0.00000000009) ] store font2 0 1 dat6 length 1 sub {/ii exch store 3.7 0.55 ii 2.2 mul add dat6 ii get cl} for grestore snap4 restore } store %%%%%%%% /stalacs { %figadvance has to go in figuretwoauto save /snap3 exch def 11 10.3 translate % latest page positioner 0.8 dup scale -0.5 2.5 translate % reposition on page INTERACTS WITH FIGADVANCE 0 1 0 setrgbcolor % green grid /linestring 1000 string store /sdatproc { 0.0 0.7 0.1 setrgbcolor [ 0.4 7.33 0.38 6.36 -0.32 7.12 -0.04 7.33 -0.38 7.07 -0.07 7.26 -0.2 4.68 0.07 5.15 0.11 6.17 -0.27 4.26 0.01 6.32 -0.23 4.79 0.05 2.95 -0.29 6.05 -0.02 6.3 0.02 7.29 -0.09 7.37 -0.15 6.89 -0.12 6.19 0.16 5.06 -0.18 7.0 0.1 7.32 0.13 7.29 -0.71 7.44 -0.54 5.7 -0.26 7.38 -0.88 6.82 -0.6 4.84 -0.56 5.38 -0.29 5.67 -0.63 6.12 -0.49 7.26 -0.45 6.66 -0.17 7.01 -0.51 7.05 ] makedots 0.6 0.2 1.0 setrgbcolor [ 0.65 7.03 0.69 6.23 0.97 6.68 0.63 6.72 0.62 6.51 0.6 7.45 0.8 6.74 1.08 7.27 0.74 6.98 0.74 6.97 1.05 7.33 0.71 6.69 0.38 7.38 0.04 6.4 0.32 6.16 0.36 5.3 0.63 7.17 0.02 7.15 0.3 5.41 0.01 6.4 0.29 5.16 0.33 7.08 -0.05 7.19 0.23 7.39 0.26 5.94 0.47 5.9 0.13 7.29 0.41 5.73 0.44 7.34 0.13 6.76 0.4 5.73 0.44 6.52 0.72 7.49 0.07 7.3 0.1 7.49 0.38 4.95 0.66 7.44 ] makedots 0.6 0.4 0.0 setrgbcolor [ 1.63 6.68 0.93 5.94 1.21 6.41 1.25 7.01 0.87 6.21 0.91 6.32 1.19 5.19 1.05 5.6 1.33 6.22 1.36 5.73 0.99 5.61 1.26 7.47 1.02 4.35 1.3 2.75 1.33 6.82 0.96 6.06 1.24 6.51 1.27 6.22 1.41 6.99 0.6 6.37 0.54 6.21 0.58 6.38 0.85 6.71 0.72 6.05 0.38 7.2 0.65 5.61 0.69 4.44 0.97 5.07 0.63 5.68 0.9 7.44 0.94 7.24 ]makedots 0.0 0.6 0.5 setrgbcolor [ 1.94 5.77 2.22 6.47 1.88 6.61 2.19 7.1 1.88 6.99 1.91 7.36 2.19 7.2 1.85 6.98 1.5 6.84 1.44 7.42 1.3 6.69 1.57 6.66 1.33 7.31 1.61 4.16 1.89 6.58 1.27 6.45 1.55 4.73 1.58 6.33 1.86 6.88 1.27 6.28 1.54 5.29 1.58 5.83 1.86 7.0 1.2 7.36 1.24 7.32 1.52 4.83 1.79 7.44 1.72 6.96 1.66 7.1 1.7 7.36 1.69 7.14 1.63 6.09 0.94 7.5 1.19 7.27 ]makedots 1.0 0.0 0.9 setrgbcolor [ 2.77 7.47 2.19 5.69 2.47 6.39 2.5 5.62 2.13 6.29 2.16 4.87 2.44 3.68 2.47 6.99 2.1 6.96 2.38 7.43 2.41 6.96 2.3 7.28 2.61 6.33 2.27 5.22 2.55 4.32 2.59 6.34 2.21 6.99 2.53 6.05 1.86 5.69 2.17 7.05 1.52 7.32 1.79 5.86 1.83 4.38 2.11 5.13 1.77 6.23 1.97 7.29 1.91 7.2 1.94 4.78 2.22 5.62 2.26 7.34 1.88 6.26 1.92 7.41 2.19 6.71 ]makedots 0.3 0.5 0.0 setrgbcolor [ 3.08 6.71 3.36 7.4 3.2 6.33 3.47 7.16 3.13 7.36 3.17 7.34 3.45 6.83 3.17 7.46 3.44 7.49 3.1 7.36 2.44 7.31 2.71 7.35 2.75 4.87 3.03 7.12 2.41 7.35 2.69 5.99 2.72 7.09 2.68 6.84 2.72 7.03 2.66 6.77 2.59 7.22 2.86 4.34 3.14 6.88 3.18 7.38 2.52 6.65 2.8 5.26 2.84 5.32 3.11 6.18 2.52 7.09 2.8 6.44 2.83 5.51 3.11 6.94 2.49 7.14 2.77 4.86 2.53 7.25 2.19 7.45 2.44 6.93 ]makedots 0.0 0.5 1.0 setrgbcolor [ 3.64 7.35 3.3 7.22 3.58 6.56 3.76 7.24 3.44 6.46 3.72 7.27 3.48 7.12 3.75 5.15 3.38 7.25 3.41 4.44 3.69 3.51 3.73 5.53 4.01 7.05 3.35 6.95 3.67 5.83 3.53 6.9 3.8 6.46 3.84 6.79 3.78 6.81 3.0 7.19 2.97 6.5 3.25 7.11 3.11 6.04 3.15 6.8 3.42 6.27 3.05 6.49 3.08 3.17 3.36 4.46 3.4 6.24 3.02 5.79 3.06 6.77 3.33 6.1 3.2 6.17 3.47 7.04 3.51 7.39 3.45 7.05 2.75 7.44 ]makedots 1.0 0.1 0.3 setrgbcolor [ 4.34 6.3 4.61 7.2 4.65 7.42 4.59 7.15 4.7 7.4 3.89 7.33 3.73 6.72 4.0 3.61 4.28 6.52 4.04 7.22 4.32 6.81 3.66 6.66 3.94 5.38 3.98 5.13 4.25 6.11 3.66 7.44 3.94 6.92 3.97 5.78 4.25 7.24 3.91 5.82 4.12 5.7 4.43 7.33 4.05 6.71 4.09 5.35 4.37 6.42 4.09 6.24 4.02 6.0 4.06 7.23 4.34 7.37 3.67 6.43 3.33 7.09 3.61 7.22 3.65 7.09 3.58 7.28 3.76 7.26 3.69 7.43 ]makedots 0.0 0.7 0.0 setrgbcolor [ 4.58 7.35 4.89 6.06 4.56 6.0 4.83 5.44 4.87 6.67 4.81 7.43 5.01 7.15 4.73 7.42 5.01 5.81 4.67 5.29 4.95 4.82 4.98 4.94 5.26 6.8 4.64 7.41 4.92 5.63 4.25 6.6 4.29 7.06 4.56 6.64 4.22 4.58 4.5 5.64 4.54 6.9 4.16 7.17 4.47 7.29 4.36 7.28 4.4 6.74 4.68 6.43 4.34 3.63 4.61 5.07 4.37 7.09 4.65 5.26 4.27 6.35 4.31 5.98 4.59 5.46 4.0 7.29 ]makedots 0.4 0.3 1.0 setrgbcolor [ 5.59 6.81 5.9 6.88 5.56 7.13 5.84 6.87 5.14 5.55 5.08 7.33 5.12 6.93 5.32 7.37 4.98 6.64 5.26 3.82 5.53 6.82 5.29 6.04 5.57 5.79 4.92 6.85 5.19 5.84 5.23 3.83 5.51 5.32 5.23 5.46 5.5 7.18 5.16 5.83 5.2 6.85 5.48 7.09 5.34 6.4 5.62 7.5 4.81 7.33 4.65 7.07 4.93 6.14 4.59 6.91 4.86 7.21 4.9 5.77 4.9 7.0 4.56 7.36 4.83 6.93 ]makedots 0.7 0.3 0.0 setrgbcolor [ 6.15 6.63 5.87 7.2 6.15 5.63 5.81 5.65 6.09 5.32 6.12 5.13 6.4 7.02 6.06 6.39 6.26 7.28 5.92 6.94 6.2 6.79 6.23 5.51 6.51 7.41 6.17 6.43 5.36 7.43 5.51 7.44 5.82 6.75 5.5 6.91 5.54 6.08 5.82 5.82 5.48 3.44 5.75 5.04 5.51 6.75 5.79 4.91 5.41 6.78 5.45 6.19 5.73 5.79 5.93 7.45 5.59 5.32 5.87 6.59 5.63 6.95 5.9 5.34 5.56 6.13 5.84 5.86 5.14 6.82 ]makedots 0.0 0.6 0.4 setrgbcolor [ 7.04 7.5 7.15 7.2 7.09 7.43 6.46 7.26 6.12 6.97 6.4 4.49 6.67 7.28 6.43 6.23 6.71 6.08 6.33 6.83 6.37 4.92 6.65 6.23 6.37 6.64 6.3 7.44 6.23 7.41 6.51 5.31 6.55 5.76 6.82 5.74 6.45 7.15 6.48 3.87 6.76 5.59 6.8 6.77 6.48 6.19 6.42 6.79 6.45 6.5 6.73 6.95 5.79 7.0 6.07 6.14 5.73 7.34 6.04 6.11 5.9 7.47 6.18 6.79 6.21 7.19 6.15 5.33 6.15 7.25 6.09 7.43 6.12 7.21 ]makedots 0.9 0.1 1.0 setrgbcolor [ 7.29 7.27 7.26 7.18 7.4 6.53 7.4 6.23 7.06 6.33 7.34 6.24 7.1 7.48 7.37 4.5 7.65 6.77 7.31 6.19 7.49 6.95 6.68 7.19 6.96 7.05 6.62 5.82 6.89 6.95 6.93 6.63 6.8 6.9 7.07 6.24 6.79 6.03 7.07 6.0 6.73 3.87 7.01 5.57 6.77 5.63 7.04 3.61 7.32 7.46 6.67 7.25 6.7 5.31 6.98 5.09 7.02 7.24 6.84 7.45 7.16 6.44 6.82 7.17 7.09 7.13 6.4 6.67 6.37 7.3 ]makedots 0.4 0.5 0.0 setrgbcolor [ 8.3 6.97 7.54 6.99 7.71 7.12 7.37 6.89 7.65 4.65 7.69 4.84 7.96 4.92 7.59 7.18 7.62 3.54 7.9 5.44 7.94 6.42 7.62 6.36 7.56 7.43 7.59 6.95 7.87 7.45 7.76 7.33 7.8 6.47 8.08 6.65 7.74 5.22 8.01 6.78 8.05 6.63 7.71 7.03 7.04 6.54 7.32 5.84 7.35 6.05 7.63 7.38 6.98 7.16 7.02 6.9 7.29 4.53 7.57 7.39 7.29 7.02 7.26 7.27 7.47 7.44 7.41 5.97 7.37 7.37 ]makedots 0.0 0.5 0.8 setrgbcolor [ 8.55 6.85 8.54 6.92 8.2 7.43 8.48 7.42 8.51 5.78 8.66 7.29 8.63 5.12 8.9 7.37 8.56 6.9 7.94 6.75 8.21 6.14 7.93 6.24 8.21 6.29 7.87 4.98 8.15 6.45 7.91 6.19 8.18 4.55 7.84 6.49 8.12 6.39 8.05 7.12 8.33 6.67 8.3 7.32 8.05 6.91 8.32 7.08 8.36 7.49 7.98 5.47 8.26 6.96 8.02 5.46 8.3 3.73 7.96 5.48 8.23 5.51 8.27 6.33 7.54 6.99 7.65 7.38 7.69 7.42 7.96 7.49 7.62 7.08 ]makedots 1.0 0.1 0.5 setrgbcolor [ 9.55 7.28 8.79 6.18 8.83 6.08 9.1 6.22 8.76 5.77 9.04 7.15 8.9 5.93 8.94 4.5 9.22 4.86 8.6 7.37 8.88 3.59 9.15 5.69 8.91 6.5 9.19 5.24 8.85 7.26 9.13 7.36 8.87 6.98 8.85 6.6 9.12 7.3 8.99 7.17 9.3 7.34 8.18 7.28 8.46 6.72 8.5 6.68 8.43 5.98 8.29 6.98 8.57 6.52 8.61 5.32 8.89 6.97 8.27 6.34 8.55 3.98 8.82 7.23 8.58 6.78 8.86 6.94 8.52 7.17 8.54 7.26 8.52 6.56 8.66 7.4 ]makedots 0.2 0.6 0.0 setrgbcolor [ 9.8 6.75 9.8 7.41 9.77 5.22 10.05 7.5 9.71 7.47 9.88 6.62 9.32 7.17 9.53 7.16 9.19 6.04 9.47 5.59 9.5 6.83 9.44 6.68 9.19 6.2 9.46 6.45 9.5 6.67 9.12 5.26 9.4 6.86 9.16 4.95 9.44 3.11 9.71 7.46 9.1 5.65 9.37 5.75 9.41 6.32 9.27 6.32 9.55 5.18 9.21 6.6 9.49 6.82 9.52 6.3 8.79 6.84 8.83 6.66 9.1 6.81 8.76 6.83 ]makedots 0.3 0.3 1.0 setrgbcolor [ 10.04 6.29 10.08 4.67 10.36 5.1 10.02 4.64 10.29 6.46 10.05 6.92 10.33 5.84 10.19 5.38 10.47 5.91 10.51 7.32 10.13 5.0 10.41 6.84 10.17 6.14 10.44 5.06 10.1 7.19 10.38 7.45 10.1 7.11 9.44 6.85 9.71 6.44 9.75 4.93 10.03 6.74 9.41 6.52 9.69 4.36 9.96 7.5 9.72 6.79 10.0 7.02 9.66 7.4 9.86 5.66 10.14 7.41 9.52 6.69 9.8 4.79 9.83 6.04 10.11 6.42 9.77 6.74 9.77 6.73 ]makedots 1.0 0.2 0.0 setrgbcolor [ 10.91 7.16 11.05 7.48 11.09 7.36 11.02 5.75 10.99 7.38 10.67 7.33 10.33 6.74 10.61 6.39 10.64 7.3 10.33 7.2 10.6 7.48 10.64 7.47 10.26 6.95 10.3 6.49 10.58 5.31 10.78 7.3 10.44 6.28 10.72 6.05 10.76 5.96 10.69 6.07 10.44 7.06 10.72 7.46 10.75 6.48 10.38 6.52 10.41 4.77 10.69 3.24 10.73 6.4 11.0 7.45 10.35 5.79 10.63 6.1 10.66 5.26 10.8 7.17 10.78 7.14 10.08 6.13 10.36 6.5 10.02 6.58 10.33 7.42 ]makedots 0.0 0.6 0.3 setrgbcolor [ 11.22 6.79 11.5 7.15 11.16 7.28 11.3 7.27 11.33 4.31 11.61 5.03 11.65 6.41 11.27 4.66 11.55 6.65 11.31 5.62 11.58 4.51 11.24 7.26 11.24 7.46 11.45 7.04 11.38 6.98 11.42 6.71 11.7 5.95 10.89 6.57 10.83 6.71 10.69 7.26 10.97 7.05 10.73 7.28 11.0 4.02 11.28 6.31 10.66 5.93 10.94 3.77 11.22 7.33 10.98 4.98 11.25 5.52 10.91 6.4 10.91 6.71 11.11 6.91 11.05 6.47 11.09 6.23 11.37 6.8 11.03 7.15 ]makedots 0.7 0.1 1.0 setrgbcolor [ 12.23 7.39 12.16 6.71 12.28 7.1 11.92 6.63 11.58 6.05 11.86 5.86 11.9 5.52 12.17 7.41 11.83 6.25 11.58 7.16 11.89 6.42 11.52 7.14 11.55 5.33 11.83 4.13 11.87 6.67 11.49 6.8 11.77 7.12 11.8 6.21 11.7 7.37 11.97 7.33 12.01 6.03 11.95 6.4 12.01 7.16 11.67 5.73 11.94 4.82 11.98 6.09 12.26 7.36 11.6 6.84 11.88 7.28 11.64 7.4 11.92 5.21 11.25 7.01 11.22 6.15 11.5 6.58 11.16 7.12 11.33 6.54 11.61 7.07 11.27 7.2 11.58 7.05 ]makedots 0.5 0.4 0.0 setrgbcolor [ 12.47 5.57 12.75 6.2 12.79 7.17 12.41 6.42 12.45 6.95 12.72 6.15 12.59 5.22 12.86 6.04 12.9 5.99 12.52 5.79 12.56 5.2 12.84 4.29 12.5 7.17 12.14 4.79 12.42 6.88 11.8 6.96 12.08 5.31 12.12 6.0 12.39 6.51 11.98 7.36 12.26 4.46 12.53 6.78 12.29 7.33 12.57 6.79 11.92 6.3 12.19 4.6 12.23 3.93 12.51 4.85 12.17 5.9 12.16 6.86 12.34 7.28 ]makedots 0.0 0.6 0.6 setrgbcolor [ 13.48 6.98 13.42 7.11 13.0 7.4 13.04 6.94 12.97 6.79 13.18 6.79 12.84 6.28 13.11 6.29 12.87 7.27 13.15 4.42 13.43 6.8 13.15 6.22 12.81 5.16 13.08 4.22 13.12 5.37 13.4 6.84 13.26 6.99 12.92 7.39 13.2 6.9 13.23 6.71 12.5 6.86 12.82 6.67 12.47 5.58 12.75 6.26 12.79 7.14 ]makedots 1.0 0.0 0.7 setrgbcolor [ 13.73 5.27 14.01 6.14 14.04 5.86 13.67 6.41 13.7 5.65 13.98 4.9 13.84 6.91 14.15 6.51 13.81 5.86 14.09 5.3 14.13 7.43 13.28 7.23 13.12 6.95 13.4 3.86 13.67 6.45 13.43 6.76 13.71 6.24 13.06 6.41 13.33 4.82 13.37 3.84 13.65 4.86 13.51 5.96 13.54 7.26 13.82 6.91 13.17 7.47 13.45 6.31 13.48 4.22 13.76 5.33 13.06 7.49 13.04 7.19 13.15 7.44 ]makedots 0.3 0.5 0.0 setrgbcolor [ 14.73 7.37 14.32 6.89 13.98 6.88 14.25 6.93 14.29 5.03 14.57 7.26 14.23 6.65 14.29 6.97 13.95 6.55 14.22 5.9 14.26 6.56 14.2 6.9 14.09 7.35 14.13 7.16 14.4 4.51 14.68 7.03 14.06 7.1 14.34 5.93 14.38 6.55 14.65 7.37 14.4 6.93 14.06 6.05 14.34 5.5 14.37 5.0 14.65 6.75 14.03 7.05 14.31 5.06 13.65 7.02 13.96 6.69 13.62 6.48 13.89 7.12 13.79 7.39 14.07 6.36 13.73 6.99 14.01 7.09 13.73 6.03 14.01 6.84 14.04 6.5 13.67 7.45 13.7 6.72 13.98 6.15 ]makedots 0.2 0.4 1.0 setrgbcolor [ 14.87 7.12 15.18 7.42 15.12 7.21 14.98 6.03 15.26 6.97 15.02 7.07 15.29 5.4 14.92 7.25 14.95 5.24 15.23 4.68 15.27 6.81 15.07 7.28 15.34 7.03 14.54 5.67 14.85 7.36 14.47 6.9 14.51 6.04 14.79 6.79 14.65 7.5 14.37 7.04 14.65 4.32 14.93 6.9 14.69 5.74 14.96 5.37 14.31 6.73 14.59 5.47 14.35 7.36 14.62 2.32 14.9 4.09 14.94 6.47 14.56 5.92 14.6 7.38 14.87 6.93 14.74 5.65 15.01 6.7 14.32 7.41 14.29 6.11 ]makedots 1.0 0.1 0.2 setrgbcolor [ 15.88 7.35 15.43 7.31 15.57 7.05 15.61 7.05 15.23 7.08 15.51 7.28 15.27 6.68 15.54 3.8 15.82 6.64 15.86 7.41 15.2 7.14 15.48 6.02 15.52 6.44 15.79 7.31 15.54 6.79 15.2 6.4 15.48 5.95 15.51 5.24 15.79 6.98 15.45 5.93 15.66 5.73 15.59 7.11 15.63 6.5 15.91 7.49 15.59 7.37 15.63 5.74 15.9 7.48 15.56 6.04 14.9 6.86 14.94 6.5 15.21 5.37 14.87 6.61 15.15 6.76 15.19 7.19 14.87 5.94 15.15 6.81 15.18 6.26 14.84 6.97 15.12 6.48 15.33 6.93 15.3 7.3 14.98 7.29 15.3 6.74 14.96 6.99 15.23 6.64 ]makedots 0.0 0.7 0.1 setrgbcolor [ 16.12 6.88 16.44 6.17 16.1 6.55 16.37 6.17 16.27 7.35 16.55 5.97 16.21 5.87 16.49 5.61 16.52 6.31 15.51 7.37 15.79 4.91 16.07 7.32 15.83 5.97 16.1 5.68 15.73 6.51 15.76 3.92 16.04 5.22 16.08 7.06 15.9 5.84 15.94 5.68 16.22 5.53 15.84 6.94 15.6 7.34 15.88 2.78 16.15 4.63 15.91 7.06 16.19 5.52 15.46 7.4 15.43 6.46 15.54 5.9 ]makedots 0.5 0.2 1.0 setrgbcolor [ 16.69 5.54 16.66 7.21 16.86 6.88 16.52 6.55 16.8 3.9 17.08 6.86 16.83 6.56 17.11 6.48 16.46 7.23 16.73 6.32 16.77 5.41 17.05 6.6 16.79 7.44 16.45 7.12 16.73 6.89 16.77 4.86 17.05 6.87 16.43 7.42 16.7 5.86 16.74 7.37 16.88 7.29 16.88 7.24 16.08 7.23 16.35 6.28 16.19 5.98 16.47 4.97 16.5 7.3 16.13 6.35 16.4 6.67 16.44 5.88 16.12 6.35 16.4 7.33 16.16 7.07 16.44 5.53 16.1 6.36 16.37 6.03 ]makedots 0.6 0.4 0.0 setrgbcolor [ 17.38 7.47 17.41 7.11 17.69 5.74 17.35 6.19 17.63 5.98 17.66 6.46 17.8 7.33 17.46 7.28 17.74 7.23 17.78 6.69 16.93 7.18 16.9 6.89 17.11 7.45 17.05 7.22 17.36 7.11 16.77 7.45 17.04 5.26 17.08 4.82 17.36 4.71 16.98 6.99 16.74 7.17 17.02 2.45 17.29 4.49 17.05 6.74 17.33 5.17 17.19 6.57 17.47 6.63 17.13 4.65 17.41 6.13 17.17 6.9 17.44 5.55 16.71 7.31 16.75 7.05 16.69 5.24 16.8 6.64 ]makedots 0.0 0.6 0.5 setrgbcolor [ 18.0 6.69 17.66 6.85 17.94 4.45 18.22 7.21 17.97 6.71 18.25 6.68 17.88 7.17 17.91 6.21 18.19 7.3 17.91 6.03 17.85 7.36 17.77 7.27 18.05 5.25 18.09 6.27 18.36 6.39 17.99 7.41 18.02 5.35 18.3 6.72 18.02 5.6 17.96 6.7 17.99 7.0 17.67 7.31 17.33 5.84 17.61 4.86 17.64 7.04 17.27 6.77 17.54 7.1 17.58 6.18 17.26 7.03 17.58 6.15 17.24 7.37 17.51 7.12 17.44 6.4 17.72 5.68 17.76 6.69 17.38 6.95 17.66 7.4 17.42 7.44 17.69 5.39 17.41 7.11 17.69 5.81 17.35 6.64 17.63 6.51 17.66 6.86 ]makedots 1.0 0.0 0.9 setrgbcolor [ 18.83 7.22 18.67 7.39 18.94 6.27 18.6 6.72 18.88 6.71 18.92 5.92 18.19 6.58 18.22 6.02 18.5 5.98 18.16 5.12 18.44 6.39 18.47 6.71 18.34 7.18 18.61 6.59 18.3 6.56 18.33 4.74 18.61 4.89 18.65 7.25 17.99 7.15 18.27 2.87 18.55 4.97 18.31 5.61 18.58 3.93 18.38 6.85 18.7 6.52 17.83 6.49 18.0 6.65 17.66 7.16 17.94 5.0 17.98 7.0 18.25 7.03 ]makedots 0.4 0.5 0.0 setrgbcolor [ 19.08 6.8 19.26 6.53 18.92 6.73 19.19 4.53 19.47 7.41 19.23 5.46 19.51 5.64 19.13 7.4 19.17 5.12 19.44 6.58 19.16 5.7 19.1 7.29 19.14 7.4 19.31 7.17 19.34 6.87 19.62 7.15 19.28 6.27 19.28 7.12 19.25 7.42 18.47 7.38 18.75 6.66 18.92 6.82 18.58 5.26 18.86 4.41 18.9 5.43 19.17 6.93 18.52 6.49 18.8 7.0 18.56 6.84 18.83 4.59 19.11 7.39 18.52 7.37 18.55 6.74 18.83 5.41 18.49 6.79 18.77 6.71 18.8 6.88 18.97 7.17 19.01 6.92 18.95 5.92 18.94 6.96 18.92 6.97 ]makedots 0.0 0.5 1.0 setrgbcolor [ 20.08 6.85 20.06 6.88 20.17 6.32 19.5 7.21 19.48 7.02 19.76 6.44 19.44 6.84 19.48 4.88 19.75 5.08 19.79 7.2 19.41 4.09 19.69 5.8 19.45 6.13 19.73 4.7 19.59 7.32 19.87 6.91 19.59 5.78 19.87 6.1 19.9 7.06 19.52 4.68 19.8 6.37 19.56 5.41 19.84 3.96 19.14 6.31 18.8 7.32 19.08 5.28 19.12 7.02 19.39 7.1 19.26 7.1 19.19 5.83 19.23 6.48 19.51 6.71 ]makedots 1.0 0.1 0.4 setrgbcolor [ 20.4 7.09 20.33 5.94 20.37 6.49 20.65 6.68 20.31 6.77 20.3 7.44 20.51 7.22 20.17 7.42 20.45 5.71 20.48 5.11 20.76 5.53 20.42 5.04 20.7 6.68 20.73 7.05 20.42 6.33 20.39 7.02 20.07 6.95 19.72 6.03 20.0 5.34 20.04 6.0 20.32 7.42 19.97 5.91 19.97 6.82 20.18 7.16 19.84 5.73 20.11 5.19 20.15 4.59 20.43 6.48 19.77 7.07 19.81 6.23 20.09 3.94 20.36 7.16 20.12 7.31 19.81 6.78 20.09 5.68 19.74 7.03 20.02 7.11 20.06 6.11 20.2 7.24 ]makedots 0.1 0.7 0.0 setrgbcolor [ 21.34 7.29 21.31 6.37 21.42 7.49 20.62 6.84 20.89 7.02 20.55 6.85 20.87 7.1 20.76 7.45 21.07 6.9 20.73 6.31 21.01 5.86 20.73 4.81 21.01 5.23 21.04 6.13 20.67 4.33 20.94 6.15 20.7 4.87 20.98 3.28 20.64 6.17 20.92 6.31 20.84 7.47 20.78 6.85 20.81 6.2 21.09 5.23 20.75 6.95 21.03 7.2 21.06 7.42 20.22 7.24 20.4 7.0 20.4 5.86 20.67 7.43 20.06 6.97 20.33 5.02 20.37 5.56 20.65 5.86 20.31 6.35 20.45 7.37 20.48 6.83 20.76 7.21 20.42 7.18 ] makedots } store % Total count = 1282. /makedots {/curmat exch store 0 2 curmat length 2 sub {/cposn exch store curmat cposn get curmat cposn 1 add get mt dot } for } store % 100 100 10 setgrid % only when not standalone 1.15 dup scale 0.92 setgray 1 setlinewidth 0 setlinecap 0.5 0 mt 7 u 19.5 0 mt 7 u 2 setlinewidth 10 0 mt 7 u 20 7 showgrid black line1 10 -0.3 mt 7.8 u gsave 0 0 mt 7.5 pu 20 pr 7.5 pd closepath clip sdatproc grestore % get off clip /cstretch 0 store /sstretch 0.015 store /font1 /StoneSans-Bold 0.75 gonzofont font1 black line1 0 7.5 mt 20 r 0 -0.3 mt 7.8 u 20 -0.3 mt 7.8 u -0.3 0 mt 20.6 r 0 2.5 mt 0.3 l 0 5 mt 0.3 l 0 7.5 mt 0.3 l /kern 0.1 store 0.2 0.2 0.2 setrgbcolor 0 -1.5 (0.52) cc 10 -1.5 (0.53) cc 20 -1.5 (0.54) cc 10 -2.5 (amplitude) cc -1 0 0.2 sub(0.00|j%) cr -1 2.5 0.2 sub (0.05|j%) cr -1 5 0.2 sub (0.10|j%) cr -1 7.5 0.2 sub (0.15|j%) cr gsave -4.4 3.75 translate 90 rotate 0 0 (distortion 2-22) cc grestore % end ypos snap3 restore /ypos exch def } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /deltachip { %aaaaaaaaaaaa /figadvance 10 store save /snap3 exch def /linestring 1000 string store %%%%%%%%%%%%%%%%%%% electronics begin bestgray 8 37.5 translate % reposition on page 0.85 dup scale % 0 0 10 setgrid already there % 33 14 showgrid /cstretch 0.02 def /sstretch 0.0 def /kern 0.1 def /yinc 1.0 def /red {0 settint} def /blue {0.67 settint} def /purple {0.75 settint} def /font0 /Helvetica-Bold [1.2 0 0 1 0 -0.2] gonzofont /font0 /helvetica-bold [1 0 0 0.8 0 0 ] gonzofont /font1 /Helvetica 0.75 gonzofont /font4 /Helvetica 0.6 gonzofont /font3 /Helvetica-Bold 0.75 gonzofont /font2 /Helvetica-Oblique 0.75 gonzofont /font5 /Helvetica-Bold 1.1 gonzofont /font6 /Helvetica [2 0 0 1.4 0 0] gonzofont /font7 /Helvetica-Oblique 0.75 gonzofont /font8 /Symbol 0.75 gonzofont /font9 /Helvetica [.6 0 0 .6 -.15 .4] gonzofont /font- /Helvetica-Bold [0.4 0 0 0.55 0 0] gonzofont /kern 0.15 def /tabs [16.5] def /txtwide 29 def font1 /tabs [17.5] def font1 /yinc 0.9 def line1 bestgray black 22 6 mt 3 d 5 rx circ1 26 3 mt rarrow 21 6 mt 1 d 6 rx circ1 26 5 mt rarrow 20 6 mt 1.5 d 4 rx 2 ux 3 r circ1 26 6.5 mt rarrow 19 6 mt 2 d 5.5 rx 4 ux 2.5 r circ1 26 8 mt rarrow 17 10 mt 1 u 5 l 8 d 4 l circ1 9.5 3 mt rarrow % low priority 18 6 mt 1.5 d ground 17 6 mt 2.5 d 7 lx 1 u 2 l circ1 9.5 4.5 mt rarrow 16 6 mt 2 d 5.5 lx 2 u 2.5 l circ1 9.5 6 mt rarrow 15 6 mt 1.5 d 4 lx 3 u 3 l circ1 9.5 7.5 mt rarrow 14 6 mt 1 d 2.5 lx 4 u 3.5 l circ1 9.5 9 mt rarrow 21 10 mt 2 ux 3 r 2 d 3 r circ1 26 13 mt rarrow 20 10 mt 2.5 u 4.5 r 1 d 2.5 r circ1 26 11.5 mt rarrow 19 10 mt 3 u 8 r circ1 26 10 mt rarrow 18 10 mt 1.5 u circ1 % +5v 16 10 mt 3 ux circ1 16 12.3 mt darrow 15 10 mt 2 ux 7 l circ1 9.5 12 mt rarrow 14 10 mt 1.5 ux 2.5 l 1 d 3.5 l circ1 9.5 10.5 mt rarrow beige 14 6 moveto 18 (MS28D-05X) (IN1 IN0 XIN IN6 +5V /DA /DB /DC NC) (IN2 IN3 IN4 IN5 GND DA DB DC SYNC) dipdraw font4 22 10.65 (NC) cc font1 18 12 (+5V) cc font1 /overstrikeht 0.55 store 27.7 13 0.3 sub (Delta "A" complement) cl 27.7 11.5 0.3 sub (Delta "B" complement) cl 27.7 10 0.3 sub (Delta "C" complement) cl 27.7 8 0.3 sub (Delta "A" true output) cl 27.7 6.5 0.3 sub (Delta "B" true output) cl 27.7 5 0.3 sub (Delta "C" true output) cl 27.7 3 0.3 sub (Zero degrees sync) cl 16 14.7 (10 MHz per 60 Hz) cc 16 13.8 (input clock ref) cc 7.3 2.7 (high ~|jOR|j~ 0-100 amp bit 6) cr 7.3 4.2 (high ~|jOR|j~ 0-100 amp bit 5) cr 7.3 5.7 (high ~|jOR|j~ 0-100 amp bit 4) cr 7.3 7.2 (slew up ~|jOR|j~ 0-100 amp bit 3) cr 7.3 8.7 (slew down ~|jOR|j~ 0-100 amp bit 2) cr 7.3 10.2 (step up ~|jOR|j~ 0-100 amp bit 1) cr 7.3 11.7 (step down ~|jOR|j~ 0-100 amp bit 0) cr end ypos snap3 restore /ypos exch def } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% fig3 for fastmsol2 /figure3 { % transfer of angles vs ampliude for gg72 % save /snap3 exch def %%%%%%%%%%%%%%%%%%% 11.5 5 translate % position on page % capture the 28 best efficiency data set to .01 detail... % truncated for gg /angs0 [ 12.00 12.00 24.00 24.00 36.00 36.00 48.00 48.00 60.00 60.00 72.00 72.00 84.00 84.00 ] store /coss0 mark angs0 {cos} forall ] store /angs1 [ 11.98 12.01 23.97 24.02 35.96 36.03 47.95 48.04 59.94 60.05 71.94 72.05 83.94 84.05 ] store /angs2 [ 11.974847054192383 % a=p1s 12.024744017679858 % a=p1e 23.950819469133126 % a=p2s 24.048433365709524 % a=p2e 35.9289889953262 % a=p3s 36.07005477232906 % a=p3e 47.910323239760814 % a=p4s 48.088676789078065 % a=p4e 59.89564103809268 % a=p5s 60.10348816058274 % a=p5e 71.88557608883967 % a=p6s 72.11383286811898 % a=p6e 83.88055055992965 % a=p7s 84.11924037287778 % a=p7e ] store /angs3 [ 11.962118915829903 % a=p1s 12.03696090624807 % a=p1e 23.92595162929968 % a=p2s 24.07236703949866 % a=p2e 35.893127245474595 % a=p3s 36.10472087707484 % a=p3e 47.86511076741572 % a=p4s 48.13263882275228 % a=p4e 59.84313379542474 % a=p5s 60.15490640171296 % a=p5e 71.8281392839728 % a=p6s 72.17053048401827 % a=p6e 83.82074309176468 % a=p7s 84.17878636192533 % a=p7e ] store /angs4 [ 11.949290517283893 % a=p1s 12.049073387651642 % a=p1e 23.900900022994463 % a=p2s 24.096110421824473 % a=p2e 35.85702905846874 % a=p3s 36.13914449836989 % a=p3e 47.81964912772209 % a=p4s 48.17634896136679 % a=p4e 59.790407132381254 % a=p5s 60.20610752850041 % a=p5e 71.7705506598397 % a=p6s 72.22708352375918 % a=p6e 83.76087805625558 % a=p7s 84.23828505542117 % a=p7e ] store /angs5 [ 11.936362466871577 % a=p1s 12.06108068586895 % a=p1e 23.875665544479162 % a=p2s 24.119662226290405 % a=p2e 35.820695114855724 % a=p3s 36.173324291962636 % a=p3e 47.77393833539115 % a=p4s 48.21980630146989 % a=p4e 59.737460197319905 % a=p5s 60.25709145625097 % a=p5e 71.71280864356133 % a=p6s 72.28349283843973 % a=p6e 83.70095359631462 % a=p7s 84.29773803842423 % a=p7e ] store /angs6 [ 11.92333534962837 % a=p1s 12.072981999867295 % a=p1e 23.850249033990785 % a=p2s 24.14302110761017 % a=p2e 35.78412600358127 % a=p3s 36.20725881394451 % a=p3e 47.72797828072875 % a=p4s 48.263009807514656 % a=p4e 59.68429200398899 % a=p5s 60.30785796415633 % a=p5e 71.65491155362278 % a=p6s 72.33975917878625 % a=p6e 83.64096780758828 % a=p7s 84.35714686441895 % a=p7e ] store /angs7 [ 11.910209727377705 % a=p1s 12.084776503234172 % a=p1e 23.824651278023655 % a=p2s 24.166185660657497 % a=p2e 35.747322222396384 % a=p3s 36.24094651910828 % a=p3e 47.68176872964642 % a=p4s 48.30595830989897 % a=p4e 59.63090143051986 % a=p5s 60.35840669388239 % a=p5e 71.59685759776832 % a=p6s 72.3958831951506 % a=p6e 83.58091873602368 % a=p7s 84.41651305690237 % a=p7e ] store /angs8 [ 11.896986138776953 % a=p1s 12.096463343780352 % a=p1e 23.798873009544423 % a=p2s 24.1891544194381 % a=p2e 35.71028417813772 % a=p3s 36.27438575915712 % a=p3e 47.635309323468576 % a=p4s 48.348650502768294 % a=p4e 59.577287218151646 % a=p5s 60.40873714787044 % a=p5e 71.53864487064128 % a=p6s 72.45186543727682 % a=p6e 83.52080437530424 % a=p7s 84.47583811090627 % a=p7e ] store /angs9 [ 11.883665099327878 % a=p1s 12.10804164310246 % a=p1e 23.77291490813462 % a=p2s 24.21192585597619 % a=p2e 35.673012186877045 % a=p3s 36.30757478075494 % a=p3e 47.58859957853082 % a=p4s 48.39108494156987 % a=p4e 59.52344796968203 % a=p5s 60.45884868734144 % a=p5e 71.4802713511592 % a=p6s 72.50770635383223 % a=p6e 83.46062266414432 % a=p7s 84.53512349445879 % a=p7e ] store /angs10 [ 11.870247101357558 % a=p1s 12.119510496110177 % a=p1e 23.746777600061925 % a=p2s 24.23449837911455 % a=p2e 35.63550647394103 % a=p3s 36.34051172341407 % a=p3e 47.541638885569256 % a=p4s 48.43326004035069 % a=p4e 59.469382147639834 % a=p5s 60.50874052999415 % a=p5e 71.42173489961449 % a=p6s 72.56340629169891 % a=p6e 83.4003714834328 % a=p7s 84.59437064998934 % a=p7e ] store /angs11 [ 11.856732613966773 % a=p1s 12.130868970513701 % a=p1e 23.720461658280186 % a=p2s 24.2568703332254 % a=p2e 35.59776717380025 % a=p3s 36.37319461721436 % a=p3e 47.49442650889857 % a=p4s 48.475174068789634 % a=p4e 59.41508807217332 % a=p5s 60.55841174738708 % a=p5e 71.36303325448995 % a=p6s 72.61896549501986 % a=p6e 83.34004865321407 % a=p7s 84.65358099568142 % a=p7e ] store /angs12 [ 11.843122082945142 % a=p1s 12.142116106270509 % a=p1e 23.693967602355304 % a=p2s 24.279039996827304 % a=p2e 35.55979432982573 % a=p3s 36.405621380346524 % a=p3e 47.44696158537543 % a=p4s 48.516825148952385 % a=p4e 59.360563918645916 % a=p5s 60.6078612619903 % a=p5e 71.30416402897619 % a=p6s 72.67438410399262 % a=p6e 83.2796519294945 % a=p7s 84.71275592677652 % a=p7e ] store /angs13 [ 11.82941593065426 % a=p1s 12.153250914990615 % a=p1e 23.667295898318045 % a=p2s 24.3010055811062 % a=p2e 35.52158789391118 % a=p3s 36.43778981647274 % a=p3e 47.39924312314353 % a=p4s 48.558211251757726 % a=p4e 59.305807714931596 % a=p5s 60.65708784389479 % a=p5e 71.24512470717748 % a=p6s 72.72966215340223 % a=p6e 83.21917900086149 % a=p7s 84.7718968168333 % a=p7e ] store /angs14 [ 11.815614555875824 % a=p1s 12.164272379297325 % a=p1e 23.6404469584398 % a=p2s 24.322765228334127 % a=p2e 35.48314772595886 % a=p3s 36.469697611896315 % a=p3e 47.351270000155424 % a=p4s 48.599330193141476 % a=p4e 59.25081733839909 % a=p5s 60.70609010716251 % a=p5e 71.1859126399899 % a=p6s 72.78479957088365 % a=p6e 83.15862748490005 % a=p7s 84.83100501894486 % a=p7e ] store /angs15 [ 11.801718333625152 % a=p1s 12.175179452142526 % a=p1e 23.613421140931536 % a=p2s 24.344317010183318 % a=p2e 35.4444735932256 % a=p3s 36.50134233253178 % a=p3e 47.3030409624662 % a=p4s 48.640179629904 % a=p4e 59.19559051257442 % a=p5s 60.75486650580041 % a=p5e 71.12652504063502 % a=p6s 72.83979617490274 % a=p6e 83.09799492439242 % a=p7s 84.89008186691791 % a=p7e ] store /angs16 [ 11.787727614929405 % a=p1s 12.18597105607372 % a=p1e 23.586218749562654 % a=p2s 24.36565892592901 % a=p2e 35.40556516952632 % a=p3s 36.53272142066584 % a=p3e 47.25455462229148 % a=p4s 48.680757055225016 % a=p4e 59.14012480346797 % a=p5s 60.80341532933896 % a=p5e 71.06695897982998 % a=p6s 72.89465167244286 % a=p6e 83.03727878328297 % a=p7s 84.94912867641655 % a=p7e ] store /angs17 [ 11.77364272656729 % a=p1s 12.196646082450007 % a=p1e 23.55884003319776 % a=p2s 24.386788900536796 % a=p2e 35.36642203429076 % a=p3s 36.56383219149893 % a=p3e 47.205809455823555 % a=p4s 48.721059793828665 % a=p4e 59.08441761555297 % a=p5s 60.85173469799367 % a=p5e 71.00721138057251 % a=p6s 72.94936565638254 % a=p6e 82.97647644239078 % a=p7s 85.00814674607393 % a=p7e ] store /angs18 [ 11.759463970771552 % a=p1s 12.207203390605802 % a=p1e 23.531285185248322 % a=p2s 24.407704782627324 % a=p2e 35.32704367146845 % a=p3s 36.59467182945564 % a=p3e 47.15680380079669 % a=p4s 48.761084996779495 % a=p4e 59.02846618737822 % a=p5s 60.89982255738604 % a=p5e 70.94727901251849 % a=p6s 73.00393760254836 % a=p6e 82.91558519484946 % a=p7s 85.06713735857441 % a=p7e ] store /angs19 [ 11.745191624890726 % a=p1s 12.217641806957563 % a=p1e 23.503554343036566 % a=p2s 24.428404342313463 % a=p2e 35.28742946827808 % a=p3s 36.625237384252536 % a=p3e 47.107535853792385 % a=p4s 48.80082963588889 % a=p4e 58.972267586798715 % a=p5s 60.94767667279787 % a=p5e 70.88715848592577 % a=p6s 73.05836686642435 % a=p6e 82.85460224125279 % a=p7s 85.12610178170924 % a=p7e ] store /angs20 [ 11.730825941009456 % a=p1s 12.227960124052048 % a=p1e 23.47564758706738 % a=p2s 24.448885268901304 % a=p2e 35.247578713793736 % a=p3s 36.65552576670891 % a=p3e 47.05800366727401 % a=p4s 48.84029049770906 % a=p4e 58.91581870580349 % a=p5s 60.995294622930274 % a=p5e 70.82684624513675 % a=p6s 73.11265267949769 % a=p6e 82.79352468448211 % a=p7s 85.18504126940833 % a=p7e ] store /angs21 [ 11.71636714552474 % a=p1s 12.238157099551403 % a=p1e 23.44756494020518 % a=p2s 24.469145168448645 % a=p2e 35.20749059736334 % a=p3s 36.68553374428745 % a=p3e 47.008205146339535 % a=p4s 48.87946417709021 % a=p4e 58.859116254920146 % a=p5s 61.04267379313565 % a=p5e 70.76633856156903 % a=p6s 73.16679414521796 % a=p6e 82.73234952418977 % a=p7s 85.24395706275082 % a=p7e ] store /angs22 [ 11.701815438676984 % a=p1s 12.248231455152272 % a=p1e 23.419306366750394 % a=p2s 24.489181561171776 % a=p2e 35.167164206850316 % a=p3s 36.71525793634734 % a=p3e 46.958138045178856 % a=p4s 48.91834707027344 % a=p4e 58.8021567571719 % a=p5s 61.089811368087894 % a=p5e 70.70563152617991 % a=p6s 73.22079023454442 % a=p6e 82.67107365091016 % a=p7s 85.30285039095683 % a=p7e ] store /angs23 [ 11.687170994032428 % a=p1s 12.258181875434113 % a=p1e 23.390871771411508 % a=p2s 24.50899187869209 % a=p2e 35.126598526691865 % a=p3s 36.744694809094355 % a=p3e 46.907799963221834 % a=p4s 48.956935367490466 % a=p4e 58.74493654156117 % a=p5s 61.13670432385263 % a=p5e 70.64472104136836 % a=p6s 73.27463978105305 % a=p6e 82.60969383976686 % a=p7s 85.36172247236334 % a=p7e ] store /angs24 [ 11.672433957915235 % a=p1s 12.26800700663286 % a=p1e 23.362260998166978 % a=p2s 24.528573461112185 % a=p2e 35.085792435764034 % a=p3s 36.773840670208166 % a=p3e 46.85718834096131 % a=p4s 48.99522504503821 % a=p4e 58.68745173605153 % a=p5s 61.18334941931543 % a=p5e 70.58360281227317 % a=p6s 73.3283414755723 % a=p6e 82.54820674374241 % a=p7s 85.42057451538614 % a=p7e ] store /angs25 [ 11.657604448786142 % a=p1s 12.277705455334987 % a=p1e 23.33347382901136 % a=p2s 24.547923553911666 % a=p2e 35.04474470504407 % a=p3s 36.80269166312757 % a=p3e 46.80630045543359 % a=p4s 49.03321185679282 % a=p4e 58.62969826001678 % a=p5s 61.2297431869218 % a=p5e 70.52227233742346 % a=p6s 73.38189386031235 % a=p6e 82.48660888647268 % a=p7s 85.47940771947097 % a=p7e ] store /angs26 [ 11.642682556563992 % a=p1s 12.287275787086035 % a=p1e 23.304509982578292 % a=p2s 24.567039304649334 % a=p2e 35.00345399505897 % a=p3s 36.83124376097095 % a=p3e 46.75513341533713 % a=p4s 49.07089132512581 % a=p4e 58.57167181612225 % a=p5s 61.27588192267824 % a=p5e 70.4607248986916 % a=p6s 73.43529532244932 % a=p6e 82.4248966545247 % a=p7s 85.5382232760357 % a=p7e ] store /angs27 [ 11.62766834188761 % a=p1s 12.29671652490895 % a=p1e 23.275369112634362 % a=p2s 24.585917759460802 % a=p2e 34.961918853108216 % a=p3s 36.859492760068704 % a=p3e 46.703684155768975 % a=p4s 49.10825873117987 % a=p4e 58.51336788160183 % a=p5s 61.32176167535815 % a=p5e 70.3989555504958 % a=p6s 73.48854408712174 % a=p6e 82.36306628911284 % a=p7s 85.5970223694067 % a=p7e ] store /angs28 [ 11.61256183531389 % a=p1s 12.306026147724955 % a=p1e 23.246050806434955 % a=p2s 24.6045558593367 % a=p2e 34.920137710247616 % a=p3s 36.88743427308142 % a=p3e 46.651949432555526 % a=p4s 49.14530910446015 % a=p4e 58.45478169888876 % a=p5s 61.36737823485163 % a=p5e 70.33695910819229 % a=p6s 73.54163820979106 % a=p6e 82.30111387720302 % a=p7s 85.6558061777513 % a=p7e ] store /angs29 [ 11.59736303644711 % a=p1s 12.315203088670305 % a=p1e 23.21655458293341 % a=p2s 24.622950436166153 % a=p2e 34.87810887801911 % a=p3s 36.91506372167538 % a=p3e 46.5999258161524 % a=p4s 49.18203721169034 % a=p4e 58.39590826555562 % a=p5s 61.41272711959097 % a=p5e 70.27473013559283 % a=p6s 73.594575567914 % a=p6e 82.23903534194987 % a=p7s 85.71457587400957 % a=p7e ] store /angs30 [ 11.582071912996428 % a=p1s 12.324245733302025 % a=p1e 23.186879890834618 % a=p2s 24.64109820852994 % a=p2e 34.83583054491118 % a=p3s 36.94237632872516 % a=p3e 46.54760968508595 % a=p4s 49.21843754488009 % a=p4e 58.336742323513874 % a=p5s 61.45780356297762 % a=p5e 70.21226293153529 % a=p6s 73.64735385186718 % a=p6e 82.17682643240578 % a=p7s 85.77333262682737 % a=p7e ] store /angs31 [ 11.566688399755103 % a=p1s 12.333152417683447 % a=p1e 23.157026106481293 % a=p2s 24.65899577722405 % a=p2e 34.793300772531175 % a=p3s 36.96936711000882 % a=p3e 46.49499721890572 % a=p4s 49.254504308544554 % a=p4e 58.27727834741927 % a=p5s 61.502602498728 % a=p5e 70.14955151542911 % a=p6s 73.69997055505918 % a=p6e 82.11448271243431 % a=p7s 85.83207760149402 % a=p7e ] store /angs32 [ 11.55121239749649 % a=p1s 12.341921426340825 % a=p1e 23.12699253156217 % a=p2s 24.676639620494885 % a=p2e 34.750517491470966 % a=p3s 36.996030865359884 % a=p3e 46.44208439061452 % a=p4s 49.29023140601078 % a=p4e 58.21751053222307 % a=p5s 61.54711854504793 % a=p5e 70.08658961168794 % a=p6s 73.75242296315676 % a=p6e 82.05199954875309 % a=p7s 85.89081196088709 % a=p7e ] store /angs33 [ 11.535643771780839 % a=p1s 12.35055099008155 % a=p1e 23.09677839062888 % a=p2s 24.6940260889639 % a=p2e 34.7074784968436 % a=p3s 37.02236216923542 % a=p3e 46.388866958539694 % a=p4s 49.32561242474032 % a=p4e 58.15743277980454 % a=p5s 61.5913459875349 % a=p5e 70.02337063295417 % a=p6s 73.80470814234442 % a=p6e 81.98937209802318 % a=p7s 85.94953686642697 % a=p7e ] store /angs34 [ 11.519982351665762 % a=p1s 12.359039283662634 % a=p1e 23.066382828406926 % a=p2s 24.711151400217876 % a=p2e 34.66418144346757 % a=p3s 37.04835536065633 % a=p3e 46.33534045760484 % a=p4s 49.360640620589926 % a=p4e 58.09703868461281 % a=p5s 61.63527876069768 % a=p5e 69.95988766200874 % a=p6s 73.8568229265267 % a=p6e 81.92659529289242 % a=p7s 86.00825347904505 % a=p7e ] store /angs35 [ 11.504227928312746 % a=p1s 12.367384423297112 % a=p1e 23.03580490688566 % a=p2s 24.728011633039017 % a=p2e 34.62062384067247 % a=p3s 37.0740045324722 % a=p3e 46.2815001899581 % a=p4s 49.39530890092468 % a=p4e 58.03632151823934 % a=p5s 61.67891042797037 % a=p5e 69.8961334322492 % a=p6s 73.90876390337225 % a=p6e 81.86366382688989 % a=p7s 86.06696296016798 % a=p7e ] store /angs36 [ 11.488380253482298 % a=p1s 12.375584463986224 % a=p1e 23.00504360216978 % a=p2s 24.744602721245936 % a=p2e 34.57680304669713 % a=p3s 37.09930351989759 % a=p3e 46.22734121490803 % a=p4s 49.42960980648992 % a=p4e 57.975274212834535 % a=p5s 61.722234160085286 % a=p5e 69.83210030660594 % a=p6s 73.96052739908667 % a=p6e 81.80057213805719 % a=p7s 86.12566647272173 % a=p7e ] store /angs37 [ 11.472439037907781 % a=p1s 12.383637396662037 % a=p1e 22.974097801072595 % a=p2s 24.760920447114106 % a=p2e 34.53271626264794 % a=p3s 37.12424588826167 % a=p3e 46.17285833811334 % a=p4s 49.46353549193782 % a=p4e 57.91388934327296 % a=p5s 61.765242711653386 % a=p5e 69.76778025475258 % a=p6s 74.01210946178786 % a=p6e 81.73731439118794 % a=p7s 86.18436518215925 % a=p7e ] store /angs38 [ 11.456403949537945 % a=p1s 12.391541145124311 % a=p1e 22.94296629743082 % a=p2s 24.776960434340847 % a=p2e 34.48836052598261 % a=p3s 37.14882491990828 % a=p3e 46.11804609996735 % a=p4s 49.497077704895275 % a=p4e 57.85215910796204 % a=p5s 61.80792839578511 % a=p5e 69.7031648284505 % a=p6s 74.06350584334204 % a=p6e 81.67388445853271 % a=p7s 86.24306025751534 % a=p7e ] store /angs39 [ 11.440274611637554 % a=p1s 12.399293562754744 % a=p1e 22.91164778811647 % a=p2s 24.792718140516374 % a=p2e 34.443732703479476 % a=p3s 37.17303360017536 % a=p3e 46.06289876311179 % a=p4s 49.530227763446774 % a=p4e 57.79007530817778 % a=p5s 61.850283056564976 % a=p5e 69.63824513484936 % a=p6s 74.1147119795016 % a=p6e 81.6102758988087 % a=p7s 86.30175287249307 % a=p7e ] store /angs40 [ 11.424050600733594 % a=p1s 12.406892428988357 % a=p1e 22.880140868720527 % a=p2s 24.80818884905887 % a=p2e 34.39882948364979 % a=p3s 37.19686460237714 % a=p3e 46.0074102990076 % a=p4s 49.562976531893824 % a=p4e 57.727629325799626 % a=p5s 61.89229803917272 % a=p5e 69.57301180754612 % a=p6s 74.16572296816564 % a=p6e 81.54648193433371 % a=p7s 86.36044420658635 % a=p7e ] store /angs41 [ 11.407731444392123 % a=p1s 12.414335445520077 % a=p1e 22.848444028878745 % a=p2s 24.82336766056565 % a=p2e 34.35364736854382 % a=p3s 37.22031027170321 % a=p3e 45.95157437348261 % a=p4s 49.595314394636866 % a=p4e 57.664812099301635 % a=p5s 61.93396415741885 % a=p5e 69.50745497518102 % a=p6s 74.21653354556209 % a=p6e 81.48249542608227 % a=p7s 86.4191354462431 % a=p7e ] store /angs42 [ 11.391316618812636 % a=p1s 12.421620232222997 % a=p1e 22.816555647207974 % a=p2s 24.838249483529232 % a=p2e 34.30818266489811 % a=p3s 37.24336260794033 % a=p3e 45.89538433116774 % a=p4s 49.62723122800976 % a=p4e 57.60161409784311 % a=p5s 61.975271658436604 % a=p5e 69.44156422732436 % a=p6s 74.2671380601239 % a=p6e 81.4183088464351 % a=p7s 86.47782778607522 % a=p7e ] store /angs43 [ 11.374805546220893 % a=p1s 12.428744322751362 % a=p1e 22.784473985816735 % a=p2s 24.852829024359778 % a=p2e 34.26243147456385 % a=p3s 37.26601324691203 % a=p3e 45.83883317872304 % a=p4s 49.65871636987805 % a=p4e 57.53802529328333 % a=p5s 62.01621018424045 % a=p5e 69.37532857737801 % a=p6s 74.31753044380257 % a=p6e 81.35391424936446 % a=p7s 86.53652243012 % a=p7e ] store /angs44 [ 11.35819759204244 % a=p1s 12.435705159797667 % a=p1e 22.75219718435015 % a=p2s 24.86710077664962 % a=p2e 34.21638968414958 % a=p3s 37.28825344052012 % a=p3e 45.78191356674409 % a=p4s 49.6897585867911 % a=p4e 57.474035129926285 % a=p5s 62.05676872982675 % a=p5e 69.30873642218249 % a=p6s 74.36770418052814 % a=p6e 81.28930323776372 % a=p7s 86.59522059316049 % a=p7e ] store /angs45 [ 11.34149206183451 % a=p1s 12.442500089971064 % a=p1e 22.719723253524165 % a=p2s 24.881059009607743 % a=p2e 34.17005295380453 % a=p3s 37.31007403525855 % a=p3e 45.72461777022698 % a=p4s 49.72034603845508 % a=p4e 57.40963249177892 % a=p5s 62.096935597452855 % a=p5e 69.24177549798291 % a=p6s 74.41765227148547 % a=p6e 81.2244669275907 % a=p7s 86.65392350211121 % a=p7e ] store /angs46 [ 11.324688197954293 % a=p1s 12.449126358260662 % a=p1e 22.687050068099666 % a=p2s 24.894697755584264 % a=p2e 34.12341670505911 % a=p3s 37.33146544905604 % a=p3e 45.66693766745586 % a=p4s 49.75046623926626 % a=p4e 57.3448056670816 % a=p5s 62.13669834668453 % a=p5e 69.17443283236364 % a=p6s 74.46736719683196 % a=p6e 81.15939590844944 % a=p7s 86.7126323974769 % a=p7e ] store /angs47 [ 11.30778517593426 % a=p1s 12.45558110203941 % a=p1e 22.654175359239318 % a=p2s 24.908010796594976 % a=p2e 34.07647610762935 % a=p3s 37.352417646286725 % a=p3e 45.60886471716075 % a=p4s 49.780106016614425 % a=p4e 57.2795423098412 % a=p5s 62.176043739750995 % a=p5e 69.10669469171246 % a=p6s 74.51684087342855 % a=p6e 81.09408020018329 % a=p7s 86.77134853489343 % a=p7e ] store /angs48 [ 11.290782100537243 % a=p1s 12.46186134456465 % a=p1e 22.6210967061847 % a=p2s 24.92099164974485 % a=p2e 34.02922606508087 % a=p3s 37.37292011076909 % a=p3e 45.55038993377577 % a=p4s 49.809251465631526 % a=p4e 57.21382939806499 % a=p5s 62.214957681686315 % a=p5e 69.03854652371888 % a=p6s 74.56606460809658 % a=p6e 81.02850920499182 % a=p7s 86.83007318675996 % a=p7e ] store /angs49 [ 11.273678001455522 % a=p1s 12.467963987920319 % a=p1e 22.58781152718225 % a=p2s 24.93363355143764 % a=p2e 33.981661199234416 % a=p3s 37.39296181655209 % a=p3e 45.49150386060608 % a=p4s 49.83788790002112 % a=p4e 57.14765318835708 % a=p5s 62.25342515466871 % a=p5e 68.96997289434539 % a=p6s 74.61502904584103 % a=p6e 80.96267165451394 % a=p7s 86.888807643973 % a=p7e ] store /angs50 [ 11.256471828616469 % a=p1s 12.473885805342528 % a=p1e 22.55431706957733 % a=p2s 24.945929440243628 % a=p2e 33.93377583318008 % a=p3s 37.412531196262016 % a=p3e 45.43219654068899 % a=p4s 49.86599979855995 % a=p4e 57.08099916649744 % a=p5s 62.29143014589003 % a=p5e 68.90095741863797 % a=p6s 74.66372411239975 % a=p6e 80.89655555123879 % a=p7s 86.94755321777491 % a=p7e ] store /angs51 [ 11.239162447052136 % a=p1s 12.47962343286081 % a=p1e 22.520610398986634 % a=p2s 24.95787193828209 % a=p2e 33.88556397275016 % a=p3s 37.43161610675572 % a=p3e 45.372457485106786 % a=p4s 49.8935707468113 % a=p4e 57.01385199357515 % a=p5s 62.32895556819798 % a=p5e 68.83148268465389 % a=p6s 74.7121389503812 % a=p6e 80.83014810350937 % a=p7s 87.00631124172916 % a=p7e ] store /angs52 [ 11.221748631282578 % a=p1s 12.48517336017917 % a=p1e 22.486688387444715 % a=p2s 24.969453330954863 % a=p2e 33.83701928628069 % a=p3s 37.4502037917929 % a=p3e 45.31227563847723 % a=p4s 49.92058337353123 % a=p4e 56.94619544719365 % a=p5s 62.36598317264838 % a=p5e 68.76153016968738 % a=p6s 74.76026184814054 % a=p6e 80.76343565327369 % a=p7s 87.06508307383864 % a=p7e ] store /angs53 [ 11.20422905915866 % a=p1s 12.490531920710476 % a=p1e 22.452547700408434 % a=p2s 24.98066554484676 % a=p2e 33.788135082467825 % a=p3s 37.46828084140232 % a=p3e 45.25163934131193 % a=p4s 49.94701928118102 % a=p4e 56.87801235720142 % a=p5s 62.402493451983915 % a=p5e 68.6910801478577 % a=p6s 74.8080801604117 % a=p6e 80.69640359560516 % a=p7s 87.12387009882286 % a=p7e ] store /angs54 [ 11.186602305099901 % a=p1s 12.495695280665814 % a=p1e 22.418184782485486 % a=p2s 24.991500123582217 % a=p2e 33.73890428609978 % a=p3s 37.4858331475734 % a=p3e 45.19053628888994 % a=p4s 49.97285896988131 % a=p4e 56.80928453532971 % a=p5s 62.43846553391484 % a=p5e 68.62011158799075 % a=p6s 74.85558021955563 % a=p6e 80.62903628886036 % a=p7s 87.18267373057436 % a=p7e ] store /angs55 [ 11.168866832655869 % a=p1s 12.50065942708694 % a=p1e 22.38359584173527 % a=p2s 25.001948201398868 % a=p2e 33.689319411412896 % a=p3s 37.50284585585413 % a=p3e 45.128953486246175 % a=p4s 49.99808175405332 % a=p4e 56.739992698034094 % a=p5s 62.47387706291255 % a=p5e 68.54860204056897 % a=p6s 74.90274723610061 % a=p6e 80.56131695415807 % a=p7s 87.24149541481523 % a=p7e ] store /angs56 [ 11.151020986307298 % a=p1s 12.505420154692983 % a=p1e 22.348776832366852 % a=p2s 25.012000474163663 % a=p2e 33.63937253278393 % a=p3s 37.51930331237692 % a=p3e 45.06687719881598 % a=p4s 50.02266567088745 % a=p4e 56.670116381738616 % a=p5s 62.50870406903544 % a=p5e 68.476527512343 % a=p6s 74.94956518702878 % a=p6e 80.49322756264593 % a=p7s 87.30033663197948 % a=p7e ] store /angs57 [ 11.13306298241263 % a=p1s 12.50997305139454 % a=p1e 22.31372343563443 % a=p2s 25.02164716751755 % a=p2e 33.58905525242943 % a=p3s 37.535189005766014 % a=p3e 45.0042928982123 % a=p4s 50.046587379658476 % a=p4e 56.599633849567944 % a=p5s 62.54292082208086 % a=p5e 68.4038623269841 % a=p6s 74.9960166900026 % a=p6e 80.42474870876194 % a=p7s 87.35919890034931 % a=p7e ] store /angs58 [ 11.114990899189143 % a=p1s 12.514313482305218 % a=p1e 22.27843103869883 % a=p2s 25.030878001786867 % a=p2e 33.53835866473104 % a=p3s 37.550485503298596 % a=p3e 44.94118520253261 % a=p4s 50.06982205076392 % a=p4e 56.52852198851917 % a=p5s 62.576499669092854 % a=p5e 68.33057896990591 % a=p6s 75.04208286140883 % a=p6e 80.35585946738757 % a=p7s 87.41808377947804 % a=p7e ] store /angs59 [ 11.096802665602791 % a=p1s 12.51843657205544 % a=p1e 22.24289471118855 % a=p2s 25.039682153244534 % a=p2e 33.4872733167486 % a=p3s 37.56517438059821 % a=p3e 44.877537810502034 % a=p4s 50.092343243195536 % a=p4e 56.45675619586943 % a=p5s 62.60941085294281 % a=p5e 68.25664791508777 % a=p6s 75.0877431557225 % a=p6e 80.28653723241713 % a=p7s 87.47699287393749 % a=p7e ] store /angs60 [ 11.078496049018788 % a=p1s 12.522337185180852 % a=p1e 22.207109179150628 % a=p2s 25.048048211237965 % a=p2e 33.435789164411744 % a=p3s 37.57923614402594 % a=p3e 44.813333428650054 % a=p4s 50.114122768958474 % a=p4e 56.38431025343144 % a=p5s 62.6416223093306 % a=p5e 68.18203743138122 % a=p6s 75.13297518323725 % a=p6e 80.2167575338191 % a=p7s 87.53592783743304 % a=p7e ] store /angs61 [ 11.060068641441879 % a=p1s 12.52600990432232 % a=p1e 22.171068796031477 % a=p2s 25.055964130622204 % a=p2e 33.38389552379846 % a=p3s 37.59265014480355 % a=p3e 44.748553690590235 % a=p4s 50.135130542720844 % a=p4e 56.311156188052415 % a=p5s 62.67309943911543 % a=p5e 68.1067133653657 % a=p6s 75.17775450265952 % a=p6e 80.14649382972333 % a=p7s 87.59489037733685 % a=p7e ] store /angs62 [ 11.041517844146707 % a=p1s 12.52944900592984 % a=p1e 22.134767510267338 % a=p2s 25.063417178844876 % a=p2e 33.331581016809906 % a=p3s 37.60539448374439 % a=p3e 44.68317906731879 % a=p4s 50.15533441470291 % a=p4e 56.23726411649478 % a=p5s 62.70380485236126 % a=p5e 68.03063889732242 % a=p6s 75.22205438439424 % a=p6e 80.07571726940691 % a=p7s 87.65388225969777 % a=p7e ] store /angs63 [ 11.022840850463098 % a=p1s 12.532648433109795 % a=p1e 22.09819882899121 % a=p2s 25.070393876915794 % a=p2e 33.278833510432506 % a=p3s 37.61744590527948 % a=p3e 44.617188767265105 % a=p4s 50.17469998448852 % a=p4e 56.16260207253044 % a=p5s 62.73369807985659 % a=p5e 67.95377426630246 % a=p6s 75.26584553953315 % a=p6e 80.00439642224802 % a=p7s 87.71290531479623 % a=p7e ] store /angs64 [ 11.004034626440033 % a=p1s 12.535601765191819 % a=p1e 22.06135577727643 % a=p2s 25.076879933362243 % a=p2e 33.225640048635384 % a=p3s 37.628779679240274 % a=p3e 44.55056062460701 % a=p4s 50.1931903930522 % a=p4e 56.08713581371444 % a=p5s 62.76273524711508 % a=p5e 67.87607645955154 % a=p6s 75.30909580855457 % a=p6e 79.93249696672828 % a=p7s 87.77196144332437 % a=p7e ] store /angs65 [ 10.985095889062986 % a=p1s 12.538302183515828 % a=p1e 22.024230852231366 % a=p2s 25.08286017010714 % a=p2e 33.17198677577882 % a=p3s 37.63936946858586 % a=p3e 44.483270974097714 % a=p4s 50.21076608982633 % a=p4e 56.01082860486339 % a=p5s 62.790868704955884 % a=p5e 67.7974988606935 % a=p6s 75.35176980250732 % a=p6e 79.85998133234801 % a=p7s 87.83105262328567 % a=p7e ] store /angs66 [ 10.966021081636118 % a=p1s 12.540742432845043 % a=p1e 21.986815971131573 % a=p2s 25.0883184390112 % a=p2e 33.11785885020017 % a=p3s 37.64918718093233 % a=p3e 44.415294510329325 % a=p4s 50.227384571068235 % a=p4e 55.93364097473211 % a=p5s 62.818046609661955 % a=p5e 67.71799085003121 % a=p6s 75.39382848791966 % a=p6e 79.78680828581052 % a=p7s 87.89018091772554 % a=p7e ] store /angs67 [ 10.94680634586756 % a=p1s 12.54291477769846 % a=p1e 21.94910241261885 % a=p2s 25.093237527579294 % a=p2e 33.06324034638662 % a=p3s 37.658202801337055 % a=p3e 44.34660412896331 % a=p4s 50.243000085101365 % a=p4e 55.85553044173637 % a=p5s 62.84421244437447 % a=p5e 67.6374973490548 % a=p6s 75.43522870476507 % a=p6e 79.7129324509537 % a=p7s 87.94934848342535 % a=p7e ] store /angs68 [ 10.927447490103745 % a=p1s 12.544810952756503 % a=p1e 21.91108074980412 % a=p2s 25.09759905203626 % a=p2e 33.008114143830355 % a=p3s 37.66638420329706 % a=p3e 44.27717074697666 % a=p4s 50.257563299167835 % a=p4e 55.77645120378118 % a=p5s 62.869304471741685 % a=p5e 67.55595829969172 % a=p6s 75.47592260442312 % a=p6e 79.63830374955334 % a=p7s 88.00855758071803 % a=p7e ] store /angs69 [ 10.907939953044973 % a=p1s 12.54642210632034 % a=p1e 21.872740773873115 % a=p2s 25.101383335613146 % a=p2e 32.95246180027236 % a=p3s 37.673696934309646 % a=p3e 44.20696309837506 % a=p4s 50.271020921603245 % a=p4e 55.69635378628597 % a=p5s 62.893255105823094 % a=p5e 67.4733080669238 % a=p6s 75.51585699155763 % a=p6e 79.56286674715845 % a=p7s 88.06781058461439 % a=p7e ] store /angs70 [ 10.88827876213401 % a=p1s 12.547738735592494 % a=p1e 21.834071406497248 % a=p2s 25.104569269430915 % a=p2e 32.89626340655733 % a=p3s 37.680103971586306 % a=p3e 44.13594750108554 % a=p4s 50.283315271777106 % a=p4e 55.615184641300885 % a=p5s 62.915990188754535 % a=p5e 67.38947475103117 % a=p6s 75.55497255000346 % a=p6e 79.48655988435449 % a=p7s 88.12710999746892 % a=p7e ] store /angs71 [ 10.868458485630846 % a=p1s 12.548750612276178 % a=p1e 21.795060598981305 % a=p2s 25.10713415280293 % a=p2e 32.83949741971713 % a=p3s 37.6855654425648 % a=p3e 44.06408758981432 % a=p4s 50.29438378866586 % a=p4e 55.53288568912042 % a=p5s 62.93742815457482 % a=p5e 67.30437939278238 % a=p6s 75.59320292786317 % a=p6e 79.40931456904917 % a=p7s 88.18645846346183 % a=p7e ] store /angs72 [ 10.848473177165172 % a=p1s 12.54944669665458 % a=p1e 21.755695215611905 % a=p2s 25.10905350906351 % a=p2e 32.78214047013667 % a=p3s 37.690038303674356 % a=p3e 43.99134400849086 % a=p4s 50.30415846695302 % a=p4e 55.44939379193438 % a=p5s 62.95747905872753 % a=p5e 67.2179350512085 % a=p6s 75.63047365071941 % a=p6e 79.33105409919511 % a=p7s 88.24585878523492 % a=p7e ] store /angs73 [ 10.82831631127428 % a=p1s 12.54981503788168 % a=p1e 21.715960898076432 % a=p2s 25.110300872123222 % a=p2e 32.724167137687495 % a=p3s 37.693475969299065 % a=p3e 43.91767405444072 % a=p4s 50.312565207062136 % a=p4e 55.364640146702015 % a=p5s 62.9760434468519 % a=p5e 67.13004572895788 % a=p6s 75.66670082371068 % a=p6e 79.25169237736007 % a=p7s 88.30531394309575 % a=p7e ] store /angs74 [ 10.807980708069964 % a=p1s 12.54984265766669 % a=p1e 21.675841907060825 % a=p2s 25.11084753779409 % a=p2e 32.66554969047322 % a=p3s 37.69582788095825 % a=p3e 43.84303126453871 % a=p4s 50.31952306236405 % a=p4e 55.2785495814377 % a=p5s 62.993011030256994 % a=p5e 67.04060511433761 % a=p6s 75.70178957255598 % a=p6e 79.17113236809766 % a=p7s 88.36482711730189 % a=p7e ] store /angs75 [ 10.787458444709657 % a=p1s 12.549515413826098 % a=p1e 21.635320936152468 % a=p2s 25.11066227243144 % a=p2e 32.606257778229484 % a=p3s 37.697039004236025 % a=p3e 43.76736493115638 % a=p4s 50.324943362741315 % a=p4e 55.19103973524946 % a=p5s 63.008259127518066 % a=p5e 66.94949510161331 % a=p6s 75.7356321595626 % a=p6e 79.08926423529904 % a=p7s 88.42440171406147 % a=p7e ] store /angs76 [ 10.76674075073603 % a=p1s 12.54881783925506 % a=p1e 21.59437889189328 % a=p2s 25.109710969494113 % a=p2e 32.54625807033505 % a=p3s 37.69704923776268 % a=p3e 43.69061953254325 % a=p4s 50.328728688439405 % a=p4e 55.10202009748705 % a=p5s 63.0216508213731 % a=p5e 66.8565840414203 % a=p6s 75.76810569196802 % a=p6e 79.00596307839702 % a=p7s 88.48404139604865 % a=p7e ] store /angs77 [ 10.745817883542566 % a=p1s 12.547732950655154 % a=p1e 21.552994632142486 % a=p2s 25.107956242064812 % a=p2e 32.48551382564454 % a=p3s 37.6957927143048 % a=p3e 43.612734058110654 % a=p4s 50.33077166126485 % a=p4e 55.011390874833026 % a=p5s 63.03303276674643 % a=p5e 66.76172466049388 % a=p6s 75.79906931487801 % a=p6e 78.92108616172325 % a=p7s 88.54375011844128 % a=p7e ] store /angs78 [ 10.724678979154362 % a=p1s 12.546242019744097 % a=p1e 21.511144652666793 % a=p2s 25.10535693597329 % a=p2e 32.42398437770426 % a=p3s 37.693196968388726 % a=p3e 43.53364120354497 % a=p4s 50.3309535111145 % a=p4e 54.91904164654285 % a=p5s 63.042232568185476 % a=p5e 66.66475157331087 % a=p6s 75.82836074703079 % a=p6e 78.83446949800086 % a=p7s 88.6035321717656 % a=p7e ] store /angs79 [ 10.703311872070397 % a=p1s 12.544324297503936 % a=p1e 21.468802708860174 % a=p2s 25.10186754359615 % a=p2e 32.36162451400444 % a=p3s 37.6891819373172 % a=p3e 43.453266403232774 % a=p4s 50.32914236368454 % a=p4e 54.824849756494636 % a=p5s 63.04905562170921 % a=p5e 66.565478286174 % a=p6s 75.85579197093445 % a=p6e 78.74592360127376 % a=p7s 88.66339223320006 % a=p7e ] store /angs80 [ 10.681702875954299 % a=p1s 12.541956679075694 % a=p1e 21.42593935538871 % a=p2s 25.097437492192512 % a=p2e 32.29838372123975 % a=p3s 37.68365875215961 % a=p3e 43.3715266573525 % a=p4s 50.32519117878111 % a=p4e 54.728678375066174 % a=p5s 63.053281284795474 % a=p5e 66.46369356464169 % a=p6s 75.881143824128 % a=p6e 78.6552281611952 % a=p7s 88.72333542848413 % a=p7e ] store /angs81 [ 10.659836514247882 % a=p1s 12.539113292836335 % a=p1e 21.382521380886654 % a=p2s 25.092010272063927 % a=p2e 32.23420525933059 % a=p3s 37.67652826113121 % a=p3e 43.28832909702567 % a=p4s 50.31893524611107 % a=p4e 54.63037414236975 % a=p5s 63.054658195711696 % a=p5e 66.35915699490941 % a=p6s 75.90415914721605 % a=p6e 78.5621253015316 % a=p7s 88.78336740724937 % a=p7e ] store /angs82 [ 10.637695185993898 % a=p1s 12.535764991504823 % a=p1e 21.33851110689382 % a=p2s 25.085522357840425 % a=p2e 32.16902501405345 % a=p3s 37.66767920798015 % a=p3e 43.203569211389976 % a=p4s 50.310189114033676 % a=p4e 54.529764274421154 % a=p5s 63.05289850477063 % a=p5e 66.2515935141803 % a=p6s 75.92453401446242 % a=p6e 78.46631095883205 % a=p7s 88.84349443551498 % a=p7e ] store /angs83 [ 10.61525874674933 % a=p1s 12.531878715022073 % a=p1e 21.293865508926707 % a=p2s 25.077901859150412 % a=p2e 32.102770059768275 % a=p3s 37.656985959876216 % a=p3e 43.1171286326933 % a=p4s 50.29874278230683 % a=p4e 54.42665297137745 % a=p5s 63.047670698031496 % a=p5e 66.14068660725404 % a=p6s 75.94190638480522 % a=p6e 78.36742373365804 % a=p7s 88.90372351038114 % a=p7e ] store /angs84 [ 10.592503976654715 % a=p1s 12.527416683236392 % a=p1e 21.248535101219208 % a=p2s 25.069066812278805 % a=p2e 32.035356837154495 % a=p3s 37.64430563864088 % a=p3e 43.028872335345895 % a=p4s 50.28435692581228 % a=p4e 54.32081690576332 % a=p5s 63.03859057713544 % a=p5e 66.02606975574359 % a=p6s 75.95584123474288 % a=p6e 78.26503029691146 % a=p7s 88.9640625037828 % a=p7e ] store /angs85 [ 10.569403896174823 % a=p1s 12.522335359137418 % a=p1e 21.202462502516937 % a=p2s 25.058922988051854 % a=p2e 31.966688811640243 % a=p3s 37.62947444923545 % a=p3e 42.93864504562983 % a=p4s 50.2667568221177 % a=p4e 54.21199947856619 % a=p5s 63.02520978945754 % a=p5e 65.90731556547105 % a=p6s 75.96581082065448 % a=p6e 78.15860602993351 % a=p7s 89.02452034480287 % a=p7e ] store /angs86 [ 10.545926872605126 % a=p1s 12.516584097323948 % a=p1e 21.155580563877532 % a=p2s 25.04736103638729 % a=p2e 31.89665341905499 % a=p3s 37.612302909182475 % a=p3e 42.846266569495306 % a=p4s 50.24562451436328 % a=p4e 54.09990339572997 % a=p5s 63.007001051557715 % a=p5e 65.78392175908459 % a=p6s 75.97116808614204 % a=p6e 78.0475089606994 % a=p7s 89.0851072539084 % a=p7e ] store /angs87 [ 10.522035433517816 % a=p1s 12.510103352160264 % a=p1e 21.10780988314357 % a=p2s 25.034252703364917 % a=p2e 31.825118013673226 % a=p3s 37.59256954340369 % a=p3e 42.75152560808503 % a=p4s 50.22058852343689 % a=p4e 53.98418090914118 % a=p5s 62.9833388276552 % a=p5e 65.65529285871052 % a=p6s 75.9711102439751 % a=p6e 77.93094409735356 % a=p7s 89.14583504825299 % a=p7e ] store /angs88 [ 10.497684660592489 % a=p1s 12.502822256276911 % a=p1e 21.059055441433046 % a=p2s 25.019445722575252 % a=p2e 31.75192438887398 % a=p3s 37.570012388417375 % a=p3e 42.654171412167706 % a=p4s 50.19121007951041 % a=p4e 53.86442073640436 % a=p5s 62.95347363033468 % a=p5e 65.52071581820768 % a=p6s 75.96462798667281 % a=p6e 77.8079137255463 % a=p7s 89.20671754601857 % a=p7e ] store /angs89 [ 10.472819967382202 % a=p1s 12.494655275793896 % a=p1e 21.00920195089533 % a=p2s 25.00275676337861 % a=p2e 31.676881203639077 % a=p3s 37.54431728967448 % a=p3e 42.55390226966079 % a=p4s 50.15696428250893 % a=p4e 53.74013013574648 % a=p5s 62.9164971546799 % a=p5e 65.37932695490305 % a=p6s 75.95043319432422 % a=p6e 77.67714671916806 % a=p7s 89.267771111587 % a=p7e ] store /angs90 [ 10.44737394623543 % a=p1s 12.485497472250978 % a=p1e 20.95810725568375 % a=p2s 24.98396144813609 % a=p2e 31.599753247054046 % a=p3s 37.51510136707036 % a=p3e 42.45034921663944 % a=p4s 50.1172136554016 % a=p4e 53.610709704045156 % a=p5s 62.87129386468458 % a=p5e 65.23006601413964 % a=p6s 75.92685363715245 % a=p6e 77.53699566206811 % a=p7s 89.32901540553087 % a=p7e ] store /angs91 [ 10.421261761253758 % a=p1s 12.475217590906341 % a=p1e 20.905592692739635 % a=p2s 24.962779798689688 % a=p2e 31.520245767122837 % a=p3s 37.48188895354737 % a=p3e 42.34305230016192 % a=p4s 50.071169894367095 % a=p4e 53.47541687050413 % a=p5s 62.816471889197054 % a=p5e 65.07161056727695 % a=p6s 75.89167552706655 % a=p6e 77.38528314961515 % a=p7s 89.39047444015759 % a=p7e ] store /angs92 [ 10.39437418034958 % a=p1s 12.463647623808814 % a=p1e 20.851428517050195 % a=p2s 24.93885427281721 % a=p2e 31.437980790359042 % a=p3s 37.4440753432555 % a=p3e 42.23142476643647 % a=p4s 50.01783657095724 % a=p4e 53.33331112576324 % a=p5s 62.75026106623974 % a=p5e 64.90227915475951 % a=p6s 75.84190088464126 % a=p6e 77.21906515428934 % a=p7s 89.4521781042207 % a=p7e ] store /angs93 [ 10.366566594024654 % a=p1s 12.450566387400894 % a=p1e 20.7953109387511 % a=p2s 24.91171522392829 % a=p2e 31.352459835082556 % a=p3s 37.40086986833539 % a=p3e 42.11469675473716 % a=p4s 49.95591963617774 % a=p4e 53.183168342405175 % a=p5s 62.67035634556985 % a=p5e 64.71988238764112 % a=p6s 75.77336031510298 % a=p6e 77.03425376248032 % a=p7s 89.51416443218523 % a=p7e ] store /angs94 [ 10.337640827583373 % a=p1s 12.43567236437918 % a=p1e 20.736824100778414 % a=p2s 24.880723810756752 % a=p2e 31.263002207045993 % a=p3s 37.351201943985174 % a=p3e 41.99182224402634 % a=p4s 49.88368040256907 % a=p4e 53.02333981853951 % a=p5s 62.573665066453344 % a=p5e 64.52148239066106 % a=p6s 75.68006906658896 % a=p6e 76.82499053487105 % a=p7s 89.57648310092486 % a=p7e ] store /angs95 [ 10.3073131210325 % a=p1s 12.418535962 % a=p1e 20.675373157115303 % a=p2s 24.84497168741433 % a=p2e 31.168636456211317 % a=p3s 37.29355619650331 % a=p3e 41.861315568140476 % a=p4s 49.79867863856155 % a=p4e 52.85150561997737 % a=p5s 62.45587317977757 % a=p5e 64.30297938970263 % a=p6s 75.55310227890614 % a=p6e 76.58255351663618 % a=p7s 89.639201041776 % a=p7e ] store /angs96 [ 10.27515327329313 % a=p1s 12.398508906273932 % a=p1e 20.610057118365663 % a=p2s 24.80309072406826 % a=p2e 31.0678942534632 % a=p3s 37.22566008831809 % a=p3e 41.72094132649595 % a=p4s 49.69728761978492 % a=p4e 52.66420838116201 % a=p5s 62.3106404326897 % a=p5e 64.05834364726535 % a=p6s 75.37850966942737 % a=p6e 76.2933344097417 % a=p7s 89.70241189457685 % a=p7e ] store /angs97 [ 10.240457014776476 % a=p1s 12.374534483857923 % a=p1e 20.539402258496843 % a=p2s 24.752854701221814 % a=p2e 30.958378485619786 % a=p3s 37.143830811962594 % a=p3e 41.567065421883505 % a=p4s 49.57368363983764 % a=p4e 52.45588082398579 % a=p5s 62.12795008488131 % a=p5e 63.77803848358542 % a=p6s 75.13315211918425 % a=p6e 75.93480957381597 % a=p7s 89.7662528933324 % a=p7e ] store /angs98 [ 10.201940783287087 % a=p1s 12.344694343661418 % a=p1e 20.460724780181135 % a=p2s 24.69022861634551 % a=p2e 30.835731476098257 % a=p3s 37.041418581955604 % a=p3e 41.393107024755516 % a=p4s 49.41744597628106 % a=p4e 52.2165341809466 % a=p5s 61.8902485673239 % a=p5e 63.445327791130374 % a=p6s 74.77556573610576 % a=p6e 75.46672987115005 % a=p7s 89.83093728039667 % a=p7e ] store /angs99 [ 10.156863514538578 % a=p1s 12.304906380898949 % a=p1e 20.368298086378783 % a=p2s 24.6066397184238 % a=p2e 30.690671442542342 % a=p3s 36.90434732074166 % a=p3e 41.185102323629934 % a=p4s 49.206715079304736 % a=p4e 51.92516721537275 % a=p5s 61.561627576755996 % a=p5e 63.025927609896144 % a=p6s 74.22325640356571 % a=p6e 74.80934874610683 % a=p7s 89.89682247726977 % a=p7e ] store /angs100 [ 10.097664637482845 % a=p1s 12.243948888604791 % a=p1e 20.2463452806097 % a=p2s 24.478569462863145 % a=p2e 30.49768963075752 % a=p3s 36.69417993773908 % a=p3e 40.904866750365436 % a=p4s 48.88245951368224 % a=p4e 51.525008083759836 % a=p5s 61.048280116916224 % a=p5e 62.43026757621404 % a=p6s 73.28583530820094 % a=p6e 73.77999848960131 % a=p7s 89.9645717192571 % a=p7e ] store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /masterangs [ angs0 angs1 angs2 angs3 angs4 angs5 angs6 angs7 angs8 angs9 angs10 angs11 angs12 angs13 angs14 angs15 angs16 angs17 angs18 angs19 angs20 angs21 angs22 angs23 angs24 angs25 angs26 angs27 angs28 angs29 angs30 angs31 angs32 angs33 angs34 angs35 angs36 angs37 angs38 angs39 angs40 angs41 angs42 angs43 angs44 angs45 angs46 angs47 angs48 angs49 angs50 angs51 angs52 angs53 angs54 angs55 angs56 angs57 angs58 angs59 angs60 angs61 angs62 angs63 angs64 angs65 angs66 angs67 angs68 angs69 angs70 angs71 angs72 angs73 angs74 angs75 angs76 angs77 angs78 angs79 angs80 angs81 angs82 angs83 angs84 angs85 angs86 angs87 angs88 angs89 angs90 angs91 angs92 angs93 angs94 angs95 angs96 angs97 angs98 angs99 angs100 ] store %% grab individual angle reports /p1sangs mark masterangs {0 get} forall ] store /p2sangs mark masterangs {2 get} forall ] store /p3sangs mark masterangs {4 get} forall ] store /p4sangs mark masterangs {6 get} forall ] store /p5sangs mark masterangs {8 get} forall ] store /p6sangs mark masterangs {10 get} forall ] store /p7sangs mark masterangs {12 get} forall ] store %% grab angle diffrences from carrier impulse /p1sdangs mark p1sangs {12 sub} forall ] store /p2sdangs mark p2sangs {24 sub} forall ] store /p3sdangs mark p3sangs {36 sub} forall ] store /p4sdangs mark p4sangs {48 sub} forall ] store /p5sdangs mark p5sangs {60 sub} forall ] store /p6sdangs mark p6sangs {72 sub} forall ] store /p7sdangs mark p7sangs {84 sub} forall ] store %% calculate cosine half differences... /p1sdcos mark p1sangs {cos 12 cos sub } forall ] store /p2sdcos mark p2sangs {cos 24 cos sub } forall ] store /p3sdcos mark p3sangs {cos 36 cos sub } forall ] store /p4sdcos mark p4sangs {cos 48 cos sub } forall ] store /p5sdcos mark p5sangs {cos 60 cos sub } forall ] store /p6sdcos mark p6sangs {cos 72 cos sub } forall ] store /p7sdcos mark p7sangs {cos 84 cos sub } forall ] store % get normalized max values /normp1s p1sdcos 100 get store /normp2s p2sdcos 100 get store /normp3s p3sdcos 100 get store /normp4s p4sdcos 100 get store /normp5s p5sdcos 100 get store /normp6s p6sdcos 100 get store /normp7s p7sdcos 100 get store %% find fractional tota;s /fractot 12 sin 24 sin add 36 sin add 48 sin add 60 sin add 72 sin add 84 sin add store /fracts [ 12 sin fractot div 24 sin fractot div 36 sin fractot div 48 sin fractot div 60 sin fractot div 72 sin fractot div 84 sin fractot div ] store % calculate cosine contributed half fractions /fract12 fracts 0 get 2 div store /fract24 fracts 1 get 2 div store /fract36 fracts 2 get 2 div store /fract48 fracts 3 get 2 div store /fract60 fracts 4 get 2 div store /fract72 fracts 6 get 2 div store /fract84 fracts 6 get 2 div store % use reminder % /data [ 0 0 0.5 0.7 1 1 ] store solvelineq plotit showpage %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% zzz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % do a total plot and compare against existing and better guesses % 150 100 10 setgrid 0 0 mt 45 pu 20 pr 45 pd closepath 0.8 1 1 setrgbcolor fill 20 45 showgrid % two degrees per v block black % p7s 0 84 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 12 get 2 div lineto } for 20 84 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 84 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 13 get 2 div lineto } for 20 84 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p6s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 72 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 10 get 2 div lineto } for 20 72 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 72 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 11 get 2 div lineto } for 20 72 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p5s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 60 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 8 get 2 div lineto } for 20 60 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 60 2 div mt % center of p5 0 1 100 {/jj exch store jj 5 div masterangs jj get 9 get 2 div lineto } for 20 60 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p4s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 48 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 6 get 2 div lineto } for 20 48 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 48 2 div mt % center of p5 0 1 100 {/jj exch store jj 5 div masterangs jj get 7 get 2 div lineto } for 20 48 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p3s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 36 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 4 get 2 div lineto } for 20 36 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 36 2 div mt % center of p5 0 1 100 {/jj exch store jj 5 div masterangs jj get 5 get 2 div lineto } for 20 36 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p2s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 24 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 2 get 2 div lineto } for 20 24 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 24 2 div mt % center of p5 0 1 100 {/jj exch store jj 5 div masterangs jj get 3 get 2 div lineto } for 20 24 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill % p1s %%%%%%%%%%%%%%%%%%%%%%%%%%%% 0 12 2 div mt % center of p7 0 1 100 {/jj exch store jj 5 div masterangs jj get 0 get 2 div lineto } for 20 12 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill 0 12 2 div mt % center of p5 0 1 100 {/jj exch store jj 5 div masterangs jj get 1 get 2 div lineto } for 20 12 2 div lineto closepath 1 0.4 0.4 setrgbcolor fill line1 [{0.2 6 mt 19.6 r} 6 7 ] yrpt black line1 0 84 2 div mt 20 masterangs 1 get 13 get 84 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 13 get 84 sub 100 mul neg rlineto closepath stroke 0 72 2 div mt 20 masterangs 1 get 11 get 72 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 11 get 72 sub 100 mul neg rlineto closepath stroke 0 60 2 div mt 20 masterangs 1 get 9 get 60 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 9 get 60 sub 100 mul neg rlineto closepath stroke 0 48 2 div mt 20 masterangs 1 get 7 get 48 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 7 get 48 sub 100 mul neg rlineto closepath stroke 0 36 2 div mt 20 masterangs 1 get 5 get 36 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 5 get 36 sub 100 mul neg rlineto closepath stroke 0 24 2 div mt 20 masterangs 1 get 3 get 24 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 3 get 24 sub 100 mul neg rlineto closepath stroke 0 12 2 div mt 20 masterangs 1 get 1 get 12 sub 2 div 100 mul rlineto 20 0 masterangs 1 get 1 get 12 sub 100 mul neg rlineto closepath stroke { 0 0 1 setrgbcolor 0 36 2 div mt 20 masterangs 1 get 5 get 36 sub 2 div 100 mul 0.6000 sub rlineto 20 0 masterangs 1 get 5 get 36 sub 100 mul neg rlineto closepath stroke } pop black line1 -0.4 0 mt 20.4 r 0 0 mt 0.4 d 10 0 mt 0.4 d 20 0 mt 0.4 d /cstretch 0.02 store /sstretch 0.02 store /font1 /Helvetica-Bold 0.85 gonzofont font1 0 -1.3 (0.0) cc 10 -1.3 (0.5) cc 20 -1.3 (1.0) cc 10 -2.7 (input amplitude) cc 10 3.5 (best efficiency 7 pulse per quadrant magic sinewave pulse positions) cc -1.3 -0.3 (0.0000) cr -1.3 6 0.3 sub (12.000) cr -1.3 12 0.3 sub (24.000) cr -1.3 18 0.3 sub (36.000) cr -1.3 24 0.3 sub (48.000) cr -1.3 30 0.3 sub (60.000) cr -1.3 36 0.3 sub (72.000) cr -1.3 42 0.3 sub (84.000) cr -1.3 45 0.3 sub (90.000) cr [{0 0 mt 0.4 l}6 8 ] yrpt 0 45 mt 0.4 l 0 0 mt 45 u 20 r 45 d 18 42 0.3 sub (P7) cc 18 36 0.3 sub (P6) cc 18 30 0.3 sub (P5) cc 18 24 0.3 sub (P4) cc 18 18 0.3 sub (P3) cc 18 12 0.3 sub (P2) cc 18 6 0.3 sub (P1) cc gsave -5.5 22.5 translate 90 rotate 0 0 (pulse starting or ending angle position in degrees) cc grestore snap3 restore } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % figure1 for detmssol 72 /figure1 { save /snapxxx exch def %%%%%%%%%%%%%%%%%%% -0.3 -2.5 translate % position on box 1.5 dup scale 0 1 0 setrgbcolor line1 gsave 0 0 mt 10 pu 20 pr 10 pd closepath 0.8 1 1 setrgbcolor fill grestore 20 10 showgrid 0 1 1 setrgbcolor line2 10 0 mt 10 u 0 10 mt 20 r 0 0 mt 10 pu 20 pr 10 pd closepath stroke newpath 0 0 mt 10 pu 20 pr 10 pd closepath clip newpath 10 0 translate black /f1 { /b1 exch store /m1 exch store % capture slope and error -11 11 mt line1 0.07 setlinewidth -10 0.1 10 {/x1 exch store % plotting loop for linear x1 m1 mul b1 add abs x1 exch lineto } for stroke -11 11 mt line1 0.07 setlinewidth -10 0.1 10 {/x1 exch store % plotting loop for square x1 m1 mul b1 add dup mul % sqrt % find rms x1 exch % 2 copy == == (\n) print flush % gsave black 2 copy mt dot grestore lineto } for stroke 1 0 0 setrgbcolor % verify and plot minimum b1 m1 div neg 0 mt 20 u 0 b1 mt dot % plot initial y value } def 2 3 f1 % and do it slope - offset f1 snapxxx restore } store %%%%%%%%%%%%%%%% % figure2 for gonzotut 79 /figure2 { save /snapxxx exch def %%%%%%%%%%%%%%%%%%% 9 8 translate % position on box 1.5 dup scale electronics begin beige 0 0 moveto 18 (MS28D-05X) (IN1 IN0 XIN IN6 +5V /DA /DB /DC NC) (IN2 IN3 IN4 IN5 GND DA DB DC SYNC) dipdraw snapxxx restore } store %% figure 1 for gonzotut78 /figure1 { save /snapxxx exch def %%%%%%%%%%%%%%%%%%% -1.3 7 translate % position on box 0.8 dup scale % reduce size % 150 150 10 setgrid gsave 0 0 mt 20 pu 40 pr 20 pd closepath 0.66 1 1 setrgbcolor fill grestore 40 20 showgrid 0 1 1 setrgbcolor line2 0 -0.60 mt 20.6 u 40 r 20.6 d 20 20 mt 20.6 d 40 20 mt 20.6 d 40 0 mt 40.6 l 40 10 mt 40.6 l 40 20 mt 40.6 l black /totalharms 20 store % Set # of harmonics 0 10 mt % Set initial position 0 0.1 720 {/priang exch store % For one full cycle priang 20 mul 360 div % Set x position 0 1 1 totalharms {/curharm % For each harmonic, exch store priang curharm % calculate value mul sin add} for 0.67 mul 10 add lineto} for % |t% and set y position line1 stroke /cstretch 0.02 store /sstretch 0.05 store /font1 /Helvetica-bold 1.0 gonzofont font1 black 0 -2.1 (0) cc 20 -2.1 (360) cc 40 -2.1 (720) cc 20 -3.4 (phase in degrees) cc gsave 0 -0.3 translate -1.3 0 (- ) cr -1.3 10 (0) cr -1.3 20 (+ ) cr grestore gsave -3.3 10 translate 90 rotate 0 0 (amplitude) cc grestore snapxxx restore } store /figure2x { save /snapxxx exch def %%%%%%%%%%%%%%%%%%% 4.5 -0.4 translate % position on box % new data for 800 to 5000 has been modified to include two additional points /data1k5k [ 800 118 50 900 100 39 1000 93.50 73 1100 82 77 1200 75 21 1300 70 26 1400 63 37 1500 59 53 1600 53 52 1700 50 16 1800 50 36 1900 47 61 2000 45 25 2100 41 98 2200 40 20 2300 39 40 2400 36 89 2500 35 15 2600 33.39 52 2700 31.49 67 2800 30 42 2900 30 36 3000 29 63 3100 27.63 84 3200 26 95 3300 25 49 3400 25 13 3500 25 30 3600 24.95 38 3700 24 38 3800 23 30 3900 22 54 4000 21 67 4100 20.50 99 4200 20 33 4300 19.99 15 4400 19.99 23 4500 19.99 25 4600 19.95 41 4700 18.99 7 4800 18.45 57 4900 17.99 27 5000 17.12 90 ] store % generate new data files /functbb {/curbucks exch store /yy 1 curbucks 120 div sub 0.85 div store yy 11 exp 0.55 mul yy 2 exp 0.35 mul add yy 1 exp 0.07 mul add 4200 mul 800 add } store /binsperbuck [ 18 1 120 {/bucks exch store bucks bucks functbb bucks 1 sub functbb bucks 1 add functbb sub 2 div } for ] store % binsperbuck == % 150 150 10 setgrid gsave 0 0 mt 15 pu 24 pr 15 pd closepath 0.7 1 1 setrgbcolor fill grestore 24 15 showgrid 0 1 1 setrgbcolor line2 0 -0.60 mt 15.6 u 20 r 15.6 d 4 15 mt 15.6 d 8 15 mt 15.6 d 12 15 mt 15.6 d 16 15 mt 15.6 d 24 15 mt 15.6 d 24 0 mt 24.6 l 24 5 mt 24.6 l 24 10 mt 24.6 l 24 15 mt 24.6 l % plot the bins versus dollars 0.3 0.3 0.3 setrgbcolor 0 3 binsperbuck length 3 sub {/ii exch store binsperbuck ii get % the dollars 120 div 24 mul binsperbuck ii 2 add get % the bins 20 div mt dot } for /cstretch 0.02 store /sstretch 0.05 store /font1 /Helvetica-bold 0.85 gonzofont font1 black 0 -1.8 ($0) cc 4 -1.8 ($20) cc 8 -1.8 ($40) cc 12 -1.8 ($60) cc 16 -1.8 ($80) cc 20 -1.8 ($100) cc 24 -1.8 ($120) cc 12 -3.1 (price in integer dollars ) cc gsave 0 -0.3 translate -1.3 0 (0) cr -1.3 5 (100) cr -1.3 10 (200) cr -1.3 15 (300) cr grestore % 15 18 (total bins = 18,400) cc gsave -3.7 7.5 translate 90 rotate 0 0 (gross bin count per integer dollar) cc grestore /yinc 1.2 store /kern 0.1 store 15.5 12.5 (An |jinteger |jprice |jof\n"$34" represents all\nof the prices from\n$33.50 to $34.49.) cc snapxxx restore } store /figure3 { % for gg79 save /snapxxx exch def %%%%%%%%%%%%%%%%%%% -18.3 -18 translate % position on box 0.085 dup scale /q {gsave} store /Q {grestore} store /J {setlinecap} store /j {setlinejoin} store /m {moveto} store /f {fill} store /l {lineto} store /h {closepath} store /W {clip} store /n {newpath} store /w {setlinewidth} store /c {curveto} store /S {stroke} store /setSA {setstrokeadjust} store /cs {setcolorspace} store /sc {setcolor} store black % /W {} store % save %%%%%%%%%%%%%%%%%%%%%%%%% q % 252.0 99.0 m % 531.0 99.0 l % 531.0 387.0 l % 252.0 387.0 l % h % black 0 0 mt 1000 1000 lineto stroke % W n n true setSA 0.8 w 0.5 w 16.0 w 1.2 w 0.5 w n 392.5 92.0 m 231.1 92.0 l 231.045 92.0 231.0 92.045 231.0 92.1 c 231.0 398.4 l 231.0 398.455 231.045 398.5 231.1 398.5 c 553.9 398.5 l 553.955 398.5 554.0 398.455 554.0 398.4 c 554.0 92.1 l 554.0 92.045 553.955 92.0 553.9 92.0 c 392.5 92.0 l [/DeviceGray] cs 0.0 sc % S n q % problem above here n 417.8 198.52 m 428.487 196.636 437.684 212.313 435.8 223.0 c 434.362 231.155 425.235 238.118 417.08 236.68 c 419.358 238.958 421.778 241.0 425.0 241.0 c 439.585 241.0 449.853 221.164 447.32 206.8 c 445.282 195.244 439.626 183.813 428.6 179.8 c W n n 428.6 176.2 m 440.597 181.794 446.6 195.363 446.6 208.6 c 446.6 217.871 441.331 228.59 432.2 230.2 c 419.164 232.499 400.963 197.8 414.2 197.8 c 423.471 197.8 425.429 184.912 428.6 176.2 c [/DeviceRGB] cs 1.0 0.884 0.711 sc f Q q n 428.6 176.2 m 440.597 181.794 446.6 195.363 446.6 208.6 c 446.6 217.871 441.331 228.59 432.2 230.2 c 419.164 232.499 400.963 197.8 414.2 197.8 c 423.471 197.8 425.429 184.912 428.6 176.2 c W n n 417.8 198.52 m 428.487 196.636 437.684 212.313 435.8 223.0 c 434.362 231.155 425.235 238.118 417.08 236.68 c 419.358 238.958 421.778 241.0 425.0 241.0 c 439.585 241.0 449.853 221.164 447.32 206.8 c 445.282 195.244 439.626 183.813 428.6 179.8 c W n n 435.8 183.4 m 435.8 189.15 431.475 192.82 428.6 197.8 c 433.788 199.688 441.321 196.037 442.28 190.6 c [/DeviceRGB] cs 0.506 0.304 0.0 sc f n 443.72 196.0 m 442.196 200.187 438.939 202.772 435.08 205.0 c 438.866 207.186 443.971 207.81 447.32 205.0 c f n 447.32 211.12 m 445.221 213.219 442.368 213.64 439.4 213.64 c 441.517 216.163 443.506 218.274 446.6 219.4 c f n 443.72 220.12 m 441.92 220.12 440.371 220.736 438.68 220.12 c 439.768 223.109 437.851 227.672 440.84 228.76 c f Q q n 417.8 198.52 m 428.487 196.636 437.684 212.313 435.8 223.0 c 434.362 231.155 425.235 238.118 417.08 236.68 c 419.358 238.958 421.778 241.0 425.0 241.0 c 439.585 241.0 449.853 221.164 447.32 206.8 c 445.282 195.244 439.626 183.813 428.6 179.8 c W n 1 J 1 j 0.18 w n 428.6 176.2 m 440.597 181.794 446.6 195.363 446.6 208.6 c 446.6 217.871 441.331 228.59 432.2 230.2 c 419.164 232.499 400.963 197.8 414.2 197.8 c 423.471 197.8 425.429 184.912 428.6 176.2 c S Q 1 J 1 j 0.72 w n 417.8 198.52 m 428.487 196.636 437.684 212.313 435.8 223.0 c 434.362 231.155 425.235 238.118 417.08 236.68 c 419.358 238.958 421.778 241.0 425.0 241.0 c 439.585 241.0 449.853 221.164 447.32 206.8 c 445.282 195.244 439.626 183.813 428.6 179.8 c 422.12 144.16 m 420.498 139.704 421.647 134.553 425.0 131.2 c 430.385 125.815 437.184 123.28 444.8 123.28 c 447.91 123.28 452.36 124.49 452.36 127.6 c 452.36 133.448 444.506 137.11 438.68 136.6 c 452.36 127.6 m 454.232 125.728 458.84 128.553 458.84 131.2 c 458.84 135.474 454.328 138.374 450.2 139.48 c 458.84 130.12 m 461.242 129.0 464.6 132.149 464.6 134.8 c 464.6 138.916 460.965 141.742 457.4 143.8 c 452.911 146.391 448.104 144.7 443.0 145.6 c 440.317 146.073 437.726 146.194 435.8 148.12 c S n 383.96 151.0 m 394.859 156.082 402.581 162.118 413.48 167.2 c 404.354 163.878 394.891 159.104 386.48 163.96 c 380.248 167.558 376.758 172.848 373.16 179.08 c 369.6 171.445 366.68 164.824 366.68 156.4 c 366.68 150.331 371.504 145.754 376.76 142.72 c 380.706 140.442 384.443 139.12 389.0 139.12 c 392.293 139.12 396.2 141.587 396.2 144.88 c 396.2 148.874 392.371 150.968 390.08 154.24 c [/DeviceRGB] cs 1.0 0.884 0.711 sc f q n 383.96 151.0 m 394.859 156.082 402.581 162.118 413.48 167.2 c 404.354 163.878 394.891 159.104 386.48 163.96 c 380.248 167.558 376.758 172.848 373.16 179.08 c 369.6 171.445 366.68 164.824 366.68 156.4 c 366.68 150.331 371.504 145.754 376.76 142.72 c 380.706 140.442 384.443 139.12 389.0 139.12 c 392.293 139.12 396.2 141.587 396.2 144.88 c 396.2 148.874 392.371 150.968 390.08 154.24 c W n n 373.88 144.52 m 377.613 146.675 381.349 146.646 385.4 148.12 c 385.4 145.013 383.354 142.891 381.8 140.2 c 0.506 0.304 0.0 sc f n 366.68 150.64 m 371.363 147.936 377.256 151.496 381.08 155.32 c 375.44 155.32 370.668 157.812 366.68 161.8 c f n 367.4 165.4 m 372.183 162.639 377.33 160.271 382.52 162.16 c 377.674 165.553 373.238 168.197 370.28 173.32 c f Q n 383.96 151.0 m 394.859 156.082 402.581 162.118 413.48 167.2 c 404.354 163.878 394.891 159.104 386.48 163.96 c 380.248 167.558 376.758 172.848 373.16 179.08 c 369.6 171.445 366.68 164.824 366.68 156.4 c 366.68 150.331 371.504 145.754 376.76 142.72 c 380.706 140.442 384.443 139.12 389.0 139.12 c 392.293 139.12 396.2 141.587 396.2 144.88 c 396.2 148.874 392.371 150.968 390.08 154.24 c 371.0 135.52 m 366.94 134.042 363.8 130.12 363.8 125.8 c 363.8 122.116 369.116 120.76 372.8 120.76 c 374.796 120.76 376.671 120.917 378.2 122.2 c 383.882 126.968 389.798 128.952 395.48 133.72 c 397.42 135.348 398.8 137.706 398.36 140.2 c 398.06 141.899 397.062 143.026 396.2 144.52 c 365.24 122.56 m 362.368 121.515 357.32 122.744 357.32 125.8 c 357.32 130.829 360.525 135.165 364.88 137.68 c 356.96 125.8 m 354.568 125.8 353.0 128.808 353.0 131.2 c 353.0 136.565 358.435 141.64 363.8 141.64 c 368.564 141.64 372.428 141.533 377.12 142.36 c [/DeviceGray] cs 0.0 sc S n 403.4 180.88 m 403.4 170.178 412.449 163.869 417.8 154.6 c 419.986 150.814 419.337 144.931 423.56 143.8 c 428.56 142.46 435.83 142.536 437.6 147.4 c 443.52 163.666 437.24 181.96 425.0 194.2 c 415.031 204.169 406.169 211.231 396.2 221.2 c 391.454 225.946 377.035 222.41 378.2 215.8 c 379.718 207.189 381.028 199.972 385.4 192.4 c 389.949 184.52 395.16 176.7 404.12 175.12 c [/DeviceRGB] cs 1.0 0.884 0.711 sc f q n 403.4 180.88 m 403.4 170.178 412.449 163.869 417.8 154.6 c 419.986 150.814 419.337 144.931 423.56 143.8 c 428.56 142.46 435.83 142.536 437.6 147.4 c 443.52 163.666 437.24 181.96 425.0 194.2 c 415.031 204.169 406.169 211.231 396.2 221.2 c 391.454 225.946 377.035 222.41 378.2 215.8 c 379.718 207.189 381.028 199.972 385.4 192.4 c 389.949 184.52 395.16 176.7 404.12 175.12 c W n n 438.68 150.28 m 433.17 148.275 426.986 150.454 422.84 154.6 c 428.686 152.472 434.635 156.001 439.4 160.0 c 0.506 0.304 0.0 sc f n 439.4 164.68 m 431.503 163.288 424.385 165.351 417.44 169.36 c 424.862 169.36 431.173 170.689 437.6 174.4 c f n 435.8 179.8 m 426.973 176.587 418.771 179.249 409.52 180.88 c 416.571 184.951 423.462 188.414 431.48 187.0 c f n 426.8 193.12 m 416.904 191.375 408.032 190.964 399.8 185.2 c 402.754 193.316 409.6 197.801 417.08 202.12 c f n 415.64 202.84 m 406.686 202.84 399.994 198.317 392.24 193.84 c 398.374 199.974 402.58 207.075 410.96 209.32 c f n 407.0 211.48 m 399.879 207.369 393.601 205.151 386.48 201.04 c 390.437 207.894 394.746 213.283 401.6 217.24 c f Q n 403.4 180.88 m 403.4 170.178 412.449 163.869 417.8 154.6 c 419.986 150.814 419.337 144.931 423.56 143.8 c 428.56 142.46 435.83 142.536 437.6 147.4 c 443.52 163.666 437.24 181.96 425.0 194.2 c 415.031 204.169 406.169 211.231 396.2 221.2 c 391.454 225.946 377.035 222.41 378.2 215.8 c 379.718 207.189 381.028 199.972 385.4 192.4 c 389.949 184.52 395.16 176.7 404.12 175.12 c [/DeviceGray] cs 0.0 sc S n 327.8 277.0 m 331.14 275.071 337.798 273.227 338.6 277.0 c 344.577 305.121 347.023 328.079 353.0 356.2 c 353.873 360.306 349.574 364.471 345.44 365.2 c 339.89 366.179 332.775 361.827 332.48 356.2 c 330.997 327.904 329.283 305.296 327.8 277.0 c [/DeviceRGB] cs 0.0 0.544 0.716 sc q f Q 0.0 0.34 0.447 sc S n 336.8 354.76 m 340.997 352.803 345.967 351.744 349.76 354.4 c S n 320.6 229.48 m 320.6 232.479 324.801 233.8 327.8 233.8 c 331.014 233.8 335.0 231.614 335.0 228.4 c 335.0 226.008 331.992 224.44 329.6 224.44 c 325.916 224.44 320.6 225.796 320.6 229.48 c 0.0 0.544 0.716 sc q f Q 0.0 0.34 0.447 sc S n 324.2 230.2 m 326.376 228.374 329.944 227.654 332.12 229.48 c 332.781 233.23 333.619 236.17 334.28 239.92 c 334.944 243.685 324.2 247.343 324.2 243.52 c 324.2 238.763 324.2 234.957 324.2 230.2 c 0.0 0.544 0.716 sc q f Q 0.0 0.34 0.447 sc S n 356.6 279.52 m 366.711 279.52 374.382 270.302 377.84 260.8 c 379.426 256.442 370.799 247.784 368.48 251.8 c 365.388 257.156 362.785 264.4 356.6 264.4 c 351.107 264.4 346.957 261.746 342.2 259.0 c 338.202 256.692 342.432 267.819 345.08 271.6 c 347.944 275.69 351.607 279.52 356.6 279.52 c 1.0 0.884 0.711 sc f q n 356.6 279.52 m 366.711 279.52 374.382 270.302 377.84 260.8 c 379.426 256.442 370.799 247.784 368.48 251.8 c 365.388 257.156 362.785 264.4 356.6 264.4 c 351.107 264.4 346.957 261.746 342.2 259.0 c 338.202 256.692 342.432 267.819 345.08 271.6 c 347.944 275.69 351.607 279.52 356.6 279.52 c W n n 346.88 274.48 m 349.395 271.965 349.658 268.262 349.04 264.76 c 351.613 269.217 354.853 274.343 352.28 278.8 c 0.506 0.304 0.0 sc f n 355.16 279.16 m 358.438 275.882 356.685 270.765 355.88 266.2 c 359.277 270.249 363.203 275.663 360.56 280.24 c f n 361.28 262.96 m 362.919 265.799 364.32 268.679 367.4 269.8 c 364.825 265.341 366.68 260.549 366.68 255.4 c f Q n 356.6 279.52 m 366.711 279.52 374.382 270.302 377.84 260.8 c 379.426 256.442 370.799 247.784 368.48 251.8 c 365.388 257.156 362.785 264.4 356.6 264.4 c 351.107 264.4 346.957 261.746 342.2 259.0 c 338.202 256.692 342.432 267.819 345.08 271.6 c 347.944 275.69 351.607 279.52 356.6 279.52 c 326.36 277.72 m 321.988 276.949 321.061 268.619 324.2 265.48 c 325.669 264.011 327.523 263.32 329.6 263.32 c 332.965 263.32 335.787 266.808 336.08 270.16 c 323.12 267.28 m 321.629 264.697 321.915 260.917 324.2 259.0 c 325.69 257.749 327.654 258.28 329.6 258.28 c 333.337 258.28 337.407 262.59 336.44 266.2 c 0.505 0.303 0.0 sc S n 328.16 283.12 m 328.551 280.905 329.81 279.31 331.4 277.72 c 333.076 276.044 336.44 275.771 336.44 273.4 c 336.44 270.238 331.259 267.859 328.52 269.44 c 326.627 270.533 326.564 272.859 325.64 274.84 c 324.334 277.641 325.628 281.347 328.16 283.12 c 1.0 1.0 1.0 sc q f Q 0.505 0.303 0.0 sc S n 340.4 261.16 m 344.143 263.321 346.52 267.278 346.52 271.6 c 346.52 275.92 343.64 281.32 339.32 281.32 c 335.349 281.32 333.92 275.571 333.92 271.6 c 333.92 269.523 334.003 266.2 336.08 266.2 c 338.995 266.2 340.974 269.449 341.48 272.32 c 1.0 1.0 1.0 sc q f Q 0.505 0.303 0.0 sc S n 335.0 243.16 m 331.652 241.227 326.933 241.147 324.2 243.88 c 322.328 245.752 319.276 248.067 320.6 250.36 c 1.0 1.0 1.0 sc q f Q 0.505 0.303 0.0 sc S n 322.76 248.92 m 320.632 251.048 317.752 254.712 319.88 256.84 c 322.04 263.68 m 319.256 262.073 319.578 256.746 322.04 254.68 c 340.76 248.2 m 341.121 250.246 340.399 252.561 338.6 253.6 c S n 340.4 252.52 m 342.197 254.028 342.282 256.795 341.48 259.0 c 340.693 261.161 337.985 261.481 335.72 261.88 c 1.0 1.0 1.0 sc q f Q 0.505 0.303 0.0 sc S q n 373.16 179.08 m 364.174 194.645 356.6 208.628 356.6 226.6 c 356.6 236.263 359.363 246.996 368.12 251.08 c 370.042 251.976 371.887 251.795 373.88 252.52 c 374.68 255.506 375.6 257.814 376.4 260.8 c 462.8 419.2 l W n 0.18 w n 369.56 179.8 m 365.522 194.87 361.72 207.458 363.08 223.0 c 363.77 230.891 364.159 237.74 368.12 244.6 c 369.885 247.657 376.092 246.483 376.4 250.0 c 376.827 254.877 381.373 257.723 381.8 262.6 c 383.112 277.592 327.151 248.2 342.2 248.2 c 367.914 248.2 316.486 176.2 342.2 176.2 c 1.0 0.884 0.711 sc q f Q 0.505 0.303 0.0 sc S Q n 373.16 179.08 m 364.174 194.645 356.6 208.628 356.6 226.6 c 356.6 236.263 359.363 246.996 368.12 251.08 c 370.042 251.976 371.887 251.795 373.88 252.52 c 374.68 255.506 375.6 257.814 376.4 260.8 c S n 332.84 242.08 m 336.27 232.655 341.717 225.847 349.4 219.4 c 359.444 210.972 372.288 212.2 385.4 212.2 c 391.327 212.2 396.971 217.163 398.0 223.0 c 398.893 228.065 398.893 232.335 398.0 237.4 c 397.368 240.981 394.437 244.6 390.8 244.6 c 383.966 244.6 380.537 236.622 378.2 230.2 c 371.235 231.428 365.365 229.332 358.4 230.56 c 352.035 236.925 345.563 240.827 340.4 248.2 c 336.926 248.2 334.028 245.344 332.84 242.08 c 1.0 0.884 0.711 sc f q n 332.84 242.08 m 336.27 232.655 341.717 225.847 349.4 219.4 c 359.444 210.972 372.288 212.2 385.4 212.2 c 391.327 212.2 396.971 217.163 398.0 223.0 c 398.893 228.065 398.893 232.335 398.0 237.4 c 397.368 240.981 394.437 244.6 390.8 244.6 c 383.966 244.6 380.537 236.622 378.2 230.2 c 371.235 231.428 365.365 229.332 358.4 230.56 c 352.035 236.925 345.563 240.827 340.4 248.2 c 336.926 248.2 334.028 245.344 332.84 242.08 c W n n 333.56 238.12 m 337.185 240.213 340.894 240.28 345.08 240.28 c 341.515 238.222 338.726 236.233 336.08 233.08 c 0.506 0.304 0.0 sc f n 340.04 228.76 m 342.168 232.446 346.584 233.8 350.84 233.8 c 346.956 231.557 345.859 227.057 345.08 222.64 c f n 349.4 219.4 m 351.311 222.711 354.689 224.009 356.6 227.32 c 356.6 223.386 355.785 220.216 354.44 216.52 c f n 358.4 214.36 m 360.723 218.384 363.963 222.936 361.64 226.96 c 366.152 224.355 366.505 218.051 365.6 212.92 c f n 370.28 211.48 m 374.103 215.303 372.849 221.52 371.0 226.6 c 376.374 223.498 378.598 218.031 380.72 212.2 c f n 384.68 211.12 m 384.68 213.566 384.615 215.551 385.04 217.96 c 388.243 218.525 390.863 216.706 393.68 215.08 c f n 397.28 219.4 m 390.929 220.52 385.66 222.455 380.72 226.6 c 387.26 224.22 393.773 227.08 399.8 230.56 c f n 399.08 231.64 m 395.096 234.983 389.567 235.579 384.68 233.8 c 387.481 238.651 393.149 244.881 398.0 242.08 c f Q n 332.84 242.08 m 336.27 232.655 341.717 225.847 349.4 219.4 c 359.444 210.972 372.288 212.2 385.4 212.2 c 391.327 212.2 396.971 217.163 398.0 223.0 c 398.893 228.065 398.893 232.335 398.0 237.4 c 397.368 240.981 394.437 244.6 390.8 244.6 c 383.966 244.6 380.537 236.622 378.2 230.2 c 371.235 231.428 365.365 229.332 358.4 230.56 c 352.035 236.925 345.563 240.827 340.4 248.2 c 336.926 248.2 334.028 245.344 332.84 242.08 c 0.505 0.303 0.0 sc S n 403.4 295.0 m 410.901 301.294 419.399 302.451 428.6 305.8 c 434.16 297.86 423.367 288.995 418.52 280.6 c q f Q S 0.18 w n 414.2 291.4 m 418.776 295.976 422.276 300.045 427.88 303.28 c 430.319 296.578 423.104 291.103 418.52 285.64 c 1.0 1.0 1.0 sc q f Q 0.505 0.303 0.0 sc S n 362.36 287.08 m 365.147 271.271 374.378 258.386 388.28 250.36 c 393.703 247.229 398.673 243.513 404.84 244.6 c 409.124 245.355 413.027 245.764 416.36 248.56 c 421.818 248.56 425.852 254.345 426.8 259.72 c 426.598 262.029 424.529 263.221 423.2 265.12 c 425.891 272.515 425.335 280.265 421.4 287.08 c 415.741 296.881 402.515 302.471 391.88 298.6 c 382.348 295.131 376.932 287.669 367.4 284.2 c 365.702 285.389 364.058 285.891 362.36 287.08 c 1.0 0.884 0.711 sc f q n 362.36 287.08 m 365.147 271.271 374.378 258.386 388.28 250.36 c 393.703 247.229 398.673 243.513 404.84 244.6 c 409.124 245.355 413.027 245.764 416.36 248.56 c 421.818 248.56 425.852 254.345 426.8 259.72 c 426.598 262.029 424.529 263.221 423.2 265.12 c 425.891 272.515 425.335 280.265 421.4 287.08 c 415.741 296.881 402.515 302.471 391.88 298.6 c 382.348 295.131 376.932 287.669 367.4 284.2 c 365.702 285.389 364.058 285.891 362.36 287.08 c W n n 404.48 299.68 m 407.059 295.214 408.139 289.746 405.56 285.28 c 409.406 288.507 411.31 294.612 408.8 298.96 c 0.506 0.304 0.0 sc f n 409.52 297.88 m 412.738 290.978 413.176 284.586 413.84 277.0 c 416.724 283.186 416.105 289.358 414.92 296.08 c f n 414.56 296.44 m 417.448 290.247 418.52 284.554 418.52 277.72 c 419.72 282.198 420.045 286.115 419.24 290.68 c f n 367.76 285.28 m 369.237 279.768 369.845 274.555 373.88 270.52 c 371.937 275.858 372.44 280.68 372.44 286.36 c f n 372.8 287.8 m 374.702 283.722 378.11 281.617 380.36 277.72 c 382.12 282.554 380.72 286.976 380.72 292.12 c f n 381.8 254.68 m 377.904 257.949 375.877 262.991 376.76 268.0 c 377.794 273.866 386.237 280.828 390.8 277.0 c 395.43 273.115 394.618 266.754 397.64 261.52 c 399.05 259.078 400.75 257.084 403.4 256.12 c 406.918 254.839 412.83 262.687 413.48 259.0 c 413.927 256.468 419.394 256.773 420.68 259.0 c 421.229 259.951 422.854 260.922 423.56 260.08 c 426.046 257.117 424.03 251.574 420.68 249.64 c 413.194 245.318 408.444 237.4 399.8 237.4 c 1.0 1.0 1.0 sc q f Q 0.505 0.303 0.0 sc S Q 0.72 w n 362.36 287.08 m 365.147 271.271 374.378 258.386 388.28 250.36 c 393.703 247.229 398.673 243.513 404.84 244.6 c 409.124 245.355 413.027 245.764 416.36 248.56 c 421.818 248.56 425.852 254.345 426.8 259.72 c 426.598 262.029 424.529 263.221 423.2 265.12 c 425.891 272.515 425.335 280.265 421.4 287.08 c 415.741 296.881 402.515 302.471 391.88 298.6 c 382.348 295.131 376.932 287.669 367.4 284.2 c 365.702 285.389 364.058 285.891 362.36 287.08 c 382.88 265.48 m 386.046 266.956 389.739 266.403 392.6 264.4 c 387.56 266.2 m 389.89 257.506 396.199 248.2 405.2 248.2 c 408.712 248.2 411.323 250.146 414.2 252.16 c 412.797 251.506 415.532 248.92 417.08 248.92 c 0.505 0.303 0.0 sc S n 386.48 284.56 m 376.67 290.224 390.71 307.336 400.52 313.0 c 404.592 305.946 404.49 298.794 405.2 290.68 c q f Q S 0.18 w n 389.72 284.92 m 390.553 294.44 394.378 302.08 400.52 309.4 c 402.747 303.282 403.4 297.91 403.4 291.4 c 399.577 287.577 395.126 284.92 389.72 284.92 c 1.0 1.0 1.0 sc q f Q 0.505 0.303 0.0 sc S n 414.2 258.28 m 414.925 259.535 419.6 258.649 419.6 257.2 c 419.6 255.524 416.596 252.88 414.92 252.88 c 413.486 252.88 413.483 257.038 414.2 258.28 c f 0.72 w n 398.0 277.72 m 402.657 273.063 406.038 267.905 412.4 266.2 c 410.835 263.489 407.062 262.249 404.12 263.32 c 400.069 264.794 399.771 270.595 400.52 274.84 c 1.0 1.0 1.0 sc q f Q 0.505 0.303 0.0 sc S n 417.8 266.2 m 419.573 269.272 422.867 270.328 424.64 273.4 c 424.399 270.641 424.158 267.585 421.76 266.2 c 420.535 265.493 419.025 265.493 417.8 266.2 c 1.0 1.0 1.0 sc f q n 417.8 266.2 m 419.573 269.272 422.867 270.328 424.64 273.4 c 424.399 270.641 424.158 267.585 421.76 266.2 c 420.535 265.493 419.025 265.493 417.8 266.2 c W n n 420.68 267.64 m 421.278 269.283 423.125 269.646 424.64 270.52 c 424.428 269.319 423.56 268.5 423.56 267.28 c 422.539 267.1 421.578 267.122 420.68 267.64 c 0.505 0.303 0.0 sc f Q n 417.8 266.2 m 419.573 269.272 422.867 270.328 424.64 273.4 c 424.399 270.641 424.158 267.585 421.76 266.2 c 420.535 265.493 419.025 265.493 417.8 266.2 c 0.505 0.303 0.0 sc S n 401.24 283.48 m 403.52 284.31 405.787 281.981 407.0 279.88 c 408.501 277.281 409.939 272.733 412.76 273.76 c 410.812 273.051 408.795 273.443 407.0 274.48 c 403.695 276.388 404.699 281.867 401.24 283.48 c 0.459 0.275 0.0 sc f n 418.52 272.68 m 420.339 275.831 422.978 277.805 423.92 281.32 c 424.362 280.106 424.28 279.012 424.28 277.72 c 422.913 275.353 421.089 273.615 418.52 272.68 c f n 405.92 264.4 m 405.622 266.089 406.413 267.468 407.0 269.08 c 408.514 268.206 409.317 266.798 410.96 266.2 c 409.445 265.494 408.211 264.972 406.64 264.4 c 0.382 0.229 0.0 sc f 0.36 w n 381.8 245.32 m 390.12 250.124 398.112 252.52 407.72 252.52 c 380.0 249.64 m 389.893 253.241 398.672 254.878 409.16 253.96 c 420.68 253.96 m 429.543 252.397 436.88 253.96 445.88 253.96 c 422.12 256.12 m 430.023 258.238 436.742 257.939 444.8 259.36 c 423.2 257.92 m 430.181 261.175 436.842 260.686 444.08 263.32 c S 0.72 w n 391.16 244.96 m 392.96 247.48 l S Q snapxxx restore } store /figure4 { % for gg74 save /snapxxx exch def %%%%%%%%%%%%%%%%%%% 7 -8 translate % position on box %%%%%%%%%%%%%%%%%%%%%%% % new data for 800 to 5000 has been modified to include two additional points /data1k5k [ 800 118 50 900 100 39 1000 93.50 73 1100 82 77 1200 75 21 1300 70 26 1400 63 37 1500 59 53 1600 53 52 1700 50 16 1800 50 36 1900 47 61 2000 45 25 2100 41 98 2200 40 20 2300 39 40 2400 36 89 2500 35 15 2600 33.39 52 2700 31.49 67 2800 30 42 2900 30 36 3000 29 63 3100 27.63 84 3200 26 95 3300 25 49 3400 25 13 3500 25 30 3600 24.95 38 3700 24 38 3800 23 30 3900 22 54 4000 21 67 4100 20.50 99 4200 20 33 4300 19.99 15 4400 19.99 23 4500 19.99 25 4600 19.95 41 4700 18.99 7 4800 18.45 57 4900 17.99 27 5000 17.12 90 ] store % generate new data files /functbb {/curbucks exch store /yy 1 curbucks 120 div sub 0.85 div store yy 11 exp 0.55 mul yy 2 exp 0.35 mul add yy 1 exp 0.07 mul add 4200 mul 800 add } store % this curve peaks a little high... use it anyway for now /functst { /curbucks exch store /yy curbucks 120 div store 1 yy sub 3 exp -2.9 mul 1 yy sub 2 exp 2.9 mul add yy 0.4 mul add } store /binsperbuck [ 18 1 100 {/bucks exch store mark bucks bucks functbb bucks 1 sub functbb bucks 1 add functbb sub 2 div /bins exch store bins bucks functst /sellthru exch store sellthru bucks bins mul sellthru mul 100 mul /rawdol exch store rawdol % 30:1 bucks 0.97 mul 10 sub bins mul sellthru mul 100 mul /dol30 exch store dol30 % 10:1 bucks 0.9 mul 10 sub bins mul sellthru mul 100 mul /dol10 exch store dol10 % 3:1 bucks 0.67 mul 10 sub bins mul sellthru mul 100 mul /dol3 exch store dol3 ] } for ] store binsperbuck == % 150 150 10 setgrid gsave 0 0 mt 20 pu 20 pr 20 pd closepath 0.7 1 1 setrgbcolor fill grestore 20 20 showgrid 0 1 1 setrgbcolor line2 0 -0.60 mt 20.6 u 20 r 20.6 d 4 20 mt 20.6 d 8 20 mt 20.6 d 12 20 mt 20.6 d 16 20 mt 20.6 d 20 0 mt 20.6 l 20 5 mt 20.6 l 20 10 mt 20.6 l 20 15 mt 20.6 l % plot the bins versus dollars % binsperbuck format is [ dollars bin# bins sellthru rawcash dol30 dol3 ] 0.3 0.3 0.3 setrgbcolor % black net gain 0 1 binsperbuck length 1 sub {binsperbuck exch get /curarray exch store curarray 0 get 5 div % the price curarray 4 get 10000 div mt dot } for 1 0 0 setrgbcolor % plot 30:1 % black net gain 0 1 binsperbuck length 1 sub {binsperbuck exch get /curarray exch store curarray 0 get 5 div % the price curarray 5 get 10000 div mt dot } for 1 0 1 setrgbcolor % plot 10:1 % black net gain 0 1 binsperbuck length 1 sub {binsperbuck exch get /curarray exch store curarray 0 get 5 div % the price curarray 6 get 10000 div mt dot } for 0 0 1 setrgbcolor % plot 3:1 0 1 binsperbuck length 1 sub {binsperbuck exch get /curarray exch store curarray 0 get 5 div % the price curarray 7 get 10000 div mt dot } for /cstretch 0.02 store /sstretch 0.05 store /font1 /Helvetica-bold 0.85 gonzofont font1 black 0 -1.8 ($0) cc 4 -1.8 ($20) cc 8 -1.8 ($40) cc 12 -1.8 ($60) cc 16 -1.8 ($80) cc 20 -1.8 ($100) cc 10 -3.1 (price in integer dollars ) cc gsave 0 -0.3 translate -1.3 0 ($0) cr -1.3 5 ($50,000) cr -1.3 10 ($100,000) cr -1.3 15 ($150,000) cr -1.3 20 ($200,000) cr grestore % 15 18 (total bins = 18,400) cc gsave -6.7 12.5 translate 90 rotate 0 0 (total sales per integer dollar) cc grestore /yinc 1.0 store /kern 0.1 store gsave % make it smaller and less obnoxious 3.3 3.5 translate 0.8 dup scale 9.5 18 (black = zero process,\n infinite SBR) cl 9.5 15.5 (red = $10 process,\n 30:1 SBR) cl 9.5 13 (magenta = $10 process,\n 10:1 SBR) cl 9.5 10.5 (blue = $10 process,\n 3:1 SBR) cl grestore snapxxx restore } store %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Specific file info here /font; /Helvetica [0.7 0 0 0.7 0 0.4] gonzofont font1 /font- /Symbol 0.85 gonzofont aqua 0.33 setgray font0 /narrowx {/txtwide txtwide 8.5 sub store} store /widenx {/txtwide txtwide 8.5 add store} store /burpon {mark /burple cvx 0.33 /setgray cvx ] cvx % additional internal gonzo printlist exch 3 index exch put exch 1 add exch} def /burpoff {mark /aqua cvx 0 /setgray cvx ] cvx printlist exch 3 index exch put exch 1 add exch} def /darkenheader {save /headsnap exch store xpos 1 sub ypos 0.2 add translate 0.3 1 1 setrgbcolor 0 0 mt 3.2 pd burpwide pr 3.2 pu closepath fill headsnap restore} store % sssssssssssssssssssss % start marker /tabs [14] store 20 48.3 0.7 add % 1 sub (A |jTutorial |jand |jDirectory |jfor)cc 20 46.3 0.7 add % 1 sub (My |jGonzo |jPostScript |jUtilities) cc black font2 textleft 43 0.3 add % this one only need |h below (|h|/aqua |/staytint1 |3Don Lancaster Synergetics, Box 809, Thatcher, AZ 85552 copyright c2007 as |/surl |6GuruGram|1|/gurgrm01 |/tinton1 |6#79 |/surl http://www.tinaja.com|/tinaja |/surl don@tinaja.com|/maildon (928) 428-4073 |/aqua |/black |a|0F|b|1ew people appreciate how versatile and how powerful the |/su PostScript|1|/post01 general purpose computing language is. Or how fast and conveniently and cheaply and intuitively it now can handle an amazing variety of tasks for you. |h |/su PostScript|1|/post01 is especially superb for\274 |/staytint1 |h \267 Uniquely creating stunning world class graphics. \267 Acrobat .PDF file sourcing, editing, and |/su post editing|1|/pdfedit1.pdf . \267 Reading or writing most any diskfile in most any language. \267 Exploring common or exotic mathematical concepts. \267 Robotic or |/su Santa Claus Machine|1|/santa01 |/to |1controllers and sequences. \267 Programmatically writing sourcecode in other computer languages. \267 Using "real math" to generate complex charts or graphs. \267 Sourcing |/su real world|1|/begstuff |/to |1badges, bumperstickers, cards, ad specialties, etc\274 \267 Generating |/su encoders|1|/psnt |/to |1 or reconstruction of antique dialplates. \267 Visualizing solutions to complex |/su electromagnetic field problems|1|/rebound1.pdf . \267 Doing detailed |/su log file analysis|1|/histolog.pdf |/to |1of website activities. \267 Bitmap |/su distortion correction|1|/swingtlt.pdf |/to |1and ultra legible |/su super small lettering|1|/bmfauto1.pdf . \267 Fast and improved single file |/su Powerpoint Emulations|1|/gonzopow . \267 Creating |/su Fractal Ferns|1|/thefern |/to |1and graphically unique |/su Fibonacci Sunflowers|1|/muse89 . \267 Analyzing |/su Magic Sinewave|1|/magsn01 |/to |1energy efficiency developments. \267 Performing |/su word frequency|1|/wordfreq.pdf |/to |1and grade level analysis on published docs. \267 Doing ultra fancy complex |/su nonlinear graphical transforms|1|/nonlingr.pdf . \267 Fast and easy "what if?" exploration of engineering problems. |/black |h |/su PostScript|1|/post01 is best used when its batch mode one-pass interpreted processing output creates a |/to graphics output|/tx file, an information |/to reporting log file|/tx , or one or more new |/to disk based files|/tx in most any format or language. |h It can be useful to compare and contrast PostScript with JavaScript\274 |h|/staytint1 |6STYLE \320 |1PS shares the reverse polish, stack oriented, loosely typed extensible heritage of Forth; JS has a more conventional C language class architecture. |h ) cl startnewpage /tabs [7] store (|/staytint1 |6REACH \320 |1PS can easily read or write any host based disk file in most any language. JS is specifically and absolutely forbidden from ever doing so. |h |6GRAPHICS \320 |1PS is a world class superb graphics defining technology; JS graphics as normally used are vastly inferior and frustratingly second rate. |h |6INTERACTIVITY \320 |1PS is pretty much limited to batch tasks involving creation of graphics files, log files, and host disk read/writes. JS can be exceptionally real time user interactive. |h |6MATH \320 |1PS uses 32 bit math but usually only reports to a |/su somewhat|1|/ps8dprp1.pdf |/su extendible|1|/ps8dprp1.pdf |/to |1six decimal places. JS has a full 64-bit floating point capability. |h |6TRIG \320 |1PS works directly in degrees, while JS works directly in radians. |h |6VARIABLE SCOPE \320 |1PS variables are normally global unless defined otherwise. JS variables are normally local unless declared otherwise. |h |6THE STACK \320 |1 Elegant stack manipulation is central to PS capabilities. The JS stack is an optional and seldom used sideshow. |h |6CALCULATED VARIABLES \320 |1These are easily done with PS, but require a much more obtuse |/to form["fa00"]["value"]|/tx |/to |1 approach with JS. |h |6LEARNING CURVE \320 |1Much of PS is intuitive and easily picked up. JS details can be mind-boggling and maddeningly infuriating. |h |6PASSING VARIABLES BETWEEN PROCS \320 |1Is vastly simpler and more intuitive in PS. JS is far more obtuse but can be more flexible. |h |6FORM REFERENCING \320 |1Largely unused and unneeded in PS, but confusingly and centrally essential to JS. |h |6NUMERIC ROUNDOFFS \320 |1A rare event in PS, but untreated |/to 3.99999999|1 results in JS are common and may need programmatic correction. |h |c Getting |jStarted |jwith |jPostScript |d The obvious starting point with |/su PostScript|1|/post01 is to download the free |/su PostScript|/PLRM |/su |/su Language Reference Manual|1|/PLRM . Follow this up with this tutorial on |/su Using Acrobat|/distlang.pdf |/su Distiller as a General Purpose Host Computer|1|/distlang.pdf . |h Next, visit the |/su PostScript|1|/post01 areas of |/su My Website|1|/tinaja , perhaps starting off with our |/su PostScript Beginner Projects|1|/begstuff , our earlier reprint collection of |/su PostScript Secrets|1|/pssecrets , or a truly ancient and outdated demo of our |/su PostScript Show and Tell|1|/psnt . |h For details on pagemaking and more advanced layout concepts, you can study most any of our example |/to .PSL|/tx source code documents you'll find |/su here|1|/gurgrm01 or |/su here|1|/muse01 . |h ) cl startnewpage /tabs [7] store (|1Here is how you create and run your own PostScript program\274 |6|/shiftin |/aqua |/burplebox10.5 |/staytint1 |h 1. Install |/su Acrobat Distiller|1|/adobe |/to or its |/su GhostScript|/ghost |/to clone. Distiller is included in full Acrobat code, but is NOT provided in free Acrobat Reader only downloads. |h|6 2. Using any word processor or editor, create and save your PostScript program as an ordinary ASCII textfile. |h 3. Send the program to Distiller. |h 4. View your results as a .PDF file, as a reporting log file, or as a newly created or modified custom disk file. |h |1|/shiftout |/aqua |/black |h The usual way you use PostScript is "not quite" WYSIWIG. Typically, a second or two will be required for visual results to appear. Creative use of split or dual screens can greatly minimize any time delays. |h Try it with your very first PostScript program\274 |6|/shiftin |/burple |/burplebox3 |/staytint1 |h %!PS 36 sin == |h |1|/shiftout |/aqua |/black |h This should report the sin of 36 degrees to you as 0.587785. We'll shortly see another PostScript programming example that is somewhat more complex. |h |c My |jGonzo |jUtilities |d Many years ago, I started writing an ongoing series of |/su Gonzo Utilities|1|/gonzoutils that you can download |/su here|1|/gonzoutils |1. These are basically |/to a set of self-activating dictionaries|/tx that you can place (|jor run|j) at the beginning of your own |/su PostScript|1|/post01 programs. They can enormously simplify and speed up many common |/su PostScript|1|/post01 tasks. |h They are also easily expanded upon to meet your own special needs. You can think of these as a mix of custom combined page making, illustration, analysis, and presentation routines. |h What the Gonzo utilities basically do is add many hundreds of new commands to the PostScript language. These commands can be used by themselves, or as tools to generate your own custom and fancier commands. Very often, the gonzo commands let you write PostScript code that is |/to significantly shorter and faster|/tx than other approaches. Sometimes ridiculously so. |h About half of the Gonzo commands involve superb text typesetting features. Such as a premium grade word breaking progressive fill microjustify that can include ) cl startnewpage /tabs [7] store (|1bells and whistles like drop caps, kerning, and even hanging punctuation. The other half of gonzo is an eclectic mix of convenience operators, graphing aides, high quality electronic schematic drawing tools, and code that lets you quickly generate real world products. |h Here is how you use the Gonzo utilities\274 |6|/shiftin |/aqua |/burplebox13.5 |/staytint1 |h 1. Download a free copy of the Gonzo Utilities from |/su here|1|/gonzoutils |/to . |/to Place that copy in an accessible host directory. |h 2. Add a line similar to (|jC:\\\\\\\\gonzo\\\\\\\\gonzo.ps|j) run near the beginning of your PostScript program. Note that the FULL pathname must be specified and a DOUBLE reverse slash needs used every time a single reverse slash is to be passed to Windows or a similar host. |h 3. Write and save your PostScript program as an ordinary ASCII textfile in the usual manner. |h 4. Send the program to Distiller. Then view the generated .PDF file, log file, or custom disk file as usual. |h |1|/shiftout |/aqua |/black |h You also have the option of extracting only one or two Gonzo routines and placing them early into your code. Ferinstance, our |/to mergestr|/tx string merging routine has lots of possible stand-alone uses. |h As does |/to showgrid|/tx , |/to random|/tx , and dozens of the others. |h You might also want to place your own extended Gonzo commands very near the beginning of your PostScript code. Such as a task specific page making or layout routine that expands on the basic justification procs. |h A Gonzo proc named |/to colcheck|/tx is used as your normal link between the internal Gonzo typesetting code and your custom (|jand often job specific|j) layout routines. |h |c An |jExample |d Before we look at the Gonzo commands in detail, let's look at a genuine and recent real world problem that shows how fast, simple, and powerful these utilities can be. |h Someone on an electronics newsgroup posed the question "What would a waveform look like that had all harmonics present and equal in amplitude?" |h We can approach this by doing an actual plot of the target waveform. Starting with a fundamental and adding the needed harmonics. |h Here is the annotated Gonzo code to quickly plot the answer\274 ) cl startnewpage /tabs [16] store (|6|/shiftin |/burple |/burplebox16.5 |/staytint1 |h %! PS |t% normal header % Equal Harmonic gen |t% title |h (C:\\\\\\\\gonzo\\\\\\\\gonzo.ps) run |t% run Gonzo |h 50 50 10 setgrid |t% Create a grid 40 20 showgrid |t% Show part of the grid /totalharms 20 store |t% Set # of harmonics |h 0 10 mt |t% Set initial position 0 0.1 720 {/priang exch store |t% For one full cycle priang 20 mul 90 div |t% Set x position 0 1 1 totalharms {/curharm |t% For each harmonic, exch store priang curharm |t% calculate value mul sin add} for 0.67 mul 10 add lineto} for |t% |t% and set y position line1 stroke showpage |t% Draw and show |h |1|/shiftout |/aqua |/black And here is what your .PDF file result looks like\274 |/autofig1 |h|y|y|y|y We see that a harmonic limited version would have a narrow positive impulse just beyond zero degrees and a narrow negative impulse just before 360 degrees. This waveform could prove extremely useful in ultrawideband communications apps. |h This figure was slightly enhanced by tinting the grid and adding axis callouts. Both tasks are trivial additions when using the |/su Gonzo Utilities|1|/gonzoutils . ) cl startnewpage /fakebar { mark /gsave cvx % create deferred routine /currentpoint cvx /mt cvx /staytint1 cvx 0.10 /setlinewidth cvx 0.75 /u cvx /grestore cvx /currentpoint cvx /exch cvx 0.12 /add cvx /exch cvx /mt cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch } store /tabs [6] store (|h |c Embedded |jGonzo |jJustification |jCommands |d The text justification portions of the Gonzo Utilities offer you some incredibly sophisticated and advanced features. These include automatic word breaks, progressive two-stage or even three-stage fill justification, left-center-right column or freeform justification, initial drop caps, hanging punctuation, tabbing, global and local character and space kerning, font microsizing, keystoning, overstriking, conditional page anti-orphaning, programmable macros, and dual parallel operation for simultaneous figures and body text. |h Being proudly non-WYSIWYG, these features are (a) fully programmable and extensible, and (b) totally device and platform independent. With (c) all source code freely available and easily modified. |h Just about any additional text justification feature can be easily added. The justification routines also form the core utilities for page layout or "pagemaking" software of arbitrary complexity. |h Gonzo uses the "embedded command" concept of placing markers |/to inside|/tx text strings. The strings can be independent short |/to callouts|/tx useful in figures, much longer |/to document strings|/tx holding up to 65,000 page or multi-page characters, or can use the older PostScript |/to currentfile|/tx methods without length limits. |h Instead of the escape sequences of early typesetters or the |/to , |/tx marking conventions of HTML, Gonzo often will use alterable markers consisting of a reserved self-delimiting vertical bar followed by a single letter. Gonzo can also embed most any space-delimited PostScript command sequence into your text strings. |h An |/to |/tx control character or another printing marker can be substituted. |h Here is a summary of the more important gonzo embedded text commands\274 |/to |/fakebar 0 thru |/fakebar 9 |t CHANGE FONT |/to |/fakebar :|/tx , |/to |/fakebar ;|/tx , |/to |/fakebar =|/tx , |/to |/fakebar -|/tx , |/to |/fakebar +|/tx , |t |1When used in a Gonzo string, changes to a font predefined as |t variables |/to font0|/tx through |/to font+|/tx using |/to gonzofont|/tx . |h |t Fonts are predefined in one of two ways by |/to gonzofont|/tx :. |t |1Use |/to font0 /Helvetica 10 gonzofont|/tx for normal sizing. |t Use |/to font0 /Helvetica [ wide lean climb high xshift yshift] |t |/to gonzofont|/tx for fancy matrix sizing. For instance, a |/to yshift|/tx |t can be used for superscripting or subscripting. |h |t Additional fonts can be defined as needed or block switched in |t as style groups. |h |t Self delimiting. ) cl startnewpage /tabs [6] store /fakebar { mark /gsave cvx % create deferred routine /currentpoint cvx /mt cvx /staytint1 cvx 0.10 /setlinewidth cvx 0.75 /u cvx /grestore cvx /currentpoint cvx /exch cvx 0.12 /add cvx /exch cvx /mt cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch } store (|/to |/fakebar a thru|j |/fakebar f |t MACRO COMMANDS |h |t |1When used in a Gonzo string, executes your predefined |t |/to amacro|/tx through |/to fmacro|/tx commands at actual print time. |h |t Macros are particularly useful for indenting and outdenting titles |t while changing their fonts and sizes. These usually will end up |t document specific. And defined in the document header. |h |t There are six other macros of upper case |/to |/fakebar U|/tx thru |/to |/fakebar Z|/tx . |t More are easily added. |h |t |1Commands are case sensitive and self-delimiting. |t The macros must |/to not|/tx disturb stack values! |/to |/fakebar /anystuff |t INSERT POSTSCRIPT COMMAND |h |t |1When used in a Gonzo string, a defined PostScript proc |t whose name does not conflict with any other Gonzo proc can |t be executed. The proc must |/to not|/tx disturb stack values! |h |t The command |/to must|/tx be followed by a space that will be |t automatically consumed in processing. Lack of this space will |t cause a word or line collision. Or an error message. |h |t This proc is normally executed |/to immediately|/tx during the |t Gonzo processing time. If the proc is to end up |/to deferred|/tx |t so it executes during print time, a |/to printlist exch 3 index |t |/to exch put exch 1 add exch|/tx must be properly built into the |t correctly deferred proc definition as noted below. |h |t Note that only the name of the proc should get executed |t |/to between|/tx Gonzo strings. The name of the proc preceded by |t a bar and a slash should get executed |/to inside|/tx Gonzo strings. |h |t An |/to undefined|/tx embedded PostScript command (|jsuch as |/to |/fakebar /xxxx|/tx |j) |t can be used as an |/to error trapping debugger|/tx . This can be most |t useful to find out exactly |/to where|/tx in a long or a complex doc |t another error problem took place. |/to |/fakebar h |t HALF NEGATIVE LINEFEED |h |t |1When used in a Gonzo string, |/to increases|/tx the value of |/to ypos|/tx by |t one half of |/to yinc|/tx . |h |t |t When used on an in-string line by itself, adds one half a line of |t white space ledding between any paragraphs. This often gives |t you the best viewability for modern text presentation. |h |t Self-delimiting. |h ) cl startnewpage (|/to |/fakebar i |t PROVIDE INITIAL DROP CAP |h |t |1Knocks out a text hole to make room for an initial drop cap. |t Does this by setting |/to indententcount|/tx to the number of lines |t the cap will take up; by setting |/to dropflag|/tx to true so that |t indentcount lines will be indented by |/to dropindent|/tx ; and by |t resetting the vertical position to the initial top line. |h |t The initial character font is subscripted as needed so its |/to top|/tx |t will be flush with the top of the top text line. |h |t A raised initial cap is much simpler and can be done by placing |t one larger, bolder, and colored initial character. |h |t Self-delimiting. |/to |/fakebar j |t POSITIVE UNIT KERN |h |t |1When used in a Gonzo string, |/to adds|/tx one |/to kern|/tx unit of whitespace |t between current adjacent characters. |h |t |/to kern|/tx is normally 1.0 for full size or 0.1 when on a 10X grid. |h |t Used to "add a little daylight" to anything that looks a tad too |t crowded. Especially useful before or after parenthesis. |h |t Self-delimiting. Global kerning is separately available by using |t |/to cstretch|/tx and |/to sstretch|/tx . |/to |/fakebar k |t NEGATIVE UNIT KERN |h |t |1When used in a Gonzo string, |/to subtracts|/tx one |/to kern|/tx unit of |t whitespace between current adjacent characters. |h |t |/to kern|/tx is normally 1.0 for full size or 0.1 when on a 10X grid. |h |t Used to "close in" adjacent characters that appear too far apart. |t Useful for converting "AWARD" to "A|kW|kARD" and such. |h |t Self-delimiting. Global kerning is separately available by using |t |/to cstretch|/tx and |/to sstretch|/tx . |/to |/fakebar l |t FULL POSITIVE LINEFEED |h |t |1When used in a Gonzo string, |/to decreases|/tx the value of |/to ypos|/tx by |t a full |/to yinc|/tx of ledding . |h |t |t Useful to efficiently "tab downward", replacing repeated carriage |t returns. Normally should |/to not|/tx be used in middle of a text line. |h |t Self-delimiting. ) cl startnewpage /overstrikechar (~) store /overstrikeht 0.51 store % /redefoverstrike { mark /overstrikechar (\320) /store cvx /overstrikeht 1.2 /store cvx ] cvx % printlist exch 3 index exch put exch 1 add exch } store /resetos {/overstrikechar (\320) store /overstrikeht 0.57 store} store (|/to |/fakebar n |t PARAGRAPH NOBREAK ORPHAN ELIMINATOR |h |t |1When placed in a Gonzo string, checks to see if you are within |t five lines of the page bottom. And then forces a column or page |t change. Useful to eliminate one or two line orphans at the top of |t the next column or page. Also prevents a header from appearing |t too far down the page. Self-delimiting. |/to |/fakebar o |t OVERSTRIKE CHARACTER |h |t |1Useful for placing two characters on top of each other without |t repositioning. For heading on down the can|oyon, or for those |/resetos |t Q|o complementary logic notations. |h |t Uses |/to overstrikechar|/tx |1 to select the secondary character and |t |/to overstrikeht|/tx to set the |/to vertical offset|/tx |1of the secondary |t character. These values will have to be redefined for each |t |/to different|/tx |1overstrike use. Self-delimiting. |/to |/fakebar p |t NORMAL PARAGRAPH INDENT |h |t |1Sets or resets paragraph indentation to the |/to pm|/tx |1value. Alternate |t to |/to |/fakebar z|/tx |1 which zeros any paragraph indent. Self-delimiting. |/to |/fakebar s |t STOP COLCHECK |h |t |1Sets a high negative value to |/to ybot|/tx so that relative in-figure |t positioning will not trip a main text column or page action. |t Usually internal to a |/to save-restore|/tx context. Self-delimiting. |/to |/fakebar y |t FULL NEGATIVE LINEFEED |h |t |1When used in a Gonzo string, |/to increases|/tx the value of |/to ypos|/tx |t by |/to yinc|/tx . When used on an in-string line by itself, removes |t one line of white space between text lines. |h |t Useful to "cancel out" a line of pure commands so they leave no |t text ledding in their position. Self-delimiting. |/to |/fakebar z |t ZERO PARAGRAPH INDENT |h |t |1Sets or resets paragraph indentation to zero, ignoring the |/to pm|/tx |t |1value. Complements |/to |/fakebar p|/tx |1 which sets or resets any paragraph |t indent. Self-delimiting. |/to |/fakebar C |t SWITCH TO CENTER JUSTIFY |h |t |1Selects the center justify mode for all text to follow. Alternate |t choices are |/to |/fakebar F|/tx |1for fill, |/to |/fakebar L|/tx |1for left|/tx , |1and |/fakebar R|/tx |1for right. ) cl startnewpage (|h |/to |/fakebar F |t SWITCH TO FILL JUSTIFY |h |t |1Selects the fill justify mode for all text to follow. Alternate |t choices are |/to |/fakebar C|/tx |1for center, |/to |/fakebar L|/tx |1for left|/tx , |1and |/fakebar R|/tx |1for right. |/to |/fakebar L |t SWITCH TO LEFT JUSTIFY |h |t |1Selects the left justify mode for all text to follow. Alternate |t choices are |/to |/fakebar C|/tx |1for center, |/to |/fakebar F|/tx |1for fill|/tx , |1and |/fakebar R|/tx |1for right. |/to |/fakebar P |t SWITCH TO CUSTOM JUSTIFY "P" |h |t |1Selects a custom justify macro that the user has preprogrammed |t to a name of |/to justP|/tx . Useful for menu justify, supertabbing, |t keystoning, or other specialized text formatting apps. |/to |/fakebar Q |t SWITCH TO CUSTOM JUSTIFY "Q" |h |t |1Selects a custom justify macro that the user has preprogrammed |t to a name of |/to justQ|/tx . Useful for menu justify, supertabbing, |t keystoning, or other specialized text formatting apps. |/to |/fakebar R |t SWITCH TO RIGHT JUSTIFY |h |t |1Selects the right justify mode for all text to follow. Alternate |t choices are |/to |/fakebar C|/tx |1for center, |/to |/fakebar F|/tx |1for fill|/tx , |1and |/to |/fakebar L|/tx |1for left. |/to |/fakebar U thru|j |/fakebar Z |t MACRO COMMANDS |h |t |1When used in a Gonzo string, executes your predefined |t |/to Umacro|/tx through |/to Zmacro|/tx commands at actual print time. |h |t Macros are particularly useful for indenting and outdenting titles |t while changing their fonts and sizes. These usually will end up |t document specific. And defined in the document header. |h |t There are six other macros of lower case |/to |/fakebar a|/tx thru |/to |/fakebar f|/tx . |t More are easily added. |h |t |1Commands are case sensitive and self-delimiting. |t The macros must |/to not|/tx disturb stack values! |h |c Gonzo |jText |jJustification |jCommands |d There are a few service routines built into the Gonzo text justification. These are normally |/to used directly as PostScript commands|/tx , rather than being embedded into strings for later evaluation. |h Here are some of the more common or more useful text variables and procs\274 ) cl startnewpage /tabs [6 17] store (|h |/to -xpos- -ypos- (text string) cc |t|t CALLOUT CENTER JUSTIFY |h |t |1Center justifies a text string on the |/to -xpos-|/tx value, starting with |t a vertical text baseline of |/to -ypos-|/tx . Normally increments downward |t as |/to -yinc-|/tx and is evaluated by |/to colcheck|/tx . Does |/to NOT|/tx respond to |t |/to txtwide|/tx . This allows wider titles than text columns. |h |t Use internal |/to \\\\n|/tx or actual newline chars for multiple lines. |/to -xpos- -ypos- (text string) cf |t|t CALLOUT FILL JUSTIFY |h |t |1Fill justifies a text string on the left |/to -xpos-|/tx value, starting with |t a vertical text baseline of |/to -ypos-|/tx . Normally increments downward |t as |/to -yinc-|/tx and is evaluated by |/to colcheck|/tx . Width of flush column is |t set by |/to txtwide|/tx . |/to -xpos- -ypos- (text string) cl |t|t CALLOUT LEFT JUSTIFY |h |t |1Left justifies a text string on the left |/to -xpos-|/tx value, starting with |t a vertical text baseline of |/to -ypos-|/tx . Normally increments downward |t as |/to -yinc-|/tx and is evaluated by |/to colcheck|/tx . Width of ragged right |t column is maximum set by |/to txtwide|/tx . |/to /colcheck {custom user proc} store |t|t COLUMN TESTER FOR PAGE LAYOUT |t |/to colcheck|/tx is the crucial link between the Gonzo justification procs |t and any user defined custom page layout or formatting code. |h |t Normally, |/to colcheck|/tx will attempt to start a new line that is |/to yinc|/tx |t below the previous one. If |/to ybot|/tx is negative, then a custom action |t is taken to move on to the next column or the next page. |h |t The user normally places their |/to colcheck|/tx code early in their |t program but |/to after|/tx the Gonzo procs are installed and run. |h |t A custom |/to colcheck|/tx routine will normally adjust |/to xpos|/tx and |/to ypos|/tx |t to go to the next column, or will do a |/to showpage|/tx and a setup as |t needed for the following page. |/to -xpos- -ypos- (text string) cr |t|t CALLOUT RIGHT JUSTIFY |h |t |1Right justifies a text string on the right |/to -xpos-|/tx value, starting with |t a vertical text baseline of |/to -ypos-|/tx . Normally increments downward |t as |/to -yinc-|/tx and is evaluated by |/to colcheck|/tx . Width of ragged left |t column is maximum set by |/to txtwide|/tx . ) cl startnewpage /tabs [6 17] store ( |/to /cstretch 0.15 store |t|t SET GLOBAL CHARACTER KERNING |h |t |1Adds a small amount of white space to each and every character. |t Useful to "lighten" text or to prevent collisions on very small |t point sizes. Global space kerning is separately set with |/to sstretch|/tx . |h |t A little of this goes a long way, except for intentional special |t effects. Use 0.1 or 0.15 for normal text or 0.01 or 0.015 when |t you are on a 10X grid. |/to /fname /family 10 gonzofont |t|t DEFINE FONT FOR GONZO USE |/to ~ or ~ |/to /fname /family [ wide lean climb high xshift yshift] gonzofont |t |1Defines and creates fonts for internal Gonzo use. |/to fname|/tx is |t typically |/to font0|/tx through |/to font-|/tx . |/to /family|/tx is the normal exact |t PostScript font name, such as |/to /Helvetica|/tx . |h |t In the first instance, one numeric sets the point size. Points can |t be fractional such as |/to 9.557|/tx points or microsized if desired. |h |t In the second instance, the full font array is used to set the font |t characteristics. The first value is the |/to width|/tx of the font. The |t second value is the amount of font |/to lean|/tx and is normally used to |t create italic effects. The third value is the amount of font |/to climb|/tx |t and is normally reserved for rotations, isometric, or any other |t distortions. The fourth value is the |/to height|/tx of the font. |h |t The fifth value is the amount of |/to horizontal offset|/tx of the font, |t and almost always will remain at zero. The sixth value is the |t amount of |/to vertical offset|/tx of the font. This is enormously useful |t when creating superscripts or subscripts. |h |t Note that |/to gonzofont|/tx only |/to creates|/tx a Gonzo font. The font |t must be separately activated. Perhaps by an immediate |/to font1|/tx |t or by embedding a |/to |/fakebar 0|/tx in the string currently being justified. |/to (list string) cck |t|t KEYSTONE JUSTIFY |/to (list string) clk |/to (list string) crk |h |t |1Attempts to do a keystone justify by "unifying" the progressive |t widths in a sequential list. Per |/su this example|1|/muse131.pdf . |h |t |/to cck|/tx does a centered keystone. |/to clk|/tx will do a flush left keystone. |t |/to clr|/tx does a flush right keystone. The relative lengths of the early ) cl startnewpage /setred {mark 1 0 0 /setrgbcolor cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } store /setblack { mark 0 0 0 /setrgbcolor cvx ] cvx printlist exch 3 index exch % stuff into gonzo printlist put exch 1 add exch % increment gonzo list count } store /kern 0.1 store ( |t list entries versus the later ones determines whether the keystone |t will be fatter at the top or bottom. Considerable adjustment of |t the text line kerning may be needed to get decent results. |/to /lastlinestretch 0.2 store |t|t LIGHTEN LAST FJ PARAGRAPH LINE |h |t |1A typical line in a fill justified paragraph will normally be |t stretched somewhat. If the final line is |/to not|/tx stretched, it may |t appear "too dark". This somewhat arcane adjustment stretches |t final fill justified paragraph lines that are less than 80 |t percent of maximum. Use a value of 0.0 to defeat. |/to -xpos- -ypos- (text string) mj |t|t MENU JUSTIFY |h |t |1Does a "menu justify" by replacing multiple spaces with constant |t pitch dots. Not included in this version, but is found |/su here|1|/begstuff . |/to [{proc1}{proc2}...{procn}] |t|t THE PRINTLIST |h |t |1Fancy text justification is inherently a two step process. Each line |t first needs analyzed to find out what is needed in the way of font |t changes, kerning, stretches, and such. Each and every internally |t consistent element is then placed into a |/to printlist|/tx for a sequential |t |/to forall|/tx evaluation at print time. |h |t Many embedded commands will automatically be deferred till |t print time. However, any special effects (|jsuch as making one |t word |/setred |6red|/setblack |1|j) that are defined as PostScript procs may execute |t |/to immediately|/tx instead of at the deferred print time. |h |t We will see how to insert new commands into the printlist below. |t The magic incantation you will need is |/to printlist exch 3 index |t |/to exch put exch 1 add exch|/tx . |/to /tabs [10 20 30 40] store |t|t THE TAB LIST |t |1Defines the position of simple tabbing used in the left justify |t modes. A single |/to |/fakebar t|/tx moves you absolutely to the next tab |t value. A double |/to |/fakebar t |/fakebar t|/tx moves you absolutely to the second tab |t value, and so on. Tab values need not be sequential. |/to /txtwide 43 store |t|t SET JUSTIFICATION TEXT WIDTH |h |t |1Sets the maximum column width of all justify modes except |/to cc|/tx . ) cl startnewpage ( |/to /cmacro (znhL7) stringmacro def |t|t STRINGMACRO |t |1A convenience tool to aid in macro building. Executes every |t character in the string as an |/to individual|/tx embedded command. |h |t Ferinstance, in the above title positioning macro, |/to (z)|/tx defeats |t any paragraph margins, |/to (n)|/tx prevents starting a title at the |t very bottom of the screen or page, |/to (h)|/tx does a half linefeed |t upwards to improve ledding, |/to (L)|/tx switches to a left justify, |t and |/to (7)|/tx picks |/to font7|/tx . Other PostScript procs can precede or |t follow stringmacro use. |/to /sstretch 0.15 store |t|t SET GLOBAL SPACE KERNING |h |t |1Adds a small amount of white space to each and every space. |t Useful to "lighten" text or to prevent collisions on very small |t sizes. Global character kerning is separately set with |/to cstretch|/tx . |h |t A little of this goes a long way, except for intentional special |t effects. Use 0.1 or 0.15 for normal text or 0.01 or 0.015 when |t youare on a 10X grid. |/to -xpos- -ypos- (data string) cst |t|t SUPER TABBING |h |t |1Does an exotic "supertabbing" where individual column entries |t can have their own fonts, their own justifications, and their |t own special effects. Any occurrance of |/to two or more|/tx sequential |t spaces in the data string is treated as a "move to next column" |t tab command. A |/to stab|/tx array sets each column's values. |h |t Not included in this version, but is found |/su here|1|/begstuff . |/to /xpos 45 store |t|t SET TEXT HORIZONTAL POSITION |h |t |/to xpos|/tx is normally used automatically to set the start of |t a text line. It may also be preset or manually overridden. |/to /ybot 0 store |t|t SET COLUMN BOTTOM LIMIT |h |t |/to ybot|/tx is normally used automatically to set the bottom of page |t trip point for a new column or page move. This may also be |t preset or manually overridden. |/to /yinc 10 store |t|t SET TEXT LINE VERTICAL SPACING |h |t |/to yinc|/tx is normally used automatically to set the ledding between |t text lines. It may also be set or overridden. ) cl startnewpage /tabs [12 6 17] store ( |/to /ypos 45 store |t|t|t SET TEXT VERTCAL POSITION |h |t|t |/to ypos|/tx is normally used automatically to set the vertical |t|t position of a text line. It may also be preset or rewritten. |h |c Additional |jGonzo |jText |jJustification |jVariables |d Most of the other variables used in Gonzo text justification are somewhat self-explanatory. Here is a summary of many of these commands\274 |6|/shiftin |/aqua |/burplebox24 |/staytint1 |h /altescapechar 124 def |t% alternate "escape" key ( |/fakebar ) /dropflag false def |t% use a drop cap? /dropcount 3 def |t% drop cap lines indented /dropindent 40 def |t% drop cap width reserved /escapechar 27 def |t% original "escape" key /hangflag true def |t% allow hanging punctuation? /hangfract 0.6 def |t% hung punctuation hang amount /justifylastline false def |t% fill justify last paragraph line? /justx (justL) def |t% running justification mode /kern 1 def |t% default individual kern amount /oktoadvance true def |t% don't go to next line if false /oktoprint true def |t% print suppression flag /overstrikechar (\320) def |t% overstrike character /overstrikeht 5.5 def |t% overstrike vertical shift /pm 10 def |t% normal paragraph indent /rslashchar 92 def |t% "reverse slash" key -alterable- /rslashok true def |t% allow reverse slash processing? /stringmode false def |t% string or currentfile source? /spacecharratio 6 def |t% fj ratio of space to char stretch /sstretch -0.3 def |t% minimum space kerning /txtwide 350 def |t% width of column /ypara 0 def |t% extra paragraph end v space /ybot -9999 def |t% default bottom reference |h |1|/shiftout |/aqua |/black |c Deferring |jExecution |jUntil |jPrint |jTime |d When setting fancy text, Gonzo normally does a whole line at a time. To do this, there is a current Gonzo |/to printlist|/tx . The printlist is an array of executable procs that are done in strict sequential order as a |/to forall|/tx loop. |h Each proc typically might be a group of words having the same font, point size, and weight. Several procs might be needed per line if there are size, kerning, italic, bold, or special effect changes in the middle of the line. |h ) cl startnewpage /tabs [17 ] store (|/to The exact current xpos position on the line may not be known ahead of time!|/tx Especially with a fill justify. And its exact position may depend highly on what has already been put down. |h There are all sorts of sneaky and powerful things you can do by inserting an additional proc or two |/to inside|/tx your printlist. For instance, you might want to make one word |/setred |6red|1|/setblack . Or you might like to place an emphasis box or fancy graphics underneath a few words. |h Or, most importantly, you might want to set an "action block" or a PDFMarking Acrobat |/to ANN link|/tx underneath a url. One that |/to automatically tracks|/tx the printed url name and length. Regardless of where on the line the url text is or how much post editing is done. And needing no later manual intervention. |h When creating a Gonzo text proc, a pointer to the last used printlist entry starts off as the |/to second|/tx stack element. It becomes the |/to third|/tx stack element when you put your new deferred proc on the stack. |h Here is the general method of inserting a top-of-stack proc into your printlist.... |6|/shiftin |/aqua |/burplebox7 |/staytint1 |h 1. Create an executable (|jbut NOT executing!|j) array. Then make the array executable. |h 2. Add this magic command sequence\274 |h printlist exch 3 index exch |t% stuff into printlist put exch 1 add exch |t% incrementlist count |h |1|/shiftout |/aqua |/black |h What this does is take your top-of-stack proc, adds it as the newest array element to your printlist, and then increments and properly replaces the printlist pointer. |h Here is how you would make one word red and the rest of the line black again... |6|/shiftin |/burple |/burplebox9.5 |/staytint1 |h Place this code before your text strings... |h /setred {mark 1 0 0 /setrgbcolor cvx ] cvx printlist exch 3 index exch put exch 1 add exch} store |h /setblack {mark 0 0 0 /setrgbcolor cvx ] cvx printlist exch 3 index exch put exch 1 add exch} store |h And use it like this\274 |h 100 200 (This |j|/fakebar /setred word|j|/fakebar /setblack is red.) cl |h |1|/shiftout |/aqua |/black Note that everything in a PostScript array executes immediately. If you want to create any |/su PostScript|1|/post01 proc that executes |/to later|/tx rather than immediately, you have ) cl startnewpage /tabs [2 16] store (|1to use a roundabout generation method. You thus have to use an indirect approach of |/to /setrgbcolor cvx|/tx (|jwhich defers|j) compared to |/to setrgbcolor|/tx (|jwhich does not|j). |h Yes, we could also have done our red word by defining a pair of our twelve macro commands. And this route would be self-deferring and self-delimiting without any |/to printlist|/tx hassles. But there are many advantages to space delimited and named PostScript procs that are |/to printlist|/tx insertable. Especially when, say, lots and lots of url's or exotic (|jWhy did I do that?|j) commands may be involved. |h Speaking of which, a much fancier example that does auto-positioning and auto-tracking for Acrobat web url's appears |/su here|1|/autourl . Autotracking emphasis boxes can use similar techniques. |h |c Gonzoing |jGonzo |d A very few characters in Gonzo are usually highly reserved. So showing them (|jas is needed in this Gonzo tutorial|j) can be tricky. |h For instance, a reverse slash inside a |/su PostScript|1|/post01 string really has to be shown as a |/to double|/tx reverse slash. This gets important in a hurry when trying to write or read a host diskfile. For a printed or screen display, it will take |/to two|/tx Gonzo slashes to equal one PostScript slash and |/to two|/tx PostScript slashes to pass one real slash on to Windows or whatever. To show double reverse slashes on screen, |/to eight|/tx reverse slashes are needed in the original Gonzo string! |h Showing a vertical bar can be tricky if this is also how we identify embedded commands. Two workarounds are to redefine |/to rslashcar|/tx . Or (|jas we've done here|j), simply draw the vertical slash as an embedded PostScript graphic line. |h |c Page |jLayouts |d Usually, you will want to combine fancier page layout code with all of these fundamental justification procs. This can be done by adding new commands |/to early|/tx in your document but |/to after|/tx Gonzo is first run. Detailed examples can be found in the |/su sourcecode|1|/gonzotut.psl for this |/su GuruGram|1|/gurgrm01 , or by studying most any of the |/to .PSL|/tx source codes found |/su here|/gurgrm01 , |/su here|1|/muse01 , and elsewhere on |/su my website|1|/tinaja . |h |c Now |jfor |jthe |jRest |jof |jGonzo |d The precision justification procs we just looked at are only a small portion of the |/su Gonzo Utilities|1|/gonzoutils . Here are some of the many other available commands, arranged by group\274 |h |/to (A) SERVICE UTILITIES \320 |h |1These service utilities greatly simply a wide range of common PostScript tasks\274 |h |/to |t-xside- -hypotenuse- acos \320 |/tx |t|1Finds trig inverse cosine |h ) cl startnewpage (|1|/to |t-xside- -hypotenuse- asin \320 |/tx |t|1Finds trig inverse sine |h |/to |tbackwards|/tx |t|1Prints backwards |h |/to |tbestgray |/tx |t|1Best gray for lores printers |h |/to |tblackflash |/tx |t|1Drum conditioner for older printers |h |/to |t-count- copies |/tx |t|1Set number of print copies |h |/to |tfeetfirst |/tx |t|1Eject print feet first |h |/to |tflushends |/tx |t|1Flush path ends |h |/to |tflushjoins |/tx |t|1Flush path joins |h |/to |tGEniejul|/tx |t|16-digit to Julian date converter |h |/to |t-xstart- -ystart- -yend- -linewidth- hrule|/tx |t|1 fixed horizontal rule |h |/to |tinch|/tx |t|1Inches |h |/to |tindiagray|/tx |t|1India ink wash at 300 DPI |h |/to |tlandscape|/tx |t|1Landscape format of 8-1/2 x 11 |h |/to |tlistfonts |/tx |t|1List installed fonts |h |/to |tlongjob|/tx |t|1Lengthen job timeout |h |/to |tmanual|/tx |t|1Select manual feed on printer |h |/to |t(string1) (string2) mergestr|/tx |t|1Merge strings to stack top |h |/to |tnegative|/tx |t|1Negative printing |h |/to |toutline |/tx |t|1Find character path |h |/to |tpi|/tx |t|1As in 3.1415926 |h |/to |tpixel|/tx |t|1Points to 300 DP pixels |h |/to |tpositive |/tx |t|1Restore positive printing |h |/to |tprintfonts |/tx |t|1Prints currently installed fonts |h |/to |t -max+1- random |/tx |t|1Random integer 0 to max |h |/to |treport |/tx |t|1Report top of stack to host |h |/to |treprogray |/tx |t|1Reprogray at 300 DPI |h |/to |t-num- romnum |/tx |t|1Convert 0-99 num to Roman string |h |/to |troundends |/tx |t|1Round path ends |h |/to |troundjoins |/tx |t|1Round path joins ) cl startnewpage (|h |/to |t-rad-|j[|jx1|jy1|jx2|jy2|j\274|jxn|jyn|j] roundpath|/tx |t|1 Rounds path except ends |h |/to |t-xpos-|j-ypos-|j-xwid-|j-yhgt-|j-crad- roundbox|/tx |t|1 Build a rounded box |h |/to |tsnoop|/tx |t|1Activates superexec |h |/to |tstockends |/tx |t|1Normal (extended) path ends |h |/to |tstockjoins |/tx |t|1Normal (extended) path joins |h |/to |t-delayvalue- stall |/tx |t|1Stall at roughly 1000 per second |h |/to |tstopwatchon|/tx |t|1Reset and start stopwatch |h |/to |tstopwatchoff|/tx |t|1Stop and report stopwatch |h |/to |t-#repts-|j-spacing-|j(char)|jstringdown|/tx |t|1 South character repeats |h |/to |t-#repts-|j-spacing-|j(char)|jstringleft|/tx |t|1 West character repeats |h |/to |t-#repts-|j-spacing-|j(char)|jstringright|/tx |t|1 East character repeats |h |/to |t-#repts-|j-spacing-|j(char)|jstringup|/tx |t|1 North character repeats |h |/to |t[wd1|jgr1|jwd2|jgr2\274wdn|jgrn] superstroke|/tx |t |1Mulltiple full strokes |h |/to |t[wd1|jgr1\274wdn|jgrn] superinstidestroke|/tx |t |1Mulltiple clipped strokes |h |/to |t-angle- tan|/tx |t|1Find tangent of angle in degrees |h |/to |ttray|/tx |t|1Turn off printer manual feed |h |/to |t-xstart- -ystart- -yend- -linewidth- vrule|/tx |t|1 fixed vertical rule |h |/to |twhite|/tx |t|1Print in white |h |/to |t(string) width|/tx |t|1Find width of string |h |/to (B) LAYOUT GRIDS \320 |h |1Much of the early grid layout code was aimed at providing exceptional graphics quality on first generation 300 DPI printers. While some of this portion of Gonzo is dated, these two commands (|jand their internal support procs|j) remain useful\274 |h |/to |t-xposn- -yposn- -scale- setgrid|/tx |t|1 Create a scaled layout grid |h Working on a magnified grid can greatly simplify layouts. You are dealing with smaller numbers whose relationships are more intuitive and more obvious. A command of |/to 50 60 10 setgrid|/tx moves you to a point 50 points right and 60 points up from the |/to lower left|/tx page corner. This establishes the |/to 0,0|/tx or "home" position of your grid. The invisible grid is scaled 10X and extends infinitely in all directions. |h It is important to define such values as |/to cstretch|/tx and |/to sstretch|/tx well |/to after|/tx you create the grid. Defined font sizes should also be later and proportionally smaller. |h ) cl startnewpage (Use of |/to setgrid|/tx leaves an "open" |/to gsave|/tx graphics state which may need closed later. |h |/to |t-#ofxblocks- -#ofyblocks- showgrid|/tx |t|1 Show a portion of the grid |h This command can be used for layout visualization or as a final design element of a graph or chart. By changeable default, there is presently a slight emphasis of each |/to fifth|/tx grid line and a stronger emphasis of each |/to tenth|/tx grid line. The easiest way to turn a grid on or off is to |/to comment|/tx the above line. you can do this by placing or removing a |/to "%"|/tx at its start. |g A detailed example of using a layout grid to create book covers appears |/su here|1|/bookcvr1.pdf . |h |h |/to (C) ILLUSTRATION AIDES \320 |h |1The whole point of the Gonzo Utilities is to give you |/to absolute and total control|/tx of your design and layout projects. Very often resulting in code that yields much higher quality in files that are exceptionally short and very fast running. Yes, point-by-point entry of graphics instructions can get rather tedious. But this approach very often can give you stunning results not easily available elsewhere. |h Many of these illustration aides are simply convenience operators that require far fewer keystrokes than "raw" PostScript. You can easily further expand and customize them for your own needs\274 |h |/to |t-xpos- -ypos- mt|/tx |t|1absolute moveto shorthand |/to |t-xpos- -ypos- rm|/tx |t|1relative moveto shorthand |/to |t-xpos- -ypos- rl|/tx |t|1relative lineto shorthand |h These routines set linewidths\274 |h |/to |t line1|/tx |t|1A "normal" grid line |/to |t line2|/tx |t|1A "bold" grid line |/to |t line3|/tx |t|1A "very heavy" grid line |h These routines draw a line\274 |h |/to |t-distance- d|/tx |t|1relative line to the south |/to |t-distance- l|/tx |t|1relative line to the west |/to |t-distance- l+|/tx |t|1relative line to the northwest |/to |t-distance- l-|/tx |t|1relative line to the southwest |/to |t-distance- r|/tx |t|1relative line to the east |/to |t-distance- r+|/tx |t|1relative line to the northeast |/to |t-distance- r-|/tx |t|1relative line to the southeast |/to |t-distance- u-|/tx |t|1relative line to the north |h These routines append to a path\274 |h |/to |t-distance- pd|/tx |t|1relative path to the south |/to |t-distance- pl|/tx |t|1relative path to the west ) cl startnewpage (|/to |t-distance- pl+|/tx |t|1relative path to the northwest |/to |t-distance- pl-|/tx |t|1relative path to the southwest |/to |t-distance- pr|/tx |t|1relative path to the east |/to |t-distance- pr+|/tx |t|1relative path to the northeast |/to |t-distance- pr-|/tx |t|1relative path to the southeast |/to |t-distance- pu-|/tx |t|1relative path to the north |h These routines draw a line while "erasing" any lines that are crossed. This is quite useful in an electronic schematic for "lines crossing but not connected". \274 |h |/to |t-distance- dx|/tx |t|1erase & draw to the south |/to |t-distance- lx|/tx |t|1erase & draw to the west |/to |t-distance- rx|/tx |t|1erase & draw to the east |/to |t-distance- ux|/tx |t|1erase & draw to the north |h If you really want your electrical lines connected, you can add a dot\274 |h |/to |t-xpos- -ypos- mdot|/tx |t|1dot two crossed lines |h Here's some circles and some arrows\274 |h |/to |t-xpos- -ypos- darrow|/tx |t|1arrow points south |/to |t-xpos- -ypos- larrow|/tx |t|1arrow points west |/to |t-xpos- -ypos- rarrow|/tx |t|1arrow points east |/to |t-xpos- -ypos- uarrow|/tx |t|1arrow points north |h |/to |t-xpos- -ypos- circ1|/tx |t|1small circle |/to |t-xpos- -ypos- circ2|/tx |t|1terminal sized circle |/to |t-xpos- -ypos- circ3|/tx |t|1LED sized circle |/to |t-xpos- -ypos- circ4|/tx |t|1test point sized circle |h A pair of very versatile repeat utilities. \274 |h |/to |t[{proc} -spacing- -#trips-] xrpt|/tx |t|1 Repeat proc horizontally |/to |t[{proc} -spacing- -#trips-] yrpt|/tx |t|1 Repeat proc vertically |h Finally, a "liquid paper" path whiteout\274 |h |/to |twhitefill|/tx |t|1erase anything under icon |h |/to (D) ELECTRONIC SYMBOLS \320 |h |1These electronic symbols offer significantly higher quality than is found in most schematic drawing packages. They are one example of the many possibilities that positionable |/to "opaque blob icons on strings"|/tx offer. Note that you can slide the wires "under" the icons simply by placing them |/to earlier|/tx in your code\274 |h |/to |tmicro|/tx |t|1Show /Symbol font3 mu for capacitors |/to |tohms|/tx |t|1Show /Symbol font3 Omega for resistors |h |/to |t-xpos- -ypos- tstpt|/tx |t|1Draw electronic test point opaque circle ) cl startnewpage (|h |/to |t-xpos- -ypos- rinverter|/tx |t|1Right facing logic inverter |/to |t-xpos- -ypos- linverter|/tx |t|1Left facing logic inverter |h |/to |t-xpos- -ypos- hresistor|/tx |t|1Horizontal resistor |/to |t-xpos- -ypos- vresistor|/tx |t|1Vertical resistor |/to |t-xpos- -ypos- lpot|/tx |t|1Vertical potentiometer |h |/to |t-xpos- -ypos- vcap|/tx |t|1Vertical capacitor |/to |t-xpos- -ypos- uvcap|/tx |t|1Inverted vertical capacitor |/to |t-xpos- -ypos- hcap|/tx |t|1horizontal capacitor |h |/to |t-xpos- -ypos- schmitt|/tx |t|1Schmitt trigger hysteresis symbol |h |/to |t-xpos- -ypos- dpdt|/tx |t|1Double pole double throw switch |/to |t-xpos- -ypos- spdt|/tx |t|1Single pole double throw switch |h |/to |t-xpos- -ypos- diode|/tx |t|1Diode pointing east |/to |t-xpos- -ypos- udiode|/tx |t|1Diode pointing north |/to |t-xpos- -ypos- ddiode|/tx |t|1Diode pointing south |/to |t-xpos- -ypos- led|/tx |t|1LED diode pointing south |h |/to |t-xpos- -ypos- negpulse|/tx |t|1Negative going pulse waveform |/to |t-xpos- -ypos- pospulse|/tx |t|1Positive going pulse waveform |h |/to |t-xpos- -ypos- 5vdc|/tx |t|1Vertical stub and terminal |h |/to |t-xpos- -ypos- hxtal|/tx |t|1Horizontal crystal |h |/to |t-xpos- -ypos- sensor|/tx |t|1Sensor |h |/to |tground|/tx |t|1Normal south pointing ground |/to |tuground|/tx |t|1North pointing ground |/to |tlground|/tx |t|1West pointing ground |/to |trground|/tx |t|1East pointing ground |h |/to |t-xpos- -ypos- edgecon|/tx |t|1Edge connector pin |h |/to |t-xpos- -ypos- cell|/tx |t|1One vertical battery cell |h |h |/to |t-xpos- -ypos- -#loops- winding|/tx |t|1 Horizontal inductor or winding |/to |t-xpos- -ypos- -#loops- vwinding|/tx |t|1 Vertical primary winding |/to |t-xpos- -ypos- -#loops- vrwinding|/tx |t|1 Vertical secondary winding |h |/to |t-xpos- -ypos- phonejack|/tx |t|1Full size phone jack |/to |t-xpos- -ypos- lilphonejack|/tx |t|1Smaller phone jack |h |/to |t-xpos- -ypos- varistor|/tx |t|1Varistor |h |/to |t-xpos- -ypos- piezo|/tx |t|1Piezo transducer |h |/to |t-xpos- -ypos- pctab|/tx |t|1Printed circuit terminal |h ) cl startnewpage ( |/to |t-xpos- -ypos- npn|/tx |t|1East facing NPN transistor |/to |t-xpos- -ypos- npn|/tx |t|1West facing NPN transistor |/to |t-xpos- -ypos- pnp|/tx |t|1East facing PNP transistor |/to |t-xpos- -ypos- pnp|/tx |t|1West facing PNP transistor Many more electronic symbols are easily added. Hundreds of improved (|jfor color options|j) and more specialized examples may be found by viewing the |/to .PSL|/tx source code files |/su here|1|/muse01 . |h |/to (E) THE DIPDRAW PROC \320 |h |1In general, I've been hesitant to upgrade portions of the |/su Gonzo Utilities|1|/gonzoutils . Based on "iffen it ain't broke, don't fix it". Thus, ongoing patches and add-on mods are the norm, compared to core revisions. |h The |/to dipdraw|/tx was an example of an ultra fancy programmable icon whose use kept recurring in my electronics stories\274 |h |/autofig2 |y|y|y|y|y|y|hHere is what the calling code looks like\274 |6|/shiftin |/burple |/burplebox7 |/staytint1 |h 14 6 moveto 18 (MS28D-05X) (IN1 IN0 XIN IN6 +5V /DA /DB /DC NC) (IN2 IN3 IN4 IN5 GND DA DB DC SYNC) dipdraw |h |1|/shiftout |/aqua |/black |h Any forward slashes are used to force a complement bar. An improved colorized version of the Dipdraw code can be found in the |/su source code|1|/gonzotut.psl for this |/su GuruGram|1|/gurgrm01 . Actual chip details can be found |/su here|1|/magsn01 . |/to (F) STEP AND REPEATS \320 |h |1Quite a few very useful real world products need a |/to step and repeat|/tx capability. In which more than one item gets imaged per page. With or without sequential numbering or custom data base access. Examples include business cards, tickets, address labels, badges, bumperstickers, and great heaping bunches more. ) cl startnewpage /tabs [12] store (|h A very versatile |/to stepandrepeat|/tx capability is built into the |/su Gonzo Utilities|1|/gonzoutils . Two new elements are needed to use this proc. The first is a named and predefined 9 entry array that goes in a |/to stepnrptparams|/tx dictionary. The second is a predefined |/to repeatproc|/tx that contains the artwork code for |/to one|/tx of the items being repeated. |h The usual access is\274 |6|/shiftin |/burple |/burplebox2 |/staytint1 |h /repeatproc_name stepandrepeat |h |1|/shiftout |/aqua |/black |h Nineteen repeat patterns have already been preprogrammed into the stock Gonzo |/to stepnrptparams|/tx dictionary\274 |6|/shiftin |/aqua |/burplebox20 |/staytint1 |h /admitonetick |t45 tickets /babybumper |t20 very small bumperstickers /badgeaminit |t6 badges /bigbumpstick |t3 bumperstickers /buscard |t12 business cards /busenvelope |t1 business envelope /eightlabel |t1/8 page 2x4 labels /fulllandpage |tOne entire landscape page /fullportpage |tOne entire portrait page /lilbumpstick |t5 medium blumperstickers /quadsplit |t1/4 page 2x2 labels /readerserv |t300 reader service numbers /shiplabel |t4 custom labels /sixlabel |t1/6 page 2x3 labels /stdplabel |t11 stock data processing labels /tenlabel |t1/10 page2x5 /videospline |t13 VHS cassette splines /3.5disklabel |t6 disk labels 3.5 inch /5.25disklabel |t7 disk labels 5.25 inch |h |1|/shiftout |/aqua |/black |h Many detailed step-and-repeat use examples are found |/su here|1|/begstuff . For sequential numbering, existing |/to startnum|/tx and |/to runnum|/tx variables can be used. These same or similar numbers can extract names and addresses from an externally generated data array. Such an array can be built into your code or else |/to run|/tx just like you did the |/su Gonzo Utilities|1|/gonzoutils . |h Some step-and-repeat projects will have to be carefully matched to the stock being printed. Especially when shear or fold points are built into the material. One useful source of such forms is |/su Blanks USA|1|/blanksusa . ) cl startnewpage /tabs [11] store (|h If you wish to add or modify your own repeat pattern data as a |/to stepnrptparams|/tx dictionary entry, the needed nine array values are\274 |6|/shiftin |/burple |/burplebox13 |/staytint1 |h /myrepeatdata [ |h #hrepeats |t% number of horizontal repeats #vrepeats |t% number of vertical repeats hspacing |t% proc to proc horizontal spacing vspacing |t% proc to proc vertical spacing hstart |t% first proc horizontal offset vstart |t% first proc vertical offset ticklength |t% registration tick length if used useticks |t% true-false registration tick flag uselandscape |t% true-false landscape orientation |h ] store |h |1|/shiftout |/aqua |/black |/to (G) CURVETRACING \320 |h |1High quality smooth continuous curves are crucial for typography, animation, and many similar graphical tasks. These are normally created by using |/to cubic splines|/tx , often by using the PostScript |/to curveto|/tx and |/to rcurveto|/tx operators. Some detailed expositions of the underlying math appear in our |/su cubic spline|1|/cubic01 library. |h Here is our |/to Puss de Resistance|/tx done entirely in manually entered cubic splines\274 |/autofig3 ) cl startnewpage (|1Getting the ends of the continuing custom splines to meet and match is both non-trivial and tricky. The original |/su Gonzo Utilities|1|/gonzoutils provided a rather tedious approach to quality spline generation. In which you entered the position and the angle of each chosen end point as three data values\274 |6|/shiftin |/burple |/burplebox2 |/staytint1 |h [ x1 y1 ang1 x2 y2 ang2 \274 xn yn angn ] curvetrace |h |1|/shiftout |/aqua |/black |h Each selected point above a three point minimum had its |/to horizontal position|/tx , its |/to vertical position|/tx , and its |/to slope angle|/tx entered into your array. Thus giving you total control of appearance at the spline joints. |/to x1=0|/tx and |/to y1=0|/tx appends path. |h The actual splines used were intentionally somewhat weaker than a theoretical optimum. The quality of your results are highly dependent on how accurately you entered your position and angle information. And upon how far you tried to go with each single spline. And, of course, how patient you were with manual data entry of more complex or multiple paths. |h An additional variable called the |/to tension|/tx gave you an additional "smoothness" control. With the usual "best" tension being somewhere around |/to 2.8|/tx . Higher tensions gave you "straighter" curves between end points, while lower ones became moderately or extensively "loopy". |h An optional point showing |/to showtick|/tx true-false flag was included for debugging. |h A major change and improvement in the Gonzo curvetracing utilities was made |/su here|1|/curvetr2.psl . You can now optionally |/to enter angle values of 999|/tx for |/to internal|/tx points. The code will make an amazingly sophisticated "guess" as to your best angle each time. And thus eliminating much (|jbut certainly not all|j) of the tedium. |h A demo of the new curvetracing code appears |/su here|1|/curvetr2.pdf . |h This |/to "guess angle"|/tx algorithm is based on taking three sequential points and then attempting to temporarily |/to draw a circle through them|/tx . The slope at the midpoint is often a good and possibly optimally correct fit for your curve of interest. |/to (H) CIRCULAR ARC JUSTIFY \320 |h |1An |/to Arc Justify|/tx routine sets text along a |/to circular|/tx path. This is useful for labels, for logos, badges and for large names on the back of jackets or T-shirts. A fairly fancy arc justify routine is included in the |/su Gonzo Utilities|1|/gonzoutils . For top appearance, both local and global kerning is supported. |h Here is how you activate a Gonzo arc justify\274 |6|/shiftin |/burple |/burplebox2 |/staytint1 |h -xpos- -ypos- radius (|jyour message|j) karcjustify |h |1|/shiftout |/aqua |/black |h ) cl startnewpage (|1A |/to positive|/tx radius value causes the message to appear |/to clockwise across the top|/tx . A |/to negative|/tx radius value causes the message to appear |/to counterclockwise across the |/to bottom|/tx . In either case, the radius will be to the |/to baseline|/tx of the text. Thus, |/to your |/to upper and lower radius will normally differ by the average character height|/tx . |h Upper and lower messages are normally |/to centered along a vertical axis|/tx . Any repositioning can be done by adding leading or trailing spaces. Since each and every character is separately positioned, the earlier and fancier Gonzo Justification features are |/to not|/tx available for an arc justify. |h A predefined |/to arckern|/tx variable will add positive kerning to each and every letter and space. A custom |/to customkern|/tx variable will create a (|jusually negative|j) space every time a |/to customkernchar|/tx is called. Typically, arckern might be +1, your customkern -1, and customkernchar a |/to (~)|/tx string. To reduce the space between two printing characters, you |/to place a "~" between them|/tx . |h Several detailed examples of arc justify projects appear |/su here|1|/begstuff . |h |c An |jImportant |jUpdate |d Starting with Acrobat 8.1, the ability to read and write disk files |/su has been|/readfiles |/su disabled|1|/readfiles as a default. To use our Gonzo utilities, this read and write ability |/to must|/tx be restored. |h In Windows, the Distiller file read and write ability is restored by using a command line run command of\274 |6|/shiftin |/burple |/burplebox2 |/staytint1 |h acrodist -F |h |1|/shiftout |/aqua |/black The read and write enabling will remain active so long as an executable version of Distiller is on or under the desktop. To use, you simply drag and drop your Gonzo routines into this active instance of Distiller. |h |c For |jMore |jHelp |d Similar tutorials and additional support materials are found on our |/su PostScript|1|/post01 and our |/su GurGram|1|/gurgrm01 library pages. As always, |/su Custom Consulting|1|/info01 is available on a cash and carry or contract basis. As are seminars. |h For details, you can email |/su don@tinaja.com|1|/maildon . Or call |/to (928) 428-4073|/tx . ) cl startnewpage % EOF % remaining: ebay assortments; mining company data; best selling price; paint hints % image step by step