home *** CD-ROM | disk | FTP | other *** search
/ Aminet 10 / aminetcdnumber101996.iso / Aminet / util / gnu / groff_src.lha / groff-1.10src / devps / prologue.ps < prev    next >
Text File  |  1995-06-27  |  4KB  |  229 lines

  1. %!PS-Adobe-3.0 Resource-ProcSet
  2.  
  3. /setpacking where {
  4.     pop
  5.     currentpacking
  6.     true setpacking
  7. } if
  8.  
  9. /grops 120 dict dup begin 
  10.  
  11. % The ASCII code of the space character.
  12. /SC 32 def
  13.  
  14. /A /show load def
  15. /B { 0 SC 3 -1 roll widthshow } bind def
  16. /C { 0 exch ashow } bind def
  17. /D { 0 exch 0 SC 5 2 roll awidthshow } bind def
  18. /E { 0 rmoveto show } bind def
  19. /F { 0 rmoveto 0 SC 3 -1 roll widthshow } bind def
  20. /G { 0 rmoveto 0 exch ashow } bind def
  21. /H { 0 rmoveto 0 exch 0 SC 5 2 roll awidthshow } bind def
  22. /I { 0 exch rmoveto show } bind def
  23. /J { 0 exch rmoveto 0 SC 3 -1 roll widthshow } bind def
  24. /K { 0 exch rmoveto 0 exch ashow } bind def
  25. /L { 0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow } bind def
  26. /M { rmoveto show } bind def
  27. /N { rmoveto 0 SC 3 -1 roll widthshow } bind def
  28. /O { rmoveto 0 exch ashow } bind def
  29. /P { rmoveto 0 exch 0 SC 5 2 roll awidthshow } bind def
  30. /Q { moveto show } bind def 
  31. /R { moveto 0 SC 3 -1 roll widthshow } bind def
  32. /S { moveto 0 exch ashow } bind def
  33. /T { moveto 0 exch 0 SC 5 2 roll awidthshow } bind def
  34.  
  35. % name size font SF -
  36.  
  37. /SF {
  38.     findfont exch
  39.     [ exch dup 0 exch 0 exch neg 0 0 ] makefont
  40.     dup setfont
  41.     [ exch /setfont cvx ] cvx bind def
  42. } bind def
  43.  
  44. % name a c d font MF -
  45.  
  46. /MF {
  47.     findfont
  48.     [ 5 2 roll
  49.     0 3 1 roll % b
  50.     neg 0 0 ] makefont
  51.     dup setfont
  52.     [ exch /setfont cvx ] cvx bind def
  53. } bind def
  54.  
  55. /level0 0 def
  56. /RES 0 def
  57. /PL 0 def
  58. /LS 0 def
  59.  
  60. % Enable manual feed.
  61. % MANUAL -
  62.  
  63. /MANUAL {
  64.     statusdict begin /manualfeed true store end
  65. } bind def
  66.  
  67. % Guess the page length.
  68. % This assumes that the imageable area is vertically centered on the page.
  69. % PLG - length
  70.  
  71. /PLG {
  72.     gsave newpath clippath pathbbox grestore
  73.     exch pop add exch pop
  74. } bind def
  75.  
  76. % BP -
  77.  
  78. /BP {
  79.     /level0 save def
  80.     1 setlinecap
  81.     1 setlinejoin
  82.     72 RES div dup scale
  83.     LS {
  84.         90 rotate
  85.     } {
  86.         0 PL translate
  87.     } ifelse
  88.     1 -1 scale
  89. } bind def
  90.  
  91. /EP {
  92.     level0 restore
  93.     showpage
  94. } bind def
  95.  
  96.  
  97. % centerx centery radius startangle endangle DA -
  98.  
  99. /DA {
  100.     newpath arcn stroke
  101. } bind def
  102.  
  103. % x y SN - x' y'
  104. % round a position to nearest (pixel + (.25,.25))
  105.  
  106. /SN {
  107.     transform 
  108.     .25 sub exch .25 sub exch
  109.     round .25 add exch round .25 add exch
  110.     itransform
  111. } bind def
  112.     
  113. % endx endy startx starty DL -
  114. % we round the endpoints of the line, so that parallel horizontal
  115. % and vertical lines will appear even
  116.  
  117. /DL {
  118.     SN
  119.     moveto
  120.     SN
  121.     lineto stroke
  122. } bind def
  123.  
  124. % centerx centery radius DC -
  125.  
  126. /DC {
  127.     newpath 0 360 arc closepath
  128. } bind def
  129.  
  130.  
  131. /TM matrix def
  132.  
  133. %  width height centerx centery DE -
  134.  
  135. /DE {
  136.     TM currentmatrix pop
  137.     translate scale newpath 0 0 .5 0 360 arc closepath
  138.     TM setmatrix
  139. } bind def
  140.  
  141. % these are for splines
  142.  
  143. /RC /rcurveto load def
  144. /RL /rlineto load def
  145. /ST /stroke load def
  146. /MT /moveto load def
  147. /CL /closepath load def
  148.  
  149. % fill the last path
  150.  
  151. % amount FL -
  152.  
  153. /FL {
  154.     currentgray exch setgray fill setgray
  155. } bind def
  156.  
  157. % fill with the ``current color''
  158.  
  159. /BL /fill load def
  160.  
  161. /LW /setlinewidth load def
  162. % new_font_name encoding_vector old_font_name RE -
  163.  
  164. /RE {
  165.     findfont
  166.     dup maxlength 1 index /FontName known not { 1 add } if dict begin
  167.     {
  168.         1 index /FID ne { def } { pop pop } ifelse
  169.     } forall
  170.     /Encoding exch def
  171.     dup /FontName exch def
  172.     currentdict end definefont pop
  173. } bind def
  174.  
  175. /DEFS 0 def
  176.  
  177. % hpos vpos EBEGIN -
  178.  
  179. /EBEGIN {
  180.     moveto
  181.     DEFS begin
  182. } bind def
  183.  
  184. /EEND /end load def
  185.  
  186. /CNT 0 def
  187. /level1 0 def
  188.  
  189. % llx lly newwid wid newht ht newllx newlly PBEGIN -
  190.  
  191. /PBEGIN {
  192.     /level1 save def
  193.     translate
  194.     div 3 1 roll div exch scale
  195.     neg exch neg exch translate
  196.     % set the graphics state to default values
  197.     0 setgray
  198.     0 setlinecap
  199.     1 setlinewidth
  200.     0 setlinejoin
  201.     10 setmiterlimit
  202.     [] 0 setdash
  203.     /setstrokeadjust where {
  204.         pop
  205.         false setstrokeadjust
  206.     } if
  207.     /setoverprint where {
  208.         pop
  209.         false setoverprint
  210.     } if
  211.     newpath
  212.     /CNT countdictstack def
  213.     userdict begin
  214.     /showpage {} def
  215. } bind def
  216.  
  217. /PEND {
  218.     clear
  219.     countdictstack CNT sub { end } repeat
  220.     level1 restore
  221. } bind def
  222.  
  223. end def
  224.  
  225. /setpacking where {
  226.     pop
  227.     setpacking
  228. } if
  229.