home *** CD-ROM | disk | FTP | other *** search
/ Crawly Crypt Collection 1 / crawlyvol1.bin / graphics / kand156d / kndpslib.ps < prev   
Text File  |  1993-05-14  |  7KB  |  302 lines

  1. %%BeginProcSet: "KandinskY-builtin-GEM-prologue" "(0.0)" ""
  2. /KDdict 60 dict def
  3. KDdict begin
  4. /Reencsmalldict 12 dict def
  5. /ReEncodeSmall
  6. { Reencsmalldict begin
  7.   /newcodesandnames exch def
  8.   /newfontname exch def
  9.   /basefontname exch def
  10.   /basefontdict basefontname findfont def
  11.   /newfont basefontdict maxlength dict def
  12.   basefontdict
  13.    { exch dup /FID ne
  14.     { dup /Encoding eq
  15.      { exch dup length array copy newfont 3 1 roll put }
  16.      { exch newfont 3 1 roll put }
  17.      ifelse
  18.     }
  19.     { pop pop }
  20.     ifelse
  21.    } forall
  22.   newfont /FontName newfontname put
  23.   newcodesandnames aload pop
  24.   newcodesandnames length 2 idiv
  25.    { newfont /Encoding get 3 1 roll put }
  26.    repeat
  27.   newfontname newfont definefont pop
  28.   end
  29. } def
  30. /germvec [
  31. 8#201 /udieresis
  32. 8#204 /adieresis
  33. 8#216 /Adieresis
  34. 8#224 /odieresis
  35. 8#231 /Odieresis
  36. 8#232 /Udieresis
  37. 8#236 /germandbls
  38. ] def
  39. /Times-Roman /Times-Roman-Germ germvec ReEncodeSmall
  40. /Times-Italic /Times-Italic-Germ germvec ReEncodeSmall
  41. /Times-Bold /Times-Bold-Germ germvec ReEncodeSmall
  42. /Times-BoldItalic /Times-BoldItalic-Germ germvec ReEncodeSmall
  43. /Helvetica /Helvetica-Germ germvec ReEncodeSmall
  44. /Helvetica-Bold /Helvetica-Bold-Germ germvec ReEncodeSmall
  45. /Helvetica-Oblique /Helvetica-Oblique-Germ germvec ReEncodeSmall
  46. /Helvetica-BoldOblique /Helvetica-BoldOblique-Germ germvec ReEncodeSmall
  47. /Courier /Courier-Germ germvec ReEncodeSmall
  48. /Courier-Bold /Courier-Bold-Germ germvec ReEncodeSmall
  49. /Courier-Oblique /Courier-Oblique-Germ germvec ReEncodeSmall
  50. /Courier-BoldOblique /Courier-BoldOblique-Germ germvec ReEncodeSmall
  51.  
  52. /tr{ /Times-Roman-Germ findfont exch scalefont setfont }def
  53. /tri{ /Times-Italic-Germ findfont exch scalefont setfont }def
  54. /trb{ /Times-Bold-Germ findfont exch scalefont setfont }def
  55. /trbi{ /Times-BoldItalic-Germ findfont exch scalefont setfont }def
  56. /ss{ /Helvetica-Germ findfont exch scalefont setfont }def
  57. /ssb{ /Helvetica-Bold-Germ findfont exch scalefont setfont }def
  58. /ssi{ /Helvetica-Oblique-Germ findfont exch scalefont setfont }def
  59. /ssbi{ /Helvetica-BoldOblique-Germ findfont exch scalefont setfont }def
  60. /tt{ /Courier-Germ findfont exch scalefont setfont }def
  61. /ttb{ /Courier-Bold-Germ findfont exch scalefont setfont }def
  62. /tti{ /Courier-Oblique-Germ findfont exch scalefont setfont }def
  63. /ttbi{ /Courier-BoldOblique-Germ findfont exch scalefont setfont }def
  64.  
  65.  
  66. %Prozeduren für Füllmuster aus dem Buch
  67. %"PostScript - Einführung und Leitfaden A", S. 229ff
  68. /SetUserScreenDict
  69.  22 dict def
  70. SetUserScreenDict begin
  71. /FindResolution
  72. { 72 0 matrix defaultmatrix
  73.   dtransform
  74.   /YRes exch def
  75.   /XRes exch def
  76.   XRes dup mul
  77.   YRes dup mul add sqrt
  78. } def
  79. end
  80.  
  81. /SetUserScreen
  82. { SetUserScreenDict begin
  83.   /Spotfunction exch def
  84.   /Screenangle exch def
  85.   /Cellsize exch def
  86.   gsave
  87.   Screenangle rotate
  88.   Cellsize dup scale
  89.   1 0 dtransform
  90.   grestore
  91.   /Y1 exch def
  92.   /X1 exch def
  93.   /Veclength X1 dup mul
  94.    Y1 dup mul add sqrt def
  95.  
  96.   /Frequency FindResolution
  97.    Veclength div def
  98.  
  99.   /NewScreenangle
  100.    Y1 X1 atan def
  101.  
  102.   Frequency NewScreenangle
  103.   /Spotfunction load
  104.   setscreen
  105.   end
  106. } def
  107.  
  108. /SetPatternDict 18 dict def
  109. SetPatternDict begin
  110. /BitIsOn
  111. { /YBit exch def
  112.   /XBit exch def
  113.   /Bytevalue Bstring
  114.    YBit Bwidth mul
  115.    XBit 8 idiv
  116.    add get def
  117.   /Mask 1 7 XBit 8 mod
  118.    sub bitshift def
  119.   Bytevalue Mask and 0 ne
  120. } def
  121. end
  122.  
  123. /BitpatternSpotfunction
  124. { SetPatternDict begin
  125.   /Y exch def
  126.   /X exch def
  127.   /XIndex X 1 add 2 div
  128.    BPSide mul cvi def
  129.   /YIndex Y 1 add 2 div
  130.    BPSide mul cvi def
  131.   XIndex YIndex BitIsOn
  132.   { /OnBits OnBits
  133.      1 add def 1 }
  134.   { /OffBits OffBits
  135.      1 add def 0 }
  136.   ifelse
  137.   end
  138. } def
  139.  
  140. /SetPattern
  141. { SetPatternDict begin
  142.   /Cellsz exch def
  143.   /Angle exch def
  144.   /Bwidth exch def
  145.   /BPSide exch def
  146.   /Bstring exch def
  147.   /OnBits 0 def
  148.   /OffBits 0 def
  149.   Cellsz Angle
  150.   /BitpatternSpotfunction load
  151.   SetUserScreen
  152.   {} settransfer
  153.   OffBits OffBits OnBits
  154.   add div setgray
  155.   end
  156. } def
  157.  
  158.  
  159. %Eingabe: string
  160. %Ausgabe: Unterstreichung
  161. /ul
  162. { dup stringwidth pop 0 gsave 0.4 setlinewidth
  163.    currentpoint newpath moveto 0 -2 padj rmoveto padj rlineto
  164.    closepath stroke grestore
  165. }def
  166.  
  167. %Eingabe: string
  168. %Gibt string als Outline aus
  169. /KDoshow
  170. { gsave currentpoint newpath moveto 0.2 setlinewidth false
  171.    charpath closepath stroke
  172. }def
  173.  
  174. %Eingabe: string breite wordspace? underline?
  175. %Gibt string ggf. unterstrichen ggf. in breite durch Dehnung der
  176. %Wortzwischenräume aus
  177. /KDwtextdict 5 dict def
  178. /KDwtext
  179. {
  180.   /str exch def /strwd exch def /nsp exch def /underl exch def
  181.   str stringwidth pop /pstrwd exch def
  182.   underl { gsave 0.4 setlinewidth currentpoint newpath
  183.   moveto 0 -2 padj rmoveto strwd 0 padj rlineto 
  184.   closepath stroke grestore } if
  185.  nsp 0 ne
  186.  { strwd pstrwd sub nsp div 0 8#040 str widthshow }
  187.  { str show } ifelse
  188. } bind def
  189.  
  190. %Eingabe: string breite underline?
  191. %Gibt string ggf. unterstrichen in breite durch Dehnung der
  192. %Buchstabenzwischenräume aus
  193. /KDatextdict 4 dict def
  194. /KDatext
  195. {
  196.   KDatextdict begin
  197.   /str exch def /strwd exch def /underl exch def
  198.   str stringwidth pop /pstrwd exch def
  199.   underl { gsave 0.4 setlinewidth currentpoint newpath
  200.   moveto 0 -2 padj rmoveto strwd 0 padj rlineto
  201.   closepath stroke grestore } if
  202.   strwd pstrwd sub str length dup 1 gt { 1 sub } if div 0 str ashow
  203.   end
  204. }def
  205.  
  206. %Eingabe: spitze(x,y) schwanz(x,y) laenge
  207. %Ausgabe: Pfeil
  208. /KDarrowdict 7 dict def
  209. /KDarrow
  210. { KDarrowdict begin
  211.     /leg exch def /taily exch def /tailx exch def
  212.     /tipy exch def /tipx exch def
  213.     gsave
  214.        1 setlinecap
  215.        newpath
  216.           tipx tipy translate
  217.           taily tipy sub /num exch def
  218.           tailx tipx sub /den exch def
  219.           num den eq den 0 eq and { /num 1 def } if
  220.           num den atan 16 sub rotate
  221.           leg 0 moveto 0 0 lineto
  222.           32 rotate
  223.           leg 0 lineto
  224.        closepath fill
  225.     grestore
  226.   end
  227. }bind def
  228.  
  229. %Eingabe: Markerhöhe
  230. %Ausgabe: Kreuz der Höhe Markerhöhe
  231. /KDmarkdict 2 dict def
  232. /KDmarkpoint
  233. { KDmarkdict begin
  234.   dup 2 div /h2 exch def /h exch def
  235.   moveto h2 h2 rmoveto h neg h neg rlineto 0 h rmoveto h h neg rlineto
  236.   stroke
  237.   end
  238. }def
  239.  
  240. /KDline{ newpath moveto lineto stroke }def
  241.  
  242. /KDpolydict 1 dict def
  243. /KDpoly
  244. { KDpolydict begin
  245.   /n exch def
  246.   moveto
  247.   2 1 n{ pop lineto }for
  248.   end
  249. }def
  250.  
  251. /KDboxdict 2 dict def
  252. /KDbox
  253. { KDboxdict begin
  254.   /h exch def /w exch def
  255.   moveto
  256.   w 0 rlineto
  257.   0 h rlineto
  258.   w neg 0 rlineto
  259.   closepath
  260.   end
  261. }def
  262.  
  263. /KDrboxdict 5 dict def
  264. /KDrbox
  265. { KDrboxdict begin
  266.   /r exch def /y2 exch def /x2 exch def
  267.   /y1 exch def /x1 exch def
  268.   x1 y2 r sub moveto
  269.   x1 y1 x2 y1 r arcto
  270.   x2 y1 x2 y2 r arcto
  271.   x2 y2 x1 y2 r arcto
  272.   x1 y2 x1 y1 r arcto
  273.   closepath
  274.   end
  275. }def
  276.  
  277. /KDarcdict 7 dict def
  278. /KDarc
  279. { KDarcdict begin
  280.   /ea exch def /ba exch def /ry exch def /rx exch def
  281.   /y exch def /x exch def
  282.   /savematrix matrix currentmatrix def
  283.   x y translate
  284.   rx ry neg scale
  285.   0 0 1 ba ea arc
  286.   savematrix setmatrix
  287.   end
  288. }def
  289.  
  290. /KDpatscale 1 def
  291. /KDpatmul{ KDpatscale mul }def
  292.  
  293. /KDpoint{ 72 div 254 mul }def
  294. /KDmm{ 254 div 72 mul }def
  295.  
  296. /KDcharheight 12 KDmm def
  297.  
  298. end
  299. %%EndProcSet
  300. %%EndProlog
  301. KDdict begin
  302.