%!PS-Adobe-2.0 %%Title: Just A Little PostScript %%Creator: Randolph J. Herber %%CreationDate: Mon Aug 19 18:39:39 CDT 1996 %%DocumentData: Clean7Bit %%LanguageLevel: 1 %%Pages: (atend) %%BoundingBox: 0 0 792 612 %%Orientation: Portrait %%PageOrder: Ascend %%EndComments %%BeginProlog /DoColor true def /Handout true def %! % behandler.ps, v1.3, Mar 23 1990, a modified version of Adobe's ehandler.ps % Original program copyright (c) 1986 Adobe Systems Incorporated % Modified by Fredric Ihren, for support contact fred@nada.kth.se or write to % Fredric Ihren; Moerbydalen 17; S-182 32 D-RYD; Sweden % Adobe will not keep maintenance of this program. % Distributed with permission from Adobe Systems Incorporated % 0000 % serverloop password % /$brkpage where not { % dup serverdict begin statusdict begin checkpassword % { (NEW Error Handler downloaded.\n) print flush exitserver } % { pop (Bad Password on loading error handler.\n) print flush stop } % ifelse % } { % pop pop (NEW Error Handler in place - not loaded again\n) print flush stop % } ifelse /$brkpage 64 dict def $brkpage begin /== { /cp 0 def typeprint nl } def /printpage { /prnt { dup type /stringtype ne { =string cvs } if dup length 6 mul /tx exch def /ty 10 def currentpoint /toy exch def /tox exch def 1 setgray newpath tox toy 2 sub moveto 0 ty rlineto tx 0 rlineto 0 ty neg rlineto closepath fill tox toy moveto 0 setgray show } bind def /nl { currentpoint exch pop lmargin exch moveto 0 -10 rmoveto } def /doshowpage systemdict /showpage get def } def /printonly { /nl { (\n) print } def /prnt { dup type /stringtype ne { =string cvs } if print } def /doshowpage null cvx def } def printpage /typeprint { dup type dup currentdict exch known { exec } { unknowntype } ifelse } def /lmargin 72 def /rmargin 72 def /tprint { dup length cp add rmargin gt { nl /cp 0 def } if dup length cp add /cp exch def prnt } def /cvsprint { =string cvs tprint( ) tprint } def /unknowntype { exch pop cvlit (??) tprint cvsprint } def /integertype { cvsprint } def /realtype { cvsprint } def /booleantype { cvsprint } def /operatortype { (//) tprint cvsprint } def /marktype { pop (-mark- ) tprint } def /dicttype { pop (-dictionary- ) tprint } def /nulltype { pop (-null- ) tprint } def /filetype { pop (-filestream- ) tprint } def /savetype { pop (-savelevel- ) tprint } def /fonttype { pop (-fontid- ) tprint } def /nametype { dup xcheck not { (/) tprint } if cvsprint } def /stringtype { dup rcheck { (\() tprint tprint (\)) tprint } { pop (-string- ) tprint } ifelse } def /arraytype { dup rcheck { dup xcheck { ({) tprint { typeprint } forall (}) tprint } { ([) tprint { typeprint } forall (]) tprint } ifelse } { pop (-array- ) tprint } ifelse } def /packedarraytype { dup rcheck { dup xcheck { ({) tprint { typeprint } forall (}) tprint } { ([) tprint { typeprint } forall (]) tprint } ifelse } { pop (-packedarray- ) tprint } ifelse } def /stackmax 50 def /execmax 25 def /filemax 10 def /courier /Courier findfont 10 scalefont def /OLDhandleerror errordict /handleerror get def end %$brkpage errordict /handleerror { systemdict begin $error begin $brkpage begin newerror { { /newerror false store vmstatus pop pop 0 ne { grestoreall } if initgraphics courier setfont lmargin 750 moveto statusdict /jobname get dup null ne { (Jobname: ) prnt prnt nl } { pop } ifelse (Error: ) prnt errorname prnt nl (Command: ) prnt /command load == $error /ostack known { $error /ostack get dup length 0 ne { (Stack \() prnt aload length dup prnt (\):) prnt nl /i 0 def { /i i 1 add def i stackmax le { == } { pop } ifelse } repeat } { pop } ifelse } if $error /estack known { $error /estack get dup dup length 1 sub get type /filetype ne { (Execstack \() prnt aload length dup prnt (\):) prnt nl /i 0 def { /i i 1 add def dup type /filetype eq { /i 99 def } if i execmax le { == } { pop } ifelse } repeat } { pop } ifelse } if (%stdin) (r) file dup =string readline { (File:) prnt nl prnt nl filemax 1 sub { dup =string readline { prnt nl } { exit } ifelse } repeat } if pop userdict /debug known { (Debug:) prnt nl userdict /debug get stopped pop nl } if } stopped pop doshowpage /newerror true store /OLDhandleerror load end end end exec } { end end end } ifelse } dup 0 systemdict put dup 4 $brkpage put bind put /PageFrame 600 dict dup begin %%Copyright: Copyright 1991 University Research Associates. %%+ *************************************************************************** %%+ ** Copyright (c) 1991 Randolph J. Herber ** %%+ ** All Rights Reserved. ** %%+ ** Applies only to the included type 3 font ** %%+ ** describing the Fermilab logo. ** %%+ ** The type 3 font was developed using personal ** %%+ ** equipment and own time and materials. ** %%+ ** The following license granted to the ** %%+ ** Government. ** %%+ ** Copyright (c) 1991 Universities Research Association, Inc. ** %%+ ** All Rights Reserved. ** %%+ ** ** %%+ ** This material resulted from work developed under a Government ** %%+ ** Contract and is subject to the following license: ** %%+ ** ** %%+ ** LICENSE ** %%+ ** The Government retains a paid-up, nonexclusive, irrevocable worldwide ** %%+ ** license to reproduce, prepare derivative works, perform publicly and ** %%+ ** display publicly by or for the Government, including the right to ** %%+ ** distribute to other Government contractors. Neither the ** %%+ ** United States nor the United States Department of Energy nor any of ** %%+ ** their employees, nor the author of the type 3 font included makes ** %%+ ** any warranty, express or implied, or assumes any legal liability or ** %%+ ** responsibility for the accuracy, completeness, or usefulness of any ** %%+ ** information, apparatus, product, or process disclosed, or represents ** %%+ ** that its use would not infringe privately owned rights. ** %%+ ** ** %%+ ** ** %%+ ** Fermilab Computing Division/Distributed Computing Department ** %%+ ** ** %%+ *************************************************************************** %% %% Begining of Logo font definition %% 9 dict dup begin /FontType 3 def /FontName (Logo) cvn def /FontMatrix [0.001 0 0 0.001 0 0] def /FontBBox [0 0 0 0] def % Some interperters need this /Encoding 256 array def 0 1 255 { Encoding exch /.notdef put } bind for Encoding dup 70 /Fermi put pop /CharProcs 7 dict dup begin /Fermi { 0 setlinecap 0 setlinejoin 1 setlinewidth 1000 0 0 0 1000 1000 setcachedevice 475 887.5 moveto 0 80.88 rlineto -150 0 rlineto 0 -93.38 rlineto -155.72 0 rlineto 0 -150 rlineto 154.46 0 rlineto 262.5 737.5 62.5 348.46 270 arcn -230.88 0 rlineto 0 -150 rlineto 230.88 0 rlineto 262.5 737.5 212.5 270 360 arc 50 0 rlineto 737.5 737.5 212.5 180 270 arc 230.88 0 rlineto 0 150 rlineto -230.88 0 rlineto 737.5 737.5 62.5 270 191.54 arcn 154.46 0 rlineto 0 150 rlineto -155.72 0 rlineto 0 93.38 rlineto -150 0 rlineto 0 -80.88 rlineto fill 525 112.5 moveto 0 -80.88 rlineto 150 0 rlineto 0 93.38 rlineto 155.72 0 rlineto 0 150 rlineto -154.46 0 rlineto 737.5 262.5 62.5 168.46 90 arcn 230.88 0 rlineto 0 150 rlineto -230.88 0 rlineto 737.5 262.5 212.5 90 180 arc -50 0 rlineto 262.5 262.5 212.5 0 90 arc -230.88 0 rlineto 0 -150 rlineto 230.88 0 rlineto 262.5 262.5 62.5 90 11.54 arcn -154.46 0 rlineto 0 -150 rlineto 155.72 0 rlineto 0 -93.38 rlineto 150 0 rlineto 0 80.88 rlineto fill } bind def end def /BuildChar { 0 begin exch begin Encoding exch get CharProcs exch get end exec end } bind def /BuildChar load 0 6 dict dup begin end put end /Logo exch definefont pop % % Copyright 1990 by Adobe Systems Incorporated. All rights reserved. % % This file may be freely copied and redistributed as long as: % 1) This entire notice continues to be included in the file, % 2) If the file has been modified in any way, a notice of such % modification is conspicuously indicated. % % PostScript, Display PostScript, and Adobe are registered trademarks of % Adobe Systems Incorporated. % % ************************************************************************ % THE INFORMATION BELOW IS FURNISHED AS IS, IS SUBJECT TO CHANGE WITHOUT % NOTICE, AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY ADOBE SYSTEMS % INCORPORATED. ADOBE SYSTEMS INCORPORATED ASSUMES NO RESPONSIBILITY OR % LIABILITY FOR ANY ERRORS OR INACCURACIES, MAKES NO WARRANTY OF ANY % KIND (EXPRESS, IMPLIED OR STATUTORY) WITH RESPECT TO THIS INFORMATION, % AND EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES OF MERCHANTABILITY, % FITNESS FOR PARTICULAR PURPOSES AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. % ************************************************************************ % % This file defines a PostScript procedure called "R" which will % reencode a font. It expects to find three things on the operand stack: % % [ array ] /NewName /OldName % % The array should contain pairs of , like "32 /space", % each of which will define a slot in the encoding and the name to put % in that slot. Only those names which are needed to over-ride the % existing ones need be specified. An encoding value (number) may % be specified followed by more than one name, like "128 /name1 /name2". % In this case, the names will be sequentially stored in the encoding % starting at the initial number given (128). /R { findfont begin currentdict dup length dict begin { %forall 1 index /FID ne {def} {pop pop} ifelse } forall /FontName exch def dup length 0 ne { %if /Encoding Encoding 256 array copy def 0 exch { %forall dup type /nametype eq { %ifelse Encoding 2 index 2 index put pop 1 add }{ %else exch pop } ifelse } forall } if pop currentdict dup end end /FontName get exch definefont pop } bind def % sample use: % [ 8#360 /apple ] /_Symbol /Symbol R % declare page sizes /D {def} bind def /B {bind D} bind D /E {exch D} B /M {moveto} B /S {marking {show} {stringwidth rmoveto currentpoint pop dup MaxX gt{/MaxX E}{pop}ifelse} ifelse} B /H {marking {currentlinewidth exch true charpath 0.5 setlinewidth gsave 1 setgray fill grestore stroke setlinewidth} {stringwidth rmoveto currentpoint pop dup MaxX gt{/MaxX E}{pop}ifelse} ifelse} B /Stroke {currentpoint pop dup MaxX gt{/MaxX E}{pop}ifelse marking {stroke}if} B /W {stringwidth pop} B /Short 612 D /Long 792 D % at this point in the program, the default coordinate system is still in place /Shrink where {pop Short 1.0 Shrink sub 0.5 mul mul Long 1.0 Shrink sub 0.5 mul mul translate Shrink Shrink scale} if /margin 36 D /logosize 48 D % memo head size is 56.25 /radius 18 D /gap 12 D /offset 8 D /High 480 D /Wide 720 D /CenterX 396 D /CenterY 336 D /Top CenterY High 0.5 mul add D /Tsize 36 D /Tlead 9 D /Tspace Tsize Tlead add D /esize 18 D /elead 6 D /espace esize elead add D /tsize 18 D /tlead 6 D /tspace tsize tlead add D /Ssize 6 D /Slead 2 D /Sspace Ssize Slead add D /setline {1 sub /lineno E} B /LT {/lineno exch def lineno Lmax gt {/Lmax lineno def}if} B /eT {/lineno exch def lineno emax gt {/emax lineno def}if} B /lT {/lineno exch def lineno lmax gt {/lmax lineno def}if} B /Line {LT lineno 1 sub Tspace mul Base exch sub /Y E} B /L+ {lineno 1 add LT lineno 1 sub Tspace mul Base exch sub /Y E} B /L+2 {lineno 2 add LT lineno 1 sub Tspace mul Base exch sub /Y E} B /eline {eT lineno 1 sub espace mul ebase exch sub /Y E} B /e+ {lineno 1 add eT lineno 1 sub espace mul ebase exch sub /Y E} B /e+2 {lineno 2 add eT lineno 1 sub espace mul ebase exch sub /Y E} B /line {lT lineno 1 sub tspace mul base exch sub /Y E} B /l+ {lineno 1 add lT lineno 1 sub tspace mul base exch sub /Y E} B /l+2 {lineno 2 add lT lineno 1 sub tspace mul base exch sub /Y E} B /C1 {col1 Y moveto} B /C2 {col2 Y moveto} B /C3 {col3 Y moveto} B /C4 {col4 Y moveto} B /C5 {col5 Y moveto} B /C6 {col6 Y moveto} B /C7 {col7 Y moveto} B /C8 {col8 Y moveto} B /C9 {col9 Y moveto} B /RC [ 8#375 /copyright /registered /trademark ] def RC /_Times-Roman /Times-Roman R /foliofont /_Times-Roman findfont logosize offset 3 mul sub scalefont D /FO {foliofont setfont} B /textsize /_Times-Roman findfont tsize scalefont D /TX {textsize setfont} B /TXS {currentfont exch TX S setfont} B RC /_Times-Italic /Times-Italic R /italics /_Times-Italic findfont tsize scalefont D /TI {italics setfont} B /TIS {currentfont exch TI S setfont} B RC /_Times-BoldItalic /Times-BoldItalic R /bold_italics /_Times-BoldItalic findfont tsize scalefont D /TJ {bold_italics setfont} B /TJS {currentfont exch TJ S setfont} B RC /_Times-Bold /Times-Bold R /boldfont /_Times-Bold findfont tsize scalefont D /TB {boldfont setfont} B /TBS {currentfont exch TB S setfont} B /monospace /Courier-Bold findfont tsize scalefont D /CM {monospace setfont} B /CMS {currentfont exch CM S setfont} B /monolite /Courier findfont tsize scalefont D /CR {monolite setfont} B /CRS {currentfont exch CR S setfont} B /monoitalic /Courier-Oblique findfont tsize scalefont D /CI {monoitalic setfont} B /CIS {currentfont exch CI S setfont} B /monoBI /Courier-BoldOblique findfont tsize scalefont D /CJ {monoBI setfont} B /CJS {currentfont exch CJ S setfont} B /narrowmono /Courier-Bold findfont [.8 tsize mul 0 0 tsize 0 0] makefont D /SC {narrowmono setfont} B /SCS {currentfont exch SC S setfont} B /largesize /_Times-Roman findfont Tsize scalefont D /LG {largesize setfont} B /LGS {currentfont exch LG S setfont} B /smallfont /_Times-Roman findfont Ssize scalefont D /SM {smallfont setfont} B /SMS {currentfont exch SM S setfont} B /symbolfont /Symbol findfont tsize scalefont D /SY {symbolfont setfont} B /microsymbol /Symbol findfont tsize 0.4 mul scalefont D /MY {microsymbol setfont} B /pointerfont /ZapfDingbats findfont tsize scalefont D /PT {pointerfont setfont} B /FNALfont /Logo findfont tsize scalefont D /FN {FNALfont setfont} B /Item {currentfont SY(\267)S setfont} B /Note {currentfont PT(-)S setfont} B /Here {currentfont PT(+)S setfont} B /Gives {currentfont SY(\336)S setfont} B /Moon {currentfont PT(m)S setfont} B /FNAL {currentfont FN(F)S setfont} B /Block1 {currentfont PT(y)S setfont} B /Block2 {currentfont PT(z)S setfont} B /Start {currentpoint gsave currentpoint translate MY (\355) stringwidth pop -.5 mul tsize -.5 mul moveto (\255) S grestore moveto } B /Mark {currentpoint gsave currentpoint translate MY (\355) stringwidth pop -.5 mul tsize -.5 mul moveto (\335) S grestore moveto } B /More {660 108 M currentfont TX ((more)) show setfont} B /center {/Text E Long Text stringwidth pop sub 0.5 mul exch moveto Text marking{show}{pop}ifelse} B /Center {Long exch sub 0.5 mul exch moveto} B /Fickle {Index lineno eq {Here} {Item} ifelse} B /RVS {marking {dup save exch currentpoint newpath moveto 1 0 rmoveto true charpath pathbbox 1 add /Uy E 1 add /Ux E 1 sub /Ly E 1 sub /Lx E newpath Lx Ux add 0.5 mul Ly moveto Lx Ly Lx Uy 1 arcto pop pop pop pop Lx Uy Ux Uy 1 arcto pop pop pop pop Ux Uy Ux Ly 1 arcto pop pop pop pop Ux Ly Lx Ly 1 arcto pop pop pop pop closepath 0 setgray fill restore currentgray exch 1 setgray 1 0 rmoveto show 1 0 rmoveto setgray} {stringwidth rmoveto 2 0 rmoveto currentpoint pop dup MaxX gt{/MaxX E}{pop}ifelse} ifelse} B /Frame { /ll E /el E /Ll E /Lmax 0 D /emax 0 D /lmax 0 D /Gaps 1 Ll 1 lt{0 /THght 0 D}{1 /THght Ll Tspace mul Tlead sub D}ifelse add el 1 lt{0 /eHght 0 D}{1 /eHght el espace mul elead sub D}ifelse add ll 1 lt{0 /tHght 0 D}{1 /tHght ll tspace mul tlead sub D}ifelse add D /GapSize High THght sub eHght sub tHght sub Gaps div D /Base Top Ll 1 ge{GapSize sub Tsize sub}if D /ebase Top Ll 1 ge{GapSize sub THght sub}if el 1 ge{GapSize sub esize sub}if D /base Top Ll 1 ge{GapSize sub THght sub}if el 1 ge{GapSize sub eHght sub}if ll 1 ge{GapSize sub tsize sub}if D /Rnd {rand 2147483647.0 div mul add} bind def % size of rounded box allowing for logo at top /boxx Long margin dup add sub D /boxy Short margin dup add sub logosize sub gap sub D % left edge of logo area /logox Long margin sub logosize 1.2 mul sub /Helvetica-Bold findfont logosize 0.5 mul scalefont setfont (Fermilab) stringwidth pop sub D % left edge of titling area /titlesize logosize 6 div D /titlefont /Helvetica-Bold findfont titlesize 1.6 mul scalefont D /giverfont /Times-Roman findfont titlesize 0.8 mul scalefont D /titlex logox gap sub titlefont setfont talktitle stringwidth pop giverfont setfont talkgiver stringwidth pop 2 copy lt {exch} if pop talkdept stringwidth pop 2 copy lt {exch} if pop talkaddr stringwidth pop 2 copy lt {exch} if pop talkcopyr stringwidth pop 2 copy lt {exch} if pop sub D % determine folio box size /folioboxx foliofont setfont folio stringwidth pop offset dup add add D /folioboxy logosize offset sub D % determine folio box x origin /folioorgx titlex margin add gap sub offset sub folioboxx sub 2 div D % rotate to landscape orientation 90 rotate % move origin to lower left hand corner of sheet 0 Short neg translate % draw logo in lower right hand corner save /DoColor where {pop DoColor {.4 .6 Rnd .2 .8 Rnd .2 .8 Rnd setrgbcolor}if}if logox margin translate /Logo findfont logosize scalefont setfont 0 0 moveto (F) show /DoColor where {pop DoColor {0 setgray}if}if /Helvetica-Bold findfont logosize 0.5 mul scalefont setfont logosize 1.2 mul logosize 0.375 mul moveto (Fermilab) show restore % add talk data save titlex margin translate 0 titlesize 4 mul moveto titlefont setfont talktitle show 0 titlesize 3 mul moveto giverfont setfont talkgiver show 0 titlesize 2 mul moveto talkdept show 0 titlesize moveto talkaddr show 0 0 moveto talkcopyr show restore % add folio save 0 setlinecap % square butt ends 1 setlinejoin % rounded corners 0.5 setlinewidth % width of line to draw /box {1 index 0 rlineto 0 exch rlineto neg 0 rlineto closepath} B folioorgx margin translate gsave offset 0 translate 0 0 moveto 0 setgray folioboxx folioboxy box fill grestore gsave 0 offset translate 0 0 moveto 0.95 setgray folioboxx folioboxy box fill 0 0 moveto 0 setgray folioboxx folioboxy box stroke grestore gsave offset dup dup add translate 0 0 moveto foliofont setfont folio true charpath gsave 1 setgray fill grestore stroke grestore restore % % draw rounded box % save /DoColor where {pop DoColor {0 0 1 setrgbcolor}if}if % start a new path % line characters 0 setlinecap % square butt ends 1 setlinejoin % rounded corners 3 setlinewidth % width of line to draw newpath % make lower left corner of the rounded box the origin margin margin logosize add gap add translate % center of bottom edge boxx 0.5 mul 0 moveto % draw lower left corner to center of left edge 0 0 0 boxy mul 0.5 radius arcto pop pop pop pop % draw upper left corner to center of top edge 0 boxy boxx 0.5 mul boxy radius arcto pop pop pop pop % draw upper right corner to center of right edge boxx boxy boxx boxy 0.5 mul radius arcto pop pop pop pop % draw lower left corner to near center of bottom edge boxx 0 boxx mul 0.5 6 add 0 radius arcto pop pop pop pop % close the path closepath % draw the box stroke restore save filenames {756 SM filename stringwidth pop sub 588 moveto filename show}if restore} B /Check { filenames { Lmax dup add emax add lmax add 18 lt {Lmax Ll ne emax el ne or lmax ll ne or} {Lmax Ll ne emax el ne or lmax 1 add ll ne or} ifelse { 36 588 moveto SM Lmax =string cvs show (/)show Ll =string cvs show ( )show emax =string cvs show (/)show el =string cvs show ( )show lmax =string cvs show (/)show ll =string cvs show } if } if } B % % draw rounded box % /drbradius tsize 3 div D /drb { /drbtext E /drbxy E /drbxx E marking { save currentpoint translate 0 setlinecap % square butt ends 1 setlinejoin % rounded corners 0.5 setlinewidth % width of line to draw newpath % the origin is the lower left corner of the rounded box % start drawing the box at the center of the bottom edge drbxx 0.5 mul 0 moveto % draw lower left corner to center of left edge 0 0 0 drbxy mul 0.5 drbradius arcto pop pop pop pop % draw upper left corner to center of top edge 0 drbxy drbxx 0.5 mul drbxy drbradius arcto pop pop pop pop % draw upper right corner to center of right edge drbxx drbxy drbxx drbxy 0.5 mul drbradius arcto pop pop pop pop % draw lower left corner to near center of bottom edge drbxx 0 drbxx mul 0.5 6 add 0 drbradius arcto pop pop pop pop % close the path closepath % draw the box stroke % place the text drbxx drbtext stringwidth pop sub 0.5 mul drbxy tspace sub 0.5 mul tlead add moveto drbtext show restore }{ /drbright currentpoint pop drbxx add 0.25 add D drbright MaxX gt {/MaxX drbright D} if } ifelse } B /PlaceText { /Markings E save /marking false D /MaxX 0 D Markings CenterX MaxX 0.5 mul sub 0 translate /marking true D Markings lmax exch restore /lmax exch def} B /MeasureText {/Markings E /marking false D /MaxX 0 D /Base Top D /base Top D Markings /OffsetX CenterX MaxX 0.5 mul sub D} B /MarkText {save OffsetX 0 translate /marking true D Markings restore} B /marking true D /filenames false D /OffsetX 90 D /col1 0 D /col2 30 D /col3 60 D /col4 90 D /col5 120 D /col6 150 D /col7 180 D /col8 210 D /col9 240 D %% %% Used to divide the page into two sections divided horizonally %% /Scale 0.625 D /SubPageX Short Scale mul D /SubPageY Long Scale mul D /AdjustX -6 D /AdjustUX Long -0.5 mul AdjustX sub SubPageX sub D /AdjustLX Long -0.5 mul AdjustX add D /AdjustY Short SubPageY sub 0.5 mul D /Upper{Handout {-90 rotate AdjustUX AdjustY translate Scale Scale scale }if}B /Lower{Handout {-90 rotate AdjustLX AdjustY translate Scale Scale scale }if}B %% %% Used to print handout format text %% /LineBuffer 128 string D /in{72 mul}B /mm{2.8346 mul}B /pt{}B /by{}B /PageSize{/long E /short E}B /land{90 rotate 0 short neg translate /High short D /Wide long D}B /port{/High long D /Wide short D}B /Offset{/Yoff E /Xoff E Xoff Yoff translate /High High Yoff sub Yoff sub D /Wide Wide Xoff sub Xoff sub D}B /LineSize{/Lhigh E /Lwide E /Lvert High Lhigh div cvi D /Lhori Wide Lwide div cvi D}B /SetFont{findfont exch /FS E [ .8 FS mul 0 0 FS 0 0 ] makefont setfont}B /R3{3 1 roll}B /DC{2 index Lhori 1 sub ge {NewPage pop pop 0 Lvert false} {R3 pop Lvert R3 1 add R3}ifelse}B /DR{1 index 0 le{DC}if exch 1 sub exch}B /T{exch pop true exch 3 index Lwide mul 3 index Lhigh mul M show}B /ReadLine {currentfile LineBuffer readline exch /Text E not Text EOF eq or}B % % Sheet description % /NoteText{/EOF E Handout {8.5 in by 11 in PageSize land 36 36 Offset 360 pt by 12 pt LineSize 11 /Courier-Bold SetFont save 0 Lvert false {ReadLine {exit}{DR Text length 0 ne {Text T}if}ifelse}loop pop pop pop restore} {{ReadLine {exit}if}loop} ifelse restore}B /Viewgraph {save Upper} B /EndViewgraph {Check restore} B /Notes {save Lower (EndNotes) NoteText} B end def /PageTop {PageFrame begin save 100 dict begin} bind def /PageBottom {end restore end} bind def /DoColor where {pop}{/DoColor false def}ifelse /Handout where {pop}{/Handout false def}ifelse % titling data /talktitle (Just a little PostScript) def /talkgiver (Randolph J. Herber, herber@fnal.fnal.gov, 1 630 840 2966 CDF PK149O) def /talkdept (Computing Division/Operating System Support/CDF Task Force) def /talkaddr (P.O. Box 500, Mail Stop 234 (WH6W), Batavia, IL 60510) def /talkcopyr () def /filenames true def %%EndProlog %%Page: Examples12 1 PageTop Viewgraph /folio (Examples) def /filename (examples.12) def /@ {transform .5 add floor exch .5 add floor exch itransform} bind def /! {dtransform .5 add floor exch .5 add floor exch idtransform} bind def 1 0 19 Frame LG 1 Line Y (Many different ways to draw two parallel lines) center 8 line save /showpage {} def 146 Y @ translate .2 dup scale gsave newpath 0 0 moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath DoColor{0 0 1 setrgbcolor}if stroke grestore 66 146 @ translate 2 setlinewidth 0 0 @ moveto 500 0 ! rlineto stroke 0 500 @ moveto 500 0 ! rlineto stroke showpage restore 8 line save /showpage {} def 271 Y @ @ translate .2 dup scale gsave newpath 0 0 moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath DoColor{0 0 1 setrgbcolor}if stroke grestore 66 146 @ translate 2 setlinewidth 0 0 @ moveto gsave 0 500 @ moveto 500 0 ! rlineto stroke grestore 500 0 ! rlineto stroke showpage restore 8 line save /showpage {} def 396 Y @ translate .2 dup scale gsave newpath 0 0 moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath DoColor{0 0 1 setrgbcolor}if stroke grestore 66 146 @ translate 2 setlinewidth [500] 0 setdash 0 0 @ moveto 500 0 ! rlineto 0 500 ! rlineto -500 0 ! rlineto closepath stroke showpage restore 8 line save /showpage {} def 521 Y @ translate .2 dup scale gsave newpath 0 0 moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath DoColor{0 0 1 setrgbcolor}if stroke grestore 66 146 @ translate 2 setlinewidth [50] 0 setdash 0 0 @ moveto 500 0 ! rlineto stroke 500 500 @ moveto -500 0 ! rlineto stroke 500 0 @ moveto -500 0 ! rlineto stroke 0 500 @ moveto 500 0 ! rlineto stroke showpage restore 16 line save /showpage {} def 146 Y @ translate .2 dup scale gsave newpath 0 0 moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath DoColor{0 0 1 setrgbcolor}if stroke grestore 66 146 @ translate 2 setlinewidth [50] 0 setdash .2 setgray 0 0 @ moveto 500 0 ! rlineto stroke .4 setgray 500 500 @ moveto -500 0 ! rlineto stroke .6 setgray 500 0 @ moveto -500 0 ! rlineto stroke .8 setgray 0 500 @ moveto 500 0 ! rlineto stroke showpage restore 16 line save /showpage {} def 271 Y @ translate .2 dup scale gsave newpath 0 0 @ moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath DoColor{0 0 1 setrgbcolor}if stroke grestore 66 146 @ translate /B {bind def} dup exec /E {exch def} B /Box {/W E /H E @ moveto W 0 ! rlineto 0 H ! rlineto W neg 0 ! rlineto closepath} B 0 -1 2 500 Box 0 499 2 500 Box fill showpage restore 16 line save /showpage {} def 390 Y @ translate .2 dup scale gsave newpath 0 0 @ moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath DoColor{0 0 1 setrgbcolor}if stroke grestore 66 146 @ translate /B {bind def} dup exec /E {exch def} B /Box {/W E /H E @ moveto W 0 ! rlineto 0 H ! rlineto W neg 0 ! rlineto closepath} B 0 -2 504 500 Box fill 1 setgray 0 1 498 500 Box fill showpage restore 16 line save /showpage {} def 521 Y @ translate .2 dup scale gsave newpath 0 0 @ moveto 612 0 rlineto 0 792 rlineto -612 0 rlineto closepath DoColor{0 0 1 setrgbcolor}if stroke grestore 66 146 @ translate 2 setlinewidth [5] 0 setdash newpath 500 0 0 0 -500 0 500 500 -500 0 500 0 500 0 0 500 4 {@ moveto ! rlineto} bind repeat stroke showpage restore { 18 setline TX l+ C1(These look alike and have vastly different PostScript language codes.)S } PlaceText EndViewgraph %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Notes lines should not be longer than 65 characters. %% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Notes ==> Q1.ps <== %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 55 145 557 647 %%Pages: 1 %%EndComments 66 146 translate 2 setlinewidth 0 0 moveto 500 0 rlineto stroke 0 500 moveto 500 0 rlineto stroke showpage ==> Q2.ps <== %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 55 145 557 647 %%Pages: 1 %%EndComments 66 146 translate 2 setlinewidth 0 0 moveto gsave 0 500 moveto 500 0 rlineto stroke grestore 500 0 rlineto stroke showpage ==> Q3.ps <== %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 55 145 557 647 %%Pages: 1 %%EndComments 66 146 translate 2 setlinewidth [500] 0 setdash 0 0 moveto 500 0 rlineto 0 500 rlineto -500 0 rlineto closepath stroke showpage ==> Q4.ps <== %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 55 145 557 647 %%Pages: 1 %%EndComments 66 146 translate 2 setlinewidth [50] 0 setdash 0 0 moveto 500 0 rlineto stroke 500 500 moveto -500 0 rlineto stroke 500 0 moveto -500 0 rlineto stroke 0 500 moveto 500 0 rlineto stroke showpage ==> Q5.ps <== %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 55 145 557 647 %%Pages: 1 %%EndComments 66 146 translate 2 setlinewidth [50] 0 setdash .2 setgray 0 0 moveto 500 0 rlineto stroke .4 setgray 500 500 moveto -500 0 rlineto stroke .6 setgray 500 0 moveto -500 0 rlineto stroke .8 setgray 0 500 moveto 500 0 rlineto stroke showpage ==> Q6.ps <== %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 55 145 557 647 %%Pages: 1 %%EndComments 66 146 translate /B {bind def} dup exec /E {exch def} B /Box {/W E /H E moveto W 0 rlineto 0 H rlineto W neg 0 rlineto closepath} B 0 -1 2 500 Box 0 499 2 500 Box fill showpage ==> Q7.ps <== %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 55 145 557 647 %%Pages: 1 %%EndComments 66 146 translate /B {bind def} dup exec /E {exch def} B /Box {/W E /H E moveto W 0 rlineto 0 H rlineto W neg 0 rlineto closepath} B 0 -1 502 500 Box fill 1 setgray 0 1 498 500 Box fill showpage ==> Q8.ps <== %!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 55 145 557 647 %%Pages: 1 %%EndComments 66 146 translate 2 setlinewidth [5] 0 setdash newpath 500 0 0 0 -500 0 500 500 -500 0 500 0 500 0 0 500 4 {moveto rlineto} bind repeat stroke showpage EndNotes showpage PageBottom %%EOF