home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 06 / dtp / pr0691_2.ps < prev    next >
Encoding:
Text File  |  1991-04-11  |  4.2 KB  |  130 lines

  1. %---> PR0691_2.PS
  2. %---> Präambel für PostScript.
  3. %---> Erzeugt den Font "LineDraw" mit den Grafik-
  4. %---> zeichen des IMB-PC-Zeichensatzes.
  5. %---> (c) 1991 G. Born & TOOLBOX
  6.  
  7. /LineFont 25 dict def             % Tabelle für 25 Einträge
  8. LineFont begin                    % Definiere Font
  9.  
  10. % definiere die Fontparameter: Typ, Matrix,
  11. % "Bounding Box" und Decodierungsvektor
  12. /FontType 3 def                   % Adobe-Typ 3,
  13.                                   % muß bei diesem Codie-
  14.                                   % rungsverfahren 3 sein
  15. /FontMatrix [0.03333 0 0 0.03333 0 0] def
  16. /FontBBox [0 -8 18 30] def        % Zeichenbox
  17. /Encoding 256 array def           % Dekodierungsvektor
  18.  
  19. % Initialisiere den Decodierungsvektor
  20. 0 1 255 {Encoding exch /.notdef put} for
  21.  
  22. % Belege den Decodierungsvektor mit den Namen
  23. % der Zeichen ab Code 45!
  24. Encoding 45 [
  25.  /sp     /sh   /light /med  /dark
  26.  /sv     /srj  /sdjr  /dsjr /sdtr /dstr /djr  /dv
  27.  /dtr    /dbr  /sdbr  /dsbr /str  /sbl  /sjb  /sjt
  28.  /sjl    /sh   /sjc   /sdjl /dsjl /dbl  /dtl  /djb
  29.  /djt    /djl  /dh    /djc  /dsjb /sdjb /dsjt /sdjt
  30.  /sdbl   /dsbl /dstl  /sdtl /sdjc /dsjc /sbr  /stl
  31.  /black  /bb   /bl    /br   /bt] putinterval
  32.  
  33. % Hilfsprozeduren zur Optimierung der Fontdefinition
  34. /a {moveto lineto stroke} bind def
  35. /b {moveto lineto lineto stroke} bind def
  36. /c {moveto 9 7 lineto stroke} bind def
  37. /d {moveto lineto lineto} bind def
  38. /e {lineto closepath fill} bind def
  39. /f {7 30 7 9 0 9 b} def
  40. /g {12 30 12 9 18 9 b} def
  41. /h {7 -8 7 5 0 5 b} def
  42. /i {12 -8 12 5 18 5 b} def
  43. /j {0 7 18 7 a} def
  44. /k {9 22 9 -8 a} def
  45. /l {0 5 18 5 a 0 9 18 9 a} def
  46. /m {7 22 7 -8 a 12 22 12 -8 a} def
  47. /n {0 -8 18 -8 18 22 d 0 22 e} def
  48.  
  49. % Dictionary-"CharProcs", die die Prozeduren
  50. % zur Definition der Zeichen aufnehmen
  51. /CharProcs 55 dict def
  52. CharProcs begin
  53. /.notdef {} def                   % Unbelegte Positionen
  54. /sp { 1 1 moveto } def
  55. /sv {k} def
  56. /srj {k 0 7 c} def
  57. /sdjr {k 0 5 9 5 a 0 9 9 9 a} def
  58. /dsjr {m 0 7 7 7 a} def
  59. /sdtr {0 7 12 7 12 -8 b 7 7 7 -8 a} def
  60. /dstr {0 9 9 9 9 -8 b 0 5 9 5 a} def
  61. /djr {f h 12 -8 12 22 a} def
  62. /dv {m} def
  63. /dtr {h 0 9 12 9 12 -8 b} def
  64. /dbr {f  0 5 12 5 12 30 b} def
  65. /sdbr {0 7 12 7 12 30 b 7 7 7 30 a} def
  66. /dsbr {0 5 9 5 9 30 b 0 9 9 9 a} def
  67. /str {0 7 9 7 9 -8 b} def
  68. /sbl {9 30 9 7 18 7 b} def
  69. /sjb {j 9 30 c} def
  70. /sjt {j 9 -8 c} def
  71. /sjl {k 18 7 c} def
  72. /sh {j} def
  73. /sjc {j k} def
  74. /sdjl {k 9 9 18 9 a 9 5 18 5 a} def
  75. /dsjl {m 12 7 18 7 a} def
  76. /dbl {g 7 30 7 5 18 5 b} def
  77. /dtl {i 7 -8 7 9 18 9 b} def
  78. /djb {f g 0 5 18 5 a} def
  79. /djt {h i 0 9 18 9 a} def
  80. /djl {g i 7 -8 7 22 a} def
  81. /dh {l} def
  82. /djc {f g h i} def
  83. /dsjb {l 9 30 9 9 a} def
  84. /sdjb {j 7 7 7 30 a 12 7 12 30 a} def
  85. /dsjt {l 9 -8 9 5 a} def
  86. /sdjt {j 7 7 7 -8 a 12 7 12 -8 a} def
  87. /sdbl {7 30 7 7 18 7 b 12 30 12 7 a} def
  88. /dsbl {9 30 9 5 18 5 b 9 9 18 9 a} def
  89. /dstl {9 -8 9 9 18 9 b 9 5 18 5 a} def
  90. /sdtl {7 -8 7 7 18 7 b 12 -8 12 7 a} def
  91. /sdjc {m j} def
  92. /dsjc {l k} def
  93. /sbr {0 7 9 7 9 30 b} def
  94. /stl {9 -8 9 7 18 7 b} def
  95. /light {0.90 setgray n} def
  96. /med {0.60 setgray n} def
  97. /dark {0.30 setgray n} def
  98. /black {n} def
  99. /bt {0 7 18 7 18 22 d 0 22 e} def
  100. /bb {0 -8 18 -8 18 7 d 0 7 e} def
  101. /bl {0 -8 9 -8 9 22 d 0 22 e} def
  102. /br {9 -8 18 -8 18 22 d 9 22 e} def
  103. end % alle Zeichen in CharProcs
  104.  
  105. % Prozedur "BuildChar" zum Aufbau des Zeichensatzes
  106. % Die Prozedur wird von der Fontmaschine mit dem
  107. % Code des jeweiligen Zeichens aufgerufen. Über
  108. % den Encodingvektor liest sie dann den Namen der
  109. % Ausgabeprozedur. Die Prozedur wird aus "CharProcs"
  110. % gelesen und mit "exec" ausgeführt.
  111.  
  112. /BuildChar
  113.   { 1 setlinewidth                % Dünne Linie
  114.     18 0 setcharwidth             % Zeichenabstand
  115.     exch begin                    % Zeichencode holen
  116.       Encoding exch get           % Suche Namen
  117.       CharProcs exch get          % Suche Prozedur
  118.       exec                        % Ausführen
  119.     end
  120.   } def
  121. end                               % Schluß von "LineDraw"
  122.  
  123. % Aktiviere den Font, falls dieser noch nicht bekannt
  124. FontDirectory /LineDraw known not
  125.   {/LineDraw LineFont definefont pop} if
  126.  
  127. % Ende der Präambel; hier kann das eigentliche
  128. % Programm folgen. Das Präambelfile wird dann
  129. % vorab zum Drucker geschickt.
  130.