%! % Name of file: Tech Musings 149 transmission line transformers etc %%%%%%%%%%%% % VERY IMPORTANT FILE SPECIFIC NOTE: The file pix148-3.jpg is % required to run this program. Place their correct locations here using double % reverse slashes when one is intended... % /pixfilename1 (C:\\Medocs\\Muse\\Muse 147\\pix147-1.jpg)def /pixfilename3 (C:\\Medocs\\Muse\\Muse 148\\pix148-3.jpg)def %%%%%%%%%%%%% % IMPORTANT NOTE: The file gonzo.ps is required to run % this program. Uncomment ONE of the following two lines: (C:\\windows\\desktop\\gonzo\\gonzo.ps) run % use internal gonzo % (A:\\gonzo.ps) run % use external gonzo % GONZO20A Guru Gonzo PostScript power tools (Interim release) % Includes gonzo justification and layout utilities. % Copyright c 1990,1996 by Don Lancaster and Synergetics, Box 809, % Thatcher Arizona, 5552 (520) 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. % statusdict begin % statusdict /setduplexmode known {true setduplexmode} if end % systemdict /setstrokeadjust known {true setstrokeadjust} if /mastergray {0.92} def % sets overall light grade shade %%%%%%%%%%%%%%%%% % Here's some needed routines not yet in GUTILITY.PTL or GONZO13A.PTL %............... % 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 /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 % 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 % 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 % this is a repeat of the GONZO13B callout width proc ... gonzo begin /endtheline {/curwide txtwide roomleft sub def justx cvx exec oktoprint {printline} if} bind def /cw {save /snapc1 exch def /oktoadvance false def /oktoprint false def /linestring linestring2 def /justx (justL) def 3 1 roll /ypos exch def /xpos exch def stringgonzo curwide snapc1 restore} def end %%%%% 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 blue % settint 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.6 setgray fill 0 28 mt 28 pr 28 pd -4 4 rlineto 20 pu 20 pl closepath 0.75 setgray fill 8 8 mt 12 pu 13 -6 rlineto closepath 0.33 setgray fill grestore xpos ypos mt } def %%%%%%%%%%% 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 /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 % %%%%%%%%%%%%%%%% end links directory %%%%%%%%%%%%%%%%%%%%%%%%%%%% /menu8 {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 /font1 /StoneSans-Bold 1.3 gonzofont /font3 /Helvetica-Bold 3 gonzofont /kern 0.1 def 0 0 50 22.5 1 roundbox % clip gsave aqua 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 25 20.5 (|0PLEASE |j|jCLICK |j|jHERE |j|jTO\274 ) cc /cstretch 0.015 def 0.5 2.2 49 17.3 0.8 roundbox 0.75 setgray fill % /yinc 3.5 def black font1 2.3 13.5 (|/syncat01x |1 Get a Synergetics |/surl catalog|/syncat01 ) cl 2.3 10 (|/ismm01x |1 Start your |/surl tech venture|/ismm01 ) cl 2.3 6.5 (|/advt01x |1 Sponsor a display |/surl banner|/advt01 ) cl 2.3 3 (|/info01x |1 Find |/surl research|/info01 solutions) cl 25 13.5 (|/maildonx |1 Send Don Lancaster |/surl email|/maildon ) cl 25 10 (|/barg01x |1 Pick up surplus |/surl bargains|/barg01 ) cl 25 6.5 (|/tinaja01x |1 Find out what a |/surl tinaja|/tinaja01 is) cl 25 3 (|/amlink01x |1 View recommended |/surl books|/amlink01 ) cl grestore dosnap restore} def % 57 348 menu8 %%%%%%%%%%%% end pdfmenu8 %%%%%%%%%%%% gonzo begin % This is the core keystone code routine. It works by taking an average % of the first two and last two string lengths to determine the keystone % slope, increment, and starting width. It then checks the length of % each line and extends the starting width as needed so everything fits. /keyproc {/kadj exch def /msg exch def /yy1 exch def /xx1 exch def mark {msg (\n) search {exch pop exch /msg exch def dup length 0 le {pop} if}{dup length 0 le {pop} if exit} ifelse} loop ] /karray exch def 0 0 karray 0 get cw 0 0 karray 1 get cw add 2 div dup 0 0 karray dup length 1 sub get cw 0 0 karray dup length 2 sub get cw add 2 div sub neg karray length 1 sub div dup /kinc exch def 2 div sub /kstart exch def /txtwide 10000 def 0 0 1 karray length 1 sub {/kpn exch def 0 0 karray kpn get cw kstart kinc kpn mul add sub 2 copy lt {exch} if pop} for kstart add 1.01 mul dup /kstart exch def /txtwide exch def /justifylastline true def 0 1 karray length 1 sub { /posn exch def yy1 xx1 kstart kadj exch posn karray exch get cf /txtwide txtwide kinc add def /xx1 xx1 kinc kadj def /yy1 yy1 yinc sub def} for} def % these are the three keystone routines. Use xpos ypos true (msg strings) % cck, etc. true for keystone; false for ordinary justify. /cck {save /keysnap exch def exch {{2 div sub} keyproc} {cc} ifelse keysnap restore} def % callout centered keystone /clk {save /keysnap exch def exch {{pop} keyproc} {cl} ifelse keysnap restore} def % callout left keystone /crk {save /keysnap exch def exch {{sub} keyproc} {cr} ifelse keysnap restore} def % callout right keystone end % close gonzo dictionary %%%%%% 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% your gonzo code goes here. The usual way of starting it is with %% gonzo begin %% ps.util.1 begin %% printerror %% nuisance begin %% Additional use details appear in the POSTSCRIPT BEGINNER STUFF %% package from SYNERGETICS. %%%%%%%%%%%%%%%%%% COLORIZER MOD %%%%%%%%%%%%% %%%%%%%%%%%%%%%% % COLORIZING BLACK AND WHITE POSTSCRIPT MODULE % ===================================== /tintmat [ {dup 0.11 ge {0.11 sub 0.89 div dup 1 setrgbcolor} % 0 blue {0.11 div 0 exch 0 exch setrgbcolor} ifelse} {dup 0.3 ge {0.3 sub 0.7 div 1 exch dup setrgbcolor} % 1 red {0.3 div 0 0 setrgbcolor} ifelse} {dup 0.59 ge {0.59 sub 0.41 div dup 1 exch setrgbcolor} % 2 green {0.59 div 0 exch 0 setrgbcolor} ifelse} {dup 0.7 ge {0.7 sub 0.3 div 1 1 setrgbcolor} % 3 turquoise {0.7 div 0 exch dup setrgbcolor} ifelse} {dup 0.41 ge {0.41 sub 0.59 div 1 exch 1 setrgbcolor} % 4 magenta {0.41 div dup 0 exch setrgbcolor} ifelse} {dup 0.89 ge {0.89 sub 0.11 div 1 exch 1 exch setrgbcolor} % 5 yellow {0.89 div dup 0 setrgbcolor} ifelse} {dup 0.842 ge {dup .7 mul .59 sub .11 div 1 exch setrgbcolor} % 6 lime {0.89 div dup 1.1233 div exch 1.1233 mul 0 setrgbcolor} ifelse} {dup 0.731 ge {1 exch dup .41 mul .30 sub .11 div setrgbcolor} % 7 beige {0.856 div dup 1.155 mul exch 1.55 div 0 setrgbcolor} ifelse} ] def /tint 7 def /setgray {tintmat tint get cvx exec} bind 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 /green {0.33 settint} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % aqua % normal for blat %! % X E % Z % MUSE.116.Y gonzo begin ps.util.1 begin printerror nuisance begin longjob statusdict begin % statusdict /setduplexmode known {true setduplexmode} if end systemdict /setstrokeadjust known {true setstrokeadjust} if /mastergray {0.96} def % sets overall light grade shade %%%%%%%%%%%%%%%%% % Here's some needed routines not yet in GUTILITY.PTL or GONZO13A.PTL %............... % 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 /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 % 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 % 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 % this is a repeat of the GONZO13B callout width proc ... gonzo begin /endtheline {/curwide txtwide roomleft sub def justx cvx exec oktoprint {printline} if} bind def /cw {save /snapc1 exch def /oktoadvance false def /oktoprint false def /linestring linestring2 def /justx (justL) def 3 1 roll /ypos exch def /xpos exch def stringgonzo curwide snapc1 restore} def end gonzo begin % This is the core keystone code routine. It works by taking an average % of the first two and last two string lengths to determine the keystone % slope, increment, and starting width. It then checks the length of % each line and extends the starting width as needed so everything fits. /keyproc {/kadj exch def /msg exch def /yy1 exch def /xx1 exch def mark {msg (\n) search {exch pop exch /msg exch def dup length 0 le {pop} if}{dup length 0 le {pop} if exit} ifelse} loop ] /karray exch def 0 0 karray 0 get cw 0 0 karray 1 get cw add 2 div dup 0 0 karray dup length 1 sub get cw 0 0 karray dup length 2 sub get cw add 2 div sub neg karray length 1 sub div dup /kinc exch def 2 div sub /kstart exch def /txtwide 10000 def 0 0 1 karray length 1 sub {/kpn exch def 0 0 karray kpn get cw kstart kinc kpn mul add sub 2 copy lt {exch} if pop} for kstart add 1.01 mul dup /kstart exch def /txtwide exch def /justifylastline true def 0 1 karray length 1 sub { /posn exch def yy1 xx1 kstart kadj exch posn karray exch get cf /txtwide txtwide kinc add def /xx1 xx1 kinc kadj def /yy1 yy1 yinc sub def} for} def % these are the three keystone routines. Use xpos ypos true (msg strings) % cck, etc. true for keystone; false for ordinary justify. /cck {save /keysnap exch def exch {{2 div sub} keyproc} {cc} ifelse keysnap restore} def % callout centered keystone /clk {save /keysnap exch def exch {{pop} keyproc} {cl} ifelse keysnap restore} def % callout left keystone /crk {save /keysnap exch def exch {{sub} keyproc} {cr} ifelse keysnap restore} def % callout right keystone end % close gonzo dictionary %%%%%% 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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % HACK III TEMPLATE % 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 /muse3 exch def muse3 begin /templatefonts { % Remember: all fonts MUST defer till run time! /font0 /Times-Bold [54 0 0 54.1 0 -32] gonzofont /font1 /Times-Roman [9.75 0 0 9.75 0 0] gonzofont /font2 /Times-Italic [9.75 0 0 9.75 0 0] gonzofont /font3 /Times-Bold [9.75 0 0 9.77 0 -6] gonzofont /font4 /Times-Roman [9 0 0 9 0 0] gonzofont /font5 /Times-Italic [9 0 0 9 0 0] gonzofont /font6 /Times-Bold [9 0 0 9 0 0] gonzofont /font7 /Helvetica [9 0 0 9 0 0] gonzofont /font8 /Helvetica [8 0 0 8 0 0] gonzofont /font9 /Helvetica-Bold [9 0 0 9.1 0 4] gonzofont /font- /ZapfDingbats [9 0 0 9 0 0] gonzofont /font= /Symbol [9 0 0 9.1 0 -0.5] gonzofont } def % normallisting is used by the GURU figures for long text ... /normallisting { /txtwide bw 10 sub def /ybot -99999 def /font0 /Helvetica-Bold 12 gonzofont /font1 /Helvetica 8.5 gonzofont /font2 /Helvetica-Oblique 8.5 gonzofont /font3 /Helvetica-Bold 8.5 gonzofont /font4 /Courier 8.5 gonzofont /ypos bt 20 sub def /xpos bl 20 add def /yinc 10 def /pmnorm 60 def /amacro {(Lhy) stringmacro} def /bmacro {(1py) stringmacro} def /cmacro {(3z) stringmacro} def} def % denselisting is used by GURU figures for tighter text /denselisting{/bc br bl sub 2 div bl add def /txtwide bw 10 sub def /ybot -99999 def /font0 /Helvetica-Bold 10 gonzofont /font1 /Helvetica 7 gonzofont /font2 /Helvetica-Oblique 7 gonzofont /font3 /Helvetica-Bold 7 gonzofont /font4 /Courier 7 gonzofont /ypos bt 10 sub def /xpos bl 6 add def /yinc 8 def /amacro {(hy) stringmacro} def /emacro {/yparendadj yinc 2 div def} def} def % values used by gonzo justify ... /cstretch 0.1 def % minimum character kerning /sstretch -0.2 def % minimum space kerning /dropcount 4 def % number of lines drop cap drops /lastlinestretch 0.06 def % open last paragraph line slightly /pm 10 def % use paragraph indents /yinc 10.5 def % line spacing /ypara 0 def % extra interparagraph spacing /pagenum 1 def % 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 {staytint1 (znyC3) 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. /txw 155 def % width of normal text columns /cmb 60 def % column bottom position /cmt cmb 60 yinc mul add def % page is 60 normal text lines high /cml 60 def % first column left margin /cms 170 def % spacing of normal columns /cm# 3 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 2 mul 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 14 def % amount of footer drop below cml /bh1 yinc 6 mul def % 8 vlines reserved for title & blurb /stdfigrad 0.1 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 19 mul def % height of figure one /f2h yinc 20 mul def % height of figure two /f3h yinc 23 mul def % height of figure three /f4h yinc 61 mul def % height of figure four /f5h yinc 41 mul def % height of figure five /f6h yinc 35 mul def % height of figure six /s1h yinc 41 mul def % height of custom sidebar /s2h yinc 61 mul def % height of n/n sidebar /a1h yinc 66 mul def % height of synergetics ad /h1h yinc 14 mul def % height of optional help box /tfa {yinc 1.5 mul add} def % upper figure position adjust % warning: second true must stay that way; must use blank namek /fig1 {cm2 cmb 1 sub 2colwide f1h true % 2 sub adjust for gray top true /f1name /figure1 stdmusefig} def % link /fig2 {cm1 cmt f2h sub yinc add 3 add 2colwide f2h true true /f2name /figure2 stdmusefig} def % link /fig3 {cm1 cmb 1 sub 2colwide f3h true true /f3name /figure3 stdmusefig} def % link /fig4 {cm2 cmt f4h sub yinc add 3 add 2colwide f4h true true /f4name /figure4 stdmusefig} def % link /fig5 {cm2 cmt f5h sub yinc add 3 add 2colwide f5h true true /f5name /figure5 graymusefig} def % link /fig6 {cm2 cmb 3 sub yinc add 4 add 2colwide f6h true true /f5name /figure6 stdmusefig} def % link /ad1 {cm3 cmb 1colwide f5h false true /ad1name /ad1copy stdmusefig} def % link /side1 {cm1 cmt s1h sub yinc add 2colwide s1h true true /s1name /sidebar1 grayfig2} def % link % /side1 {cm1 cmt s1h sub yinc add % special for url % 2colwide s1h true true /s1name /sidebar1 grayfig2} def % link /side2 {cm2 cmt s2h sub yinc add 2colwide s2h true true /s2name /sidebar2 grayfig2} def % link /help {cm2 % cmt 16 yinc mul sub cmb 4 sub 1colwide h1h true false /helpname /hackhelp graymusefig} def % this is a "standard" figure border for HACK3. It has rounded edges, % a bottom single line title, and links to the actual figure art... /narrowfig 0 def % narrowing option /stdmusefig { /jsave justx 4 get def save /stdsnap exch def grayfig {0 3 translate} if % shift /colcheck {} def /figproc exch def cvx /figname exch def /showtitle exch def /showborder exch def /figheight exch def narrowfig sub /figwidth exch def -10 add translate /linestring linestring2 def /pmrun 0 def /txtwide figwidth 2 sub def /font1 /Helvetica 9 gonzofont /yinc 10 def /oktoprint false def /oktoadvance true def /xpos 0 def /ypos 0 def figname stringgonzo /titadjust ypos neg def /oktoprint true def /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 showtitle {0 narrowfig 2 div add titadjust figname cf} if showtitle not {/titadjust 0 def} if % no suppression if no title showborder {1 narrowfig 2 div add titadjust 12 add figwidth 2 sub figheight titadjust sub 10 sub stdfigrad roundbox 0.5 setlinewidth grayfig {gsave % LaserWriterG {0.90}{0.95}ifelse setgray grayshade setgray fill grestore [2.5 0 1.5 1] superstroke } {stroke} ifelse} if /linestring linestring2 def % needed to run interference /cstretch 0.01 def /sstretch 0.01 def /pmrun 0 def /colcheck {} def 3 1 roll translate dup scale % adjust figure position mark figproc cvx exec cleartomark stdsnap restore justx 4 jsave put } def % temporary stdmusefig with clip for pix and no outline /stdmusefigwc { /jsave justx 4 get def save /stdsnap exch def grayfig {0 3 translate} if % shift /colcheck {} def /figproc exch def cvx /figname exch def /showtitle exch def /showborder exch def /figheight exch def narrowfig sub /figwidth exch def -10 add translate /linestring linestring2 def /pmrun 0 def /txtwide figwidth 2 sub def /font1 /Helvetica 9 gonzofont /yinc 10 def /oktoprint false def /oktoadvance true def /xpos 0 def /ypos 0 def figname stringgonzo /titadjust ypos neg def /oktoprint true def /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 showtitle {0 narrowfig 2 div add titadjust figname cf} if showtitle not {/titadjust 0 def} if % no suppression if no title showborder {1 narrowfig 2 div add titadjust 12 add figwidth 2 sub figheight titadjust sub 10 sub stdfigrad roundbox 0.5 setlinewidth gsave % tempclip % temp delete any outline or fill % {{ grayfig {gsave % LaserWriterG {0.90}{0.95}ifelse setgray grayshade setgray fill grestore [2.5 0 1.5 1] superstroke } {white stroke black} ifelse} if % temp white % }} pop /linestring linestring2 def % needed to run interference /cstretch 0.01 def /sstretch 0.01 def /pmrun 0 def /colcheck {} def grestore clip % temp for photos 3 1 roll translate dup scale % adjust figure position mark figproc cvx exec cleartomark stdsnap restore justx 4 jsave put } def /grayfig false def % show stdmusefig with gray background default /graymusefig {/grayfig true def stdmusefig /grayfig false def} def %%%% % has a title box /grayfig2rad 0.01 def /showboxgrays true def /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 /figheight exch def /figwidth exch def translate showborder {1 2 figwidth 2 sub figheight 5 sub grayfig2rad roundbox 0.4 figheight 28 sub moveto figwidth 1.8 sub 0 rlineto gsave showboxgrays {mastergray setgray}{1 setgray} ifelse fill grestore gsave newpath 0 figheight 5 sub moveto figwidth 1.8 sub 0 rlineto 0 -23 rlineto figwidth 1.8 sub neg 0 rlineto closepath grayshade dup 1 ne {0.15 sub pop 0.33} if setgray fill grestore [2 0 1 1] superstroke } if /font7 /Helvetica-Bold 9 0.7 add gonzofont showtitle {black white % 0.25 setgray figwidth 2 div figheight 20 sub 0.5 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 3 1 roll translate dup dup /csf exch def 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 [ [ { } {/narrowfig 0 store } ] % initial document files [ [{titleblock} % xpos ypos scale name {rightfooter} {/narrowfig 58 store 0 0 0.9 fig1} ] % page one figures and control [ cm1 cmt bh1 sub cmb {txw}] % column1 xpos ypos ylimit txtwide [ cm2 cmt bh1 sub cmb f1h add {txw} ] % column2 [ cm3 cmt bh1 sub cmb f1h add {txw} ] % column3 ] [ [{leftfooter} {leftheader} {/narrowfig 58 store} {0 0 0.9 fig2} % {/narrowfig 0 store} {0 0 0.9 fig3} % {/narrowfig 0 store} % {0 0 0.9 fig4} % {0 -6 1 help} % temp help box ] % page two figures and control [ cm1 cmt f2h sub cmb f3h add {txw}] % column1 xpos ypos ylimit txtwide [ cm2 cmt f2h sub cmb f3h add {txw}] % column2 xpos ypos ylimit txtwide [ cm3 cmt cmb {txw} ] % column3 xpos ypos ylimit txtwide ] [ [ {rightfooter} {rightheader} % {/narrowfig 0 store} % {0 0 0.9 fig3} {/narrowfig 0 store} { 0 0 0.9 fig4} % {0 -6 1 help} % temp help box {/narrowfig 0 store} % {0 0 0.9 fig5} ] % page three figures and control [ cm1 cmt cmb {txw}] % column1 ship % [ cm2 cmt f4h sub cmb {txw}] % commented for full figure 4 % [ cm3 cmt f4h sub cmb {txw} ] % ] [ [{leftfooter} {leftheader} % { 0 0 0.9 fig4} {/namestretch 4 def} {narrowfig 30 store} {15 0 0.85 side1} {0 -6 1 help} % temp help box ] % page four figures and control %[ cm1 cmt s1h sub cmb {txw}] % special yinc no caption % [ cm1 cmt s1h sub cmb {txw}] % % [ cm2 cmt s1h sub cmb h1h add {txw}] % [ cm2 cmt s1h sub cmb h1h add {txw}] [ cm1 cmt s1h sub cmb {txw}] [ cm2 cmt s1h sub cmb h1h add {txw} ] [ cm3 cmt cmb {txw}] % for two wide % [cm3 cmt s1h sub cmb {txw}] % for three wide ] [ [{rightfooter} {rightheader} % {0 0 1 ad1} % was -33 positioning bug {/namestretch 1.8 def} {15 0 0.85 side2} % {0 0 0.9 fig5} ] [ cm1 cmt cmb txw] % page five figures and control % [ cm1 cmt s2h sub cmb txw] % column1 xpos ypos ylimit txtwide % [ cm2 cmt s2h sub cmb txw] % column2 xpos ypos ylimit txtwide % [ cm3 cmt cmb txw] % column3 xpos ypos ylimit txtwide ad was here ] /adj {23 yinc mul add } def [ [{leftfooter} {leftheader} % {-5 -35 1 fig4} % {/namestretch 0 def} % {14 0 0.85 side2} % {18 -24 0.9 fig4} % {4 -17 0.9 fig5} % {/namestretch 2.0 def} ] % page six figures and control [ cm1 cmt cmb adj txw] % column1 xpos ypos ylimit txtwide [ cm2 cmt cmb adj txw] [ cm3 cmt cmb txw] ] % change [ {quit} ] to [ {exitproc} ] [[{}] [cm1 cmt cmb txw]] % possible blank page ? [[{}] [cm2 cmt cmb txw]] % possible blank page ? [[{}] [cm3 cmt cmb txw]] % possible blank page ? % leave [ {quit} ] at end of page setup file [ {exitproc} ] % 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 % 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 /colcheck { ypos ylimit 1 sub 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 % titleblock, headers and footers /titleblock {save /blurbsnap exch def /colcheck {} def /cstretch 0.2 def sstretch 1 def cml cmt bh1 sub 15 add translate /blurbboxwide 180 def /blurbboxhigh 80 def 1 setlinecap bestgray 3 23 mt hdw 15 sub blurbboxwide sub 3 sub 23 lineto hdw 3 sub 23 moveto -10 0 rlineto [6 0.3 4.5 .85] superstroke % changed to brown hdw blurbboxwide sub 15 sub 0 blurbboxwide blurbboxhigh 5 roundbox gsave grayshade setgray fill grestore % temp expt [4 0.3 2.5 .85] superstroke 0.85 setgray 4.5 setlinewidth -5 23 mt 3 r blurbboxwide 1 add 23 mt 3 r stroke grestore 0.3 setgray /font0 /Palatino-Bold 30 gonzofont /font1 /Palatino-Bold 10 gonzofont 0.2 setgray /font2 /Palatino-Bold 12 gonzofont font2 4 62 7 add author cl font0 3 34 4 add titlename cl font2 4 7 titledate cl 0.15 setgray /yinc 12 def hdw font1 105 sub 60 dokeystone titleblurb cck blurbsnap restore} def /leftheader {save /blurbsnap exch def /colcheck {} def cml cmt 16 add translate gsave mastergray setgray 0 8 mt 16 setlinewidth hdw r grestore % color fill? 0 0 hdw 1.2 hrule 0 16 hdw 0.5 hrule /cstretch 0.2 def /sstretch 1 def /font2 /Palatino-Bold 11 gonzofont 0 4.5 leftheading cl blurbsnap restore} def /rightheader {save /blurbsnap exch def /colcheck {} def cml cmt 16 add translate gsave mastergray setgray 0 8 mt 16 setlinewidth hdw r grestore % color fill? 0 0 hdw 1.2 hrule 0 16 hdw 0.5 hrule /cstretch 0.2 def /sstretch 1 def /font2 /Palatino-Bold 11 gonzofont hdw 4.5 rightheading cr blurbsnap restore} def /leftfooter { save /blurbsnap exch def /colcheck {} def cml cmb 13 sub translate /txtwide 1000 store /font3 /Helvetica 4.5 gonzofont font3 hdw -6 (Copyright c 2000 by Don Lancaster and Synergetics (520) 428-4073 www.tinaja.com \ All commercial rights and all electronic media rights fully reserved. Reposting expressly forbidden.) cr 0 0 hdw 0.8 hrule gsave 25 0 translate -18 -7 36 14 2 roundbox gsave mastergray setgray fill grestore 0.5 setlinewidth stroke /font2 /Palatino-Bold 11 gonzofont /cstretch 0.4 def 16 2 add 0.2 setgray 3.5 columnum ( ) cvs (.) mergestr colpagenum ( ) cvs mergestr cc blurbsnap restore /colpagenum colpagenum 1 add def } def % adjusted for 100 - was -16 -7 32 14 /rightfooter {save /blurbsnap exch def /colcheck {} def cml cmb 13 sub translate /txtwide 1000 store /font3 /Helvetica 4.5 gonzofont font3 0 -6 (Copyright c 2000 by Don Lancaster and Synergetics (520) 428-4073 www.tinaja.com \ All commercial rights and all electronic media rights fully reserved. Reposting expressly forbidden.) cl 0 0 hdw 0.8 hrule gsave hdw 25 sub 0 translate -18 -7 36 14 2 roundbox gsave mastergray setgray fill grestore 0.5 setlinewidth stroke /cstretch 0.4 def /font2 /Palatino-Bold 11 gonzofont 16 2 add 3.5 0.2 setgray columnum ( ) cvs (.) mergestr colpagenum ( ) cvs mergestr cc blurbsnap restore /colpagenum colpagenum 1 add def} def end % guru3 template %% TEMP BYPASSES %%% /adjustpage {} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % INCLUDED FILES AND PROCS /dokeystone false def /titleblurb (Where |jto |jget |jparts Acrobat web searches New |jtouch |jscreen |jchip PostScript|j|j proc|j|j diversion Transmission line transformers) def /author (Don Lancaster's) def /titlename (T|k|kech M|k|kusings) def /titledate (June, 2000 |j) def /leftheading ( Tech Musings) def /rightheading titledate def /columnum 149 def /colpagenum 1 def %%%%%%%%%%%%% COMMON HEADER %%%%%%%%%%%%%%%%% % graybox utilities /grayfill {gsave bl bb translate /doublestroke true def 0 0 moveto 0 bh lineto bw bh lineto bw 0 lineto closepath mastergray setgray fill grestore} def /whitebox {gsave /wh exch def /ww exch def translate 0 0 mt 0 wh rlineto ww 0 rlineto 0 wh neg rlineto closepath gsave white fill grestore line1 stroke} def % keeps state! /doublestroke true def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % /grayshade 0.92 def /grayshade1 {grayshade} def /setgray1 { dup grayshade 1 eq { 0.5 gt {pop 1}{pop 0} ifelse } {pop} ifelse setgray } def /usecolor true def % special for figure /grayfig1 0.92 def % experimental box clipper to improve photos /clipinset 4 def % use -0.7 to repel boarders /cwidth {figwidth 2 sub} def /cheight { figheight titadjust sub 10 sub} def /clipthebox { 0 0 mt cheight 0.9 div dup pu cwidth 0.9 div pr pd closepath closepath clip gsave aqua 0.7 setgray1 fill grestore % tempcheck } def /figure1 { % name of textfile: muse fig 149.1 1:1 transmission line transformer % ............................ % figure 1 % save /snap1 exch def %%%%%%%%%%%%%%%%%%% 48 11 translate % position on box electronics begin bestgray 0 0 10 setgrid % 33 50 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 /font0 /Helvetica-Bold [1.2 0 0 1 0 -0.2] 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 blue 0.5 setgray % 0 0 mt 20 20 lineto stroke /core {gsave translate beige newpath 0 0 4.5 0 360 arc 2.4 setlinewidth gsave 0.35 0.35 0.35 setrgbcolor stroke grestore 2.2 setlinewidth 0.9 0.9 0.9 setrgbcolor stroke grestore} def /redtwist {gsave translate newpath 1 setlinecap 1 setlinejoin line3 [-0.2 -0.5 90 0.2 0.5 90] curvetrace blue 0.25 setgray stroke [0.2 -0.5 90 -0.2 0.5 90] curvetrace red 0.25 setgray stroke newpath grestore} def /bluetwist {gsave translate 1 setlinecap 1 setlinejoin newpath [-0.2 -0.5 90 0.2 0.5 90] curvetrace red 0.25 setgray line3 stroke [0.2 -0.5 90 -0.2 0.5 90] curvetrace blue 0.25 setgray line3 stroke newpath grestore} def /threetwist {gsave 0 5.5 redtwist 0 4.5 bluetwist 0 3.5 redtwist grestore }def /bigdot {gsave currentpoint translate 2.5 dup scale 0 0 mt dot grestore} def /lotsatwists {gsave translate -150 rotate 0 1 21 {threetwist 15 rotate} repeat grestore} def /2xground {gsave currentpoint translate 2 dup scale 0 0 mt ground grestore} def 10 10 core 10 10 lotsatwists newpath line3 blue 0.25 setgray 6.88 5 mt 5 3 lineto -3 0 rlineto currentpoint stroke mt bigdot newpath red 0.25 setgray line3 1 setlinejoin 1 setlinecap 7.2 4.85 mt 7.2 2 lineto 0.7 r 1.4 l 7.2 1.7 mt 0.4 l 0.8 r 7.2 1.4 mt 0.25 l 0.5 r newpath line3 red 0.25 setgray 13.13 5 mt 15 3 lineto 3 0 rlineto currentpoint stroke mt bigdot newpath blue 0.25 setgray line3 1 setlinejoin 1 setlinecap 12.8 4.85 mt 12.8 2 lineto 0.7 r 1.4 l 12.8 1.7 mt 0.4 l 0.8 r 12.8 1.4 mt 0.25 l 0.5 r black font0 2 4.5 (input) cc 18 4.5 (output) cc end ypos snap1 restore /ypos exch def } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /figure2imagehold { % name of textfile: muse fig 143.2 thermoelectrics of materials % ............................ % figure 2 % save /snap2 exch def %%%%%%%%%%%%%%%%%%% 8 15 translate % position on box electronics begin /DeviceRGB setcolorspace % pick color model 3 -6 translate % set page position 579 407 scale % magnify unit square 0.5 dup scale % /infilename (C:\\windows\\desktop\\barro\\barro.jpg)def % filename % /pixfilename2 (C:\\Medocs\\Muse\\Muse 142\\pix143-2.jpg)def /infilename pixfilename2 def % note DOUBLE SLASHES in PS String! /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 579 % JPEG width in pixels /Height 407 % JPEG height in pixels /ImageMatrix [579 0 0 -407 0 407 ] % see comments below /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 end ypos snap2 restore /ypos exch def } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /figure2 { % name of textfile: muse fig 148.2 2:1 transmissin line transfromer % ............................ % figure 1 % save /snap2 exch def %%%%%%%%%%%%%%%%%%% 45 19 translate % position on box electronics begin bestgray 0 0 10 setgrid % 33 50 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 /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 blue 0.5 setgray % 0 0 mt 20 20 lineto stroke /core {gsave translate beige newpath 0 0 4.5 0 360 arc 2.4 setlinewidth gsave 0.35 0.35 0.35 setrgbcolor stroke grestore 2.2 setlinewidth 0.9 0.9 0.9 setrgbcolor stroke grestore} def /redtwist {gsave translate newpath 1 setlinecap 1 setlinejoin line3 [-0.2 -0.5 90 0.2 0.5 90] curvetrace blue 0.25 setgray stroke [0.2 -0.5 90 -0.2 0.5 90] curvetrace red 0.25 setgray stroke newpath grestore} def /bluetwist {gsave translate 1 setlinecap 1 setlinejoin newpath [-0.2 -0.5 90 0.2 0.5 90] curvetrace red 0.25 setgray line3 stroke [0.2 -0.5 90 -0.2 0.5 90] curvetrace blue 0.25 setgray line3 stroke newpath grestore} def /threetwist {gsave 0 5.5 redtwist 0 4.5 bluetwist 0 3.5 redtwist grestore }def /bigdot {gsave currentpoint translate 2.5 dup scale 0 0 mt dot grestore} def /bigdot1 {gsave currentpoint translate 1.6 dup scale 0 0 mt dot grestore} def /lotsatwists {gsave translate -150 rotate -1 1 scale threetwist % change colors on last -1 1 scale 15 rotate 0 1 20 {threetwist 15 rotate} repeat grestore} def /2xground {gsave currentpoint translate 2 dup scale 0 0 mt ground grestore} def 10 10 core 10 10 lotsatwists newpath line3 blue 0.25 setgray 6.88 5 mt 5 3 lineto -3 0 rlineto currentpoint stroke mt bigdot newpath red 0.25 setgray line3 1 setlinejoin 1 setlinecap 7.2 4.85 mt 7.2 2 lineto 1.5 pd 10.85 pr 2.5 pu currentpoint stroke moveto bigdot newpath line3 red 0.25 setgray 12.8 4.85 mt 1.8 pd 7.8 pl currentpoint stroke black purple 0.25 setgray moveto bigdot1 newpath % grounded blue blue 0.25 setgray line3 1 setlinejoin 1 setlinecap 13.2 5.02 mt 14 4.3 lineto 2.3 pd 0.7 r 1.4 l 14 1.7 mt 0.4 l 0.8 r 14 1.4 mt 0.25 l 0.5 r % ugly patch 7.2 2.5 mt white 0.4 setlinewidth 1 u 7.2 2.3 mt red 0.25 setgray line3 1.4 u black font0 2 4.5 (input) cc 18 4.5 (output) cc end ypos snap2 restore /ypos exch def } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /figure3 { % name of textfile: muse fig 149.3 touch screen % ............................ save /snap3 exch def %%%%%%%%%%%%%%%%%%% 40 15 translate % position on box electronics begin bestgray 0 0 10 setgrid % 33 20 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 % for blue background resistors /res1 {-0.8 0 rmoveto gsave 1.6 0 rlineto line1 0.9 setgray stroke grestore 0.10 0.3 rlineto 3 { .20 -.6 rlineto .20 .6 rlineto} repeat .20 -.6 rlineto 0.10 0.3 rlineto stroke} def /hresistor1 {mt res1} def /vresistor1 { mt gsave 90 rotate res1 grestore} def line1 /touch {gsave translate -4.3 -4.3 8.6 8.6 0.7 roundbox aqua gsave 0.9 setgray fill grestore 0.3 setgray line3 stroke grestore % get out of roundbox -5 0 mt 10 r 0 -5 mt 10 u -3.2 0 hresistor1 -1.3 0 hresistor1 1.3 0 hresistor1 3.2 0 hresistor1 0 3.2 vresistor1 0 1.3 vresistor1 0 -1.3 vresistor1 0 -3.2 vresistor1 grestore} def 11 8 mt 4.5 d 4 r 2.5 u 6 13 mt 5.5 r 10 dx 4.5 r 3 u 1 8 mt 5.5 d 16 r 3.5 u 6 3 mt 1 dx 12 r 4 u 14 6 mt 1 d circ1 19 6 mt 1 d ground 20 10 mt 1 u circ1 19 10 mt 2.5 u 5 r 8 d ground 24 7 vresistor 24 9 mt dot 24 9 mt 1.5 r circ1 14 10 mt 4.5 u 5.5 l circ1 12 14.5 mt rarrow 15 10 mt 6 u 6.5 l circ1 12 16 mt rarrow 16 10 mt 7.5 u 7.5 l circ1 12 17.5 mt rarrow 17 10 mt 7.5 u 4.5 r circ1 20 17.5 mt rarrow 18 10 mt 6 u 3.5 r circ1 20 16 mt rarrow 22 12.5 mt larrow 6 8 touch beige 14 6 moveto 16 (ADS7846) (CLK /CS DIN BUS OUT /PEN +5V REF) (+5V X+ Y+ X- Y- GND BAT AUX) dipdraw font1 14 4 (+5V) cc 20 11.5 (+5V) cc font4 20 5.0 (nc) cc 21 5.0 (nc) cc 21 10.5 (nc) cc 7.3 14.3 (clock input)cr 7.3 14.3 1.5 add (chip select) cr 7.3 14.3 3 add (serial data in) cr 22.3 14.3 3 add (conversion status) cl 22.3 14.3 1.5 add (serial data out) cl font0 aqua 0.3 setgray 8.3 11.4 (touch\nscreen) cc black font1 27 9.3 (pen\ninput)cc 25 5 (47K) cc end ypos snap3 restore /ypos exch def } def %%%%%% % name of textfile: muse fig 149.4 ps showpage diverter % ............................ % figure 4 % /figure4 { save /snap4 exch def %%%%%%%%%%%%%%%%%%% 0 70 translate % position on box electronics begin bestgray aqua 0 0 10 setgrid % 50 50 showgrid /cstretch 0.02 def /sstretch 0.0 def /kern 0.1 def /yinc 1.0 def /font0 /Helvetica-Bold [1.2 0 0 1 0 -0.2] 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 /kern 0.15 def /tabs [20] def /txtwide 32.5 def font1 /tabs [21] def font1 /yinc 0.9 def 2.5 59.5 (|/aqua |/staytint1 |3% POSTSCRIPT SHOWPAGE DIVERTER % ============================ % Copyright c 2000 by Don Lancaster & Synergetics, Box 809, Thatcher, AZ, 85552 % (520) 428-4073 Email: |/surl don@tinaja.com|/maildon |/tinton1a Website: |/surl http://www.tinaja.com|/tinaja % Consulting services available per |/surl http://www.tinaja.com/info01.html|/info01 |h % All commercial rights and all electronic media rights fully reserved. % Linking welcome. Reposting expressly forbidden. Version 1.3 |h % One of the incredibly powerful features of the PostScript language is that % most any proc can be redefined at any time. Even to a different type. |h % Redefining the ~showpage~ operator can be particularly useful. For providing % web undercolor or watermarks, adding page numbers, standardizing borders, % selectively adding specific page features, doing right-left,logos, etc... |h true setglobal globaldict begin |t% persist on save|j/|jrestores /validpage false store |t% use for first underlay /pagenumber 1 store |t% running page number /realshowpage {systemdict /showpage get exec} def |t% grab real showpage |h /showpage { |t% redefine showpage validpage{ |t% if not setup [{overproc1}{overproc2}{overproc3}] {cvx exec} |t% do overprocs forall realshowpage |t% do real showpage /pagenumber pagenumber 1 add store |t% adjust page number } if /validpage true store |t% after setup [{underproc1}{underproc2}{underproc3}] {cvx exec} |t% do underprocs forall } def |h /overproc1 {} def /overproc2 {} def /overproc3 {} def |t% default null procs /underproc1 {} def /underproc2 {} def /underproc3 {} def |h % /underproc1 gives color background to part of each page. In this example, page % three is conditionally made a different color... |h /underproc1 { gsave pagenumber 3 eq {1 1 0.8}{1 0.8 1} ifelse |t% pick some colors setrgbcolor 0 0 moveto 1000 0 rlineto 0 425 |t% fill page with color rlineto -1000 0 rlineto closepath fill grestore} def |h % /overproc1 gives a border and a page number to each page... |h /overproc1 {gsave /in {72 mul} def |t% adjust size 0.5 in 0.5 in moveto 0 in 10 in rlineto |t% rectanglular box 7.5 in 0 rlineto 0 in -10 in rlineto closepath 5 setlinewidth 1 setlinecap 1 setlinejoin stroke /Helvetica findfont 10 scalefont setfont |t% add page number 0.8 in 0.8 in moveto (page ) show pagenumber 10 string cvs show grestore} def |t % Fake first page must ~always~ be used to start the underlay process... |h showpage |t% set up first underlay end false setglobal |t% cease persistent |h % This demo represents your original document... |h /demo {/Helvetica findfont 12 scalefont setfont 100 300 moveto (This is the original first page) show showpage 100 300 moveto (This is the original second page) show showpage 100 300 moveto (This is the original third page) show showpage 100 300 moveto (This is the original fourth page) show showpage } def |h % As a demo, send the following code to Distiller (preferred) or to % GhostScript or to a PostScript speaking printer... |h demo |t% run demo |h % To divert showpage on third party documents, set the above up as one or % more files and add an ~uncommented~ line similar to.... |h %% (E:\\\\\\\\medocs-E\\\\\\\\divertsp\\\\\\\\divsp01.ps) run |h % near the beginning of each document to be overlayed or underlayed. Be CERTAIN % to use "\\\\\\\\" every time you mean "\\\\"! If you are working with existing .PDF files, % print to disk as PostScript, enter the diversion line, and then redistill. |h % Demos and sourcecode available at |/surl http://www.tinaja.com/post01.html|/post01 |/tinton1a and at % |/surl http://www.tinaja.com/acrob01.html|/acrob01 |/tinton1a Consulting per |/surl don@tinaja.com|/maildon ) cl end ypos snap4 restore /ypos exch def } def { /figure1 {} def % temp hunt for duplicate variables /figure2 {} def /figure3 {} def /figure4 {} def /figure5 {} def } pop %%%%%% %%%%%%%%%%%%%%%%%%% /namestretch 0 def /sidebar1 { 8 -3 translate 1 dup scale % adjust to fit /title( )def /font0 /Helvetica [10 0 0 8.5 0 0] gonzofont /font1 /Helvetica [9 0 0 9 0 0] gonzofont /font2 /Helvetica-Bold [9 0 0 9 0 0 ] gonzofont /txtwide 156 def /yinc 11 def % RSNUMBER /Zmacro {gsave /Helvetica-Narrow-Bold findfont [7.5 0 0 7.5 0 0] makefont setfont xpos ypos moveto charstretch 0(CIRCLE ) ashow charstretch 0 RSnumber( ) cvs ashow ( ON FREE INFORMATION CARD) show /RSnumber RSnumber 1 add def /ypos ypos yinc 0.7 mul sub def grestore} def /Ymacro {/ypos ypos yinc 0.7 mul sub def} def % temporary stretch /Zmacro {(h) stringmacro /ypos ypos namestretch sub def } def /ypos0 bt 3 sub def /yinc 17 def /xpos bl def /xpos0 xpos def /pm 0 def /sstretch 0.1 def /cstretch 0.2 def /ypos bt 20 sub def /ypos 400 def /txtwide bw def /colcheck {} def /ytopoflist bt 50 sub csf div def xpos txtwide 2 div add 0 add ytopoflist 18 add % Set name below!!!! ( ) cc % for gray2 /ypos ytopoflist def /columnspacing 158 def /yinc 10 def /xpos0 bl 35 add def /xpos xpos0 def /amacro {/yhold ypos def /ypos ytopoflist def /xpos xpos columnspacing add def /ypos ypos yinc add def} def % temporary for 4 wide /columnspacing 132 def % xpos 18 sub ypos % (|L|2AMX|1 % 11995 Forestgate Dr % Dallas TX 75243 % (800) 222-0193 % |Z {{xpos 18 sub ypos (|L|2Abbeon Cal|1 123 Gray Ave Santa Barbara CA 93101 (805) 966-0810 |Z |2Veeder Root|1 125 Powder Forest Dr Simsbury CT 06070 (860) 651-2700 |Z ) cl }} pop % temp for url list {{ /font3 /Helvetica-BoldOblique 9.5 gonzofont font3 /yinc 13 1 sub def /yposhh ypos def /amacro {/xpos xpos 284 add store /ypos yposhh 50 add store} def /bmacro {/yinc yinc 2.12 add store} def % 0.9 dup scale % TEMP COMPRESS xpos -26 add ypos % 50 add (|3Battery Reference Book|1 |1( Thomas Crompton ) |3Battery Technology Handbook|1 |1( H.A. Kiehne ) |3Electric Hybrid Vehicles ... BatteryTechnology |1( SAE ) |3Electric Vehicle Battery Systems |1( Sandeep Dhameja ) |3Electrochemical Cell Design |1( Ralph White ) |3Electrochemical Power Sources |1( M. Barak ) |3Electrochemical Supercapacitors |1( B. E. Conway ) |3Electrochemistry of Novel Materials |1( Jacek Lipkowski ) |3Fuel Cell Systems |1( Leo Blomen ) |3Handbook of Batteries |1( David Linden ) |3Handbook of Battery Materials |1( Jurgen Besenhard ) |3Hydrogen & Metal Hydride Batteries |1( P. D. Bennett ) |3Lithium-Ion Batteries |1( Masataka Wakihara ) |3Lithium Polymer Batteries |1( J. Broadhead ) |3Modern Batteries: Intro to Electrochemical... |1( C. Vincent ) |3New Materials for Batteries and Fuel Cells |1( D. Doughty ) |3Practical Photovoltaics |1( Richard J. Komp ) |3RVer's Guide to Solar Battery Charging |1( Noel Kirkby ) |h |1For more book details, see |/surl |3www.tinaja.com/amlink01.html|/amlink01 ) cl }} pop %lockout %% special for combined list /cstretch 0.02 10 mul def /sstretch 0.0 10 mul def /kern 0.1 10 mul def /yinc 1.1 10 mul def /font0 /Helvetica-Bold [1.2 0 0 1 0 -0.2] gonzofont /font1 /Helvetica 0.75 10 mul gonzofont /font4 /Helvetica 0.7 10 mul gonzofont /font3 /Helvetica-Bold 0.75 10 mul gonzofont /font2 /Helvetica-Oblique 0.75 10 mul gonzofont /font5 /Helvetica-Bold 0.85 10 mul gonzofont /font6 /Helvetica [2 0 0 1.4 0 0] gonzofont /font7 /Helvetica-Oblique 0.75 gonzofont /font8 /Symbol 0.75 gonzofont font1 /yinc 0.9 10 mul def /kern 0.1 10 mul def %%%%%%%%%%%%%% /emacro {/yhold ypos def} def /fmacro {/ypos yhold def /xpos xpos 13.5 10 mul add def} def /cmacro {/xpos xpos 13.5 10 mul sub def} def /tabs [4 10 mul -2 10 mul] def /txtwide 33 10 mul def % 3.5 56.5 % {{ % bypass /cmacro {/yposhhh ypos def} def /dmacro {/ypos yposhhh def /xpos xpos 120 add store} def /switchfonts { /font0 /Helvetica [10 0 0 8.5 0 0] gonzofont /font1 /Helvetica [9 0 0 9 0 0] gonzofont /font2 /Helvetica-Bold [9 0 0 9 0 0 ] gonzofont } def /shiftin {24 0 translate} def % position first column nn xpos -12 add ypos 3.8 add (|t|t|5Papers|j\261 |h |1Guanella, |3Novel HF Matching Systems|1, |2Brown Boveri \ Review|1, Sep |444|1, pp |4327-329|1 Ruthroff, |3Some Broadband Transformers|1, |2Proc IRE|1, Aug |41959|1, pp. |41337-1342|1. Sevick, |3Multipedance Broadband Transformer|1, |2QST|1, \ August |41982|1, page |439|1. |t|t|5Books|j\261 |h |1IEEE Press, |3Realization of Broadband Transmission \ Line Matching Transformers|1 Sevick, |3Building and Using Baluns & Ununs|1 Sevick, |3Transmission Line Transformer Design Handbook|1 Sevick, |3Transmission Line Transformers|1 |h |1For more book details, \ see |/surl |3www.tinaja.com/amlink01.html|/amlink01 |t|t|5Websites|j\261 |h |/surl |3www.bytemark.com/amidon|1|/amidon |/surl |3www.ieee.org|1|/ieee |/surl |3www.primenet.com/~ctrask/trlxfmr.html|1|/trlx |/surl |3www.tinaja.com/info01.html|1|/info01 |h |t|t|5Newsgroups|j\261 |h|3 |/surl |3sci.electronics.design|/ng01 |/surl |3alt.ham-radio.vhf-uhf|/ng02 |h |t|t|5Products|j\261 |h|/shiftin |c|L|3Arnold Engineering|1 2470 Railroad St Corona CA 91720 (909) 898-0999 |/surl |3www.arnoldeng.com|/arnold |Z |3Fair-Rite|1 PO Box J Wallkill NY 12589 (914) 895-2055 |/surl |3www.fair-rite.com|/fairrite |Z |3Infineon|j/|jSiemens|1 1730 N First St San Jose CA 95112 (408) 501-6002 |/surl |3www.infineon.com|/infineon |Z |3Kawatetsu|j/|jElite|1 17517 Fabrica Way Ste J Cerrito CA 90703 (714) 522-8081 |/surl |3www.elitemagnetics.com|/kawat |d|y |3Mini-Circuits|1 PO Box 350166 Brooklyn NY 11235 (718) 934-4500 |/surl |3www.minicircuits.com|/minicircuits |Z |3MMG-North American|1 126 Pennsylvania Ave Paterson NJ 07503 (800) 664-7712 |/surl |3www.mmgna.com|/mmg |Z |3MWS Wire Industries|1 31200 Cedar Valley Dr Westlake Village CA 91362 (818) 991-8553 |/surl |3www.mwswire.com|/mws |Z |3TDK|1 1600 Feehanville Dr Mount Prospect IL 60056 (708) 803-6100 |/surl |3www.component.tdk.com|/tdk |Z )cl % }} % end bypass } def % /sidebar1 {} def % temp lockout %%%% /sidebar2 { 8 -3 translate 1 dup scale % adjust to fit /title ( ) def /font0 /Helvetica [10 0 0 8.5 0 0] gonzofont /font1 /Helvetica [9 0 0 9 0 0] gonzofont /font2 /Helvetica-Bold [9 0 0 9 0 0 ] gonzofont /txtwide 156 def /yinc 11 def /Ymacro {/ypos ypos yinc 0.7 mul sub def} def /Zmacro {(h) stringmacro} def /ypos0 bt 3 sub def /yinc 17 def /xpos bl def /xpos0 xpos def /pm 0 def /sstretch 0.1 def /cstretch 0.2 def /ypos bt 20 sub def /txtwide bw def /colcheck {} def /ytopoflist bt 50 sub csf div def xpos txtwide 2 div add 0 add ytopoflist 18 add % (|2|CNAMES AND NUMBERS) cc ( ) cc % for new graybox /ypos ytopoflist def /columnspacing 158 def /yinc 10 def /xpos0 bl 35 add def /xpos xpos0 def /amacro {/yhold ypos def /ypos ytopoflist def /xpos xpos columnspacing add def /ypos ypos yinc add def} def /downtwo {/ypos ypos 2 sub def} def % temporary stretch /Zmacro {(h) stringmacro /ypos ypos namestretch sub def } def % temporary for 4 wide % /columnspacing 140 def % /xpos xpos 15 sub def xpos ypos (|L|2Adhesives & Sealants|1 PO Box 400 Flossmoor IL 60422 (708) 922-0761 |/surl |2www.adhesivesmag.com|/adhesive |Z |2American Sci & Surp|1 3605 Howard St Skokie IL 60076 (708) 982-0870 |/surl |2www.sciplus.com|1|/scisurp |Z |2Bell Jar|1 35 Windsor Dr Amherst NH 03031 (603) 429-0948 |/surl |2www.tiac.net/users/shansen|/belljar |Z |2Burr-Brown|1 6730 S Tucson Blvd Tucson AZ 85706 (520) 746-1111 |/surl |2www.burr-brown.com|/burr |Z |2C&H Sales|1 PO Box 5356 Pasadena CA 91107 (800) 325-9465 |/surl |2aaaim.com/CandH/index.htm|1|/candh |Z |2Carroll Touch|1 2800 Oakmont Dr Round Rock TX 78664 (512) 671-5621 |/surl |2www.carrolltouch.com|/carroll |Z |2Circuit Cellar Ink|1 4 Park St #20 Vernon CT 06066 (203) 875-2751 |/surl |2www.circuitcellar.com|/ccell |Z |2ECG/Philips|1 PO Box 3277 Williamsport PA 17701 (717) 323-4691 |/surl |2www.ecgproducts.com|/ecg |Z |2Fair Radio Sales|1 PO Box 1105 Lima OH 45802 (419) 227-6573 |/surl |2www.fairradio.com|/fair |Z |2Fuel Cell Bulletin|1 Box 945 New York NY 10159 (212) 633-7300 |/surl |2www.elsevier.com|1|/fuelcell |Z |2Hittite Microwave|1 12 Elizabeth Dr Chelmsford, MA 01824 (978) 250-3343 |/surl |2www.hittite.com|/hittite |Z |2Interlink Electronics|1 546 Flynn Rd Camarillo CA 93012 (805) 484-8989 |/surl |2www.interlinkelec.com|/interlink |Z |a |2Jameco Electronics|1 1355 Shoreway Rd Belmont CA 94002 (800) 536-4316 |/surl |2www.jameco.com|/jameco |Z |2Marlin P Jones|1 Box 12685 Lake Park FL 33403 (407) 848-8236 |/surl |2www.mpja.com|/marlin |Z |2Luke Systems Intl|1 27827 Via Amistosa #101 Agoura Hills CA 91301 (818) 991-9373 |/surl |2lukesys@nrc.com|/luke |Z |2Microchip Technology|1 2355 W Chandler Blvd Chandler AZ 85224 (480) 786-7200 |/surl |2www.microchip.com|/microchip |Z |2Nature|1 65 Bleecker St New York NY 10012 (212) 477-9628 |/surl |2www.nature.com|/nature |Z |2NTE Electronics|1 44 Farrand St Bloomfield NJ 07003 (201) 748-5089 |/surl |2www.nteinc.com|/nte |Z |2Rochester Electronics|1 10 Malcolm Hoyt Dr Newburyport MA 01950 (508) 462-9332 |/surl |2www.rocelec.com|/rochester |Z |2Seiko Instuments|1 2990 W Lomita Blvd Torrance CA 90505 (310) 517-7770 |/surl |2www.seiko-usa-ecd.com|/seiko |Z |2Small Parts|1 PO Box 4650 Miami Lakes FL 33014 (305) 557-8222 |/surl |2www.smallparts.com|/smallparts |Z |2STMicroelectronics|1 55 Old Bedford Rd Lincoln MA 01773 (781) 259-0300 |/surl |2www.st.com|1|/stm |Z |2Synergetics|1 Box 809 Thatcher AZ 85552 (520) 428-4073 |/surl |2www.tinaja.com|1|/synlib01 |Z |2think3|1 2880 Lakeside Dr, Ste 250 Santa Clara CA 95054 (408) 987-2220 |/surl |2www.think3.com|/think3 |Z ) cl } def % temphelp /hackhelp { % nt: hack.help % .. /sstretch 0 def /cstretch 0.1 def /font0 /Helvetica-Bold [8.5 0 0 8 0 0] gonzofont /font1 /Helvetica [8.5 0 0 8 0 0] gonzofont /font2 /Helvetica-Bold [8.5 0 0 8 0 0 ] gonzofont /font7 /Helvetica-Oblique [8.5 0 0 8 0 0] gonzofont /yinc 9.5 def /font2 {font1} def bc bt 15 sub (|0NEED HELP?) cc bl 14 add bt 30 sub (|1Phone or email all your US |2Tech Musings|1 questions to: |h Don Lancaster |2Synergetics|1 Box 809-EN Thatcher, AZ, 85552 (520) 428-4073 |h US email:|j |7don@tinaja.com|1 Web page:|j|j |7www.tinaja.com|1 ) cl } def %%% /f1name (Fig. 1 \261 AN ULTRA BROADBAND 1:1 transmission line transformer.)def /f2name (Fig. 2 \261 A 2:1 TURNS ratio gives a 4:1 impedance ratio ultra broadband \ transmission line transformer.) def /f3name (Fig. 3 \261 NEW TOUCH SCREEN INTERFACE chip and circuit from Burr-Brown \ offers eight-bit (256 points) or twelve-bit (4096 points) resolution. It can also \ sense Z axis stylus or finger pressure.) def /f4name (Fig. 4 \261 POSTSCRIPT SHOWPAGE DIVERTER performs sneaky tasks.) def /f5name (Fig. 5 \261 POSTSCRIPT CODE to generate fancy math functions.) def /ad1name ( ) def % dummy /s1name (TRANSMISSION LINE TRANSFORMER RESOURCES)def /s2name (NAMES AND NUMBERS) def /helpname (TEMPCHECK) def /Zmacro {/ypos ypos 1 add def 0 setlinewidth xpos ypos moveto txtwide 0 rlineto stroke /ypos ypos -2 add def} def % hair rule /reprogray {bestgray} def bestgray black /header {} def /setstrokeadjust where {pop /setstrokeadjust true def} if muse3 begin /cstretch 0.2 def /sstretch -0.3 def /showthegrid false def /LaserWriterG false def /boxdraw {bl bb bw bh brad roundbox blw setlinewidth stroke grestore } def /br {bl bw add} def /bb 0 def % picojust patch18 gonzo begin /swallow {/lopspaces lopspaces 1 add def printlist plistlength 1 sub get dup 1 get dup 2 ge {1 sub} if 1 exch put} bind def end /rdiode {gsave 180 rotate diode grestore} def % patch /grayshade 0.899 def % for compatibility /showcolors false def % temp for figure one cieF % BBBBBB % name of textfile: muse.149a broadband transformers etc % .... % X E % Z %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This is needed to improve post picojustufication... gonzo begin /swallow {/lopspaces lopspaces 1 add def printlist plistlength 1 sub get dup 1 get dup 2 ge {1 sub} if 1 exch put} bind def end /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 6.3 June 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.35 def % percentage of excess space to be internalized /picothresh 0.03 def % percentage increment per font change /^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 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 1 ^saj div 1 scale grestore ^jwd ^rwd add 0 rmoveto} ifelse} bind def } if %%%%%%%%%%%%% SYNERGETICS AD %%%%%%%%%%%%%%%%%% %! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /ad1copy { save /adsave exch store green staytint % IMPORTANT: Comment or remove the next line to get the ad up to EN page size! % Do this **ONLY** if you are extracting the ad for EN layout! % 1.03 1.09 scale xpos 23 sub ypos 283 sub 31 add 3 add (ad processing at ) == 2 copy == pop pop 0 0 % temp translate 0.95 0.915 scale %%%% This code puts in the reader service number %%%% /showreaderservicenumber true def % now a catalog /readerservicenumber 146 def /squashad true def /showadgrays true def squashad {1 0.80 scale} if /height 693 114 add 60 add def % stretched twice /width1 165 def /bc width1 2 div def % huh /sidethk 4 def /botheight 54 def /topheight 33 def /outrad 10 def /inrad 5 def /pm 0 def /pmnorm 0 def %%%%%%%%%%%%%% KEYSTONE STUFF %%%%%%%%%%%%%%%%%%%%%%% % this is a repeat of the GONZO13B callout width proc ... gonzo begin /endtheline {/curwide txtwide roomleft sub def justx cvx exec oktoprint {printline} if} bind def /cw {save /snapc1 exch def /oktoadvance false def /oktoprint false def /linestring linestring2 def /justx (justL) def 3 1 roll /ypos exch def /xpos exch def stringgonzo curwide snapc1 restore} def end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This is a subtle correction to the gonzo fill justify that makes % txtwide slightly more precise ... gonzo begin /reallyjustF {swallowandhang roomleft cstretch add numchars 1 sub numspaces spacecharratio mul add dup 0 eq {pop 0.001} if div dup cstretch add /cfix exch def spacecharratio mul sstretch add /sfix exch def /xfix 0 def /yfix 0 def} bind def % unconditional justF end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % KEYSTONE STUFF STARTS HERE gonzo begin % This is the core keystone code routine. It works by taking an average % of the first two and last two string lengths to determine the keystone % slope, increment, and starting width. It then checks the length of % each line and extends the starting width as needed so everything fits. /keyproc {/kadj exch def /msg2 exch def /yy1 exch def /xx1 exch def mark {msg2 (\n) search {exch pop exch /msg2 exch def dup length 0 le {pop} if}{dup length 0 le {pop} if exit} ifelse} loop ] /karray exch def 0 0 karray 0 get cw 0 0 karray 1 get cw add 2 div dup 0 0 karray dup length 1 sub get cw 0 0 karray dup length 2 sub get cw add 2 div sub neg karray length 1 sub div dup /kinc exch def 2 div sub /kstart exch def /txtwide 10000 def 0 0 1 karray length 1 sub {/kpn exch def 0 0 karray kpn get cw kstart kinc kpn mul add sub 2 copy lt {exch} if pop} for kstart add 1.01 mul dup /kstart exch def /txtwide exch def /justifylastline true def 0 1 karray length 1 sub { /posn exch def yy1 xx1 kstart kadj exch posn karray exch get cf /txtwide txtwide kinc add def /xx1 xx1 kinc kadj def /yy1 yy1 yinc sub def} for} def % these are the three keystone routines. Use xpos ypos true (msg strings) % cck, etc. true for keystone; false for ordinary justify. /cck {save /keysnap exch def exch {{2 div sub} keyproc} {cc} ifelse keysnap restore} def % callout centered keystone /clk {save /keysnap exch def exch {{pop} keyproc} {cl} ifelse keysnap restore} def % callout left keystone /crk {save /keysnap exch def exch {{sub} keyproc} {cr} ifelse keysnap restore} def % callout right keystone end % close gonzo dictionary %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % outside box 0 0 width1 height 5 roundbox showadgrays {0.3}{0} ifelse setgray1 % for brown border fill % inside box sidethk botheight width1 sidethk 2 mul sub height topheight sub botheight sub inrad roundbox showadgrays {0.96 setgray}{white} ifelse fill black % shade for web /cstretch 0.7 def /sstretch 1.2 def /font1 /Revue 10 gonzofont /font3 /Revue 9 gonzofont /font4 /Revue [9 0 0 9.05 0 1] gonzofont /font9 /Helvetica-Bold 6.5 gonzofont /font2 /Revue 14 gonzofont font1 % adjust center /bc bc sidethk 2 div add def % top lettering white bc bt 22 add (|1new from) cc bc bt 6 add (|2DON LANCASTER) cc bc -17 (|2SYNERGETICS) cc /yinc 10 def bc -28 (|3B|1ox |3809-EN|1 |1Thatcher, |3AZ 85552 |4(|3520|4)|3 428-4073|1) cc /cstretch 0.1 def /sstretch 0.1 def /font5 /Helvetica-Narrow 8 gonzofont /font6 /Helvetica-Narrow-Bold 10 gonzofont /font7 /Helvetica 6 gonzofont /font8 /Helvetica-Narrow-Bold 8 gonzofont /font: /Helvetica-Bold [5 0 0 4.95 0 6] gonzofont % uneven for distillery /font- /Helvetica-Narrow-Oblique 8 gonzofont black 3 3 (|7FREE US VOICE HELPLINE) cl br 3 sub 3 (|7VISA|j/|jMC) cr /xpos 4 def /txtwide br 8 sub def /yinc 8.5 def /ypos bt 15.5 sub def /amacro {/ypos ypos 2 add def} def /cmacro {/ypos ypos 1 add def} def /kern 0.5 def /bw width1 sidethk 2 mul sub def % obtuse code avoids the arcto bug /bmacro { gsave showadgrays {0.3}{0} ifelse setgray % for brown border 0 ypos translate 0 0 mt 5 [-0.5 30 -0.5 3 bw 1 add 3 bw 1 add 30 ] roundpath 0 -31 rlineto bw 1 add neg 0 rlineto closepath fill newpath 0 0 mt 5 [-0.5 -30 -0.5 -3 bw 1 add -3 bw 1 add -30 ] roundpath 0 31 rlineto bw 1 add neg 0 rlineto closepath fill grestore } def /Umacro {ypos} def xpos ypos (|C|6A|kCTIVE|j|j FILTER|j|j COOKBOOK |h|a |C|6RESEARCH|j|j INFOPACKS |h|F|a |5Don's instant use other oneash-and-carry flat rate consulting. Ask any reasonable technical \ question to get a detailed analysis and report. See |/tinton www.tinaja.com/info01|/info01 \ for specifics. \ |8$79.00|5 |b |a |h |F|5The sixteenth|k (!|j)|k printing of Don's bible on analog op-amp lowpass, bandpass, and highpass active filters. De-mystified instant designs. |8 $28.50|1 |b |a |h |C|6CMOS|j|j AND|j|j TTL|j|j COOKBOOKS |h|a |F|5Millions of copies in print worldwide. |8THE|5 two books for digital integrated circuit fundamentals. About as hands-on as you can get. |8$28.50 |5each.|1 |b |a |h |C|6INCREDIBLE|j|j SECRET |h|c MONEY|j|j MACHINE|j|j II |5|h|F|a Updated 2nd edition of Don's classic on setting up your own technical or craft venture. |8$18.50|1 |b |a |h |C|6LANCASTER|j|j CLASSICS|j|j LIBRARY |5|h|a|F Don's best early stuff at a bargain price. Includes the CMOS Cookbook, The TTL Cookbook, Active Filter Cookbook, PostScript video, Case Against Patents, Incredible Secret Money Machine II, and \ Hardware \ Hacker II reprints. |8$119.50|1 |b |a |h |C|6L|kOTS|j|j OF|j|j OTHER|j|j GOODIES |5|h|a) stringgonzo %%%%%%%%%%%%%%%%%%%%%%%% % (A) WIDTH CALCULATIONS 2.20.91 % A new curwide variable lets you calculate the gonzo string % width independent of printing it. Handy for menu justify, etc.. % Use has to be bracketed with /oktoprint false def /oktoadvance % false def --- stuff --- and then true. Works with any justify mode. % make this change to main code so lengths can be extracted. Note that % roomleft gets flushed at line end. gonzo begin /endtheline {/curwide txtwide roomleft sub def justx cvx exec oktoprint {printline} if} bind def % calloutwidth calculates only the width of the string, returning it % to the top of the stack. For consistency with other callouts, use % 0 0 (string) cw. This INCLUDES all stretching and font changes! /cw {save /snapc1 exch def /oktoadvance false def /oktoprint false def /linestring linestring2 def /justx (justL) def 3 1 roll /ypos exch def /xpos exch def stringgonzo curwide snapc1 restore} def end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (B) MENU JUSTIFY 2.20.91 % The cm routine takes a leading string and a trailing string seperated % by a delimiter and places a row of CONSTANT WIDTH, PRECISELY SPACED, % VERTICALLY ALIGNED and WHOLE dots (or whatever) between the two. It % is based on putting down the dots first and ERASING only whole dots % that are not wanted. /menudots (. ) def /menufont {font5} def /mdoteht 3 def /menudelim ( ) def /cropleadingspaces true def % drawmdots draws a line of menu dots, using plain old show /drawmdots { gsave menufont xxm yym moveto txtwide menudots stringwidth pop dup /mdot1 exch def div floor cvi {menudots show} repeat grestore } def % spchomp takes a string and conditionally removes all leading spaces, % returning the truncated string /spchomp {cropleadingspaces {dup 0 exch {32 eq {1 add}{exit} ifelse } forall} if exch dup length 2 index sub 3 -1 roll exch getinterval} def % mlineproc takes the mline string and processes it into a leading string, % the dot row, and a trailing string. Unused dots are erased with logic % to insure whole dots only. Null strings are ignored. /mlineproc {mline length 0 gt {drawmdots mline menudelim search {/lmstr exch def pop spchomp /rmstr exch def } if gsave showadgrays {0.96}{1}ifelse setgray % for web color xxm yym moveto mdoteht setlinewidth 0 0 lmstr cw mdot1 div ceiling mdot1 mul 0 rlineto stroke xxm txtwide mdot1 div floor mdot1 mul add yym moveto 0 0 rmstr cw mdot1 div ceiling mdot1 mul neg 0 rlineto stroke grestore xxm yym lmstr cl xxm txtwide add yym rmstr cr /yym yym yinc sub def} if} def % mj menujustify accepts tabbed string pairs and converts them into % dotted menu listings.. /cm {gsave /msg exch def /yym exch def /xxm exch def { msg (\n) search {/mline exch def pop /msg exch def mlineproc} {/mline exch def mlineproc exit } ifelse} loop grestore} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % /txtwide 170 def % textwidth /txtwide txtwide 8 sub def /yinc 8 def xpos 4 add ypos 0 sub (Ask the Guru I or II or III $24.50 Hardware Hacker II, III or IV $24.50 Tech Musings V or VI $24.50 Micro Cookbook I $19.50 PostScript Beginner Stuff $29.50 PostScript Show and Tell $29.50 Intro to PostScript Video $29.50 PostScript Reference II $34.50 PostScript Tutorial/Cookbook $22.50 PostScript by Example $32.50 Understanding PS Programming $29.50 PostScript: A Visual Approach $22.50 PostScript Program Design $24.50 Thinking in PostScript $22.50 LaserWriter Reference $19.50 Type 1 Font Format $16.50 Acrobat Reference $24.50 Whole works (all PostScript) $380.00 Technical Insider Secrets |9|kFREE|j|j|j|5 ) cm /txtwide txtwide 8 add def xpos ypos (|F |h|c|c|c |b |a |h |C|6BOOK-ON-DEMAND|j|j PUB|j|j KIT |h|F|a |5Ongoing details on Book-on-demand publishing, a new method of producing books only when and as ordered. Reprints, sources, samples. |8$39.50|5 |b |a |h |C|6THE|j|j C|kASE|j|j A|kGAINST|j|j P|kA|kTENTS |h|F|a |5For most individuals, patents are virtually certain to end up as a net loss of sanity, energy, time, and money. \ This reprint set shows you Don's tested and proven real-world alternatives. |828.50|5 |b |a |h |C|6BLATANT|j|j OPPORTUNIST|j|j I |h|F|a |5The reprints from all Don's Midnight Engineering columns. Includes a broad range of real world, proven coverage on small scale technical startup ventures. Stuff you can use right now. \ |8$24.50|5 |b |a |h |C|6RESOURCE|j|j BIN|j|j I |h|F|a |5A complete collection of all Don's Nuts & Volts columns to date, including a new index and his master names and numbers list. |8$24.50|5 |b |a |h |C|6FREE|j|j SAMPLES |h|F|a |5Check Don's Guru's Lair at |-http://www.tinaja.com|5 for interactive catalogs and online samples \ of Don's unique products. Searchable reprints and reference resouces, too. Tech help, hot links to cool sites, consultants. |jemail:|j|- don@tinaja.com|1 ) stringgonzo showreaderservicenumber { /sstretch 0.25 def /cstretch 0.20 def /font1 /Helvetica-Bold [6 0 0 8 0 0 ] gonzofont bc 0 sub botheight neg 10 sub 2 sub %(Write in ) readerservicenumber ( ) cvs mergestr %( on Reader Service Card.) mergestr cc (FREE catalog: http://www.tinaja.com) cc } if adsave restore } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /figure5xx { % name of textfile: muse.fig.106.5 induction heating schematic % ............................ % figure or text starts here ////////////////////////////////////// save /snap5xx exch def %%%%%%%%%%%%%%%%%%% electronics begin end ypos snap5xx restore /ypos exch def } def %%%%% MUSE PATCHES %%%%% % Version 8.0 Jan 11, 1997 % Insert just before "Name of textfile" on "Z" page. muse3 begin %%%%%%%%%%%%%%%% 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 /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 /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 /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 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% beige %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % //// REVISED 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? % titleblock, headers and footers /titleblock {save /blurbsnap exch def /colcheck {} def /cstretch 0.2 def sstretch 1 def cml cmt bh1 sub 15 add translate /blurbboxwide 180 def /blurbboxhigh 80 def 1 setlinecap bestgray 3 23 mt hdw 15 sub blurbboxwide sub 3 sub 23 lineto hdw 3 sub 23 moveto -10 0 rlineto [6 0.33 4.5 .85] superstroke hdw blurbboxwide sub 15 sub 0 blurbboxwide blurbboxhigh 5 roundbox gsave grayshade setgray fill grestore % temp expt [4 0.33 2.5 .85] superstroke 0.85 setgray 4.5 setlinewidth -5 23 mt 3 r blurbboxwide 1 add 23 mt 3 r stroke grestore 0.33 setgray /font0 /Palatino-Bold 30 gonzofont /font1 /Palatino-Bold 10 gonzofont /font2 /Palatino-Bold 12 gonzofont font2 4 62 7 add author cl 0.33 setgray font0 3 34 4 add titlename cl font2 4 7 titledate cl 0.20 setgray /yinc 12 def hdw font1 105 sub 60 dokeystone titleblurb cck blurbsnap restore} def /hrule1 {gsave newpath setlinewidth 1 index 4 2 roll moveto lineto stroke grestore} def /leftheader {save /blurbsnap exch def /colcheck {} def cml cmt 16 add translate 0.25 setgray gsave mastergray setgray 0 8 mt 16 setlinewidth hdw r grestore % color fill? 0 0 hdw 1.2 hrule1 0 16 hdw 0.5 hrule1 /cstretch 0.2 def /sstretch 1 def /font2 /Palatino-Bold 11 gonzofont 8 4.5 leftheading cl blurbsnap restore} def /rightheader {save /blurbsnap exch def /colcheck {} def cml cmt 16 add translate 0.25 setgray gsave mastergray setgray 0 8 mt 16 setlinewidth hdw r grestore % color fill? 0 0 hdw 1.2 hrule1 0 16 hdw 0.5 hrule1 /cstretch 0.2 def /sstretch 1 def /font2 /Palatino-Bold 11 gonzofont hdw 8 sub 4.5 rightheading cr blurbsnap restore} def /hrule1 {gsave newpath setlinewidth 1 index 4 2 roll moveto lineto stroke grestore} def /leftfooter { save /blurbsnap exch def /colcheck {} def 0.25 setgray cml cmb 13 sub translate /txtwide 1000 store /font3 /Helvetica 4.5 gonzofont font3 hdw -6 (Copyright c 2000 by Don Lancaster and Synergetics (520) 428-4073 www.tinaja.com \ All commercial rights and all electronic media rights fully reserved. \ Reposting is expressly forbidden.) cr 0 0 hdw 0.8 hrule1 gsave 25 0 translate -18 -7 36 14 2 roundbox gsave mastergray setgray fill grestore 0.5 setlinewidth stroke /font2 /Palatino-Bold 11 gonzofont /cstretch 0.4 def 16 2 add 3.5 columnum ( ) cvs (.) mergestr colpagenum ( ) cvs mergestr cc blurbsnap restore /colpagenum colpagenum 1 add def } def % adjusted for 100 - was -16 -7 32 14 /rightfooter {save /blurbsnap exch def /colcheck {} def cml cmb 13 sub translate /txtwide 1000 store /font3 /Helvetica 4.5 gonzofont font3 0.25 setgray 0 -6 (Copyright c 2000 by Don Lancaster and Synergetics (520) 428-4073 www.tinaja.com \ All commercial rights and all electronic media rights fully reserved. \ Reposting is expressly forbidden.) cl 0 0 hdw 0.8 hrule1 gsave hdw 25 sub 0 translate -18 -7 36 14 2 roundbox gsave mastergray setgray fill grestore 0.5 setlinewidth stroke /cstretch 0.4 def /font2 /Palatino-Bold 11 gonzofont 16 2 add 3.5 columnum ( ) cvs (.) mergestr colpagenum ( ) cvs mergestr cc blurbsnap restore /colpagenum colpagenum 1 add def} def /hackhelp { % nt: hack.help % .. /sstretch 0 def /cstretch 0.1 def /font0 /Helvetica-Bold [8.5 0 0 8 0 0] gonzofont /font1 /Helvetica [8.5 0 0 8 0 0] gonzofont /font2 /Helvetica-Bold [8.5 0 0 8 0 0 ] gonzofont /font7 /Helvetica-Oblique [8.5 0 0 8 0 0] gonzofont /yinc 9.5 def /font2 {font1} def 0 grayshade 1 ne {pop 0.25} if setgray bc bt 15 sub (|0NEED HELP?) cc bl 14 add bt 30 sub (|1Phone or email all your US |2Tech Musings|1 questions to: |h Don Lancaster |2Synergetics|1 Box 809-EN Thatcher, AZ, 85552 (520) 428-4073 |h US email:|j |7|/surl don@tinaja.com|1|/maildon Web page:|j|j |7|/surl www.tinaja.com|1|/tinaja ) cl } def /ad1 {cm3 cmb 1colwide f5h false true /ad1name /ad1copy stdmusefig} def % link /ad1name ( ) def /h1h yinc 14 mul def % height of optional help box end % muse3 template %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /showreaderservicenumber false def /showadgrays true def /ad1copy { save /adsave exch store 0 8 translate % adjusts position on page was -127 % IMPORTANT: Comment or remove the next line to get the ad up to EN page size! % Do this **ONLY** if you are extracting the ad for EN layout! % 1.03 1.09 scale green staytint xpos 23 sub ypos 283 sub 22 add (ad processing at ) == 2 copy == == pop pop 0 0 % temp translate % this one? 0.95 0.915 scale %%%% This code puts in the reader service number %%%% /readerservicenumber 146 def /squashad true def squashad {1 0.80 scale} if /height 693 114 add 60 add def % stretched twice /width1 165 def /sidethk 4 def /botheight 54 def /topheight 33 def /outrad 10 def /inrad 5 def /pm 0 def /pmnorm 0 def %%%%%%%%%%%%%% KEYSTONE STUFF %%%%%%%%%%%%%%%%%%%%%%% % this is a repeat of the GONZO13B callout width proc ... gonzo begin /endtheline {/curwide txtwide roomleft sub def justx cvx exec oktoprint {printline} if} bind def /cw {save /snapc1 exch def /oktoadvance false def /oktoprint false def /linestring linestring2 def /justx (justL) def 3 1 roll /ypos exch def /xpos exch def stringgonzo curwide snapc1 restore} def end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % This is a subtle correction to the gonzo fill justify that makes % txtwide slightly more precise ... gonzo begin /reallyjustF {swallowandhang roomleft cstretch add numchars 1 sub numspaces spacecharratio mul add dup 0 eq {pop 0.001} if div dup cstretch add /cfix exch def spacecharratio mul sstretch add /sfix exch def /xfix 0 def /yfix 0 def} bind def % unconditional justF end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % KEYSTONE STUFF STARTS HERE gonzo begin % This is the core keystone code routine. It works by taking an average % of the first two and last two string lengths to determine the keystone % slope, increment, and starting width. It then checks the length of % each line and extends the starting width as needed so everything fits. /keyproc {/kadj exch def /msg2 exch def /yy1 exch def /xx1 exch def mark {msg2 (\n) search {exch pop exch /msg2 exch def dup length 0 le {pop} if}{dup length 0 le {pop} if exit} ifelse} loop ] /karray exch def 0 0 karray 0 get cw 0 0 karray 1 get cw add 2 div dup 0 0 karray dup length 1 sub get cw 0 0 karray dup length 2 sub get cw add 2 div sub neg karray length 1 sub div dup /kinc exch def 2 div sub /kstart exch def /txtwide 10000 def 0 0 1 karray length 1 sub {/kpn exch def 0 0 karray kpn get cw kstart kinc kpn mul add sub 2 copy lt {exch} if pop} for kstart add 1.01 mul dup /kstart exch def /txtwide exch def /justifylastline true def 0 1 karray length 1 sub { /posn exch def yy1 xx1 kstart kadj exch posn karray exch get cf /txtwide txtwide kinc add def /xx1 xx1 kinc kadj def /yy1 yy1 yinc sub def} for} def % these are the three keystone routines. Use xpos ypos true (msg strings) % cck, etc. true for keystone; false for ordinary justify. /cck {save /keysnap exch def exch {{2 div sub} keyproc} {cc} ifelse keysnap restore} def % callout centered keystone /clk {save /keysnap exch def exch {{pop} keyproc} {cl} ifelse keysnap restore} def % callout left keystone /crk {save /keysnap exch def exch {{sub} keyproc} {cr} ifelse keysnap restore} def % callout right keystone end % close gonzo dictionary %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % outside box 0 0 width1 height 5 roundbox showadgrays {0.3}{0} ifelse setgray % for brown border fill % inside box sidethk botheight width1 sidethk 2 mul sub height topheight sub botheight sub inrad roundbox showadgrays {grayshade setgray}{white} ifelse fill black % shade for web /cstretch 0.7 def /sstretch 1.2 def /font1 /Revue 10 gonzofont /font3 /Revue 9 gonzofont /font4 /Revue [9 0 0 9.05 0 1] gonzofont /font9 /Helvetica-Bold 6.5 gonzofont /font2 /Revue 14 gonzofont font1 % adjust center /bc bc sidethk 2 div add def % top lettering white bc bt 22 add (|1new from) cc bc bt 6 add (|2DON LANCASTER) cc bc -17 (|2SYNERGETICS) cc /yinc 10 def bc -28 (|3B|1ox |3809-EN|1 |1Thatcher, |3AZ 85552 |4(|3520|4)|3 428-4073|1) cc /cstretch 0.1 def /sstretch 0.1 def /font5 /Helvetica-Narrow 8 gonzofont /font6 /Helvetica-Narrow-Bold 10 gonzofont /font7 /Helvetica 6 gonzofont /font8 /Helvetica-Narrow-Bold 8 gonzofont /font: /Helvetica-Bold [5 0 0 4.95 0 6] gonzofont % uneven for distillery /font- /Helvetica-Narrow-Oblique 8 gonzofont black 3 3 (|7FREE US VOICE HELPLINE) cl br 3 sub 3 (|7VISA|j/|jMC) cr /xpos 4 def /txtwide br 8 sub def /yinc 8.5 def /ypos bt 15.5 sub def /amacro {/ypos ypos 2 add def} def /cmacro {/ypos ypos 1 add def} def /kern 0.5 def /bw width1 sidethk 2 mul sub def % obtuse code avoids the arcto bug /bmacro { gsave showadgrays {0.3}{0} ifelse setgray % for brown border -0.45 ypos translate 0 0 mt 5 [-0.5 30 -0.5 3 bw 1 add 3 bw 1 add 30 ] roundpath 0 -31 rlineto bw 1 add neg 0 rlineto closepath fill newpath 0 0 mt 5 [-0.5 -30 -0.5 -3 bw 1 add -3 bw 1 add -30 ] roundpath 0 31 rlineto bw 1 add neg 0 rlineto closepath fill grestore } def /Umacro {ypos} def xpos ypos (|/tinton1 |C|6A|kCTIVE|j|j FILTER|j|j COOKBOOK |h|a |F|5The sixteenth|k (!|j)|k printing of Don's bible on analog op-amp lowpass, bandpass, and highpass active filters. De-mystified instant designs. |8 $28.50|1 |b |a |h |/tinton1 |C|6RESEARCH|j|j INFOPACKS |h|F|a |5Don's instant cash-and-carry flat rate consulting service. Ask any reasonable technical \ question for a detailed analysis and complete report. See |/surl www.tinaja.com|j/|jinfo01|/info01g \ for specifics. \ |8$79.00|5 |b |a |h |C|/tinton1 |6CMOS|j|j AND|j|j TTL|j|j COOKBOOKS |h|a |F|5Millions of copies in print worldwide. |8THE|5 two books for digital integrated circuit fundamentals. About as hands-on as you can get. |8$28.50 |5each.|1 |b |a |h |/tinton1 |C|6INCREDIBLE|j|j SECRET |h|c |/tinton1 MONEY|j|j MACHINE|j|j II |5|h|F|a Updated 2nd edition of Don's classic on setting up your own technical or craft venture. |8$18.50|1 |b |a |h |/tinton1 |C|6LANCASTER|j|j CLASSICS|j|j LIBRARY |5|h|a|F Don's best early stuff at a bargain price. Includes the CMOS Cookbook, The TTL Cookbook, Active Filter Cookbook, PostScript video, Case Against Patents, Incredible Secret Money Machine II, and \ Hardware \ Hacker II reprints. |8$119.50|1 |b |a |h |/tinton1 |C|6L|kOTS|j|j OF|j|j OTHER|j|j GOODIES |5|h|a) stringgonzo %%%%%%%%%%%%%%%%%%%%%%%% % (A) WIDTH CALCULATIONS 2.20.91 % A new curwide variable lets you calculate the gonzo string % width independent of printing it. Handy for menu justify, etc.. % Use has to be bracketed with /oktoprint false def /oktoadvance % false def --- stuff --- and then true. Works with any justify mode. % make this change to main code so lengths can be extracted. Note that % roomleft gets flushed at line end. gonzo begin /endtheline {/curwide txtwide roomleft sub def justx cvx exec oktoprint {printline} if} bind def % calloutwidth calculates only the width of the string, returning it % to the top of the stack. For consistency with other callouts, use % 0 0 (string) cw. This INCLUDES all stretching and font changes! /cw {save /snapc1 exch def /oktoadvance false def /oktoprint false def /linestring linestring2 def /justx (justL) def 3 1 roll /ypos exch def /xpos exch def stringgonzo curwide snapc1 restore} def end %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % (B) MENU JUSTIFY 2.20.91 % The cm routine takes a leading string and a trailing string seperated % by a delimiter and places a row of CONSTANT WIDTH, PRECISELY SPACED, % VERTICALLY ALIGNED and WHOLE dots (or whatever) between the two. It % is based on putting down the dots first and ERASING only whole dots % that are not wanted. /menudots (. ) def /menufont {font5} def /mdoteht 3 def /menudelim ( ) def /cropleadingspaces true def % drawmdots draws a line of menu dots, using plain old show /drawmdots { gsave menufont xxm yym moveto txtwide menudots stringwidth pop dup /mdot1 exch def div floor cvi {menudots show} repeat grestore } def % spchomp takes a string and conditionally removes all leading spaces, % returning the truncated string /spchomp {cropleadingspaces {dup 0 exch {32 eq {1 add}{exit} ifelse } forall} if exch dup length 2 index sub 3 -1 roll exch getinterval} def % mlineproc takes the mline string and processes it into a leading string, % the dot row, and a trailing string. Unused dots are erased with logic % to insure whole dots only. Null strings are ignored. /mlineproc {mline length 0 gt {drawmdots mline menudelim search {/lmstr exch def pop spchomp /rmstr exch def } if gsave showadgrays {grayshade}{1}ifelse setgray % for web color xxm yym moveto mdoteht setlinewidth 0 0 lmstr cw mdot1 div ceiling mdot1 mul 0 rlineto stroke xxm txtwide mdot1 div floor mdot1 mul add yym moveto 0 0 rmstr cw mdot1 div ceiling mdot1 mul neg 0 rlineto stroke grestore xxm yym lmstr cl xxm txtwide add yym rmstr cr /yym yym yinc sub def} if} def % mj menujustify accepts tabbed string pairs and converts them into % dotted menu listings.. /cm {gsave /msg exch def /yym exch def /xxm exch def { msg (\n) search {/mline exch def pop /msg exch def mlineproc} {/mline exch def mlineproc exit } ifelse} loop grestore} def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % /txtwide 170 def % textwidth /txtwide txtwide 8 sub def /yinc 8 def xpos 4 add ypos 0 sub (Tech Musings V or VI $24.50 Ask the Guru I or II or III $24.50 Hardware Hacker II, III or IV $24.50 Micro Cookbook I $19.50 PostScript Beginner Stuff $29.50 PostScript Show and Tell $29.50 PostScript Video & secrets $29.50 PostScript Reference II $34.50 PostScript Tutorial/Cookbook $22.50 PostScript by Example $32.50 Understanding PS Programming $29.50 PostScript: A Visual Approach $22.50 PostScript Program Design $24.50 Thinking in PostScript $22.50 LaserWriter Reference $19.50 Type 1 Font Format $16.50 Acrobat Reference $24.50 Whole works (all PostScript) $380.00 Technical Insider Secrets |9|kFREE|j|j|j|5 ) cm /txtwide txtwide 8 add def xpos ypos (|F |h|c|c|c |b |a |h |/tinton1 |C|6BOOK-ON-DEMAND|j|j PUB|j|j KIT |h|F|a |5Ongoing details on Book-on-demand publishing, a new method \ of producing books only when and as ordered. Reprints, \ sources, samples. |8$39.50|5 |b |a |h |/tinton1 |C|6THE|j|j C|kASE|j|j A|kGAINST|j|j P|kA|kTENTS |h|F|a |5For most individuals, patents are virtually certain to result in a net loss of sanity, energy, time, and money. \ This reprint set shows you Don's tested and proven real-world alternatives. |828.50|5 |b |a |h |/tinton1 |C|6BLATANT|j|j OPPORTUNIST|j|j I |h|F|a |5The reprints from all Don's Midnight Engineering columns. Includes a broad range of real world, proven coverage on small scale technical startup ventures. Stuff you can use right now. |8$24.50|5 |b |a |h |/tinton1 |C|6RESOURCE|j|j BIN|j|j I |h|F|a |5A complete collection of all Don's Nuts & Volts columns to date, including a new index and his master names and numbers list. |8$24.50|5 |b |a |h |/tinton1 |C|6FREE|j|j SAMPLES |h|F|a |5Check Don's Guru's Lair at |-|/surl http://www.tinaja.com|5|/tinaja for interactive \ catalogs and online samples \ of Don's unique products. Searchable reprints and reference resouces, too. Tech help, hot links to cool sites, consultants. |jemail:|j|- |/surl don@tinaja.com|1|/maildon ) stringgonzo showreaderservicenumber { /sstretch 0.25 def /cstretch 0.20 def /font1 /Helvetica-Bold [6 0 0 8 0 0 ]gonzofont bc 0 sub botheight neg 10 sub 2 sub % (Write in ) readerservicenumber ( ) cvs mergestr % ( on Reader Service Card.) mergestr cc (FREE catalog: http://www.tinaja.com (do NOT provide RS number!!) ) cc } if adsave restore } def %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % %%% ADDITIONAL ELECTRONICS PATCHES %%%% electronics begin /npn {gsave newpath exch 0.2 sub exch translate -.1 0 1.2 0 360 arc gsave grayshade dup 1 ne {0.15 sub} if setgray fill grestore line2 stroke -0.2 0 translate line3 -.3 -.7 moveto 1.4 u line1 -.3 0 mt 1.3 l -.2 .4 mt 0.6 0.4 rlineto 1.2 u newpath -.2 -0.4 mt 0.6 -0.4 rlineto 1.2 d newpath 0.4 -0.75 mt -.2 .3 rlineto -.2 -.3 rlineto closepath fill grestore} def /npnl {gsave translate -1 1 scale 0 0 npn grestore} def /pnp {gsave newpath exch 0.2 sub exch translate -.1 0 1.2 0 360 arc gsave grayshade dup 1 ne {0.15 sub} if setgray fill grestore line2 stroke -0.2 0 translate line3 -.3 -.7 moveto 1.4 u line1 -.3 0 mt 1.3 l -.2 .4 mt 0.6 0.4 rlineto 1.2 u newpath -.2 -0.4 mt 0.6 -0.4 rlineto 1.2 d newpath -.2 .4 mt .3 .4 rlineto .1 -.3 rlineto closepath fill grestore} def /pnpl {gsave translate -1 1 scale 0 0 pnp grestore} def /circ3 {gsave currentpoint newpath 0.8 0 360 arc gsave grayshade dup 1 ne {0.15 sub} if pop 1 % try white setgray fill grestore black line1 stroke grestore} def % end % electronics % %%%ZZZZ%%%%%%%%%%%%%% URL PATCHES %%%%%%%%%%%%%%%%%%%%%%%%%%%% % patch definitions... % dictionary method << %% these are urls only... /ng1 (news:///sci.techniques.testing.nondestructive) /ng01 (news:///sci.sci.electronics.design) /ng02 (news:///3alt.ham-radio.vhf-uhf) /touch (http://www.repair.org) /bytes (http://www.adobe.com/support/downloads/5c16.htm) /amidon (http://www.bytemark.com/amidon) /ieee (http://www.ieee.org) /minicircuits (http://www.minicircuits.com) /mws (http://www.mwswire.com) /trlx (http://.prime net.com/~ctrask/trlxfmr.html) /adobepi (http://www.adobe.com/adobe/svg) /w3org (http://www.w3.org) /drhtml (http://www2.imagiware.com/RxHTML) /data (http://www.chrc.uiuc.edu/~dburke/databookshelf.html) /arnold (http://www.arnoldeng.com) /fairrite (http://www.fair-rite.com) /infineon (http://www.infineon.com) /kawat (http://www.elitemagnetics.com) /mmg (http://www.mmgna.com) /tdk (http://www.component.tdk.com) /chips (http://www.chipcenter.com) /allied (http://wwwwww.allied.avnet.com) /batmag (http://www.infowebcom.com/battery) /desnews (http://www.designnews.com) /digikey (http://www.digikey.com) /edn (http://www.ednmag.com) /eetimes (http://www.cmp.com) /ecn (http://www.cahners.com) /eldesign (http://www.penton.com) /elproducts (http://electronicproducts.com) /grainger (http://www.grainger.com) /machdesign (http://www.machinedesign.com) /mcmaster (http://www.mcmaster.com) /m&c(http://www.mac-med.com) /mouser (http://www.mouser.com) /newark (http://www.newark.com) /partsx (http://www.partsexpress.com) /pcim (http://www.pcim.com) /rfdesign (http://www.intertec.com) /sensors (http://www.sensormag.com) /adhesive (http://www.adhesivesmag.com) /scisurp (http://www.sciplus.com) /belljar (http://www.tiac.net/users/shansen/belljar) /burr (http://www.burr-brown.com) /candh (http://aaaim.com/CandH/index.htm) /carroll (http://www.carrolltouch.com) /ccell (http://www.circuitcellar.com) /ecg (http://www.ecgproducts.com) /fair (http://www.fairradio.com) /fuelcell (http://www.elsevier.com) /hittite (http://www.hittite.com) /interlink (http://www.interlinkelec.com) /jameco (http://www.jameco.com) /marlin (http://www.mpja.com) /luke (http://lukesys@nrc.com) /microchip (http://www.microchip.com) /nature (http://www.nature.com) /science (http://www.sciencemag.com) /nte (http://www.nteinc.com) /rochester (http://www.rocelec.com) /seiko (http://www.seiko-usa-ecd.com) /sunset (http://www.sunsetsilicon.com) /smallparts (http://www.smallparts.com) /stm (http://www.st.com) /think3 (http://www.think3.com) /expedite (http://www.expediters.com) /webconx (http://.webconx.com/fuelcell.htm) /ndt (http://www.ndt.org) >> {mark exch /eurl cvx ] cvx def} forall /uniscan {(http://www.uniscan.co.uk/pr02.htm) eurl} def /bath {(http://www.bath.ac.uk/~chsacf/solartron/electro/html/int.htm) eurl} def /intermarket {(http://www.intermarket.net/~don/dschlamp.html) eurl} def /tno {(http://www.tno.nl/instit/kribc/ca-den_helder/caeis.html) eurl} def /isea {(http://www.rwth-aachen.de/isea/Ww/texte/abstract/ka_vrla.html) eurl} def /minerva {(http://minerva.acc.virginia.edu/~cese/taylor/eisshort.html) eurl} def /questlink {(http://www.questlink.com) eurl} def /mailnasa {(mailto:corrosion@ksc.nasa.gov) eurl} def /homepower {(http://www.homepower.com) eurl} def /transtronics {(http://www.transtronics.com) eurl} def /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 /aerp {(http://www.aa.washington.edu/AERP/CRYOCAR/CryoCar.htm) eurl } def /jdisk {(http://www2.hawaii.edu/suremath/jdisk1.html) eurl } def /billb {(http://www.eskimo.com/~billb/freenrg/n-mach.html) eurl } def /cool {(http://www.mtsc.unt.edu/CooLN2Car.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 /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 /msinprop /magicsin /nuts08 /gramtram /muse112 /muse113 /hack64 /hack86 /ratholes /hack52 /postflut /emergop4 /resbn67 /resbn73 /elesimp /dontsick /muse117 /bannyear /trimode /syncat01 /muse90 /muse142 /muse147 /muse148 /bannyear /bustpat /resbn66 ] {setglib} forall [ /magsn01 /patnt01 /ismm01 /ismm01 /libry01 /resbn01 /blat01 /advt01 /barg01 /amlink01 /muse01 /bod01 /scweb01 /tinaja01 /synlib01 /info01 /picup01 /webwb01 /golly01 /santa01 /synlib01 /acrob01 /consul01 /h2gas01 /post01 /eeweb01 /hack01 /weblib01 /pseudo01 /info01 /beewb01 ] {sethtml} forall [ /parallaxinc /lindsay /bh /amazon /hotbot /discoverypark /keelynet /homepower /epri /rmi /mgfx /newtek /maxim-ic /tinaja /digital.altavista ] {setweb} forall /papers {(http://cfarx1.harvard.edu/rx_lab) eurl} def /mmt {(http://maisel.as.arizona.edu:8080) eurl} def /nrao {(http://info.aoc.nrao.edu) eurl} def /eskimo {(http://www.eskimo.com/~billb) eurl} def /lindsay {(http://www.keynet.net/~lindsay) eurl } def /adams {(http://www.adams1.com/pub/russadam) eurl} def /aha {(http://www.ahasoft.com/complink.htm) eurl} def /wavelet {(http://www.waveloe.org/wavelet/links.html) eurl} def /drms {(http://www.drms.dla.mil) eurl} def /billb {(http://www.eskimo.com/~billb) eurl} def /info01g {(http://www.tinaja.com/info01.html) eurlg} 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 /beige 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 /eurlg {mark % special green for ad % start deferred proc exch % position url string /green 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 %%%%%%% END MUSE PATCHES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% muse3 starttemplate /sstretch -0 def % try even looser /kern 0.5 def /dropindent 40 def % adjust for width of drop cap /sstretch 0 def % looser still /font0 /Times-Bold [52 0 0 54.1 0 -32] gonzofont % normal /font0 /Times-Bold [60 0 0 54.1 0 -32] gonzofont % wider e /font: /Times-Roman [6.5 0 0 6.5 0.5 3.5 ] gonzofont % squared /font9 /Times-Roman [6.8 0 0 7.0 0.5 -3] gonzofont % squared subscript /font= /Times-BoldItalic [9 0 0 9 0 0 ] gonzofont % subtitles %/font9 /Symbol 9 gonzofont % delta /kern 0.5 def % Command Summary: % |0 - small caps font |1 - normal text font |2 - italic text font % |3 - bold text font |4 - caps text font |6 - header font % |F - fill justify |L - left justify |z - zero indent % |p - normal indent |y - negative linefeed |8 - header font % |g - start gonzo |x - stop gonzo |a - start drop cap % |b - main body text |c - start sub header |d - end sub header % |o - complement char /sstretch 0 def % /font9 /Symbol [9 0 0 0 0 0] gonzofont % delta /kern 0.5 def /font; /Times-Roman [7 0 0 7.01 0 3] gonzofont % square root symbol and 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 /sqrtsymbol {gsave currentpoint translate line1 3 3 moveto 2 -5 rlineto 4 12 rlineto 32 0 rlineto stroke grestore} 0 topstrlist % TEXT STARTS HERE /tabs [60] def /hhhxx {/ypos ypos 5 add store} def % wierd patch % tracking insets /integralinset {save /mat2snap exch store /cmb -9999 store % lock out column advance /ylimit -9999 store gsave xpos 10 add ypos translate /font6 /Times-Roman [8.5 0 0 8.5 0 4] gonzofont /font7 /Times-Italic [8 0 0 8 0 4] gonzofont /font8 /Times-Roman [6 0 0 6 0 6] gonzofont /font9 /Symbol [22 0 3 22 0 -7] gonzofont 38 0 (|9\362 |k|k|k|k|k|k|2e|j|j|6a|7x|j|82|2dx) cl grestore mat2snap restore % /ypos ypos yinc 7 mul sub def % make room } def %%%%%%% startgonzo |a E |b very now and then, a really great concept comes along \ that seems to stay a "secret" and little known except \ for a few quiet insiders. Such as\274 |c Designing Ultra Broadband Transmission Line Transformers |d Why is it that a long piece of coax may have many tens \ of thousands of picofarads of capacitance, yet easily \ transports |4UHF|1 and even GigaHertz frequencies with \ low losses? The answer is that the capacitance in any \ cable gets |2distributed|1 along its length. At any given \ instant of time, an input signal should only see a tiny \ portion of the total capacitance. On most lines, this \ tiny portion is balanced out against a tiny cancelling \ inductive reactance. Which makes a properly terminated line \ look and act like a pure (but lossless) resistor to a \ driving source. A seemingly simple mod to a very ordinary looking \ transformer changes it into an extremely broadband \ one. Transformers based on |2transmission line|1 \ principles that are flat from, say |420|1 MHz to |4800|1 \ MHz are easily built. These have become quite \ important for cable tv, broadband instrument amplifiers, \ ham radio, radar, comm systems, and general rf work. Figures one and two show you two transmission \ line transformers. First, some quick \ definitions: When wire is |2bifiliar|1 wound, two pieces \ of wire are tightly twisted together. A |2trifilar|1, |2quadfiliar|1, or |2pentafilar|1 \ winding can similarly be formed with three, four, or five \ conductors. Both of our examples are wound from three \ feet of |4#30|1 bifilar tightly twisted together to, \ say, fifteen turns per inch. These are wound on a \ high frequency ferrite toroidal core. Core size \ depends on the power level, but usually can be amazingly \ small. Unlike most transformers, the tight coupling between \ the wires acts as a transmission line. Instead of the stray \ capacitance resonating against your inductance, \ a distributed \ network is formed instead. One that gives you an exceptionally wide \ bandwidth. Our figure one example uses these windings as a \ |41:1|1 phase inverter and isolator. Figure two instead piles the \ two windings on top of each other, giving you a |42:1|1 \ step-up or step-down ratio. Autotransformer style. Which will \ equal a |44:1|1 impedance ratio. A trifilar \ version provides a |43:1|1 stepup and |49:1|1 \ impedance match. Or, depending on the tap, a |42:3|1 stepup for \ a |44:9|1 impedance match. These transformers are extremely useful \ for antenna matching and for the interstage coupling of \ broadband rf amplifiers and wireless apps. Extensions to these examples can give you \ multiple outputs for power splitting/combining uses. Or resolve \ other circuit matching needs. Key properties of transmission line transformers are that \ they'll usually give you turns ratios of |/tinton1 |2small whole \ |/tinton1 numbers|1|/tintoff , and that the \ impedances are those ratios |/tinton1 |2squared|1. The toroidal core simply serves to raise \ the inductance of any tiny piece of transmission line \ and sets your |2low|1 frequency cutoff. Once again, \ while these look and build more or less like an ordinary \ transformer, the math is wildly different \ and quite subtle. Our resource sidebar shows some broadband transformer resources. Your horse's mouth "must have" \ paper is Ruthroff's |2Some Broadband Transformers|1 from \ the August |41959|1 |2Proc |5IRE|1 on pages \ |41337-1342|1. Another paper is \ Guanella's |2Novel Matching Systems \ for Higher Freq- uencies|1 in the September \ |41944|1 |2Brown Boveri Review|1, pages |4327-329|1. The \ |2Multipedance Broadband Transfor- mer|1 story on page \ |439|1 of the August |41982|1 |5QST|1 also is useful. One long time proponent is Jerry Sevick who \ wrote |2Transmission Line Transformers|1, his \ |2Transmission Line Transformer Design Handbook|1, his \ |2Building and Using Baluns & Ununs|1, plus \ related technical articles. Links to these can now be seen at |/surl |2www.bytemark.com/amidon|1|/amidon The \ |/surl |5IEEE|1|/ieee has his useful but short |2Design and \ Realization of Broadband Transmis- sion Line Matching \ Transformers|1 up at |/surl |2www.ieee.org|1|/ieee Additional \ useful newer references are at |/surl |2www.prime|/trlx |/surl net.com/~ctrask/trlxfmr.html|1|/trlx The leading source of ready-to-go transmission line \ transformers, power dividers, and such is |/surl |2MiniCircuits|1|/minicircuits \ at |/surl |2www.minicircuits.com|1|/minicircuits The bifilar and multi twist wire \ stocks are offered by |/surl |2MWS Wire Industries|1|/mws whose website is \ |/surl |2www.mwswire.com|1|/mws Among many others, suitable core \ material sources do include |/surl |2Siemens|1|/infineon , |/surl |2Fair-Rite|1|/fairrite , \ |/surl |5MMG|1|/mmg , |/surl |5TDK|1|/tdk , |/surl |2Kawatetsu|1|/kawat , and |/surl |2Arnold|1|/arnold The \ latter is found up at |/surl |2www.arnoldengr.com/mtc|1|/arnold and has an \ extensive book list on magnetics. |c Where to Get Parts |d Until very recently, finding small quantity parts for \ electronic or other technical projects could end up a \ real hassle. But these days, it has gotten utterly trivial. \ I'm overdue for a full blown resource listing, but let's \ do a rather quick summary here: To get specific part info, you go to \ |/surl |2www.questlink.com|1|/questlink or else on over to |/surl |2www.chipcenter.com|1|/chips The \ fastest and best link farm directly to your data sheet \ sites themselves appears to be the |/surl |2Data Bookshelf|1|/data at \ |/surl |2www.chrc.uiu|/data |/surl c.edu/~dburke/databookshelf.html|1|/data . Also \ reachible through the |/surl |4DATA|1|/data button on my \ |/surl |2www.tinaja.com|1|/tinaja An acrobat |4PDF|1 reader or viewer \ is needed for nearly all web data sheets. This is usually \ gotten free on a click through from any data sheet site \ or directly from |/surl |2www.adobe.com|1|/adobe Additional useful \ engineering links are at \ |/surl |2www.tinaja.com/eeweb01.html|1|/eeweb01 Most semi houses now offer free samples on any email \ requests. The majority of them also have instant \ |424|1hour online |4VISA|1 ordering. Announcements of new parts and ap notes still appear in \ the free trade journals. I prefer |/surl |5E.E. |2Times|1|/eetimes the \ best. Other choices are |/surl |5EDN|1|/edn , or |/surl |2Electronic|/eldesign \ |/surl Design|1|/eldesign , |/surl |2Electronic Products|1|/elproducts , and that |/surl |2Electronic \ Component News|1|/ecn . More specialized examples include |/surl |5R.F. \ Design|1|/rfdesign , |/surl |2Measurement & Control|1|/m&c , |/surl |2Sensors|1|/sensors , \ |/surl |2Batery Power Products and|/batmag |/surl Technology|1|/batmag or |/surl |2PCIM|1|/pcim . The \ latter on power control and intelligent motion. Your \ only useful remaining non-ham hobby electronics mag is now \ |/surl |2Circuit|/ccell |/surl Cellar|1|/ccell . Subscription forms for these and \ zillions of others are found by clicking on the \ |/surl |4OXBRDGE|1|/tinaja button on my |/surl |2Guru's Lair|1|/tinaja website. The newer electronic distributors which include |/surl |2Mouser|1|/mouser , \ |/surl |2Jameco|1|/jameco , and |/surl |2Digi-Key|1|/digikey all welcome small quantity \ orders and stock most of the popular parts. The old line \ distributor houses such as |/surl |2Allied|1|/allied or |/surl |2Newark|1|/newark \ tend to be much harder to work with and often have higher \ mininums and atrocious delivery. But supposedly offer a \ wide range of "full line" items. There's lots of buys in electronics surplus, with \ |/surl |2Marlin Jones|1|/marlin being one of dozens of examples. \ Surplus tends to be cheaper. But might not work, may not \ be what you think it is, and may not be there when you \ need it. Other surplus sources I particularly like \ are |/surl |2American Science & Surplus|1|/scisurp for mechanical \ goodies, |/surl |2Fair Radio|/fair |/surl Sales|1|/fair for classic military \ electronics, and |/surl |5C&H |2Sales|1|/candh for the "big mutha" iron \ such as motors, transformers, hydraulics, pneumatics, \ and such. Hamfests and the military are other surplus sources. \ Which tend to end up super cheap but rather high risk. (I \ just bought a "resistance bridge" and received an \ "ethernet bridge" instead. Uh, not even close.) For a \ quick view of what the feds are up to, \ click on the |/surl |4DRMS1|1|/tinaja button on my |/surl home page|/tinaja . Secondary markets in semis and parts are made by such \ resellers as |/surl |2Electronic Expediters|1|/expedite . \ Who do stock many millions of parts. But sell only what \ they have. Usually fax only and zero hand holding. The consumer electronics parts can usually get cross \ referenced through the |/surl |5ECG|1|/ecg or |/surl |5NTE|1|/nte catalogs. \ These folks have long had all sorts of interesting parts \ sold in small quantities. |2Radio Shack|1 also has \ cross ref manuals and specialized parts help. The \ secret is that you have to ask, and some stores are very much \ better than others at support. Another useful resource \ is |/surl |2Parts Express|1|/partsx for |4VCR|1's and such. Obsolete or out-of-date semis can be \ found at |/surl |2Rochester Electronics|1|/rochester or at |/surl |2Luke \ Systems|1|/luke . On the mechanical side, the best trade journals are \ |/surl |2Machine Design|1|/machdesign or |/surl |2Design News|1|/desnews . Your best parts \ source is still |/surl |2Small Parts|1|/smallparts , while |/surl |2Grainger|1|/grainger and \ |/surl |2McMaster-Carr|1|/mcmaster are two of the most obvious big time \ distributors. Semiconductor data books are on the way out and not \ worth bothering over these days. |/tinton1 |2Always make use of |/tinton1 the online \ |5PDF|2 data instead|1. Some "getting stuff" resources are up at \ |/surl |2www.tinaja.com/resbn01.html|1|/resbn01 and other pages on my \ |/surl |2Guru's Lair|1|/tinaja website. I also have surplus bargains \ at |/surl |2www.tinaja.com/barg01.html|1|/barg01 and offer a \ custom parts finding service at \ |/surl |2www.tinaja.com/info01.html|1|/info01 |c Touch Screen Interface |d I've never been really big on touch screens, because \ they seem to me to go up against fundamental \ cultural restraints. Ferinstance, most kids are taught from \ day one not to smearp peanut butter and jelly on their tv \ screen or put their finger in their eye or get the camera \ dirty or jump into somebody's face or walk up to the movie \ screen. I feel that were it not for these subtle but \ profound taboos, touch screens would have seen great \ heaping bunches of major uses long ago. The big decline \ in graphic tablet interest is one of many examples. Nonetheless, there does seem to be some modest interest \ in touch screens in such niche applications as personal \ assistants, kiosks, or in factory floor interface terminals. |/surl |2Burr-Brown|1|/burr sells a new |4ADS7846|1 chip that handles most \ of the touch screen interface tasks for a \ micro or |4DSP|1 system. Per \ figure three. Their |4$3.50|1 chip is a \ programmable multi channel |4A/D|1 converter. This one works \ with a resistive sheet style touch screen. Your finger \ or a stylus grounds the screen at a selected point, \ giving four different voltages on the +X, -X, +Y, and -Y \ axes. These voltages can be compared to determine \ position to your choice of |48-|1bit (pda) or |412-bit|1 \ (kiosk) accuracy. In its spare time, the new chip also measures \ temperature and crudely senses the "Z-axis" \ or applied stylus pressure. This gets done by watching \ for differences between the absolute and differential \ resistance. In use, you apply some clock and data pulses \ to set your measurement mode. Additional clock pulses \ then output your resistance values. These get \ converted into actual positions by software. \ See |/surl |2www.burr-brown.com|1|/burr One source for the touch screens themselves is \ |/surl |2Interlink Electronics|1|/interlink . Their |2ePad|1 and \ |2VersaPad|1 products seem interesting. One \ competitor is |/surl |2Carrol Touch Technology|1|/carroll . A useful touch screen |4FAQ|1 is up at \ |/surl |2www.repairfaq.org/filpg/LINK|1|/touch |c Web Searching Acrobat PDF |d Virtually all of the useful technical info on the web is \ provided in |/surl |2Adobe|/adobe |/surl Acrobat|1|/adobe |4PDF|1 format. Because of \ its unique ability to attractively present \ |2exactly|1 what the author intended as a compact, \ single loading and platform independent file with a nearly infinite \ mix of graphics, images, and fonts. But the \ majority of popular search engines remain |4HTML|1 \ only. And thus are largely incapable of finding a pig in a \ dishpan. |/surl |2Adobe Systems|1|/adobe is now providing a great new \ |4PDF-|1only web searching engine. To date, it has \ intelligently indexed many millions of |4PDF|1 \ docs. I've gotten super fast results to my searches for \ everything from |4NTSC|1 comb filters to soil \ stabilizers up to carbon nanotubes. Their service was also \ able to find bunches of my own |/surl |2Guru's Lair|1|/tinaja |4PDF|1 \ files. The only possible downside of this superb service is \ that |/surl |2Adobe|1|/adobe intends it primarily to promote Acrobat \ |4PDF|1. They are not particularly obligating themselves \ to index everything in |4PDF|1 format on the web forever. So, \ coverage in some areas might end up a tad slow or spotty. \ And, of course, they are unabashedly looking |2only|1 \ for |4PDF|1 files. But every time I have used it, their \ results have been right on. Spectacularly so. |4HINT:|1 Try searching on telephone numbers! I've just added a new |4PDF|1 button to the "mauve" \ search engine buttons on my home page at \ |/surl |2www.tinaja.com|1|/tinaja . On your own website, it is super important to provide a \ local search engine that can deal with |4HTML|1 and \ Acrobat |4PDF|1 on an equal basis. The easiest way to do \ this is to have your |4ISP|1 add the free Adobe |2PDF \ IFilter |54.0|1 plug-in to his |2Microsoft Internet \ Information Server|1 |54.0|1. Details are at \ |/surl |2www.adobe.com/support/downloads/|/bytes |/surl 5c16.htm|1|/bytes Check this one out. It is also important when you offer |4PDF|1 files to \ make sure your |4ISP|1 has a feature called \ |2byteserving|1. This lets you view one |4PDF|1 page \ while the rest of them are invisibly downloading in the \ background. More details through \ |/surl |2www.tinaja.com/acrob01.html|1|/acrob01 Verifying links on your online |4PDF|1 files can be \ tricky. See the secrets at \ |/surl |2http://www.tinaja.com/acrob01.html|1|/acrob01 that let you do \ just this. What these do is scan a |4PDF|1 file and \ extract a |4HTML|1 format list of all linked urls. You \ then send this list to any |4HTML|1 link checker such as \ |2Dr. |5HTML|1 that you should be able to find at |/surl |2www2.imagiware.com/RxHTML|1|/drhtml Something similar to Acrobat is now \ being included as a mainstream feature of the web. It \ is called |5SVG|1, short for |2Scalable Vector \ Graphics|1. You can pick up the full details at |/surl |2www.w3.org|1|/w3org \ Ready-to-use free beta plugins for major browsers are \ found at |/surl |2www.adobe.com/svg|1|/adobepi |c PostScript Proc Diversion |d One of many powerful features of \ |/surl |2PostScript-as-language|1|/post01 is that \ you can |2redefine|1 \ any proc at any time. Even changing its type. \ Although such on-the-fly mods can easily get you \ into serious trouble, they also solve sticky \ problems for you. This month's handy PostScript-as- language figure four example shows you \ how to redefine your |2showpage|1 operator. Tricking it \ into doing other things immediately before or \ immediately after a page gets printed and ejected. For \ instance, you might add a logo, a copyright notice, or \ a new attractive border |2before|1 your actual showpage. By working \ with a page counter, you can selectively insert charts \ or other stuff only on selected pages. Or, by adding routines |2after|1 your showpage, you can put \ a "file copy" or "confidential" or other watermark \ |2underneath|1 your actual content. Or simply add a \ tint that avoids white backgrounds on web content. Either \ route can also be a convenient way of "standardizing" \ existing files or third party input sources. Note that stuff |/tinton1 |2before|1|/tintoff your actual showpage goes |/tinton1 |2on top \ of|1|/tintoff what you are printing. Stuff |/tinton1 |2after|1|/tintoff your actual \ showpage goes |/tinton1 |2underneath|1|/tintoff the |/tinton1 |2next|1|/tintoff sequential page. Use of the underneath feature can \ lead to a big problem: Any tint areas, fills and other \ real job procs might completely mask or overwrite your underlay. Watch this detail. To apply the "built in" version shown, you will bring the \ showpage diverter up in a word \ processor or editor and suitably modify it. It then \ must get resaved |/tinton1 as a standard |4ASCII|1 |/tinton1 textfile|/tintoff (but usually \ with a .ps trailer) in an accessible place on your \ pc. You then send your modified job to the |/surl Acrobat \ Distiller|/adobe or GhostScript, using either one as a host resident PostScript \ interperter. The mods should appear in your output |4.PDF|1 file. Fancier "file link" versions instead insert a |2run|1 command and filename \ near the beginning of your file to be \ modified. This simplifies automation and batch processing. You'll put your file link command after \ any initial header and comments but before actual \ procs. The file linking commands may be inserted in most existing PostScript \ job files. If you already have a |4PDF|1 file, just print to \ disk to generate a suitable PostScript program, and then \ modify the program.|/red Four big gotchas: First, |/tinton1 be sure to |/tinton1 use double reverse \ slashes every time |/tinton1 you want a single reverse slash in a \ |/tinton1 PostScript filename.|/tintoff Secondly, your new diversion code must \ |2not|1 have a showpage or a control-D at its end. You \ want to insert this diversion file as a continuous part of your code \ to be modified. Any artwork files, watermarks, \ charts, or whatever also must not have their own \ showpage or control-D endings, because these also are to \ be main job inserted.|/beige With either the "built in" or "file link" methods, any \ input code that's already diverting showpage \ or doing other exotic stuff might need some special \ treatment. While diversion routines could get placed \ anywhere accessible, putting them in |2globaldict|1 is \ often a very good choice. Note that your modified "file link" ps code can't be sent to a \ PostScript printer unless the printer itself has an \ |2internal|1 disk drive available. Your final |4PDF|1 distilled code, of course, can be sent to \ any printer, PostScript or otherwise. Much more on all these techniques in \ |/surl |2www.tinaja.com/post01.html|1|/post01 and in my \ |/surl |2www.tinaja.com/acrob01.html|1|/acrob01 Consulting services on \ these and lots of related subjects are available at \ |/surl |2www.tinaja.com/info01.html|1|/info01 Note that an \ "extra" non-printing first page gets called for by the code so all page underlays will get \ treated equally. But an easily removed extra final page might remain. |c New Tech Lit |d From |/surl |2Microchip Technology|1|/microchip their |52000|2 \ Technical Library |5CD-ROM|1. More on |4PIC|1 \ microcontrollers up at \ |/surl |2http://www.tinaja.com/picup01.html|1|/picup01 Other |4CD ROM|1's of interest this month do include a |2RF \ & Microwave Integrated Circuits|1 from the |/surl |2Hittite|/hittite \ |/surl Microwave|1|/hittite folks and a pair of |2Data Disks|1 from |/surl |5STM|2 \ Microelectronics|1|/stm Also, |/surl |2Seiko Instruments|1|/seiko has a \ useful |4CD|1 data and tech info disk. A freebie |53-D|1 mechanical design tutorial that is disguised as a \ |2Monkey Wrench Conspiracy|1 intergalactic game is \ offered by |/surl |2Think3|1|/think3 . The sometimes hard-to-find |/surl |2Nature|1|/nature mag is widely regarded \ as the finest scientific journal in the world, with \ |/surl |2Science|1|/science the close second. New fuel cells which directly \ use gasoline or other hydrcarbons without needing \ hydrogen reformation are described in Nature's March \ |416, 2000|1 issue in a letter by S. Park and \ others on pages |4265-267|1. Website is \ |/surl |2www.nature.com|1|/nature There's also a new but pricey |/surl |2Fuel|/fuelcell |/surl Cells Bulletin|1|/fuelcell \ from |/surl |2Elsevier|1|/fuelcell . More fuel cell info might be picked up at \ |/surl |2www.webconx.com/fuelcell.htm|1|/webconx or at \ |/surl |2www.tinaja.com/h2gas01.html|1|/h2gas01 Non-destructive testing folks tend to be a quiet bunch, \ but you can find at least a few of them lurking at the \ |/surl |2sci.techniques.testing.nondestructive|1|/ng1 newsgroup or \ the new |/surl |2www.ndt.org|1|/ndt website. I have got some nice eddy \ curent probes and an older |2Nortec|1 ultrasonic video \ thickness gauge at \ |/surl |2www.tinaja.com/barg01.html|1|/barg01 Featured print magazines for this month will include Steve \ Hanson's labor-of-love |/surl |2Bell Jar|1|/belljar on amateur high \ vacuum techniques as well as the |/surl |2Adhesives & Sealants \ Industry|1|/adhesive . A new Roger Allen book titled |2A Quick Guide to Book-on-demand Printing|1 is \ all about do-it-yourself publishing opportunities. More on \ |4BOD|1 at |/surl |2www.tinaja.com/bod01.html|1|/bod01 . For the overwhelming majority of individuals and small \ scale startups, any involvement in patents is \ certain to end up as a monumental loss of time, energy, \ money, and sanity. You find out why along with tested and \ my proven workarounds in the |/surl |2Case|/patnt01 |/surl Against Patents|1|/patnt01 \ package. As per my \ |/surl |2www.tinaja.com/patnt01.html|1|/patnt01 The latest website additions at my |/surl |2Guru's Lair|1|/tinaja at \ |/surl |2www.tinaja.com|1|/tinaja do include a new |2eBay Insider Selling \ Secrets|1 tutorial, more new links, our ongoing \ online forum, and bunches of new surplus bargains. Click on \ |/surl |2www.tinaja.com/barg01.html|1|/barg01 Let's hear from you.|/tinton1 |-F|1 |x 57 348 282 sub menu8 showpage ( Here's another little known and ultra power feature of \ PostScript that is scary even: A dictionary does not \ always have to link a literal name to a proc. \ Instead, |2any|1 two items of |2any|1 type can be linked \ together using a dictionary definition. |/tinton1 |2Regardless of \ |/tinton1 type!|1|/tintoff . The second substitutes for the first. What can you come up with here that is beyond \ bizarre? As usual, most mentioned items can be found in our \ clickthroughs, |2Names & Numbers|1 or |2Wideband Transformer \ Resources|1 sidebars. Check here before \ you email |/surl |2don@tinaja.com|1|/maildon or you use our no-charge \ |4US|1 technical helpline shown in the nearby box. Let's hear from you. ) pop %%%%%%%%%%%%%