% % %! (C:\\windows\\desktop\\gonzo\\gonzo.ps) run % use external gonzo /trystone true def % name of textfile: blat 56 email etiquette % .... % X E Activate XON/XOFF if necessary. % Z Values are shown for Apple Super Serial Card %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This .GPS (Guru PostScript) file DEMANDS the persistant download % of GONZO15A.PTL #517 and GUTIL13A.PTL #280. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % statusdict begin % statusdict /setduplexmode known {true setduplexmode} if % end systemdict /setstrokeadjust known {true setstrokeadjust} if %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % modified nextcol allows pages without text and deferred xpos calcs. /nextcol { numpgcol 0 gt { curpage curcol get aload pop exec /txtwide exch def exec /ylimit exch def exec /ypos exch def exec /xpos exch def /curcol curcol 1 add def}{ nextpage} ifelse} def %%%%%% doembeddedproc executes |/name installdoembeddedproc links it /doembeddedproc {mark 50 {stringmode {getstringchar}{currentfile read} ifelse not {exit} if dup dup dup 32 eq exch 13 eq or exch 10 eq or {pop exit} if} repeat counttomark dup string /pstr1 exch def 1 sub -1 0 {pstr1 3 1 roll exch put} for pstr1 exch pop cvx exec} def /installdoembeddedproc {gonzo begin commands (/) 0 get {doembeddedproc} put end} def installdoembeddedproc %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % ------ COMMAND SUMMARY --------- % Note that "|" is used as a printable escape command below % |0 - drop cap font |1 - main text font |2 - text italics % |3 - heading font |4 - text caps font |5 - txt ital. caps % |6 - txt bold caps |8 - special font |= - symbol font % |a - start drop cap |b - indent drop text |c - start header % |d - finish header |k - kern -1 point |j - kern +1 point % |h - half linefeed |y - neg linefeed |C - center justify % |Z - column rule |x - enter PostScript |F - fill justify % \261 - em dash \274 elipsis ... %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % MIDNIGHT ENGINEERING TEMPLATE CORE ps.util.1 begin % here to simplify debug printerror nuisance begin systemdict /setstrokeadjust known {true setstrokeadjust} if /boxgrays 0.94 def % color of box fills. Use 1.0 for white 0.94 for gray % blackflash % This default gonzo page making template is a useful starting point for % creating your own custom templates. It allows multiple page documents % with full picture insertions and total text control. % Note that any template MUST have an internal proc named templatestartup % and that your template MUST NOT call gonzofont before run time. 300 dict /midnightdoc exch def midnightdoc begin /templatefonts { % Remember: all fonts MUST defer till run time! /font0 /StoneSans-Bold [45 0 0 40.1 0 -23] gonzofont % temp "I" /font1 /StoneSerif 8.38 gonzofont /font2 /StoneSerif [ 7.95 0 1.10 8.38 0 0 ] gonzofont /font3 /StoneSans-Bold [9.25 0 0 9.25 0 -8] gonzofont % old /font4 /StoneSerif 8.15 gonzofont /font5 /StoneSerif [ 8.12 0 1.1 8.12 0 0 ] gonzofont /font6 /StoneSerif-Bold [8.5 0 0 8.5 0 -5] gonzofont /font7 /StoneSans-Bold 7.9 gonzofont /font8 /Benguiat-Bold [22 0 0 24 0 0] gonzofont /font9 /Benguiat-Bold [14 0 0 14 0 0] gonzofont /font= /Symbol 9.75 gonzofont /font: /Times-Bold 9.75 gonzofont /font- /ZapfDingbats [9 0 0 9.01 0 -.7] gonzofont } def trystone not { /templatefonts { % Remember: all fonts MUST defer till run time! /font0 /Helvetica-Bold [45 0 0 40.1 0 -23] gonzofont /font1 /Times-Roman 9.75 gonzofont /font2 /Times-Italic 9.75 gonzofont /font3 /Helvetica-Bold [10 0 0 10.05 0 -8] gonzofont % old /font4 /Times-Roman 9.25 gonzofont /font5 /Times-Italic 9.25 gonzofont /font6 /Times-Bold [9 0 0 9.1 0 -6] gonzofont /font7 /Helvetica-Bold 9.5 gonzofont /font8 /Benguiat-Bold [22 0 0 24 0 0] gonzofont /font9 /Benguiat-Bold [14 0 0 14 0 0] gonzofont /font= /Symbol 9.75 gonzofont /font: /Times-Bold 9.75 gonzofont /font- /ZapfDingbats [9 0 0 9.01 0 -.7] gonzofont } def } if % values used by gonzo justify ... /cstretch 0.15 def % minimum character kerning /sstretch 0 def % minimum space kerning /dropcount 3 def % number of lines drop cap drops /lastlinestretch 0.04 def % open last paragraph line slightly /pm 10 def % use paragraph indents /yinc 11 def % line spacing /ypara yinc 2 div def % extra interparagraph spacing /ypara 0 def % but not here % These macros handle an initial drop cap and low center subheads ... /amacro {(zyL0) stringmacro /ypos ypos ypara add def} def % start drop cap /bmacro {(iFy1) stringmacro /ypos ypos ypara add def} def % finish drop cap /cmacro {0.33 setgray (znyL3) stringmacro /ypos ypos ypara 2 mul add def} def % centered title /dmacro {black (pF1) stringmacro /ypos ypos ypara 2 mul add def} def % normal text after centered title % reference values for internal doc control that become calculated % array values. Note that it is best to work in fixed yinc heights % to prevent alignment problems under figures. Note that it is nearly % always best to AVOID FIXED VALUES IN DOCMATRIX. % set screen here or comment out for stock gray 106 45 {dup mul exch dup mul add 1.0 exch sub} setscreen /showboxgrays true def % show grays in boxes and figs? /txw 242 def % width of normal text columns /cmb 60 def % column bottom position /cmt cmb 62 1 sub yinc mul add .1 add def % page is 63 normal text lines high /cml 60 def % first column left margin /cms 260 def % spacing of normal columns /cm# 2 def % number of normal columns /cm1 cml def % c1 starts at left margin /cm2 cml cms add def % c2 in middle /cm3 cml cms 2 mul add def % c3 to right /cmw cms txw sub def % white space between columns /hdw cms txw add def % normal header/footer width /hdc cm1 hdw 2 div add def % normal header/footer center /hdr cm1 hdw add def % normal header/footer right /hdl cm1 def % normal header left /fdp 28 def % amount of footer drop below cml /bh1 yinc 13 mul def % 12 vlines reserved for title & blurb /rwd 0.50 def % width of rules /rlt {cmt 12 add} def % adjusted vrule top /rlb {cmb 7 sub} def % adjusted vrule bottom /rl1 {cm2 cmw 2 div sub} def % center rules /stdfigrad 4 def % radius of standard figure box /1colwide txw def % width of single column figure /2colwide txw cms add def % width of double column figure /3colwide txw cms 2 mul add def % width of triple column figure /f1h yinc 28 mul def % height of figure one % sidebar /f2h yinc 22 mul def % temp tower figures /f3h yinc 22 mul def % temp tower figures /s1h yinc 20 mul def % height of figure two /fig1 {cm1 cmt f1h sub 1colwide f1h yinc add true true /f1name /figure1 grayfig2} def % link resource sidebar /fig2 {cm2 cmt f2h sub 1colwide f2h yinc add true true /f2name /figure2 grayfig2} def % link /fig3 {cm2 cmt f2h sub 1colwide f3h yinc add true true /f3name /figure3 grayfig2} def % link /side1 {cm1 cmt s1h sub 5 add 3colwide s1h true false /s1name /sidebar1 stdfig} def % link % this is an experimental pull /pull1 [ cm2 70 sub % left position cmb 8 yinc mul add % bottom position 1 index 204 add % width in points 1 index 9 yinc mul add % top position (|3I've yet to find any product whose main purpose is to let end users attractively hold |j|j|jpapers |j|j|jtogether.) % message NOT USED THIS COLUMN ] def /pull1top {pull1 3 get} def /pull1bot {pull1 1 get 0.1 add yinc sub} def % requires column [ cm1 pullleftset etc.. /pull1leftset {pull1 3 get yinc sub pull1 1 get yinc sub pull1 0 get 3 index sub} def /pull1rightset { pull1 2 get exch pull1 3 get yinc sub exch pull1 1 get yinc sub exch pull1 2 get sub txw add} def % this is an experimental "standard" pull for MIDENG... /stdpull {aload pop save /pullsnap exch def /msg exch def 6 sub /pt exch def 6 sub /pr exch def 0 add /pb exch def 6 add /pl exch def newpath pl pb moveto pl pt lineto pr pt lineto pr pb lineto closepath gsave 1 setgray 8 setlinewidth stroke grestore gsave showboxgrays {0.94}{0} ifelse setgray fill grestore [2 0 1 1] superstroke /sstretch 0.8 def /cstretch 0.2 def /font1 /Helvetica-Bold 12.5 gonzofont /font2 /Helvetica-Bold 11.5 gonzofont font1 /yinc 15 def /ylimit -9999 def pl dup pr sub 2 div neg add pt 28 sub msg cc pullsnap restore} def % this is a "standard" figure border for MIDENG. It has rounded edges, % a bottom single line title, and links to the actual figure art... /stdfig { /jsave justx 4 get def save /stdsnap exch def /colcheck {} def /figproc exch def cvx /figname exch def /showtitle exch def /showborder exch def /figheight exch def /figwidth exch def translate showborder {1 5 figwidth 2 sub figheight 15 sub stdfigrad roundbox gsave showboxgrays {0.94}{0} ifelse setgray fill grestore [2 0 1 1] superstroke } if /font7 /Helvetica-Bold 9 gonzofont showtitle {figwidth 2 div 12 font7 figname cc} if /bw figwidth def /bt figheight def /bl 0 def /bb 0 def /bc figwidth 2 div def /xpos 20 def /ypos bt 20 sub def /cstretch 0 def /sstretch 0 def /lastlinestretch 0 def /pmrun 0 def /ypara 0 def /linestring linestring2 def % needed to run interference 3 1 roll translate dup scale mark figproc cvx exec cleartomark stdsnap restore justx 4 jsave put } def %%%%%%%%%%%%%%%%% % grayfig two has a title box (modified for reverse) /grayfig2 { /jsave justx 4 get def save /stdsnap exch def /colcheck {} def /figproc exch def cvx /figname exch def /showtitle exch def /showborder exch def 2 add % temp for blat 25 /figheight exch def 20 sub /figwidth exch def translate showborder {1 10 add 5 10.4 figheight 33 sub moveto figwidth 0.8 sub 0 rlineto figwidth 2 sub figheight 15 sub stdfigrad roundbox % gsave showboxgrays {grayshade}{1} ifelse setgray fill grestore gsave white fill grestore % temp gray box, white top gsave newpath 0 0 moveto 0 figheight 38 sub rlineto figwidth 2 sub 0 rlineto 0 figheight 38 sub neg rlineto closepath 0.33 setgray setgray fill grestore [2 0 1 1] superstroke } if /font7 /Helvetica-Bold 9 gonzofont trystone { /cstretch 0.5 store /font7 /StoneSans-Bold 9 gonzofont} if showtitle {white figwidth 2 div figheight 31 sub font7 figname cc black} if /bw figwidth def /bt figheight def /bl 0 def /bb 0 def /bc figwidth 2 div def /xpos 20 def /ypos bt 20 sub def /cstretch 0 def /sstretch 0 def /lastlinestretch 0 def /pmrun 0 def /ypara 0 def /linestring linestring2 def % needed to run interference 3 1 roll translate dup scale mark figproc cvx exec cleartomark stdsnap restore justx 4 jsave put } def % Here is the master document control matrix. It is manual in this example % Note that the result of internal calcs are ORDINARY NUMBERS. Note also % that you make room for figures by adding or subtracting only where and % as needed. /docmatrix [ [ { } { } { } ] % initial document files [ [{leftfooter} {fullheader} {cm1 cmt bh1 sub titleblock} {rl1 rlb rlt bh1 sub yinc 2 mul sub rwd vrule} % {pull1 stdpull} ] % page one figures and control % no stdpull this time % [ cm1 cmt bh1 sub pull1top txw] % column1 xpos ypos ylimit txtwide % [ cm1 pull1leftset] % [ cm1 pull1bot cmb txw] % [ cm2 cmt bh1 sub pull1top txw] % column2 xpos ypos ylimit txtwide % [ cm2 pull1rightset] % [ cm2 pull1bot cmb txw] % adjusted for double title [ cm1 cmt bh1 sub yinc 2 mul sub cmb txw] % column1 xpos ypos ylimit txtwide [ cm2 cmt bh1 sub yinc 2 mul sub cmb txw] % column2 xpos ypos ylimit txtwide ] [ [{aqua} {rightfooter} {fullheader} {rl1 rlb rlt rwd vrule} % {0 0 0.8 fig1} ] % page two figures and control [ cm1 cmt cmb txw] % column1 xpos ypos ylimit txtwide [ cm2 cmt cmb txw] % column2 xpos ypos ylimit txtwide ] /coladj {yinc 21 mul pop 0 add} def [ [{aqua} {leftfooter} {fullheader} % {0 -6 0.8 fig1} {rl1 rlb rlt rwd vrule} ] % page three figures and control % was f1h sub yinc sub % [ cm1 cmt f1h sub yinc sub cmb coladj txw] % column1 xpos ypos ylimit txtwide [ cm1 cmt cmb txw] [ cm2 cmt cmb txw] % column2 xpos ypos ylimit txtwide ] [ [{aqua} {rightfooter} {fullheader} {rl1 rlb rlt rwd vrule} ] % page four figures and control [ cm1 cmt cmb txw] % column1 xpos ypos ylimit txtwide [ cm2 cmt cmb txw] % column1 xpos ypos ylimit txtwide ] [ [{leftfooter} {fullheader} {rl1 rlb rlt rwd vrule} ] % page four figures and control [ cm1 cmt cmb txw] % column1 xpos ypos ylimit txtwide [ cm2 cmt cmb txw] % column1 xpos ypos ylimit txtwide ] [ [{rightfooter} {rightheader} {rl1 rlb rlt rwd vrule} ] % page five figures and control [ cm1 cmt cmb txw] % column1 xpos ypos ylimit txtwide [ cm2 cmt f2h sub yinc sub cmb txw] % column1 xpos ypos ylimit txtwide ] [ {quit} ] % final document wrapup % NOTE: will not execute with short copy! ] def /nextpage { showpage adjustpage /pagenum pagenum 1 add def docpage numpages lt { /docpage docpage 1 add def docmatrix docpage get /curpage exch def curpage length 1 sub /numpgcol exch def curpage 0 get {cvx exec} forall /curcol 1 def nextcol} {docmatrix curpage 1 add get {cvx exec} forall } ifelse } def /nextcol { curpage curcol get aload pop /txtwide exch def /ylimit exch def /ypos exch def /xpos exch def /curcol curcol 1 add def } def /colcheck { ypos ylimit le { curcol numpgcol gt {nextpage} {nextcol} ifelse} if } def /templatestartup { templatefonts font1 /gonzojust true def /rslashok true def docmatrix length /numpages exch def /docpage 1 def docmatrix 0 get {cvx exec} forall % do initial document files docmatrix docpage get /curpage exch def curpage length 1 sub /numpgcol exch def curpage 0 get {cvx exec} forall % do initial page files /curcol 1 def nextcol } def end % simpledoc template %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%% MIDNIGHT 35 TEXT STARTS HERE %%%%%%%%%%%%%%%% % //// demo - remove or alter before reuse //// % ps.util.1 begin % blurb uses my utilities % printerror % nuisance begin gonzo begin % be sure to start gonzo first! /dropindent 31 def % indent for drop cap /pubname (Blatant |jOpportunist) def % for footers /issuename (May-Jun, 1999) def % for footers /titlename (Imaginative |j|j|jIma|kges) def % the title /blatnum (57) def % for blurb /pagenum 1 def % first printed page number % this can give you oversize copies for camera ready use /makeitbig false def % big is 150 percent /printbottomhalf true def % only used if 1.5 scale /adjustpage { makeitbig {landscape printbottomhalf {0 -20 translate} {0 -550 translate} ifelse 1.333 dup scale}if} def adjustpage % roundbox draws a box path with rounded corners and locks you to the % lower lefthand box corner using this format ... % -xpos- -ypos- -yheight- -cornerrad- roundbox % (this will become a part of the utilities) /roundbox {gsave /rad exch def /bt exch def /br exch def /bb exch def /bl exch def bl bb translate rad mark br 2 div 0 0 0 0 bt br bt br 0 br 2 div 0] roundpath} def %% INCLUDED FILES (blurbs, figures, pulls, rules, footers, etc..) % vrule gives a fixed vertical rule, inputting xpos ystart yend linewidth /vrule {gsave newpath setlinewidth 2 index 4 2 roll moveto exch lineto 0 setgray stroke grestore} def % hrule gives a fixed horizontal rule, inputting ypos xstart xend linewidth /hrule {gsave newpath setlinewidth 1 index 4 2 roll moveto lineto 0 setgray stroke grestore} def % titleblock straddles all three columns at top of first page % blatlogo here /blatlogo {save /blsave exch def translate 5 dup scale /cstretch .05 def /sstretch 0.7 def /font; /Revue [2.6 0 0 2.6 0 0] gonzofont /font: /Revue [5 0 0 6 0 0] gonzofont /kern -0.1 def 1 [10 0 0 0 0 9 20 9 20 0 10 0] roundpath gsave boxgrays setgray fill grestore [0.9 0 0.7 1 0.55 0] superinsidestroke gsave -0.45 0 translate 1 [25 0 20 0 20 9 30 9 30 0 25 0] roundpath gsave boxgrays setgray fill grestore [0.9 0 0.7 1 0.55 0] superinsidestroke grestore /yinc 3 def font; 10 5 (the |j|jblatant opportunist) cc font: 24.55 2 blatnum cc blsave restore } def /titleblock { save /tbsnap exch def translate /ylimit -9999 def /txtwide 1000 def 340 10 yinc 2 add % temporary upshift mul 3 add blatlogo /cstretch 0.2 def /sstretch 0.2 def /font1 /Helvetica-Bold 11 gonzofont trystone {/font1 /StoneSans-Bold 11 gonzofont} if font1 412 102 yinc 2 mul add % temp upshift 5 sub (by Don Lancaster) cc /cstretch 0.05 def /sstretch 0.05 def /font2 /Helvetica-Bold 47 gonzofont trystone {/font2 /StoneSans-Bold [43.6 0 0 45 0 0] gonzofont} if /yinc 50 def % temp for two %%% 0 87 18 sub 22 sub % 24 add % temp shift two lines 0 87 18 sub 22 sub % 24 add % temp shift two lines when active titlename cl tbsnap restore } def % mergestr is a tool useful for page numbers; evenutally it will go % into the nuisance dictionary /mergestr {2 copy length exch length add string dup dup 4 3 roll 4 index length exch putinterval 3 1 roll exch 0 exch putinterval} def % fullheader is stripe across top. /fullheader {save /hdrsnap exch def cml cmt 21 add moveto 2 setlinewidth hdw 0 rlineto stroke hdrsnap restore} def % leftheader is left column stripe /leftheader {save /hdrsnap exch def cml cmt 21 add moveto 2 setlinewidth txw 0 rlineto stroke hdrsnap restore} def % rightheader is right column stripe /rightheader {save /hdrsnap exch def cml hdw add cmt 21 add moveto 2 setlinewidth txw neg 0 rlineto stroke hdrsnap restore} def % left footer has left, center, and right elements for the left pages /leftfooter {save /footsnap exch def /colcheck {} def font7 hdc cmb fdp sub pubname cc hdl cmb fdp sub issuename cl hdr cmb fdp sub pagenum ( ) cvs cr footsnap restore} def % right footer does the same for right pages; headers would work the same /rightfooter {save /footsnap exch def /colcheck {} def font7 hdc cmb fdp sub (Blatant |jOpportunist) cc hdr cmb fdp sub issuename cr hdl cmb fdp sub pagenum ( ) cvs cl footsnap restore} def % this is a simple horizontal rule that tracks text position ... /Zmacro {xpos ypos 2 add xpos txw add 4 add 0.5 hrule} def %%%%%%%%%%%%%% FIGURES START HERE %%%%%%%%%%%%%%%%%%%%% /figure1 { /title ( ) def /figscale 0.8 def % makes position size independent /cstretch 0.1 def /sstretch 0.1 def /font2{/Helvetica-Bold findfont [9 0 0 9 0 0 ] makefont setfont}def /font7 {/Helvetica-Bold findfont [6 0 0 6 0 0] makefont setfont} def /font8 {/Helvetica findfont [8 0 0 8 0 0] makefont setfont} def font2 bc bt 25 sub 2 add % ( ) % use stdfig title below instead ( ) cc /amacro {/ypos ypos squash add def} def /bmacro {/yhold ypos def /ypos ytopoflist def /xpos xpos columnspacing add def /ypos ypos yinc add def} def /squash 0.8 def % default /squash -1.5 def /yinc 9 def /colspacing 85 def /font7 {/Helvetica findfont [8 0 0 8 0 0] makefont setfont} def /font8 {/Helvetica-Bold findfont [8 0 0 8 0 0] makefont setfont} def /font1 {/Helvetica findfont [8 0 0 8 0 0] makefont setfont} def % bee patch /font3 {/Helvetica-Bold findfont [8 0 0 8 0 0] makefont setfont} def /xpos bl 28 add def /ypos bt 52 sub def /ytopoflist ypos figscale div def /columnspacing 116 def xpos figscale div ypos figscale div % (|8Adobe Acrobat|7 % 1585 Charleston Rd % Mountain View CA 94039 % (800) 833-6687 % |a % ) cl (|L|8Aware, Inc.|7 One Memorial Drive Cambridge, MA 02142 (617) 577-1700 |a |8Bennet LaserBrite|7 720 Fourth Street, SW Rochester, MN 55902 (507) 280-9101 |a |8C & H Sales|7 PO Box 5356 Pasadena, CA 91117 (800) 325-9465 |a |8Martin Carbone|7 2519 Bath Street Santa Barbara, CA 93105 (805) 682-0465 |a |8Stan Griffiths|7 18955 SW Blanton Aloha, OR 97007 (503) 649-0837 |a |8Iterated Systems|7 5550A Peachtree Pky #650 Norcross, GA 30092 (404) 840-0310 |a |8Kirk McLoren|7 3309 1/2 Lynn Avenue Billings, MT 59102 (406) 652-0018 |b |8Frank Miller|7 3535 Stillmeadow Lane Lancaster, CA 93536 (805) 943-4746 |a |8OralSafe|7 43529 Ridge Park Drive Temecula, CA 92590 (800) 237-8825 |a |8|/surl Parallax|7|/parallax 3803 Atherton Rd, #102 Rocklin, CA 95621 (916) 624-8333 |a |8Polar|7 99 Seaview Blvd. Port Washington, NY 11050 (516) 484-2400 |a |8John Rees|7 Rt 1, Box 1551 Sautee, GA 30571 (706) 865-5495 |a |8Vetta/Orleander USA|7 14553 Delano St #210 Van Nuys, CA 91411 (818) 780-8808 |a |8Wireless Design & Devel.|7 301 Gibraltar Drive Morris Plains, NJ 07950 (201) 292-5100 )cl /font9 {/Helvetica findfont [9 0 0 9 0 0] makefont setfont} def font9 % /yinc 14 def /yinc yinc 1.9 add def % temp adjust /up3 {/ypos ypos -7 add store} def % gsave % xpos 108 add 69 sub ytopoflist 187 sub 15 add mt 135 pr 93 pd % 135 pl closepath grayshade 0.10 sub setgray fill grestore % xpos 108 add ytopoflist 187 sub % (|8RECOMMENDED WEB SITES % |h|7|/up3 % |/surl www.amazon.com|/amazon % |/surl www.keynet.net/~lindsay|/lindsay % |/surl www.patent.womplex.ibm.com|/patent.womplex.ibm % |/surl www.tinaja.com/patnt01.html|/patnt01 % |/surl www.mediafinder.com|/mediafinder % ) cc {{ /tabs [75] def (|7address finder |/surl |t|8bigfoot.com |/bigfoot |7address finder |/surl |t|8www.drebes.com|/drebes |7address finder |/surl |t|8www.infospace.com |/infospace |7address finder |/surl |t|8www.whowhere.com |/whowhere |7book locator |/surl |t|8www.tinaja.com/amlink01.html|/amlink01 |7consulting net |/surl |t|8net www.tinaja.com/consul01.html|/consul01 |h |7electronic data |/surl |t|8www.tinaja.com/eeweb01.html|/eeweb01 |7ezine & zines |/surl |t|8www.factsheet5.com|/factsheet5 |7ezine directory |/surl |t|8www.meer.net/~johnl/e-zine-list|/meer |7ezine directory |/surl |t|8www.dominis.com/Zines|/dominis |7ezine directory |/surl |t|8www.edoc.com/ejurnal|/ejournal |7faq library |/surl |t|8www.faqlib.com|/faq |h |7infopacks |/surl |t|8www.tinaja.com/info1.html|/info01 |7manufacturers |/surl |t|8www.thomasregister.com|/thomas |7maps |/surl |t|8www.mapquest.com/map|/mapquest |7newsgroup finder |/surl |t|8www.tinaja.com/text/newslist.html|/newslist |7newsletter index |/surl |t|8www.NeoSoft.com/internet/paml|/paml |7newsgroup search |/surl |t|8web3.dejanews.com|/deja |h |7search tutorials |/surl |t|8www.searchenginewatch.com|/watch |7search engine |/surl |t|8www.altavista.digital.com|/alta |7search engine |/surl |t|8www.hotbot.com|/hotbot |7search engine |/surl |t|8www.inference.com/infind|/infer |7search engine |/surl |t|8www.wp.com/resch/search.htm|/wpsearch |7patent stash |/surl |t|8patent.womplex.ibm.com|/patent |h |7patents |/surl |t|8www.tinaja.com/patnt01.html|/patnt01 |7phone numbers |/surl |t|8www.lookupusa.com|/lookup |7phone numbers |/surl |t|8www.switchboard.com|/switchboard |7resource help |/surl |t|8www.tinaja.com/resbn01.html|/resbn01 |7technical info |/surl |t|8techweb.cmp.com/eet|/techweb |7tech info |/surl |t|8news:sci.electronics.design|/scieldes |h |7techical info |/surl |t|8www.questlink.com|/quest |7technical ventures |/surl |t|8www.tinaja.com/ismm01.html |/ismm01 |7toll free phones |/surl |t|8att.net/dir800|/bell800 |7trade journals |/surl |t|8www.mediafinder.com|/oxbridge |7useful web links |/surl |t|8www.tinaja.com/webwb01.html|/webwb01 |7zip code info |/surl |t|8www.usps.gov/ncsc|/zipcode ) cl }} pop } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /figure2 {save /f1snap exch def f1snap restore} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /figure3 {save /f1snap exch def f1snap restore} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /sidebar1 {} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This is a titling and tracking box used for the figures.. /ttheight 20 yinc mul def /ttwidth 240 def /ttrad 3 def /ttbox {/ttmsg exch def /ylimit -9999 def /colbot -9999 def /ybot -9999 def xpos txtwide ttwidth sub 2 div add ypos ttheight sub 2 add 10 setgrid 0 ttheight 10 div 1.5 sub 0.5 sub moveto ttwidth 10 div 0 rlineto 0 0 ttwidth 10 div ttheight 10 div ttrad 10 div roundbox gsave 0.33 setgray fill grestore % temp whitebox, gray top gsave newpath 0 0 moveto 0 ttheight 10 div 1.5 sub 0.5 sub rlineto ttwidth 10 div 0 rlineto 0 ttheight 10 div 1.5 sub 0.5 sub neg rlineto closepath white fill grestore [0.2 0 0.1 1] superstroke % 14 8 showgrid /cstretch 0.02 def /sstretch 0.02 def /font1 /Helvetica-Bold 0.85 gonzofont font1 white ttwidth 10 div 2 div ttheight 10 div 1.3 sub ttmsg cc black } def /makeroom {/ypos ypos ttheight sub yinc 0 mul sub def} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /twobrain.cut {save /cutsnap exch def % name of textfile: PostScript to flutterwumper interface % ............................ electronics begin (POSTSCRIPT DRIVEN FLUTTERWUMPER) ttbox % bl -10 add bb -60 add 10 setgrid % 30 40 showgrid -0.5 -4.6 translate 0.75 dup scale /cstretch 0.015 def /sstretch 0.07 def /font1 /Helvetica 0.85 gonzofont /font2 /Helvetica-Bold 0.75 gonzofont % bold /font3 /Helvetica 0.75 gonzofont /yinc 0.85 def gsave 10 20 translate line1 5 6 mt 11 r [{5 5 mt 1 u} 0.5 23] xrpt line2 5 5 mt 5 u 11 r 5 d 11 l 1.5 [14 8 4 8 4 11 14 11] roundpath closepath gsave white fill grestore stroke font1 10.5 6.8 (PostScript laser printer) cc grestore %%%%%%%%%%%%%%%%%%% % stamp box gsave 0 2 translate line2 4 15.5 mt 4 r 4.5 u 4 l 4.5 d font1 6 18 (PIC Micro) cc grestore %%%%%%%%%%%%%%%%%%% % lasercomm line1 15 27.35 mt 10 l 2.15 d 6.5 r 4.2 d 3.5 l 4.5 26.7 mt darrow 15 27.6 mt 10.5 l 3.8 d 6.5 r 2.3 d 3 l 5 26.7 mt uarrow /box2.54 {gsave translate line1 0 0 mt 2.5 u 4 r 2.5 d 4 l grestore} def % flutter %%%%%%%%%%%% gsave 0 -5 translate line2 13 13 mt 13.5 u 15 r 13.5 d 15 l line1 8 25.5 mt 3 r 0.75 d 3 rx 8 25 mt 2.5 r 1.25 d 3.5 rx 8 24.5 mt 2 r 2.75 d 4 rx 8 24 mt 1.5 r 3.25 d 4.5 rx 8 23.5 mt 1 r 5.25 d 5 rx 8 23 mt 0.5 r 7.75 d 5.5 rx 11.4 15.25 mt larrow 12.3 18.25 mt rarrow 12.3 20.75 mt rarrow 12.3 21.75 mt rarrow 12.3 23.75 mt rarrow 12.3 24.75 mt rarrow [{14 14 box2.54} 3 4] yrpt font3 16 24.5 (x-axis stepper) cc 16 21.5(y-axis stepper) cc 16 18.5 (pen up/down) cc 16 15.5 (home sensor) cc /yinc 1.1 def /kern 0.1 def font1 23 24.6 (Custom vinyl cutter, wood|j routing, milling|k|k machine, animation stand, awards engraver, embroidery|j|j setup, circuit|j board|j drilling, Santa|k Claus|k machine, etc. etc. etc\274) cc grestore %%%%%%%%%%%% font3 8 13.8 11.7 add (task feedback) cc 8 12.3 11.8 add (task commands) cc 12.7 26.5 (serial port) cc font1 20.5 22.2 (HOMEBREW FLUTTERWUMPER) cc cutsnap restore makeroom } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%% /schmidtcut {save /cutsnap exch def cutsnap restore makeroom } def %%%%%%%%%%%%%%%%%%%%%%%%%%%% /vortexcut {save /cutsnap exch def cutsnap restore makeroom } def %%%%%%%%%%%%%%%%%%%%%%%%%%%% /hposccut {save /cutsnap exch def cutsnap restore makeroom } def %%%%%%%%%%%%%%%%%%%%%%%%%%%% /duracellcut {save /cutsnap exch def cutsnap restore makeroom } def %%%%%%%%%%%%%%%%%%%%%%%%%%%% /ne2cut {save /cutsnap exch def cutsnap restore makeroom } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /f1name (SOME |j|jMENTIONED |j|jRESOURCES) def /f2name (A |j|jTYPICAL |j|jTRAM |j|jTOWER) def /f3name (THE |j|jTRAM |j|jCAR |j|jOR |j|j"CARRIER") def /s1name (No name used) def %% patches for internet %%%% %%%%% TEMPORARY TINTER %%%% makes gray a blue tint error under .11 setgray /setgray {/gvalue exch store % .12360 = .11/.89 gvalue 0 eq {0 0 0 setrgbcolor} if gvalue 1 eq {1 1 1 setrgbcolor} if gvalue 0 gt gvalue 1 lt and {gvalue 1 gvalue sub 0.12360 mul sub dup 1 setrgbcolor} if } bind def %%%%%%%%%%%% BLAT WEB PATCHES %%%%%%%%%% % Beige tinter /setgray {dup 0.731 ge { 1 exch dup .41 mul .30 sub .11 div setrgbcolor} {.856 div dup 1.155 mul exch 1.155 div 0 setrgbcolor} ifelse} def /showgrays true store /boxgrays 0.94 def /leftfooter {save /footsnap exch def /colcheck {} def /font7 /Helvetica-Bold 9.5 gonzofont font7 trystone { /font7 /StoneSans-Bold 8.5 gonzofont} if font7 hdc cmb fdp sub pubname cc hdl cmb fdp sub issuename cl hdr cmb fdp sub blatnum (.) mergestr pagenum ( ) cvs mergestr cr /txtwide 1000 store /font3 /Helvetica 4.5 gonzofont font3 hdc cmb fdp sub 14 sub (Copyright c 1999 by Don Lancaster and Synergetics (520) 428-4073 www.tinaja.com \ All commercial rights and all electronic media rights fully reserved.) cc footsnap restore} def % right footer does the same for right pages; headers would work the same /rightfooter {save /footsnap exch def /colcheck {} def /font7 /Helvetica-Bold 9.5 gonzofont trystone { /font7 /StoneSans-Bold 8.5 gonzofont} if font7 hdc cmb fdp sub (Blatant |jOpportunist) cc hdr cmb fdp sub issuename cr hdl cmb fdp sub blatnum (.) mergestr pagenum ( ) cvs mergestr cl /txtwide 1000 store /font3 /Helvetica 4.5 gonzofont font3 hdc cmb fdp sub 14 sub (Copyright c 1999 by Don Lancaster and Synergetics (520) 428-4073 \ www.tinaja.com \ All commercial rights and all electronic media rights fully reserved.) cc footsnap restore} def % blatlogo here /blatlogo {save /blsave exch def translate 5 dup scale /cstretch .05 def /sstretch 0.7 def /font; /Revue [2.6 0 0 2.6 0 0] gonzofont /font: /Revue [5 0 0 6 0 0] gonzofont /kern -0.1 def 1 [10 0 0 0 0 9 20 9 20 0 10 0] roundpath gsave boxgrays setgray fill grestore [0.9 0 0.7 1 0.55 0] superinsidestroke gsave -0.45 0 translate 1 [25 0 20 0 20 9 30 9 30 0 25 0] roundpath gsave boxgrays setgray fill grestore [0.9 0 0.7 1 0.55 0] superinsidestroke grestore /yinc 3 def font; 10 5 (the |j|jblatant opportunist) cc font: 24.55 2 blatnum cc blsave restore} def %%%%%%%%%%%%%% end blatpatch %%%% TEMPORARY Gonzo patches - makes text gray for later colorize /graytocolor 0.33 def /fornet false def /blueon {fornet {mark graytocolor /setgray cvx ] cvx % printlist only printlist exch 3 index exch put exch 1 add exch}if} def /blueoff {mark 0 /setgray cvx ] cvx % printlist only printlist exch 3 index exch put exch 1 add exch} def /staygray {graytocolor setgray} def % permanant /stayblack {0 setcolor} def % permanant %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%% Blatant opportunist patches 6.0 %%%%%%%%%%%%%%%%%% % February 17, 1997 % Place at end of "A" file just before IXE /wanttouseustify % COLORIZING BLACK AND WHITE POSTSCRIPT MODULE % ==================================== midnightdoc begin /boxgrays 0.92 def % 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 /aqua 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 /tintoff {mark 0 /setgray cvx] cvx printlist exch 3 index exch put exch 1 add exch} def /staytint {aqua 0.33 setgray} def /staytint1 {aqua 0.25 setgray} def /staytint1r {red 0.25 setgray} 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 /red {0 settint} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% aqua % normal for blat /leftfooter {save /footsnap exch def /colcheck {} def 0.33 setgray /font7 /Helvetica-Bold 9.5 gonzofont font7 trystone {/font7 /StoneSans-Bold 8.5 gonzofont} if font7 hdc cmb fdp sub pubname cc hdl cmb fdp sub issuename cl hdr cmb fdp sub blatnum (.) mergestr pagenum ( ) cvs mergestr cr /txtwide 1000 store /font3 /Helvetica 4.5 gonzofont font3 hdc cmb fdp sub 14 sub (Copyright c 1999 by Don Lancaster and Synergetics (520) 428-4073 www.tinaja.com \ All commercial rights and all electronic media rights fully reserved. Reposting expressly forbidden.) cc footsnap restore} def % right footer does the same for right pages; headers would work the same /rightfooter {save /footsnap exch def /colcheck {} def 0.33 setgray /font7 /Helvetica-Bold 9.5 gonzofont font7 trystone {/font7 /StoneSans-Bold 8.5 gonzofont} if font7 hdc cmb fdp sub (Blatant Opportunist) cc hdr cmb fdp sub issuename cr hdl cmb fdp sub blatnum (.) mergestr pagenum ( ) cvs mergestr cl /txtwide 1000 store /font3 /Helvetica 4.5 gonzofont font3 hdc cmb fdp sub 14 sub (Copyright c 1999 by Don Lancaster and Synergetics (520) 428-4073 \ www.tinaja.com \ All commercial rights and all electronic media rights fully reserved. Reposting expressly forbidden.) cc footsnap restore} def % blatlogo here /blatlogo {save /blsave exch def translate 5 dup scale /cstretch .05 def /sstretch 0.7 def /font; /Revue [2.6 0 0 2.6 0 0] gonzofont /font: /Revue [5 0 0 6 0 0] gonzofont /kern -0.1 def 1 [10 0 0 0 0 9 20 9 20 0 10 0] roundpath gsave boxgrays setgray fill grestore [0.9 0.33 0.7 1 0.55 0.33] superinsidestroke gsave -0.45 0 translate 1 [25 0 20 0 20 9 30 9 30 0 25 0] roundpath gsave boxgrays setgray fill grestore [0.9 0.33 0.7 1 0.55 0.33] superinsidestroke grestore /yinc 3 def font; 10 5 (the |j|jblatant opportunist) cc font: 24.55 2 blatnum cc blsave restore} def /titleblock { save /tbsnap exch def translate 0.33 setgray /ylimit -9999 def /txtwide 1000 def 340 10 yinc 2 add % temporary upshift mul 3 add blatlogo /cstretch 0.2 def /sstretch 0.2 def /font1 /Helvetica-Bold 11 gonzofont trystone {/font1 /StoneSans-Bold 11 gonzofont} if font1 412 102 yinc 2 mul add % temp upshift 5 sub (by Don Lancaster) cc /cstretch 0.05 def /sstretch 0.05 def /font2 /Helvetica-Bold 47 gonzofont trystone {/font2 /StoneSans-Bold [43.6 0 0 45 0 0 ] gonzofont} if font2 /yinc 50 def % temp for two %%% 0 87 18 sub 22 sub % 24 add % temp shift two lines 0 87 18 sub 22 sub % 24 add % temp shift two lines when active titlename cl tbsnap restore } def /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 /vrule {gsave 0.33 setgray newpath setlinewidth 2 index 4 2 roll moveto exch lineto 0.33 setgray stroke grestore} def % hrule gives a fixed horizontal rule, inputting ypos xstart xend linewidth /hrule {gsave 0.33 setgray newpath setlinewidth 1 index 4 2 roll moveto lineto 0.33 setgray stroke grestore} def /fullheader {save /hdrsnap exch def 0.33 setgray cml cmt 21 add moveto 2 setlinewidth hdw 0 rlineto stroke hdrsnap restore} def %%%%%%%%%%%%%%%%% % grayfig two has a title box (modified for reverse) /grayfig2 { /jsave justx 4 get def save /stdsnap exch def /colcheck {} def /figproc exch def cvx /figname exch def /showtitle exch def /showborder exch def 2 add % temp for blat 25 /figheight exch def 20 sub /figwidth exch def translate showborder {1 10 add 5 10.4 figheight 33 sub moveto figwidth 0.8 sub 0 rlineto figwidth 2 sub figheight 15 sub stdfigrad roundbox % gsave showboxgrays {0.94}{0} ifelse setgray fill grestore gsave 0.33 setgray fill grestore % temp gray box, white top gsave newpath 0 0 moveto 0 figheight 38 sub rlineto figwidth 2 sub 0 rlineto 0 figheight 38 sub neg rlineto closepath grayshade setgray fill grestore [2 0 1 1] superstroke } if /font7 /Helvetica-Bold 9 gonzofont trystone {/cstretch 0.5 store /font7 /StoneSans-Bold 9 gonzofont} if font7 showtitle {white figwidth 2 div figheight 31 sub font7 figname cc black} if /bw figwidth def /bt figheight def /bl 0 def /bb 0 def /bc figwidth 2 div def /xpos 20 def /ypos bt 20 sub def /cstretch 0 def /sstretch 0 def /lastlinestretch 0 def /pmrun 0 def /ypara 0 def /linestring linestring2 def % needed to run interference 3 1 roll translate dup scale mark figproc cvx exec cleartomark stdsnap restore justx 4 jsave put } def /grayshade 0.92 def % %%%ZZZZ%%%%%%%%%%%%%% URL PATCHES %%%%%%%%%%%%%%%%%%%%%%%%%%%% % patch definitions... % dictionary method << /imag1 (http://www.tinaja.com/images/bargs/lumin1.jpg) /imag2 (http://www.tinaja.com/images/bargs/thermoc1.jpg) /imag3 (http://www.tinaja.com/images/bargs/noisegn1.jpg) /imag4 (http://www.tinaja.com/images/bargs/casio1.jpg) /imag5 (http://www.tinaja.com/images/bargs/punchdn1.jpg) /deja (http;//2www.dejanews.com/home_ps.shtnl) /whois (http://2www.dejanews.com/home_ps.shtnl) /whowhere (http://www.whowhere.com) /bigfoot (http://www.bigfoot.com) /infospace (http://www.infospace.com) /mapquest (http://www.mapquest.com) /mapsonus (http://www.MapsOnUs.com) /aerial (http://terraserver.microsoft.com) /postvect (http://www.tinaja.com/psutils/postvect) /levyl (http://www.levylatham.com) /auct (http://www.auctionadvisory.com) /ebay (http://www.ebay.com) /teconn (http://www.4testequipment.com) /keely (http://www.keelynet.com) /oxbridge (http://www.mediafinder.com) /arrl (http://www.arrl.com/field/hamfests) /vartel(http://www.vartel.com/hamfest.htm) /sww (http://www.auctionsww.com/results/surplus.htm) /onsale(http://www.onsale.com) /ng1 (news:///sci.electronics.equipment) /ng2 (news:///sci.electronics.repair) /drms1 (http://www.drms.com/catalog/Catsite.html) /drms2 (http://www.drms.dla.mil/national/abstracts/indexabt.html) /drms3 (http://www.drms.dla.mil/newsales/html/bid_results.html) /drms4 (http://www.drms.dla.mil/htbin/drmsrch?Z11=0) /drms5 (http://www.drms.dla.mil/) /uwb (http://www.uwb.org) /ulab (http://commsci.usc.edu/ulab/links.html) /timed (http://www.time-domain.com) /boston (http://cuprum.chem.umn.edu/boston98.html) /eecs (http://www-eecs.mit.edu/AY96-97/events/19.html) /questlink(http://www.questlink.com) /nts (http://www.nts.mh.se/~johma/psd) /whidbey (http://ww2.whidbey.net/optoinfo/LED_FAQ.html) /spie (http://www.spie.org) /bap (http://positron.aps.org/BAPSMAR98/abs/S1690007.html) /aachen (http://www.rwth-aachen.de/isea/Ww/texte/abstract/ka_vrla.html) /tefbbs (http://www.tefbbs.com/spacetime/index.htm) /dnai (http://www.dnai.com/~jfox) /forum (http://www.dejanews.com/group/dejanews.members.tech.tinaja.gurus-lair) /xx1 (http://www.tinaja.com/glib/bannyear.pdf) /xx2 (http://www.tinaja.com/glib/bwhistle.pdf) /xx3 (http://www.tinaja.com/psutils/graburls.ps) /xx4 (http://www.tinaja.com/text/reflog1.html) /xx5 (http://www.tinaja.com/text/refsum1.html) /xx6 (http://www.tinaja.com/glib/muse116.pdf) /xx7 (http://www.tinaja.com/glib/muse124.pdf) /xx8 (http://www.tinaja.com/glib/pdflink.pdf) /xx9 (http://www.tinaja.com/glib/weaveweb.pdf) /xx10 (http://www.tinaja.com/psutils/weberru2.ps) /xx11 (http://www.tinaja.com/psutils/weblogu2.ps) /xx12 (http://www.tinaja.com/psutils/websitan.ps) >> {mark exch/eurl cvx ] cvx def} forall /specialpj {(http://www.tinaja.com/glib/picojust.pdf) eurl} def % picojust not allowed as gonzo variagle /maildon {(mailto:don@tinaja.com) eurl } def /tinaja {(http://www.tinaja.com) eurl } def /consult {(http://www.tinaja.com/consul01.html) eurl} def /netscape {(http://www.netscape.com) eurl } def /adobe {(http://www.adobe.com) eurl } def /parallax {(http://www.parallaxinc.com) eurl } def /coriolis {(http://www.coriolis.com) eurl } def /hottalk {(mailto:hottalk@printer-net) eurl } def /adobe1 {(http://www.adobe.com/supportservices/devrelations/technotes.html) eurl} def /tn5150 {( http://www.adobe.com/suportservice/devrelations/PDFS/TN5150.PDFMARK.PDF) eurl} def /gonzo {(http://www.tinaja.com/psutils/gonzo.ps) eurl} def /muse {(http://www.tinaja.com/muse01.html) eurl} def /m135p {(http://www.tinaja.com/glib/muse135.psl) eurl} def /graburls {(http://www.tinaja.com/psutils/graburls.ps) eurl} def /linkpdf {(http://www.tinaja.com/linkpdf1.html) eurl} def /rxhtml {(http://www2.imagiware.com/RxHTML) eurl} def /n1 {(news://sci.electronics.design) eurl} def /n2 {(news://sci.electronics.misc) eurl} def /hotbot {(http://www.hotbot.com) eurl} def /alta {(http://www.digital.altavista.com) eurl} def /xp {(www.dejanews.com/rg_mkgrp.xp) eurl} def /ifilter {(http://www.adobe.com/prodindex/acrobat/ifilter.html)eurl} def /srchpdf {(http://www.tinaja.com/text/srchpdf.html) eurl} def /redirect {(http://www.tinaja.com/text/redirect.html) eurl} def /hack73 {(http://www.tinaja.com/glib/hack73.pdf) eurl} def /hacklib {(http://www.tinaja.com/hack01.html) eurl} def /magic {(http://www.tinaja.com/magsin01.html) eurl} def /fourier {(http://www.tinaja.com/psutils/fourier.ps) eurl} def /zeroharm {(http://www.tinaja.com/psutils/zeroharm.ps) eurl} def /sincat210 {(http://www.tinaja.com/sn210cat.ps) eurl} def % power method... /setglib {mark (http://www.tinaja.com/glib/) 2 index 20 string cvs mergestr (.pdf) mergestr /eurl cvx ] cvx def} def /setpost {mark (http://www.tinaja.com/psutils/) 2 index 20 string cvs mergestr (.ps) mergestr /eurl cvx ] cvx def} def /sethtml {mark (http://www.tinaja.com/) 2 index 20 string cvs mergestr (.html) mergestr /eurl cvx ] cvx def} def /setweb {mark (http://www.) 2 index 20 string cvs mergestr (.com) mergestr /eurl cvx ] cvx def} def /magicsin {/msinprop} def /parallax {/parallaxinc} def [ /when2pat /patnthor /msinprop /magicsin /nuts08 /hack35 /gramtram /muse116 /hack84 /muse112 /muse113 /colorizd2 /spotcolr /urlindoc /emergop1 /emergop5 /resbn63 /muse135 /muse120 /muse131 /resbn88 /muse115 /muse137 /infopack /hack64 /hack68 /resbn37 /resbn18 /resbn26 /map01 /hack47 /hack68 /hack60 /hack69 /resbn80 /resbn91 /resbn82 /resbn73 /resbn87 /hack71 /hack73 /hack76 /resbn19 /acrocat /twenty47 /muse139 /muse115 /muse116 /bannyear /advetorl /resbn81 /infopack /postjust ] {setglib} forall [ /magsn01 /patnt01 /blat01 /h2gas01 /capvid01 /ismm01 /bod01 /synlib01 /muse01 /pseudo01 /post01 /consul01 /weblib01 /patnt01 /post01 /info01 /acrob01 /advt01 /info01 /dntkwb01 /beewb01 /hack01 /flut01 /webwb01 /tinaja /weblib01 /barg01 /blat01 /barg01 /weblib01 /linkpdf1 /psweb01 /amlink01 /resbn01 /blat01 /webwb01 /amlink01 /guru01 /tinaja01 ] {sethtml} forall [/colorizd2 /websitan /acatdata /catwords /coloriz2 /catools1] {setpost} forall [ /parallaxinc /mediafinder /hotbot /patent.womplex.ibm /amazon /digital.altavista ] {setweb} forall /lindsay {(http://www.keynet.net/~lindsay) eurl} def /resch {(http://www.wp.com/resch/search.html) eurl} def /redirect {(http://www.tinaja.com/text/redirect.html) eurl} def /websitan {(http://www.tinaja.com/psutils/websitan.ps) eurl} def /bannlast {(http://www.tinaja.com/text/bannlast.html) eurl} def /byternge {(http://www.tinaja.com/text/byternge.html) eurl} def %%%%%% << /billb (http://www.eskimo.com~billb) /billbfe (http://www.eskimo.com/~bilb/freenrgl/fnrg) /randi (http://www.randi.org/jr/pigasus.html) /skeptic (http://www.csicop.org) >> {mark exch /eurl cvx ] cvx def} forall /bigfoot {(http://www.bigfoot.com) eurl} def /drebes {(http://www.drebes.com) eurl} def /infospace {(http://www.infospace.com) eurl} def /factsheet5 {(http://www.factsheet5.com) eurl} def /watch {(http://www.searchenginewatch.com) eurl} def /scieldes {(news:sci.electronics.design) eurl} def /quest {(http://www.questlink.com) eurl} def /acronews {(news:comp.text.pdf) eurl} def /acroread {(http://www.adobe.com/prodindex/acrobat/readstep.html) eurl} def /alta {(http://www.altavista.digital.com) eurl} def /dominis {(http://www.dominis.com/Zines) eurl} def /ejournal {(http://www.edoc.com/ejournal) eurl} def /parallax {(http://www.parallaxinc.com) eurl} def /homeart {(http://www.homearts.com/affil/ahi/main/ahihome.htm) eurl} def /amazon {(http://www.amazon.com) eurl} def /meer {(http://www.meer.net/~johnl/e-zine-list) eurl} def /scweb01 {(http://www.tinaja.com/scweb01.html) eurl} def /blackrange {(http://www.zianet.com/blackrange/lodge.html) eurl} def /blond {(http://www.winn.com/pwinn/humor/index/html) eurl} def /trader {(http://www.traderonline.com) eurl} def /cowmoo {(http://www.qtm.net/~geibdan/framest.html) eurl} def /subgen {(http://sunsite/unc.edu/subegnius) eurl} def /c2000 {(http://www.classifieds2000.com) eurl} def /dilbert {(http://www.unitedmedia.com/comics/dilbert) eurl} def /tinaja {(http://www.tinaja.com) eurl} def /medweb {(http://www.gen.emory.edu/medweb) eurl} def /factsheet {(http://www.well.com/conf/f5/f5index2.html) eurl} def /fmfind {(http://wmbr.mit.edu/stations/locate.html) eurl} def /four11 {(http://www.Four11.com) eurl} def /freecat {(http://catalog.savvy.com) eurl} def /freenrg {(http://www.eskimo.com/~bilb/freenrg/frng) eurl} def /healthy {(http://www.healthy.net) eurl} def /bentley {(http://www.bentleysauction.com) eurl} def /eeweb01 {(http://www.tinaja.com/eeweb01.html) eurl} def /hotbot {(http://www.hotbot.com) eurl} def /infer {(http://www.inference.com/infind) eurl} def /info01 {(http://www.tinaja.com/info01.html) eurl} def /persian {(http://www.persiankitty.com) eurl} def /ccodes {(http://www.Four11.com/cgi-bin/Four11Main?Country) eurl} def /thelist {(http://thelist.iworld.com) eurl} def /keelynet {(http://www.keelynet.com) eurl} def /jobs {(http://www.datamation.com/PlugIn/jobs/jobs.html) eurl} def /kelly {(http://www.kbb.com) eurl} def /lindsay {(http://www.keynet.net/~lindsay) eurl} def /lookup {(http://www.lookupusa.com) eurl} def /bell800 {(http://att.net/dir800) eurl} def /mapquest {(http://www.mapquest.com) eurl} def /faq {(http://www.faqlib.com) eurl} def /pic500 {(http://www.tinaja.com/pic500) eurl} def /wpsearch {(http://www.wp.com/resch/search.htm) eurl} def /microchip {(http://www.microchip.com) eurl} def /mohotta {(http://www.mohotta.com) eurl} def /acrob01 {(http://www.tinaja.com/acrob01.html) eurl} def /movie {(http://us.imdb.com) eurl} def /booksol {(http://www.cs.cmu.edu/books.html) eurl} def /oxbridge {(http://www.mediafinder.com) eurl} def /paml {(http://www.NeoSoft.com/internet/paml/byname.html) eurl} def /patent {(http://patent.womplex.ibm.com) eurl} def /elements {(http://www2.shef.ac.uk/~chem?web-elements) eurl} def /picup01 {(http://www.tinaja.com/picup01.html) eurl} def /yahoo {(http://www.yahoo.com/bin/top2?122.25) eurl} def /azstream {(http://wwwdaztcn.wr.usgs.gov/rt-cgi/gen_tbl_pg) eurl} def /saucer {(http://www.mcs.com/~kvg/smear.htm) eurl} def /scott {(http://www.seetron.com) eurl} def /billb {(http://www.eskimo.com/~billb) eurl} def /shepard {(http://home.att.net/~dennis.shepard) eurl} def /barg01 {(http://www.tinaja.com/barg01.html) eurl} def /switchboard{(http://www.switchboard.com/) eurl} def /techweb {(http://techweb.cmp.com/eet/docs) eurl} def /govsurp {(http://131.87.1.51) eurl} def /zipcode {(http://www.usps.gov/ncsc) eurl} def /vanagon {(mailto:Vanagon@gerry.sdsc.edu) eurl} def /wsrn {(http://wsrn.com) eurl} def /launch {(http://www2com.com/~upfront/launch) eurl} def /webann {(http://www.ep.com/faq/webannounce.html) eurl} def /whois {(http://www.internic.net/cgi-bin/whois) eurl} def /internic {(http://www.internic.net) eurl} def /weblib01 {(http://www.tinaja.com/weblib01.html) eurl} def /whowhere {(http://www.whowhere.com) eurl} def /deja {(http://www.dejanews.com/home_ps.shtml) eurl} def /newslist {(http://www.tinaja.com/text/newslist.html) eurl} def /thomas {(http://www.thomasregister.com/index.html) eurl} def /selfref {(http://www.tinaja.com/glib/resbn71.pdf) eurl} def % 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 /aqua cvx 0 /setgray cvx % turn blue marker off /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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /wanttousepicojustify true def % this globally turns picojust on or off %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wanttousepicojustify false 40 array dictstack {/^picoset known or} forall not and { % FILL JUSTIFICATION IMPROVER version 3.0, November 3, 1994. c 1994 by % Don Lancaster & Synergetics (602) 428-4073. [support on GEnie PSRT] % Personal use premitted; All commercial & media rights fully reserved. % Install this where it will redefine all print time uses of % the -awidthshow- operator. Use picojust true or false to control. /picoflag true def % selective availability switch /picofract 0.5 def % percentage of excess space to be internalized /picothresh 0.03 def % percentage/100 increment per font change /picomax 0.15 def % percentage/100 max stretch (limits fat chars) /^picoset true def % job multiple def lockout /picojust {/picoflag exch store} def % use for local turn on or off /awidthshow {1 index 4 index 6 index add add 32 eq not picoflag not or {//awidthshow}{/^msg exch store pop /^cst exch store pop pop /^sst exch store /^cct ^msg length store /^rwd ^msg stringwidth pop store /^sct 0 ^msg {( ) search {pop pop exch 1 add exch}{pop exit} ifelse} loop store /^jwd ^cct ^cst mul ^sct ^sst mul add store /^saj ^jwd dup ^rwd add dup 0 eq {pop 0.0001} if div picothresh div floor picothresh mul picofract 1.33 mul mul dup picomax ge {pop picomax} if 1 add store gsave ^saj 1 scale /^rft 1 ^saj 1 sub ^rwd mul ^jwd dup 0 eq {pop 0.0001} if div sub ^saj div store ^sst ^rft mul 0 32 ^cst ^rft mul 0 ^msg //awidthshow grestore ^jwd ^rwd add 0 rmoveto} ifelse} bind def} if %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % /.ep0 {} def /.ep1 {} def % blat45 $650 patent %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /wanttousepicojustify false def % this globally turns picojust on or off %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wanttousepicojustify false 40 array dictstack {/^picoset known or} forall not and { % FILL JUSTIFICATION IMPROVER version 3.0, November 3, 1994. c 1994 by % Don Lancaster & Synergetics (602) 428-4073. [support on GEnie PSRT] % Personal use premitted; All commercial & media rights fully reserved. % Install this where it will redefine all print time uses of % the -awidthshow- operator. Use picojust true or false to control. /picoflag true def % selective availability switch /picofract 0.5 def % percentage of excess space to be internalized /picothresh 0.03 def % percentage/100 increment per font change /picomax 0.15 def % percentage/100 max stretch (limits fat chars) /^picoset true def % job multiple def lockout /picojust {/picoflag exch store} def % use for local turn on or off /awidthshow {1 index 4 index 6 index add add 32 eq not picoflag not or {//awidthshow}{/^msg exch store pop /^cst exch store pop pop /^sst exch store /^cct ^msg length store /^rwd ^msg stringwidth pop store /^sct 0 ^msg {( ) search {pop pop exch 1 add exch}{pop exit} ifelse} loop store /^jwd ^cct ^cst mul ^sct ^sst mul add store /^saj ^jwd dup ^rwd add dup 0 eq {pop 0.0001} if div picothresh div floor picothresh mul picofract 1.33 mul mul dup picomax ge {pop picomax} if 1 add store gsave ^saj 1 scale /^rft 1 ^saj 1 sub ^rwd mul ^jwd dup 0 eq {pop 0.0001} if div sub ^saj div store ^sst ^rft mul 0 32 ^cst ^rft mul 0 ^msg //awidthshow grestore ^jwd ^rwd add 0 rmoveto} ifelse} bind def} if %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /activatemenu { %%%% ONLINE LINKER %%%%% %%%%% Module to insert eight pdf menu options .... % Place after |x but before last showpage % work out an HTML like PDF response /button { makeurlx % make box shaped url gsave beige % settint % 0.13 settint % try slight shift xpos ypos 0.9 sub translate 0.1 dup scale 0 0 mt 28 pu 28 pr 28 pd closepath 0.85 setgray fill 0 0 mt 0 28 pu 4 -4 rlineto 20 pd 20 pr 4 -4 rlineto closepath 0.5 setgray fill 0 28 mt 28 pr 28 pd -4 4 rlineto 20 pu 20 pl closepath 0.65 setgray fill 8 8 mt 12 pu 13 -6 rlineto closepath 0.33 setgray fill grestore xpos ypos mt } def % 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 /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 % text link specific data /syncat01 {(http://www.tinaja.com/glib/syncat01.pdf) eurl} def /ismm01 {(http://www.tinaja.com/ismm01.html) eurl} def /amlink01 {(http://www.tinaja.com/amlink01.html) eurl} def /tinaja01 {(http://www.tinaja.com/tinaja01.html) eurl} def /info01 {(http://www.tinaja.com/info01.html) eurl} def /barg01 {(http://www.tinaja.com/barg01.html) eurl} def /advt01 {(http://www.tinaja.com/advt01.html) eurl} def /maildon {(mailto:don@.tinaja.com) eurl} def % button link specific data /syncat01x {(http://www.tinaja.com/glib/syncat01.pdf) button} def /ismm01x {(http://www.tinaja.com/ismm01.html) button} def /amlink01x {(http://www.tinaja.com/amlink01.html) button} def /tinaja01x {(http://www.tinaja.com/tinaja01.html) button} def /info01x {(http://www.tinaja.com/info01.html) button} def /barg01x {(http://www.tinaja.com/barg01.html) button} def /advt01x {(http://www.tinaja.com/advt01.html) button} def /maildonx {(mailto:don@.tinaja.com) button} def /menu8v {gsave translate save /dosnap exch def /ybot -9999 def /ylimit -9999 def font3 font0 0 0 10 setgrid % 50 50 showgrid /cstretch 0.015 def /sstretch 0.015 def /font0 /Revue 1.2 gonzofont /font0 /StoneSans-Bold 1 gonzofont /font1 /StoneSans-Bold 1 gonzofont /font3 /Helvetica-Bold 3 gonzofont /kern 0.1 def 0 0 23 1 add 30 3.2 add 1 roundbox % clip gsave beige 0.33 setgray fill % gsave % 0 27 mt 3 pu 50 pr 3 pd closepath 0.33 setgray fill % grestore % 0.33 setgray stroke white font3 /cstretch 0.1 def 12.5 31.8 (|0PLEASE |j|jCLICK |j|jHERE |j|jTO\274 ) cc /cstretch 0.015 def 0.5 1.2 23 30 0.8 roundbox 0.75 setgray fill % /yinc 3.5 def black font1 3.2 12.1 14.8 add (|/syncat01x |1 Get a Synergetics |/surl catalog|/syncat01 ) cl 3.2 8.7 14.8 add (|/ismm01x |1 Start your |/surl tech venture|/ismm01 ) cl 3.2 5.3 14.8 add (|/advt01x |1 Sponsor a display |/surl banner|/advt01 ) cl 3.2 1.9 14.8 add (|/info01x |1 Find |/surl research|/info01 solutions) cl 3.2 12.1 (|/maildonx |1 Send Don Lancaster |/surl email|/maildon ) cl 3.2 8.7 (|/barg01x |1 Pick up surplus |/surl bargains|/barg01 ) cl 3.2 5.3 (|/tinaja01x |1 Find out what a |/surl tinaja|/tinaja01 is) cl 3.2 1.9 (|/amlink01x |1 View recommended |/surl books|/amlink01 ) cl grestore dosnap restore} def } def % as in activate menu %%%% END LNKER %%%%%%%%%%%%%%%%%%%%%%%%%% midnightdoc starttemplate /dropindent 31 def /tabs [20] def /font0 /StoneSans-Bold [40 0 0 40.1 0 -23] gonzofont % temp fat s /font6 /Times-BoldItalic 9.75 gonzofont /font7 /Times-BoldItalic 9.25 gonzofont /font8 /Times-BoldItalic 9.75 gonzofont /font: /Times-Roman 7 gonzofont /font= /Helvetica-Bold 8 gonzofont /font; /Symbol 9.5 gonzofont /nicebar {gsave bestgray 1 setlinecap xpos ypos 5.9 add moveto txtwide 5 sub 0 rlineto [4 0 2.5 .95] superstroke /ypos ypos yinc 2 div sub def grestore} def /emacro {ypos 190 lt {/ypos ypos 200 sub def}if } def /fmacro {/sstretch 0 def} def /Wmacro {/ttheight 12 yinc mul def} def /Xmacro {/ttheight 10 yinc mul def} def /Ymacro {/ttheight 10 yinc mul def} def /tabs [54] def /specialbox {gsave xpos 46 add ypos 3 add 135 0 18 yinc mul add neg stdfigrad roundbox gsave 0.94 setgray fill grestore [2 0 1 1] superstroke grestore grestore} def % /boxit illustrates marked Acrobat button % gonzo box autoposition linker /topstrlist {mark 3 1 roll {/roomleft exch roomleft exch sub def printlist exch 3 index exch put exch 1 add exch} /exec cvx ] cvx def} def /boxit{ gsave line1 currentpoint translate -1 -3 mt 10.5 pu 50.5 pr 10.5 pd closepath line1 stroke grestore} 0 topstrlist /fancybox {gsave currentpoint translate -7 -5 205 16 2 roundbox gsave showboxgrays {0.94}{1} ifelse setgray fill grestore [2 0 1 1] superstroke grestore} 0 topstrlist /orangeon {mark 0.04 /settint cvx 0.45 setgray cvx ] cvx % temp printlist exch 3 index exch put exch 1 add exch} def /aquaon {mark 0.52 /settint cvx 0 /setgray cvx ] cvx printlist exch 3 index exch put exch 1 add exch} def /tabs [125] def /shiftin {/xpos xpos 16 add store /txtwide txtwide 32 sub store}def /shiftout {/xpos xpos 16 sub store /txtwide txtwide 32 add store}def /font9 /Times-Roman [9.75 0 0 -9.77 0 4.5] gonzofont % special effect %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % tracking inset for the isopod energy reporter cut /isopodcut {save /cutsnap exch def /ttheight 13 yinc mul def /ttwidth 160 def /ttrad 3 def aqua (ISOPOD ENERGY REPORTER) ttbox beige %% 1.3 0.4 translate 0.1 dup scale % isopod 100 dict /Prolog exch def Prolog begin -150 -180 translate 0.6 dup scale /bd {bind def} bind def /c {curveto} bd /f {fill} bd /g {setgray} bd /gs {gsave} bd /gr {grestore} bd /l {moveto lineto stroke } bd /m {moveto} bd /r {rlineto} bd /s {stroke} bd /w {setlinewidth} bd /y {0 exch rlineto} bd 1 setlinecap 0.33 g % near strands 1.32 w 256.9 314.5 278.1 320.2 l 256.4 316.4 277.6 322.1 l 255.8 318.3 277.1 324 l 255.3 320.3 276.6 326 l 254.8 322.2 276.1 327.9 l 254.3 324.1 275.5 329.8 l 1.32 w 468.4 467.4 446.5 465.1 l % far strands 468.6 465.4 446.7 463.1 l 468.8 463.4 446.9 461.1 l 469 461.4 447.1 459.1 l 469.2 459.5 447.3 457.2 l 469.4 457.5 447.5 455.2 l 0 setlinecap % far wire 1 g 18 w 387 425 m 405.8 440.7 422.8 455.7 447 460 c % gs s gr % white break gs 0.33 g 16 w s gr % brown edge 0.8 g 13 w s % orange inside 1 setlinecap lime 0.92 g % ball 10 w 406.9 410 m 406.9 432.1 389 450 366.9 450 c 344.8 450 326.9 432.1 326.9 410 c 326.9 387.9 344.8 370 366.9 370 c 389 370 406.9 387.9 406.9 410 c gs f gr % gs 4 w s gr % outline omitted 0.33 g 1.8 w s 0.6 w 327 410 m 330.4 400.6 338.3 394.9 347 390 c 365.1 379.5 392 383.9 405.5 400 c s beige 1 g 18 w 1 setlinecap 347 390 m 326.8 373.1 319.7 348.1 297 335 c % gs s gr % white outline omitted gs 0.33 g 16 w s gr 0.8 g 13 w s 0 setlinecap % rest of front wire 1 g 18 w 297 335 m 290.1 331 284.6 327 277 325 c % gs s gr gs 0.33 g 16 w s gr 0.8 g 13 w s 1 setlinecap lime 0.92 g % notch 1.6 w 394.6 391 387.5 388 l 0.33 g 0.6 w 387 387.5 m 4 y 8 3.9 r -3.97 y s end grestore cutsnap restore /tthh ttheight def /ttheight 13 yinc mul def % temp workaround makeroom /ttheight tthh def } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% black startgonzo |a G |b etting decent looking full color online images can be a \ nasty problem. Except for several outrageously costly \ models, most digital cameras are not even remotely \ good enough yet. Especially for lettering or other fine \ detail. Instead, I've discovered that a scanner can take \ a much better photo than a digital \ camera can.|p Here's some rather amazing scanner examples\274 |h |/surl |2www.tinaja.com/images/bargs/casio1.jpg|/imag4 |/surl |2www.tinaja.com/images/bargs/lumin1.jpg|/imag1 |/surl |2www.tinaja.com/images/bargs/noisegn1.jpg|/imag3 |/surl |2www.tinaja.com/images/bargs/punchdn1.jpg|/imag5 |/surl |2www.tinaja.com/images/bargs/thermoc1.jpg|/imag2 |h|1|F Consider some eight inch object. A digital camera might \ deliver |4800|1 pixels per line at best. A premium scanner \ can easily deliver |410,000|1. Leading to an area \ resolution that is many |2hundreds|1 of times higher. Your \ exposure, distortion, lighting, and focus will usually be \ right on. You also work directly with high res \ bitmaps instead of being forced into compression \ artifacts. It's fast, simple, and cheap. Naturally, you are limited to "front only" scenes. And \ to objects that fit on your scanner bed. Your chosen scanner \ must also have an exceptional depth of field. And \ lighting does tend to drop off dramatically on the more \ rearward portions of your subject. But within these \ obvious bounds, there is no comparison in the \ results you'll get. |c Scanning |j|ja|j|j"|jPhotograph|j" |d Your imaging process can begin by placing an object on a \ suitable scanner and then generating useful workfiles \ for further processing. Here's some handy tips\274 |h|z |/tinton1 |6Use a premium scanner|j\261|/tintoff |1 Make \ sure your chosen scanner has a minimum resolution of \ |41200 DPI|1, scans "millions of sharp colors", and \ offers a truly exceptional depth of field. Preferably a legal \ size or even larger. The |2Hewlett Packard|1 Scanjet \ |46100C|1 seems to be one good choice. |h |/tinton1 |6Keep the glass exceptionally \ clean|j\261|/tintoff |1 Any thumbprints and cat hair on \ the scanner glass are sure to end up as image blemishes. Clean \ your glass immediately before each use. Carefully avoid \ any and all scratches. |h |/tinton1 |6Stabilize the object|j\261|/tintoff |1 Remove \ the lid. Then use a variety of erasers or plastic doodads \ from a "props box" to make sure your object will sit \ perfectly still during scanning. Add tape to the scanner \ frame to secure any line cords or anything else that \ might move your object. |/tinton1 |6Get parallel|j\261|/tintoff |1 Once again, \ you use erasers to prop up the corners of an object. Such \ that the front panel or whatever is |/tinton1 |2perfectly \ planar|1|/tintoff to \ your scanner glass. Instead of awkardly sitting on \ random knobs or switch handles. When possible, physically \ support the entire object slightly off the glass. |h |/tinton1 |6Carefully select support points|j\261|/tintoff |1 \ Make sure any erasers or other supports do not mask anything \ crucial underneath. Place supports only over "easily edited" \ object areas. Such areas should be nearly identical left, right, and \ below your intended support point. And lettering free. |h |/tinton1 |6Get square|j\261|/tintoff |1 It is of utmost \ importance to carefully align your object. Use a \ mechanic's combination square to |/tinton1 |2aim |/tinton1 for a one pixel \ alignment accuracy|1|/tintoff if possible. Slightly slanty edge \ lines are certain to cause you editing grief. These can \ be exceptionally difficult to deal with later. |h |/tinton1 |6Paper the background|j\261|/tintoff |1 Select \ an appropriate paper color and cover every remaining \ part of the scanner bed. Cutting holes in the paper \ sheets or creasing them might improve stability and get \ you up as close to your glass as possible. Stabilize with \ tape or weight if needed. But don't worry too much about the exact \ paper uniformity. |h |/tinton1 |6Goose the gamma|j\261|/tintoff |1 If \ available, try using an extremely sharp rising custom \ gamma curve. One that dramatically brightens all levels. \ Most especially those very darkest ones. Your curve should \ climb very steeply and then gradually flatten out. Lighten \ |2everything|1. |h |/tinton1 |6Zoom moderately |j\261|/tintoff |1 Even with the \ higher resolution, you'll want to get as many pixels \ working for you as possible. A moderate zoom before your \ final scan is a good choice. This usually also will end \ up as nearly "full" size on a larger monitor with higher \ screen resolution. |h |/tinton1 |6Use bitmap format|j\261|/tintoff \ |1 Uncompressed bitmaps are by far the best choice when \ both maximum lettering sharpness and freedom from \ generational artifacts are needed. Always do save and \ process initially in a bitmap format. Change only your \ final edited images to |4JPEG|1 or other more compact \ formats. And then only as a last step. |h |/tinton1 |6Use CD-R Disks|j\261|/tintoff |1 Raw bitmaps \ can consume prodiguous amounts of memory, especially on \ repeated version saves. Keep these bitmaps out of your \ main computer memory by using |4CD-R|1 optical drives. \ Saving all work in progress to a dedidicated |4CD-R|1 \ disk. Be sure to resave often. Disks are now cheap. Use \ of one per image is a good idea. |c Converting |j|j"Photograph"|j|j to|j|j Image |d The next step in the process is to digitally "improve" \ the scanned image, changing it into something that's halfway \ between a photograph and an art drawing. The secret is to \ remove the image defects while still accuratey conveying \ key device features. Your best of "improvements" should \ seem to uttery disappear when they are properly \ done. Here's some processing suggestions\274 |h|z |/tinton1 |6Pick suitable tools|j\261|/tintoff |1 One \ obvious choice here is Adobe's |2Photoshop|1. But I've \ found very useful results can be gotten with plain old \ |2Paint|1 for editing. Followed by the |2Arcata Pet|1 \ |2ImageViewer|1 for sizing and the enhancement of \ brightness, contrast, and gamma. Plus |4JPEG|1 conversion. |h |/tinton1 |6Resave often|j\261|/tintoff |4CD-R|1 media \ has a nasty habit loosing a file every now and then. \ Sometimes recoverable, sometimes not. Be sure to repeatedly \ save ongoing work to new and incrementally higher \ filenames. Never back up less often than you are \ willing to loose. |h |/tinton1 |6Crop to subject|j\261|/tintoff |1 My own \ preference is to have a solid pastel color background. \ One that emphasizes your object shape but otherwise fades \ into obscure invisibility. Select one pixel in a lighter \ background area as the target tint. Expand this first into \ a rough background which covers everything not \ immediately adjacent to the subject. Then use individual \ pixel tools to actually crop to subject. |h |/tinton1 |6Save a palette|j\261|/tintoff |1 Save one or \ more portions of the original background in distant \ locations. These will give you a stash of blending \ pixels that may be very handy for later jaggie reduction \ and other use. The palettes can be erased after all \ of your other work is complete. |h |/tinton1 |6Remove the props|j\261|/tintoff |1 The chances are \ there'll be pieces of eraser or whatever left on your \ image. These are removable by sliding copies from nearby \ pixels over them. Either by dragging Paint's box \ selection tool, or by using the pencil to copy nearby \ pixels or lines. Note that the pencil can be forced to \ draw horizontally or vertically only by holding down the \ shift key. A most handy insider secret. |h |/tinton1 |6Retouch defects|j\261|/tintoff |1 This is \ where you get rid of the cat hair and all the pixels \ whose colors are just plain wrong. This can get done on a \ pixel-by-pixel basis. You can also select larger regions \ to let nearby textures overwrite any problem areas. Note \ that dragging such a region diagonally is less \ noticable. And that a pixel retouch can feather any \ obvious region discontinuities. |h |/tinton1 |6Deal with jaggies|j\261|/tintoff |1 Try to get \ as many perfectly horizontal or perfectly vertical edge \ lines as possible. Cropping into the subject often can \ eliminate a jaggie or two. Physically offsetting the \ whole top of the image by a pixel every time it gets \ really needed is another possibility. Lighten edges \ where appropriate. Remaining jaggies can be feathered by \ using suitable anti-aliasing tints from your saved \ palette. |h |/tinton1 |6Crowd shadows|j\261|/tintoff |1 Almost \ certainly, there will be distracting and uselessly dark \ areas in your image. One useful way to deal with these is \ to |2crowd|1 them. Do this by sliding an adjacent \ brighter region down into the dark by a pixel or two. \ The trick is to get the last "brown" line to replace the \ first few useless "black" ones. |/tinton1 |6Remove undesirables|j\261|/tintoff |1 The next \ step beyond defects is to selectively improve an object. \ Such as taking out lettering or calibration labels. Or fixing \ blemishes and paint chips. Or using solid color fills over \ awkward areas. Just make sure your final image fairly \ represents the original product. |h |/tinton1 |6Emphasize a few edge details|j\261|/tintoff |1 \ On the other hand, certain edges sometimes should be \ made purposely jaggy. Pipe threads, ferinstance. Or fine \ sensor details. Fortunately, the eye views detail in \ black and white rather than color, so a certain mismatch \ between threads and their colors will not be noticed. If \ you have to, completely redraw a region to get an exact \ pixel accuracy of whatever you are trying to portray. But a \ little of this goes a very long way. |h |/tinton1 |6Use symmmetry tricks|j\261|/tintoff |1 Once \ you have one corner of an object rounded and \ anti-aliased and de-jaggied the way you want it, make a \ copy and flip it vertically or horizontally. Then copy \ this to unprocessed corners. Sometimes you can even \ mirror the left half of an image portion with the right. \ Improving appearance while saving lots of time and \ effort. But don't get too obviously perfect. And \ carefully blend anything jarring. |h |/tinton1 |6Selectively brighten|j\261|/tintoff |1 Photoshop \ and other fancy editing programs let you selectively \ enhance portions of images. You can fake this with Paint by \ isolating the element to be brightened, fixing it with \ ImageViewer, and returning it to Paint as an overlay. This is \ one roundabout way to deal with low brightness on further away image areas. |h |/tinton1 |6Add needed extras|j\261|/tintoff |1 It's often \ easier to add product feet as hand drawn artwork. Or to \ splice in a line cord from some other image. Or even to \ merge two image portions by first using the Paint \ |2attributes|1 to expand the size and then dragging into \ it. If something looks too garish (such as a brushed \ aluminum handle), try replacing it with flatter and more \ subtle Paint pixels. |h |/tinton1 |6Crop, balance, and convert|j\261|/tintoff |1 \ Once the image looks as good as you think Paint can get \ it, switch to a program that lets you crop to size. And \ then lets you reemphasize contrast, brightness, and gamma. \ Almost all scanned images can be dramatically improved \ by raising both your contrast and brightness. Subtle \ gamma changes can also help. Finally, convert your final \ to more compact |4JPEG|1 format. |h |c For |j|jMore|j|j Assistance |d Dozens of additional examples of scanned "photographs" \ are at |/surl |2www.tinaja.com/barg01.html|/barg01 \ |1An additional scanning tutorial is up as \ |/surl |2www.tinaja.com/glib/muse139.pdf|1|/muse139 |1 Custom consulting on \ these techniques is available by way of my |/surl \ |2www.tinaja.com/info01.html|1|/info01 or by emailing me directly at \ |/surl |2don@tinaja.com|1|/maildon Let's hear from you. |/tinton1 |-F|1|/tintoff |/staytint1 |Z|F|p |2Microcomputer pioneer and guru \ Don Lancaster is the \ author of |535|2 books and countless articles. Don maintains a \ |5US|2 technical helpline you'll find at |5(520) 428-4073|2, \ besides offering all \ his own |/surl books|/amlink01 |/aqua |/tinton1 , \ reprints and |/surl consulting services|/info01 . |/aqua Don has catalogs \ at |/surl |2www.tinaja.com/synlib01.html|2|/synlib01 |/aqua |/tinton1 and \ at |/surl |2www.tinaja.com/barg01.html|2|/barg01 Don is also the webmaster of |/surl |2www.tinaja.com|/tinaja |/tinton1 \ You can also reach Don at Synergetics, Box |5809|2, \ Thatcher, |5AZ 85552|2. Or you can use email via |/surl \ don@tinaja.com|1|/maildon |x activatemenu % cannot hit earlier cm2 0 add % cmb 0 add % 230 add % special 190 380 % try centered % 322 406 % upper right % 322 59 % lower right % 1 0.98 scale % slight adjust menu8v % and show the final page. Don't skip the |x gonzo ender above! Otherwise % you never return to PostScript and never print the last page... showpage % remove features % This works superbly, but only \after lots of practice.