aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/llgcode/ps/samples/manylines.ps
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/llgcode/ps/samples/manylines.ps')
-rw-r--r--vendor/github.com/llgcode/ps/samples/manylines.ps939
1 files changed, 939 insertions, 0 deletions
diff --git a/vendor/github.com/llgcode/ps/samples/manylines.ps b/vendor/github.com/llgcode/ps/samples/manylines.ps
new file mode 100644
index 0000000..5395a1c
--- /dev/null
+++ b/vendor/github.com/llgcode/ps/samples/manylines.ps
@@ -0,0 +1,939 @@
+%!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 <number> <name>, 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