home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / languages / oberon.lha / Oberon / data / Oberon.Header.ps < prev    next >
Encoding:
Text File  |  2001-11-26  |  8.8 KB  |  340 lines

  1. %!PS-Adobe- minimal conforming
  2. %%Creator: Oberon
  3. %%DocumentFonts: Helvetica Helvetica-Bold Helvetica-Oblique Courier Times Times-Bold Times-Oblique
  4. % J. Templ, 1990, 1991, 1992
  5. % m  moveto  x y -> -
  6. % s  String  s -> -
  7. % d  dieresis  ch -> -
  8. % l  Line  x y w h -> -
  9. % x  XLine  x y dx dy -> -
  10. % c  scaled Circle  x y a b -> -
  11. % b  shaded box  x y w h col -> -
  12. % i  pattern image  x y w h mode  -> -
  13. % p  Page  n -> -
  14. % f  font mapping  fnt -> -
  15. % z Bezier cubic section  x1 y1 x2 y2 x3 y3 x0 y0 -> -
  16. % k char  x y w h dx -> -
  17.  
  18. /bdef {bind def} bind def
  19.  
  20. /m {moveto} bdef
  21.  
  22. /s {show} bdef
  23.  
  24. /d  % obsolete
  25.   { /s2 exch def
  26.         /ch0 s2 0 1 getinterval def
  27.         /ch1 s2 1 1 getinterval def
  28.     currentpoint /y0 exch def /x0 exch def
  29.     ch0 show
  30.     currentpoint /y1 exch def /x1 exch def
  31.     ch1 stringwidth /wy exch def /wx exch def
  32.     x1 x0 add wx sub 2 div y0 moveto
  33.     ch0 (Z) le {0 wx 2 div rmoveto} if
  34.     ch1 show
  35.     x1 y1 moveto
  36.   } bdef
  37.  
  38. /l
  39.   { /ph exch def
  40.     /pw exch def
  41.     newpath
  42.     moveto
  43.     pw 0 rlineto
  44.     0 ph rlineto
  45.     pw neg 0 rlineto
  46.     closepath
  47.     fill
  48.   } bdef
  49.  
  50. /x
  51.   { /dy exch def
  52.     /dx exch def
  53.     newpath
  54.     moveto
  55.     dx dy rlineto
  56.     0 setlinewidth
  57.     stroke
  58.   } bdef
  59.  
  60. /c
  61.   { /pb exch def
  62.     /pa exch def
  63.     newpath
  64.     gsave
  65.     translate
  66.     1 pb pa div scale
  67.     0 0 pa 0 360 arc
  68.     0 setlinewidth
  69.     stroke
  70.     grestore
  71.   } bdef
  72.  
  73. /shade
  74.   { gsave
  75.     col 0 eq {1 setgray} if
  76.     col 1 eq {0.99 setgray} if
  77.     col 2 eq {0.9 setgray} if
  78.     col 3 eq {0.65 setgray} if
  79.     col 4 eq {0.35 setgray} if
  80.     col 5 eq {0 setgray} if
  81.     fill
  82.     grestore
  83.   } bdef
  84.  
  85. /max {
  86.   /h1 exch def
  87.   /h2 exch def
  88.   h1 h2 lt {h2} {h1} ifelse
  89.   } bdef
  90.  
  91. /texture
  92.   { gsave
  93.     clip
  94.     newpath
  95.     col 6 eq
  96.       { px 20 idiv 20 mul py ph add 20 idiv 20 mul moveto
  97.         /maxwh pw ph max 20 add def
  98.         maxwh 10 idiv 1 add
  99.           { maxwh maxwh rlineto
  100.             maxwh neg dup 20 sub rmoveto
  101.           } repeat
  102.       } if
  103.     col 7 eq
  104.       { px 20 idiv 20 mul py 20 idiv 20 mul moveto
  105.         /maxwh pw ph max 20 add def
  106.         maxwh 10 idiv 1 add
  107.           { maxwh neg maxwh rlineto
  108.             maxwh 20 add maxwh neg rmoveto
  109.           } repeat
  110.       } if
  111.     col 8 eq
  112.       { px 15 idiv 15 mul py 15 idiv 15 mul moveto
  113.         /ph ph 25 add def
  114.         pw 15 idiv 1 add
  115.           { 0 ph rlineto
  116.             15 ph neg rmoveto
  117.           } repeat
  118.      } if
  119.     col 9 eq
  120.       { px 15 idiv 15 mul py 15 idiv 15 mul moveto
  121.         /pw pw 15 add def
  122.         ph 15 idiv 1 add
  123.          { pw 0 rlineto
  124.             pw neg 15 rmoveto
  125.           } repeat
  126.      } if
  127.     1 setlinewidth
  128.     stroke
  129.     grestore
  130.   } bdef
  131.  
  132. /b
  133.   { /col exch def
  134.     /ph exch def
  135.     /pw exch def
  136.     /py exch def
  137.     /px exch def
  138.     newpath
  139.     px py moveto
  140.     pw 0 rlineto
  141.     0 ph rlineto
  142.     pw neg 0 rlineto
  143.     closepath
  144.     col 6 lt {shade} {texture} ifelse
  145.   } bdef
  146.  
  147. /i % pattern image follows procedure i immediately
  148.   { /mode exch def
  149.     /ph exch def
  150.     /pw exch def
  151.     /py exch def
  152.     /px exch def
  153.     /picstr 256 string def
  154.     /nofbytes pw 7 add 8 idiv ph mul def
  155.     gsave
  156.     px py translate
  157.     pw mode 1 add mul ph mode 1 add mul scale
  158.     pw ph 1 [pw 0 0 ph 0 0]
  159.       {nofbytes 256 ge
  160.         { currentfile picstr readhexstring pop
  161.           /nofbytes nofbytes 256 sub def }
  162.         { /picstr nofbytes string def
  163.           currentfile picstr readhexstring pop
  164.           /nofbytes 0 def
  165.         } ifelse
  166.       } image
  167.     grestore
  168.   } bdef
  169.  
  170. /k % char image follows procedure k immediately
  171.   { /pdx exch def
  172.     /ph exch def
  173.     /pw exch def
  174.     /py exch def
  175.     /px exch def
  176.     /picstr 256 string def
  177.     /nofbytes pw 7 add 8 idiv ph mul def
  178.     gsave
  179.         currentpoint translate
  180.     px py translate
  181.     pw ph scale
  182.     pw ph true [pw 0 0 ph 0 0]
  183.       { nofbytes 256 ge
  184.         { currentfile picstr readhexstring pop
  185.           /nofbytes nofbytes 256 sub def }
  186.         { /picstr nofbytes string def
  187.           currentfile picstr readhexstring pop
  188.           /nofbytes 0 def
  189.         } ifelse
  190.       } imagemask
  191.     grestore
  192.     pdx 0 rmoveto
  193.   } bdef
  194.  
  195.  
  196. /OberonEncoding
  197.   [ 128 /Adieresis
  198.     129 /Odieresis
  199.     130 /Udieresis
  200.     131 /adieresis
  201.     132 /odieresis
  202.     133 /udieresis
  203.     134 /acircumflex
  204.     135 /ecircumflex
  205.     136 /icircumflex
  206.     137 /ocircumflex
  207.     138 /ucircumflex
  208.     139 /agrave
  209.     140 /egrave
  210.     141 /igrave
  211.     142 /ograve
  212.     143 /ugrave
  213.     144 /eacute
  214.     145 /edieresis
  215.     146 /idieresis
  216.     147 /ccedilla
  217.     148 /aacute
  218.     149 /ntilde
  219.   ] def
  220.  
  221. % font reencoding taken from P. Vollenweider, PostScript, Hanser Verlag 1988
  222. % encoding vector is /OberonEncoding
  223. % newfontdict basefontdict recode -
  224.  
  225. /recode
  226.   { findfont /basefontdict exch def
  227.     /OberonFont basefontdict maxlength dict def
  228.     basefontdict
  229.       { exch dup /FID ne
  230.         { dup /Encoding eq
  231.           { exch dup length array copy OberonFont 3 1 roll put }
  232.           { exch OberonFont 3 1 roll put }
  233.           ifelse
  234.         }
  235.         { pop pop }
  236.         ifelse
  237.       } forall
  238.     OberonEncoding aload pop
  239.     OberonEncoding length 2 idiv {OberonFont /Encoding get 3 1 roll put} repeat
  240.     dup OberonFont exch /FontName exch put
  241.     OberonFont definefont pop
  242.   } bdef
  243.  
  244. % font setup.  Recode the basic fonts first
  245.  
  246.   /ObHelv /Helvetica recode
  247.   /ObHelvBold /Helvetica-Bold recode
  248.   /ObHelvOblique /Helvetica-Oblique recode
  249.   /ObCourier /Courier recode
  250.   /ObTimes /Times-Roman recode
  251.   /ObTimesBold /Times-Bold recode
  252.   /ObTimesItalic /Times-Italic recode
  253.  
  254. % now define the scaled versions
  255.  
  256.   /Syntax8.Scn.Fnt   /ObHelv findfont 30 scalefont def
  257.   /Syntax8i.Scn.Fnt  /ObHelvOblique findfont 30 scalefont def
  258.   /Syntax8b.Scn.Fnt  /ObHelvBold findfont 30 scalefont def
  259.   /Syntax8m.Scn.Fnt  /ObHelvBold findfont 30 scalefont def
  260.   /Syntax9m.Scn.Fnt  /ObHelvBold findfont 33 scalefont def
  261.   /Syntax10.Scn.Fnt  /ObHelv findfont 37 scalefont def
  262.   /Syntax10i.Scn.Fnt /ObHelvOblique  findfont 37 scalefont def
  263.   /Syntax10b.Scn.Fnt /ObHelvBold findfont 37 scalefont def
  264.   /Syntax10m.Scn.Fnt /ObHelvBold findfont 37 scalefont def
  265.   /Syntax10w.Scn.Fnt /ObHelv findfont 37 scalefont def
  266.   /Syntax12.Scn.Fnt /ObHelv findfont 44 scalefont def
  267.   /Syntax12i.Scn.Fnt /ObHelvOblique findfont 44 scalefont def
  268.   /Syntax12b.Scn.Fnt /ObHelvBold findfont 44 scalefont def
  269.   /Syntax12m.Scn.Fnt /ObHelvBold findfont 44 scalefont def
  270.   /Syntax14.Scn.Fnt /ObHelv findfont 50 scalefont def
  271.   /Syntax14i.Scn.Fnt /ObHelvOblique findfont 50 scalefont def
  272.   /Syntax14b.Scn.Fnt /ObHelvBold findfont 50 scalefont def
  273.   /Syntax14m.Scn.Fnt /ObHelvBold findfont 50 scalefont def
  274.   /Syntax16.Scn.Fnt /ObHelv findfont 59 scalefont def
  275.   /Syntax16i.Scn.Fnt /ObHelvOblique findfont 59 scalefont def
  276.   /Syntax16b.Scn.Fnt /ObHelvBold findfont 59 scalefont def
  277.   /Syntax16m.Scn.Fnt /ObHelvBold findfont 59 scalefont def
  278.   /Syntax20.Scn.Fnt /ObHelv findfont 74 scalefont def
  279.   /Syntax20i.Scn.Fnt /ObHelvOblique findfont 74 scalefont def
  280.   /Syntax20b.Scn.Fnt /ObHelvBold findfont 74 scalefont def
  281.   /Syntax20m.Scn.Fnt /ObHelvBold findfont 74 scalefont def
  282.   /Syntax24.Scn.Fnt /ObHelv findfont 88 scalefont def
  283.   /Syntax24i.Scn.Fnt /ObHelvOblique findfont 88 scalefont def
  284.   /Syntax24b.Scn.Fnt /ObHelvBold findfont 88 scalefont def
  285.   /Syntax24m.Scn.Fnt  /ObHelvBold findfont 88 scalefont def
  286.  
  287.   /Gacha10l /ObCourier findfont 30 scalefont def
  288.  
  289.   /Courier8.Scn.Fnt /ObCourier findfont 30 scalefont def
  290.   /Courier10.Scn.Fnt /ObCourier findfont 37 scalefont def
  291.   /Courier12.Scn.Fnt  /ObCourier findfont 44 scalefont def
  292.  
  293.   /Times8.Scn.Fnt  /ObTimes findfont 32 scalefont def
  294.   /Times8i.Scn.Fnt /ObTimesItalic  findfont 32 scalefont def
  295.   /Times8b.Scn.Fnt /ObTimesBold findfont 32 scalefont def
  296.   /Times10.Scn.Fnt  /ObTimes findfont 40 scalefont def
  297.   /Times10i.Scn.Fnt /ObTimesItalic  findfont 40 scalefont def
  298.   /Times10b.Scn.Fnt /ObTimesBold findfont 40 scalefont def
  299.   /Times12.Scn.Fnt /ObTimes findfont 48 scalefont def
  300.   /Times12i.Scn.Fnt /ObTimesItalic findfont 48 scalefont def
  301.   /Times12b.Scn.Fnt /ObTimesBold findfont 48 scalefont def
  302.   /Times14.Scn.Fnt /ObTimes findfont 56 scalefont def
  303.   /Times14i.Scn.Fnt /ObTimesItalic findfont 56 scalefont def
  304.   /Times14b.Scn.Fnt /ObTimesBold findfont 56 scalefont def
  305.   /Times16.Scn.Fnt /ObTimes findfont 64 scalefont def
  306.   /Times16i.Scn.Fnt /ObTimesItalic findfont 64 scalefont def
  307.   /Times16b.Scn.Fnt /ObTimesBold findfont 64 scalefont def
  308.   /Times20.Scn.Fnt /ObTimes findfont 80 scalefont def
  309.   /Times20i.Scn.Fnt /ObTimesItalic findfont 80 scalefont def
  310.   /Times20b.Scn.Fnt /ObTimesBold findfont 80 scalefont def
  311.   /Times24.Scn.Fnt /ObTimes findfont 96 scalefont def
  312.   /Times24i.Scn.Fnt /ObTimesItalic findfont 96 scalefont def
  313.   /Times24b.Scn.Fnt /ObTimesBold findfont 96 scalefont def
  314.  
  315.  
  316. /f {
  317.    cvn currentdict exch get setfont
  318.    } bdef
  319.  
  320. % Bezier cubic section
  321. /z { newpath moveto curveto 0 setlinewidth stroke } bdef
  322.  
  323. % show page
  324. /p { /#copies exch def
  325.     showpage
  326.     restore save
  327.   } bdef
  328.  
  329. 0 setgray
  330. %A4 format
  331. .24 .24 scale
  332. %US-letter format
  333. %.24 .22 scale
  334.  
  335. (Syntax10.Scn.Fnt) f
  336. save
  337. %%EndProlog
  338. %%Page: 0 1
  339.