Register
Login
Resources
Docs Blog Datasets Glossary Case Studies Tutorials & Webinars
Product
Data Engine LLMs Platform Enterprise
Pricing Explore
Connect to our Discord channel

delay.ps 23 KB

You have to be logged in to leave a comment. Sign In
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
  1. %!PS-Adobe-3.0
  2. %%BoundingBox: 0 0 612 792
  3. %%HiResBoundingBox: 0 0 612 792
  4. %%Title: GMT v5.1.2_r13154 [64-bit] Document from pstext
  5. %%Creator: GMT5
  6. %%For: pwessel
  7. %%DocumentNeededResources: font Helvetica
  8. %%CreationDate: Fri May 16 17:46:50 2014
  9. %%LanguageLevel: 2
  10. %%DocumentData: Clean7Bit
  11. %%Orientation: Portrait
  12. %%Pages: 1
  13. %%EndComments
  14. %%BeginProlog
  15. 250 dict begin
  16. /! {bind def} bind def
  17. /# {load def}!
  18. /A /setgray #
  19. /B /setdash #
  20. /C /setrgbcolor #
  21. /D /rlineto #
  22. /E {dup stringwidth pop}!
  23. /F /fill #
  24. /G /rmoveto #
  25. /H /sethsbcolor #
  26. /I /setpattern #
  27. /K /setcmykcolor #
  28. /L /lineto #
  29. /M /moveto #
  30. /N /newpath #
  31. /P /closepath #
  32. /R /rotate #
  33. /S /stroke #
  34. /T /translate #
  35. /U /grestore #
  36. /V /gsave #
  37. /W /setlinewidth #
  38. /Y {findfont exch scalefont setfont}!
  39. /Z /show #
  40. /FP {true charpath flattenpath}!
  41. /MU {matrix setmatrix}!
  42. /MS {/SMat matrix currentmatrix def}!
  43. /MR {SMat setmatrix}!
  44. /edef {exch def}!
  45. /FS {/fc edef /fs {V fc F U} def}!
  46. /FQ {/fs {} def}!
  47. /O0 {/os {N} def}!
  48. /O1 {/os {P S} def}!
  49. /FO {fs os}!
  50. /Sa {M MS dup 0 exch G 0.726542528 mul -72 R dup 0 D 4 {72 R dup 0 D -144 R dup 0 D} repeat pop MR FO}!
  51. /Sb {M dup 0 D exch 0 exch D neg 0 D FO}!
  52. /SB {MS T /BoxR edef /BoxW edef /BoxH edef BoxR 0 M
  53. BoxW 0 BoxW BoxH BoxR arct BoxW BoxH 0 BoxH BoxR arct 0 BoxH 0 0 BoxR arct 0 0 BoxW 0 BoxR arct MR FO}!
  54. /Sc {N 3 -1 roll 0 360 arc FO}!
  55. /Sd {M 4 {dup} repeat 0 G neg dup dup D exch D D FO}!
  56. /Se {N MS T R scale 0 0 1 0 360 arc MR FO}!
  57. /Sg {M MS 22.5 R dup 0 exch G -22.5 R 0.765366865 mul dup 0 D 6 {-45 R dup 0 D} repeat pop MR FO}!
  58. /Sh {M MS dup 0 G -120 R dup 0 D 4 {-60 R dup 0 D} repeat pop MR FO}!
  59. /Si {M MS dup neg 0 exch G 60 R 1.732050808 mul dup 0 D 120 R 0 D MR FO}!
  60. /Sj {M MS R dup -2 div 2 index -2 div G dup 0 D exch 0 exch D neg 0 D MR FO}!
  61. /Sn {M MS dup 0 exch G -36 R 1.175570505 mul dup 0 D 3 {-72 R dup 0 D} repeat pop MR FO}!
  62. /Sp {N 3 -1 roll 0 360 arc fs N}!
  63. /SP {M {D} repeat FO}!
  64. /Sr {M dup -2 div 2 index -2 div G dup 0 D exch 0 exch D neg 0 D FO}!
  65. /SR {MS T /BoxR edef /BoxW edef /BoxH edef BoxR BoxW -2 div BoxH -2 div T BoxR 0 M
  66. BoxW 0 BoxW BoxH BoxR arct BoxW BoxH 0 BoxH BoxR arct 0 BoxH 0 0 BoxR arct 0 0 BoxW 0 BoxR arct MR FO}!
  67. /Ss {M 1.414213562 mul dup dup dup -2 div dup G 0 D 0 exch D neg 0 D FO}!
  68. /St {M MS dup 0 exch G -60 R 1.732050808 mul dup 0 D -120 R 0 D MR FO}!
  69. /SV {0 exch M 0 D D D D D 0 D FO}!
  70. /Sv {0 0 M D D 0 D D D D D 0 D D FO}!
  71. /Sw {2 copy M 5 2 roll arc FO}!
  72. /Sx {M 1.414213562 mul 5 {dup} repeat -2 div dup G D neg 0 G neg D S}!
  73. /Sy {M dup 0 exch G dup -2 mul dup 0 exch D S}!
  74. /S+ {M dup 0 G dup -2 mul dup 0 D exch dup G 0 exch D S}!
  75. /S- {M dup 0 G dup -2 mul dup 0 D S}!
  76. /sw {stringwidth pop}!
  77. /sh {V MU 0 0 M FP pathbbox N 4 1 roll pop pop pop U}!
  78. /sd {V MU 0 0 M FP pathbbox N pop pop exch pop U}!
  79. /sH {V MU 0 0 M FP pathbbox N exch pop exch sub exch pop U}!
  80. /sb {E exch sh}!
  81. /bl {}!
  82. /bc {E -2 div 0 G}!
  83. /br {E neg 0 G}!
  84. /ml {dup 0 exch sh -2 div G}!
  85. /mc {dup E -2 div exch sh -2 div G}!
  86. /mr {dup E neg exch sh -2 div G}!
  87. /tl {dup 0 exch sh neg G}!
  88. /tc {dup E -2 div exch sh neg G}!
  89. /tr {dup E neg exch sh neg G}!
  90. /mx {2 copy lt {exch} if pop}!
  91. /PSL_xorig 0 def /PSL_yorig 0 def
  92. /TM {2 copy T PSL_yorig add /PSL_yorig edef PSL_xorig add /PSL_xorig edef}!
  93. /PSL_reencode {findfont dup length dict begin
  94. {1 index /FID ne {def}{pop pop} ifelse} forall
  95. exch /Encoding edef currentdict end definefont pop
  96. }!
  97. /PSL_eps_begin {
  98. /PSL_eps_state save def
  99. /PSL_dict_count countdictstack def
  100. /PSL_op_count count 1 sub def
  101. userdict begin
  102. /showpage {} def
  103. 0 setgray 0 setlinecap 1 setlinewidth
  104. 0 setlinejoin 10 setmiterlimit [] 0 setdash newpath
  105. /languagelevel where
  106. {pop languagelevel 1 ne {false setstrokeadjust false setoverprint} if} if
  107. }!
  108. /PSL_eps_end {
  109. count PSL_op_count sub {pop} repeat
  110. countdictstack PSL_dict_count sub {end} repeat
  111. PSL_eps_state restore
  112. }!
  113. /PSL_transp {
  114. /.setopacityalpha where {pop .setblendmode .setopacityalpha}{
  115. /pdfmark where {pop [ /BM exch /CA exch dup /ca exch /SetTransparency pdfmark}
  116. {pop pop} ifelse} ifelse
  117. }!
  118. /Standard+_Encoding [
  119. /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
  120. /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
  121. /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
  122. /.notdef /threequarters /threesuperior /trademark /twosuperior /yacute /ydieresis /zcaron
  123. /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
  124. /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
  125. /zero /one /two /three /four /five /six /seven
  126. /eight /nine /colon /semicolon /less /equal /greater /question
  127. /at /A /B /C /D /E /F /G
  128. /H /I /J /K /L /M /N /O
  129. /P /Q /R /S /T /U /V /W
  130. /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
  131. /quoteleft /a /b /c /d /e /f /g
  132. /h /i /j /k /l /m /n /o
  133. /p /q /r /s /t /u /v /w
  134. /x /y /z /braceleft /bar /braceright /asciitilde /florin
  135. /Atilde /Ccedilla /Eth /Lslash /Ntilde /Otilde /Scaron /Thorn
  136. /Yacute /Ydieresis /Zcaron /atilde /brokenbar /ccedilla /copyright /degree
  137. /divide /eth /logicalnot /lslash /minus /mu /multiply /ntilde
  138. /onehalf /onequarter /onesuperior /otilde /plusminus /registered /scaron /thorn
  139. /.notdef /exclamdown /cent /sterling /fraction /yen /florin /section
  140. /currency /quotesingle /quotedblleft /guillemotleft /guilsinglleft /guilsinglright /fi /fl
  141. /Aacute /endash /dagger /daggerdbl /periodcentered /Acircumflex /paragraph /bullet
  142. /quotesinglbase /quotedblbase /quotedblright /guillemotright /ellipsis /perthousand /Adieresis /questiondown
  143. /Agrave /grave /acute /circumflex /tilde /macron /breve /dotaccent
  144. /dieresis /Eacute /ring /cedilla /Ecircumflex /hungarumlaut /ogonek /caron
  145. /emdash /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute
  146. /Ocircumflex /Odieresis /Ograve /Uacute /Ucircumflex /Udieresis /Ugrave /aacute
  147. /acircumflex /AE /adieresis /ordfeminine /agrave /eacute /ecircumflex /edieresis
  148. /egrave /Oslash /OE /ordmasculine /iacute /icircumflex /idieresis /igrave
  149. /oacute /ae /ocircumflex /odieresis /ograve /dotlessi /uacute /ucircumflex
  150. /udieresis /oslash /oe /germandbls /ugrave /Aring /aring /ydieresis
  151. ] def
  152. /PSL_font_encode 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 39 array astore def
  153. /F0 {/Helvetica Y}!
  154. /F1 {/Helvetica-Bold Y}!
  155. /F2 {/Helvetica-Oblique Y}!
  156. /F3 {/Helvetica-BoldOblique Y}!
  157. /F4 {/Times-Roman Y}!
  158. /F5 {/Times-Bold Y}!
  159. /F6 {/Times-Italic Y}!
  160. /F7 {/Times-BoldItalic Y}!
  161. /F8 {/Courier Y}!
  162. /F9 {/Courier-Bold Y}!
  163. /F10 {/Courier-Oblique Y}!
  164. /F11 {/Courier-BoldOblique Y}!
  165. /F12 {/Symbol Y}!
  166. /F13 {/AvantGarde-Book Y}!
  167. /F14 {/AvantGarde-BookOblique Y}!
  168. /F15 {/AvantGarde-Demi Y}!
  169. /F16 {/AvantGarde-DemiOblique Y}!
  170. /F17 {/Bookman-Demi Y}!
  171. /F18 {/Bookman-DemiItalic Y}!
  172. /F19 {/Bookman-Light Y}!
  173. /F20 {/Bookman-LightItalic Y}!
  174. /F21 {/Helvetica-Narrow Y}!
  175. /F22 {/Helvetica-Narrow-Bold Y}!
  176. /F23 {/Helvetica-Narrow-Oblique Y}!
  177. /F24 {/Helvetica-Narrow-BoldOblique Y}!
  178. /F25 {/NewCenturySchlbk-Roman Y}!
  179. /F26 {/NewCenturySchlbk-Italic Y}!
  180. /F27 {/NewCenturySchlbk-Bold Y}!
  181. /F28 {/NewCenturySchlbk-BoldItalic Y}!
  182. /F29 {/Palatino-Roman Y}!
  183. /F30 {/Palatino-Italic Y}!
  184. /F31 {/Palatino-Bold Y}!
  185. /F32 {/Palatino-BoldItalic Y}!
  186. /F33 {/ZapfChancery-MediumItalic Y}!
  187. /F34 {/ZapfDingbats Y}!
  188. /F35 {/Ryumin-Light-EUC-H Y}!
  189. /F36 {/Ryumin-Light-EUC-V Y}!
  190. /F37 {/GothicBBB-Medium-EUC-H Y}!
  191. /F38 {/GothicBBB-Medium-EUC-V Y}!
  192. /PSL_pathtextdict 26 dict def
  193. /PSL_pathtext
  194. {PSL_pathtextdict begin
  195. /ydepth exch def
  196. /textheight exch def
  197. /just exch def
  198. /offset exch def
  199. /str exch def
  200. /pathdist 0 def
  201. /setdist offset def
  202. /charcount 0 def
  203. /justy just 4 idiv textheight mul 2 div neg ydepth sub def
  204. V flattenpath
  205. {movetoproc} {linetoproc}
  206. {curvetoproc} {closepathproc}
  207. pathforall
  208. U N
  209. end
  210. } def
  211. PSL_pathtextdict begin
  212. /movetoproc
  213. { /newy exch def /newx exch def
  214. /firstx newx def /firsty newy def
  215. /ovr 0 def
  216. newx newy transform
  217. /cpy exch def /cpx exch def
  218. } def
  219. /linetoproc
  220. { /oldx newx def /oldy newy def
  221. /newy exch def /newx exch def
  222. /dx newx oldx sub def
  223. /dy newy oldy sub def
  224. /dist dx dup mul dy dup mul add sqrt def
  225. dist 0 ne
  226. { /dsx dx dist div ovr mul def
  227. /dsy dy dist div ovr mul def
  228. oldx dsx add oldy dsy add transform
  229. /cpy exch def /cpx exch def
  230. /pathdist pathdist dist add def
  231. {setdist pathdist le
  232. {charcount str length lt
  233. {setchar} {exit} ifelse}
  234. { /ovr setdist pathdist sub def
  235. exit}
  236. ifelse
  237. } loop
  238. } if
  239. } def
  240. /curvetoproc
  241. { (ERROR: No curveto's after flattenpath!)
  242. print
  243. } def
  244. /closepathproc
  245. {firstx firsty linetoproc
  246. firstx firsty movetoproc
  247. } def
  248. /setchar
  249. { /char str charcount 1 getinterval def
  250. /charcount charcount 1 add def
  251. /charwidth char stringwidth pop def
  252. V cpx cpy itransform T
  253. dy dx atan R
  254. 0 justy M
  255. char show
  256. 0 justy neg G
  257. currentpoint transform
  258. /cpy exch def /cpx exch def
  259. U /setdist setdist charwidth add def
  260. } def
  261. end
  262. /PSL_set_label_heights
  263. {
  264. /PSL_n_labels_minus_1 PSL_n_labels 1 sub def
  265. /PSL_heights PSL_n_labels array def
  266. 0 1 PSL_n_labels_minus_1
  267. { /psl_k exch def
  268. /psl_label PSL_label_str psl_k get def
  269. PSL_label_font psl_k get cvx exec
  270. psl_label sH /PSL_height edef
  271. PSL_heights psl_k PSL_height put
  272. } for
  273. } def
  274. %%%%%%%%%%%%%%%%%%% CURVED BASELINE TEXT PLACEMENT FUNCTIONS
  275. /PSL_curved_path_labels
  276. { /psl_bits exch def
  277. /PSL_placetext psl_bits 2 and 2 eq def
  278. /PSL_clippath psl_bits 4 and 4 eq def
  279. /PSL_strokeline false def
  280. /PSL_fillbox psl_bits 128 and 128 eq def
  281. /PSL_drawbox psl_bits 256 and 256 eq def
  282. /PSL_n_paths1 PSL_n_paths 1 sub def
  283. /PSL_usebox PSL_fillbox PSL_drawbox or def
  284. PSL_clippath {clipsave N clippath} if
  285. /psl_k 0 def
  286. /psl_p 0 def
  287. 0 1 PSL_n_paths1
  288. { /psl_kk exch def
  289. /PSL_n PSL_path_n psl_kk get def
  290. /PSL_m PSL_label_n psl_kk get def
  291. /PSL_x PSL_path_x psl_k PSL_n getinterval def
  292. /PSL_y PSL_path_y psl_k PSL_n getinterval def
  293. /PSL_node PSL_label_node psl_p PSL_m getinterval def
  294. /PSL_angle PSL_label_angle psl_p PSL_m getinterval def
  295. /PSL_str PSL_label_str psl_p PSL_m getinterval def
  296. /PSL_fnt PSL_label_font psl_p PSL_m getinterval def
  297. PSL_curved_path_label
  298. /psl_k psl_k PSL_n add def
  299. /psl_p psl_p PSL_m add def
  300. } for
  301. PSL_clippath {PSL_clip} if N
  302. } def
  303. /PSL_curved_path_label
  304. {
  305. /PSL_n1 PSL_n 1 sub def
  306. /PSL_m1 PSL_m 1 sub def
  307. PSL_CT_calcstringwidth
  308. PSL_CT_calclinedist
  309. PSL_CT_addcutpoints
  310. /PSL_nn1 PSL_nn 1 sub def
  311. /n 0 def
  312. /k 0 def
  313. /j 0 def
  314. /PSL_seg 0 def
  315. /PSL_xp PSL_nn array def
  316. /PSL_yp PSL_nn array def
  317. PSL_xp 0 PSL_xx 0 get put
  318. PSL_yp 0 PSL_yy 0 get put
  319. 1 1 PSL_nn1
  320. { /i exch def
  321. /node_type PSL_kind i get def
  322. /j j 1 add def
  323. PSL_xp j PSL_xx i get put
  324. PSL_yp j PSL_yy i get put
  325. node_type 1 eq
  326. {n 0 eq
  327. {PSL_CT_drawline}
  328. { PSL_CT_reversepath
  329. PSL_CT_textline} ifelse
  330. /j 0 def
  331. PSL_xp j PSL_xx i get put
  332. PSL_yp j PSL_yy i get put
  333. } if
  334. } for
  335. n 0 eq {PSL_CT_drawline} if
  336. } def
  337. /PSL_CT_textline
  338. { PSL_fnt k get cvx exec
  339. /PSL_height PSL_heights k get def
  340. PSL_placetext {PSL_CT_placelabel} if
  341. PSL_clippath {PSL_CT_clippath} if
  342. /n 0 def /k k 1 add def
  343. } def
  344. /PSL_CT_calcstringwidth
  345. { /PSL_width PSL_m array def
  346. 0 1 PSL_m1
  347. { /i exch def
  348. PSL_fnt i get cvx exec
  349. PSL_width i PSL_str i get stringwidth pop put
  350. } for
  351. } def
  352. /PSL_CT_calclinedist
  353. { /PSL_newx PSL_x 0 get def
  354. /PSL_newy PSL_y 0 get def
  355. /dist 0.0 def
  356. /PSL_dist PSL_n array def
  357. PSL_dist 0 0.0 put
  358. 1 1 PSL_n1
  359. { /i exch def
  360. /PSL_oldx PSL_newx def
  361. /PSL_oldy PSL_newy def
  362. /PSL_newx PSL_x i get def
  363. /PSL_newy PSL_y i get def
  364. /dx PSL_newx PSL_oldx sub def
  365. /dy PSL_newy PSL_oldy sub def
  366. /dist dist dx dx mul dy dy mul add sqrt add def
  367. PSL_dist i dist put
  368. } for
  369. } def
  370. /PSL_CT_addcutpoints
  371. { /k 0 def
  372. /PSL_nc PSL_m 2 mul 1 add def
  373. /PSL_cuts PSL_nc array def
  374. /PSL_nc1 PSL_nc 1 sub def
  375. 0 1 PSL_m1
  376. { /i exch def
  377. /dist PSL_dist PSL_node i get get def
  378. /halfwidth PSL_width i get 2 div PSL_gap_x add def
  379. PSL_cuts k dist halfwidth sub put
  380. /k k 1 add def
  381. PSL_cuts k dist halfwidth add put
  382. /k k 1 add def
  383. } for
  384. PSL_cuts k 100000.0 put
  385. /PSL_nn PSL_n PSL_m 2 mul add def
  386. /PSL_xx PSL_nn array def
  387. /PSL_yy PSL_nn array def
  388. /PSL_kind PSL_nn array def
  389. /j 0 def
  390. /k 0 def
  391. /dist 0.0 def
  392. 0 1 PSL_n1
  393. { /i exch def
  394. /last_dist dist def
  395. /dist PSL_dist i get def
  396. k 1 PSL_nc1
  397. { /kk exch def
  398. /this_cut PSL_cuts kk get def
  399. dist this_cut gt
  400. { /ds dist last_dist sub def
  401. /f ds 0.0 eq {0.0} {dist this_cut sub ds div} ifelse def
  402. /i1 i 0 eq {0} {i 1 sub} ifelse def
  403. PSL_xx j PSL_x i get dup PSL_x i1 get sub f mul sub put
  404. PSL_yy j PSL_y i get dup PSL_y i1 get sub f mul sub put
  405. PSL_kind j 1 put
  406. /j j 1 add def
  407. /k k 1 add def
  408. } if
  409. } for
  410. dist PSL_cuts k get le
  411. {PSL_xx j PSL_x i get put PSL_yy j PSL_y i get put
  412. PSL_kind j 0 put
  413. /j j 1 add def
  414. } if
  415. } for
  416. } def
  417. /PSL_CT_reversepath
  418. {PSL_xp j get PSL_xp 0 get lt
  419. {0 1 j 2 idiv
  420. { /left exch def
  421. /right j left sub def
  422. /tmp PSL_xp left get def
  423. PSL_xp left PSL_xp right get put
  424. PSL_xp right tmp put
  425. /tmp PSL_yp left get def
  426. PSL_yp left PSL_yp right get put
  427. PSL_yp right tmp put
  428. } for
  429. } if
  430. } def
  431. /PSL_CT_placelabel
  432. {
  433. /PSL_just PSL_label_justify k get def
  434. /PSL_height PSL_heights k get def
  435. /psl_label PSL_str k get def
  436. /psl_depth psl_label sd def
  437. PSL_usebox
  438. {PSL_CT_clippath
  439. PSL_fillbox
  440. {V PSL_setboxrgb fill U} if
  441. PSL_drawbox
  442. {V PSL_setboxpen S U} if N
  443. } if
  444. PSL_CT_placeline psl_label PSL_gap_x PSL_just PSL_height psl_depth PSL_pathtext
  445. } def
  446. /PSL_CT_clippath
  447. {
  448. /H PSL_height 2 div PSL_gap_y add def
  449. /xoff j 1 add array def
  450. /yoff j 1 add array def
  451. /angle 0 def
  452. 0 1 j {
  453. /ii exch def
  454. /x PSL_xp ii get def
  455. /y PSL_yp ii get def
  456. ii 0 eq {
  457. /x1 PSL_xp 1 get def
  458. /y1 PSL_yp 1 get def
  459. /dx x1 x sub def
  460. /dy y1 y sub def
  461. }
  462. { /i1 ii 1 sub def
  463. /x1 PSL_xp i1 get def
  464. /y1 PSL_yp i1 get def
  465. /dx x x1 sub def
  466. /dy y y1 sub def
  467. } ifelse
  468. dx 0.0 ne dy 0.0 ne and
  469. { /angle dy dx atan 90 add def} if
  470. /sina angle sin def
  471. /cosa angle cos def
  472. xoff ii H cosa mul put
  473. yoff ii H sina mul put
  474. } for
  475. PSL_xp 0 get xoff 0 get add PSL_yp 0 get yoff 0 get add M
  476. 1 1 j {
  477. /ii exch def
  478. PSL_xp ii get xoff ii get add PSL_yp ii get yoff ii get add L
  479. } for
  480. j -1 0 {
  481. /ii exch def
  482. PSL_xp ii get xoff ii get sub PSL_yp ii get yoff ii get sub L
  483. } for P
  484. } def
  485. /PSL_CT_drawline
  486. {
  487. /str 20 string def
  488. PSL_strokeline
  489. {PSL_CT_placeline S} if
  490. /PSL_seg PSL_seg 1 add def
  491. /n 1 def
  492. } def
  493. /PSL_CT_placeline
  494. {PSL_xp 0 get PSL_yp 0 get M
  495. 1 1 j { /ii exch def PSL_xp ii get PSL_yp ii get L} for
  496. } def
  497. %%%%%%%%%%%%%%%%%%% DRAW BASELINE TEXT SEGMENT LINES
  498. /PSL_draw_path_lines
  499. {
  500. /PSL_n_paths1 PSL_n_paths 1 sub def
  501. V
  502. /psl_start 0 def
  503. 0 1 PSL_n_paths1
  504. { /psl_k exch def
  505. /PSL_n PSL_path_n psl_k get def
  506. /PSL_n1 PSL_n 1 sub def
  507. PSL_path_pen psl_k get cvx exec
  508. N
  509. PSL_path_x psl_start get PSL_path_y psl_start get M
  510. 1 1 PSL_n1
  511. { /psl_i exch def
  512. /psl_kk psl_i psl_start add def
  513. PSL_path_x psl_kk get PSL_path_y psl_kk get L
  514. } for
  515. S
  516. /psl_start psl_start PSL_n add def
  517. } for
  518. U
  519. } def
  520. %%%%%%%%%%%%%%%%%%% STRAIGHT BASELINE TEXT PLACEMENT FUNCTIONS
  521. /PSL_straight_path_labels
  522. {
  523. /psl_bits exch def
  524. /PSL_placetext psl_bits 2 and 2 eq def
  525. /PSL_rounded psl_bits 32 and 32 eq def
  526. /PSL_fillbox psl_bits 128 and 128 eq def
  527. /PSL_drawbox psl_bits 256 and 256 eq def
  528. /PSL_n_labels_minus_1 PSL_n_labels 1 sub def
  529. /PSL_usebox PSL_fillbox PSL_drawbox or def
  530. 0 1 PSL_n_labels_minus_1
  531. { /psl_k exch def
  532. PSL_ST_prepare_text
  533. PSL_usebox
  534. { PSL_rounded
  535. {PSL_ST_textbox_rect}
  536. {PSL_ST_textbox_round}
  537. ifelse
  538. PSL_fillbox {V PSL_setboxrgb fill U} if
  539. PSL_drawbox {V PSL_setboxpen S U} if
  540. N
  541. } if
  542. PSL_placetext {PSL_ST_place_label} if
  543. } for
  544. } def
  545. /PSL_straight_path_clip
  546. {
  547. /psl_bits exch def
  548. /PSL_rounded psl_bits 32 and 32 eq def
  549. /PSL_n_labels_minus_1 PSL_n_labels 1 sub def
  550. N clipsave clippath
  551. 0 1 PSL_n_labels_minus_1
  552. { /psl_k exch def
  553. PSL_ST_prepare_text
  554. PSL_rounded
  555. {PSL_ST_textbox_round}
  556. {PSL_ST_textbox_rect}
  557. ifelse
  558. } for
  559. PSL_clip N
  560. } def
  561. /PSL_ST_prepare_text
  562. {
  563. /psl_xp PSL_txt_x psl_k get def
  564. /psl_yp PSL_txt_y psl_k get def
  565. /psl_label PSL_label_str psl_k get def
  566. PSL_label_font psl_k get cvx exec
  567. /PSL_height PSL_heights psl_k get def
  568. /psl_boxH PSL_height PSL_gap_y 2 mul add def
  569. /PSL_just PSL_label_justify psl_k get def
  570. /PSL_justx PSL_just 4 mod 1 sub 2 div neg def
  571. /PSL_justy PSL_just 4 idiv 2 div neg def
  572. /psl_SW psl_label stringwidth pop def
  573. /psl_boxW psl_SW PSL_gap_x 2 mul add def
  574. /psl_x0 psl_SW PSL_justx mul def
  575. /psl_y0 PSL_justy PSL_height mul def
  576. /psl_angle PSL_label_angle psl_k get def
  577. } def
  578. /PSL_ST_textbox_rect
  579. {
  580. psl_xp psl_yp T psl_angle R psl_x0 psl_y0 T
  581. PSL_gap_x neg PSL_gap_y neg M
  582. 0 psl_boxH D psl_boxW 0 D 0 psl_boxH neg D P
  583. psl_x0 neg psl_y0 neg T psl_angle neg R psl_xp neg psl_yp neg T
  584. } def
  585. /PSL_ST_textbox_round
  586. {
  587. /psl_BoxR PSL_gap_x PSL_gap_y lt {PSL_gap_x} {PSL_gap_y} ifelse def
  588. /psl_xd PSL_gap_x psl_BoxR sub def
  589. /psl_yd PSL_gap_y psl_BoxR sub def
  590. /psl_xL PSL_gap_x neg def
  591. /psl_yB PSL_gap_y neg def
  592. /psl_yT psl_boxH psl_yB add def
  593. /psl_H2 PSL_height psl_yd 2 mul add def
  594. /psl_W2 psl_SW psl_xd 2 mul add def
  595. /psl_xR psl_xL psl_boxW add def
  596. /psl_x0 psl_SW PSL_justx mul def
  597. psl_xp psl_yp T psl_angle R psl_x0 psl_y0 T
  598. psl_xL psl_yd M
  599. psl_xL psl_yT psl_xR psl_yT psl_BoxR arct psl_W2 0 D
  600. psl_xR psl_yT psl_xR psl_yB psl_BoxR arct 0 psl_H2 neg D
  601. psl_xR psl_yB psl_xL psl_yB psl_BoxR arct psl_W2 neg 0 D
  602. psl_xL psl_yB psl_xL psl_yd psl_BoxR arct P
  603. psl_x0 neg psl_y0 neg T psl_angle neg R psl_xp neg psl_yp neg T
  604. } def
  605. /PSL_ST_place_label
  606. {
  607. V psl_xp psl_yp T psl_angle R
  608. psl_SW PSL_justx mul psl_y0 M
  609. psl_label dup sd neg 0 exch G show
  610. U
  611. } def
  612. /PSL_nclip 0 def
  613. /PSL_clip {clip /PSL_nclip PSL_nclip 1 add def} def
  614. /PSL_eoclip {eoclip /PSL_nclip PSL_nclip 1 add def} def
  615. /PSL_cliprestore {cliprestore /PSL_nclip PSL_nclip 1 sub def} def
  616. %%EndProlog
  617. %%BeginSetup
  618. /PSLevel /languagelevel where {pop languagelevel} {1} ifelse def
  619. PSLevel 1 gt { << /PageSize [612 792] /ImagingBBox null >> setpagedevice } if
  620. %%EndSetup
  621. %%Page: 1 1
  622. %%BeginPageSetup
  623. V 0.06 0.06 scale
  624. %%EndPageSetup
  625. /PSL_page_xsize 10200 def
  626. /PSL_page_ysize 13200 def
  627. 0 A
  628. FQ
  629. O0
  630. 1200 1200 TM
  631. % PostScript produced by:
  632. %%GMT: pstext -R0/10/0/10 -JX15c/10c -F+f24p,Helvetica+jCM -GC -B0 '-B+glightbrown+tText below deliberately not plotted' -C0 -K -P
  633. %%PROJ: xy 0.00000000 10.00000000 0.00000000 10.00000000 0.000 10.000 0.000 10.000 +xy +a=6378137.000 +b=6356752.314245
  634. %%BeginObject PSL_Layer_1
  635. 0 setlinecap
  636. 0 setlinejoin
  637. 3.32551 setmiterlimit
  638. {0.922 0.745 0.333 C} FS
  639. -7087 0 0 4724 7087 0 3 0 0 SP
  640. 25 W
  641. 2 setlinecap
  642. N 0 4724 M 0 -4724 D S
  643. /PSL_A0_y 0 def
  644. /PSL_A1_y 0 def
  645. /PSL_LH 0 def /PSL_L_y PSL_A0_y PSL_A1_y mx def
  646. 7087 0 T
  647. N 0 4724 M 0 -4724 D S
  648. /PSL_A0_y 0 def
  649. /PSL_A1_y 0 def
  650. /PSL_LH 0 def /PSL_L_y PSL_A0_y PSL_A1_y mx def
  651. -7087 0 T
  652. N 0 0 M 7087 0 D S
  653. /PSL_A0_y 0 def
  654. /PSL_A1_y 0 def
  655. /PSL_LH 0 def /PSL_L_y PSL_A0_y PSL_A1_y mx def
  656. 0 4724 T
  657. N 0 0 M 7087 0 D S
  658. /PSL_A0_y 0 def
  659. /PSL_A1_y 0 def
  660. /PSL_LH 0 def /PSL_L_y PSL_A0_y PSL_A1_y mx def
  661. 0 -4724 T
  662. 0 setlinecap
  663. /PSL_H_y PSL_L_y PSL_LH add 233 add def
  664. 3543 4724 PSL_H_y add M
  665. PSL_font_encode 0 get 0 eq {Standard+_Encoding /Helvetica /Helvetica PSL_reencode PSL_font_encode 0 1 put} if
  666. 400 F0
  667. (Text below deliberately not plotted) bc Z
  668. clipsave
  669. 0 0 M
  670. 7087 0 D
  671. 0 4724 D
  672. -7087 0 D
  673. PSL_clip N
  674. /PSL_setboxpen {4 W 0 A [] 0 B} def
  675. /PSL_setboxrgb {} def
  676. /PSL_label_justify [ 6 ] def
  677. /PSL_label_font [
  678. (0 A 400 F0)
  679. ] def
  680. /PSL_gap_x 0 def
  681. /PSL_gap_y 0 def
  682. /PSL_label_angle [ 0.00 ] def
  683. /PSL_label_str [
  684. (This text is plain but invisible)
  685. ] def
  686. /PSL_label_n [ 1 ] def
  687. /PSL_n_paths 1 def
  688. /PSL_n_labels 1 def
  689. /PSL_txt_x [ 3543 ] def
  690. /PSL_txt_y [ 2362 ] def
  691. /PSL_txt_n [ 1 ] def
  692. PSL_set_label_heights
  693. 4 PSL_straight_path_clip
  694. %%EndObject
  695. 0 A
  696. FQ
  697. O0
  698. 0 0 TM
  699. % PostScript produced by:
  700. %%GMT: psxy -R0/10/0/10 -JX15c/10c -L -Glightblue -W0.5p -O -K
  701. %%PROJ: xy 0.00000000 10.00000000 0.00000000 10.00000000 0.000 10.000 0.000 10.000 +xy +a=6378137.000 +b=6356752.314245
  702. %%BeginObject PSL_Layer_2
  703. 0 setlinecap
  704. 0 setlinejoin
  705. 3.32551 setmiterlimit
  706. 8 W
  707. {0.678 0.847 0.902 C} FS
  708. O1
  709. /FO {P}!
  710. -5669 0 0 3780 5669 0 3 709 472 SP
  711. /FO {fs os}!
  712. FO
  713. %%EndObject
  714. 0 A
  715. FQ
  716. O0
  717. 0 0 TM
  718. % PostScript produced by:
  719. %%GMT: psclip -C -O -K
  720. %%BeginObject PSL_Layer_3
  721. 0 setlinecap
  722. 0 setlinejoin
  723. 3.32551 setmiterlimit
  724. PSL_nclip {PSL_cliprestore} repeat
  725. %%EndObject
  726. 0 A
  727. FQ
  728. O0
  729. 0 5669 TM
  730. % PostScript produced by:
  731. %%GMT: pstext -R0/10/0/10 -JX15c/10c -F+f24p,Helvetica+jCM -Gc -B0 -B+glightbrown -C0 -O -K -Y12c
  732. %%PROJ: xy 0.00000000 10.00000000 0.00000000 10.00000000 0.000 10.000 0.000 10.000 +xy +a=6378137.000 +b=6356752.314245
  733. %%BeginObject PSL_Layer_4
  734. 0 setlinecap
  735. 0 setlinejoin
  736. 3.32551 setmiterlimit
  737. {0.922 0.745 0.333 C} FS
  738. -7087 0 0 4724 7087 0 3 0 0 SP
  739. 25 W
  740. 2 setlinecap
  741. N 0 4724 M 0 -4724 D S
  742. /PSL_A0_y 0 def
  743. /PSL_A1_y 0 def
  744. /PSL_LH 0 def /PSL_L_y PSL_A0_y PSL_A1_y mx def
  745. 7087 0 T
  746. N 0 4724 M 0 -4724 D S
  747. /PSL_A0_y 0 def
  748. /PSL_A1_y 0 def
  749. /PSL_LH 0 def /PSL_L_y PSL_A0_y PSL_A1_y mx def
  750. -7087 0 T
  751. N 0 0 M 7087 0 D S
  752. /PSL_A0_y 0 def
  753. /PSL_A1_y 0 def
  754. /PSL_LH 0 def /PSL_L_y PSL_A0_y PSL_A1_y mx def
  755. 0 4724 T
  756. N 0 0 M 7087 0 D S
  757. /PSL_A0_y 0 def
  758. /PSL_A1_y 0 def
  759. /PSL_LH 0 def /PSL_L_y PSL_A0_y PSL_A1_y mx def
  760. 0 -4724 T
  761. 0 setlinecap
  762. clipsave
  763. 0 0 M
  764. 7087 0 D
  765. 0 4724 D
  766. -7087 0 D
  767. PSL_clip N
  768. /PSL_setboxpen {4 W 0 A [] 0 B} def
  769. /PSL_setboxrgb {} def
  770. PSL_font_encode 0 get 0 eq {Standard+_Encoding /Helvetica /Helvetica PSL_reencode PSL_font_encode 0 1 put} if
  771. /PSL_label_justify [ 6 ] def
  772. /PSL_label_font [
  773. (0 A 400 F0)
  774. ] def
  775. /PSL_gap_x 0 def
  776. /PSL_gap_y 0 def
  777. /PSL_label_angle [ 0.00 ] def
  778. /PSL_label_str [
  779. (This text is plotted then clipped)
  780. ] def
  781. /PSL_label_n [ 1 ] def
  782. /PSL_n_paths 1 def
  783. /PSL_n_labels 1 def
  784. /PSL_txt_x [ 3543 ] def
  785. /PSL_txt_y [ 2362 ] def
  786. /PSL_txt_n [ 1 ] def
  787. PSL_set_label_heights
  788. 2 PSL_straight_path_labels
  789. 4 PSL_straight_path_clip
  790. %%EndObject
  791. 0 A
  792. FQ
  793. O0
  794. 0 0 TM
  795. % PostScript produced by:
  796. %%GMT: psxy -R0/10/0/10 -JX15c/10c -L -Glightblue -W0.5p -O -K
  797. %%PROJ: xy 0.00000000 10.00000000 0.00000000 10.00000000 0.000 10.000 0.000 10.000 +xy +a=6378137.000 +b=6356752.314245
  798. %%BeginObject PSL_Layer_5
  799. 0 setlinecap
  800. 0 setlinejoin
  801. 3.32551 setmiterlimit
  802. 8 W
  803. {0.678 0.847 0.902 C} FS
  804. O1
  805. /FO {P}!
  806. -5669 0 0 3780 5669 0 3 709 472 SP
  807. /FO {fs os}!
  808. FO
  809. %%EndObject
  810. 0 A
  811. FQ
  812. O0
  813. 0 0 TM
  814. % PostScript produced by:
  815. %%GMT: psclip -C -O
  816. %%BeginObject PSL_Layer_6
  817. 0 setlinecap
  818. 0 setlinejoin
  819. 3.32551 setmiterlimit
  820. PSL_nclip {PSL_cliprestore} repeat
  821. %%EndObject
  822. %%PageTrailer
  823. U
  824. showpage
  825. %%Trailer
  826. end
  827. %%EOF
Tip!

Press p or to see the previous file or, n or to see the next file

Comments

Loading...