home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume11 / psfig / part04 < prev    next >
Encoding:
Internet Message Format  |  1987-09-22  |  59.6 KB

  1. Subject:  v11i075:  Including PostScript figures in ditroff, Part04/05
  2. Newsgroups: comp.sources.unix
  3. Sender: sources
  4. Approved: rs@uunet.UU.NET
  5.  
  6. Submitted-by: trevor@linc.cis.upenn.edu (Trevor Darrell)
  7. Posting-number: Volume 11, Issue 75
  8. Archive-name: psfig/Part04
  9.  
  10. # This is a shell archive.  Remove anything before this line,
  11. # then unpack it by saving it in a file and typing "sh file".
  12. #
  13. # Contents:  trf/doc/figs/black.ps trf/doc/figs/gray.ps trf/doc/figs/lab.ps
  14. #    trf/doc/figs/mac.pro trf/doc/figs/piechart.ps trf/doc/figs/pretzel.ps
  15. #    trf/doc/figs/rosette.ps trf/doc/figs/smiley.ps trf/doc/figs/star.ps
  16. #    trf/doc/figs/white.ps
  17.  
  18. echo x - trf/doc/figs/black.ps
  19. sed 's/^@//' > "trf/doc/figs/black.ps" <<'@//E*O*F trf/doc/figs/black.ps//'
  20. %! balck.ps: a unit square.
  21. %%BoundingBox: 0 0 1 1
  22.  
  23. 0 setgray
  24. 0 0 moveto
  25. 0 1 lineto
  26. 1 1 lineto
  27. 1 0 lineto
  28. closepath
  29. fill
  30. @//E*O*F trf/doc/figs/black.ps//
  31. chmod u=rw,g=r,o=r trf/doc/figs/black.ps
  32.  
  33. echo x - trf/doc/figs/gray.ps
  34. sed 's/^@//' > "trf/doc/figs/gray.ps" <<'@//E*O*F trf/doc/figs/gray.ps//'
  35. %! gray.ps: a unit square for printing text against
  36. %%BoundingBox: 0 0 1 1
  37.  
  38. @.95 setgray
  39. 0 0 moveto
  40. 0 1 lineto
  41. 1 1 lineto
  42. 1 0 lineto
  43. closepath
  44. fill
  45. @//E*O*F trf/doc/figs/gray.ps//
  46. chmod u=rw,g=r,o=r trf/doc/figs/gray.ps
  47.  
  48. echo x - trf/doc/figs/lab.ps
  49. sed 's/^@//' > "trf/doc/figs/lab.ps" <<'@//E*O*F trf/doc/figs/lab.ps//'
  50. %!
  51. %%BoundingBox: 135 410 462 688
  52. md begin
  53. T 64 1520 50 72 72 psu
  54. (NewLab3; user: )jn
  55. %%Title: NewLab3
  56. %%Creator: MAC LaserWriter Driver
  57. %%For: 
  58. 1320 od
  59. %%EndProlog
  60. %%Page: ? 1
  61. op
  62. 0 0 xl
  63. 1 1 pen
  64. 0 0 gm
  65. 0 0 1440 1080 6 dorect
  66. 64 grlevel
  67. 369 723 442 742 4 dorect
  68. 0 grlevel
  69. 369.5 723.5 441.5 741.5 0 dorect
  70. 2 2 pen
  71. 797 158 gm
  72. 32 grlevel
  73. 776 179 lin
  74. 869 179 gm
  75. 848 158 lin
  76. 719 200 gm
  77. 0 grlevel
  78. 719 527 lin
  79. 749 608 gm
  80. 32 grlevel
  81. 749 596 lin
  82. 869 530 gm
  83. 869 578 lin
  84. 293 596 gm
  85. 671 596 lin
  86. bc
  87. 4 4 pen
  88. 292 529 gm
  89. 0 grlevel
  90. pt
  91. 292 643 pl
  92. 280 655 pl
  93. 256 655 pl
  94. 244 643 pl
  95. 244 526 pl
  96. eu
  97. 1 1 pen
  98. 0 0 gm
  99. 64 grlevel
  100. 585 267 634 274 4 dorect
  101. 0 grlevel
  102. 585.5 267.5 633.5 273.5 0 dorect
  103. 294 627 gm
  104. 273 627 lin
  105. 294 621 gm
  106. 273 621 lin
  107. 294 615 gm
  108. 273 615 lin
  109. 294 609 gm
  110. 273 609 lin
  111. 294 603 gm
  112. 273 603 lin
  113. 294 597 gm
  114. 273 597 lin
  115. 294 591 gm
  116. 273 591 lin
  117. 267 627 gm
  118. 246 627 lin
  119. 267 621 gm
  120. 246 621 lin
  121. 267 615 gm
  122. 246 615 lin
  123. 267 609 gm
  124. 246 609 lin
  125. 267 603 gm
  126. 246 603 lin
  127. 267 597 gm
  128. 246 597 lin
  129. 267 591 gm
  130. 246 591 lin
  131. bc
  132. 4 4 pen
  133. 292 526 gm
  134. 64 grlevel
  135. tr
  136. 0 grlevel
  137. pt
  138. 277 526 pl
  139. 277 544 pl
  140. 292 544 pl
  141. eu
  142. bc
  143. 670 529 gm
  144. pt
  145. 670 649 pl
  146. 685 664 pl
  147. 757 664 pl
  148. 769 652 pl
  149. 769 619 pl
  150. 757 607 pl
  151. 748 607 pl
  152. eu
  153. bc
  154. 718 595 gm
  155. pt
  156. 850 595 pl
  157. 868 577 pl
  158. eu
  159. 2 2 pen
  160. 869 458 gm
  161. 32 grlevel
  162. 869 506 lin
  163. 869 386 gm
  164. 869 434 lin
  165. 869 314 gm
  166. 869 362 lin
  167. 869 242 gm
  168. 869 290 lin
  169. 4 4 pen
  170. 868 289 gm
  171. 0 grlevel
  172. 868 313 lin
  173. 868 361 gm
  174. 868 385 lin
  175. 868 433 gm
  176. 868 457 lin
  177. 868 505 gm
  178. 868 529 lin
  179. bc
  180. 670 217 gm
  181. 64 grlevel
  182. tr
  183. 0 grlevel
  184. pt
  185. 685 217 pl
  186. 685 199 pl
  187. 670 199 pl
  188. eu
  189. bc
  190. 292 316 gm
  191. pt
  192. 292 205 pl
  193. 280 193 pl
  194. 244 193 pl
  195. 232 205 pl
  196. 232 283 pl
  197. 244 295 pl
  198. eu
  199. 2 2 pen
  200. 671 248 gm
  201. 32 grlevel
  202. 293 248 lin
  203. 4 4 pen
  204. 0 0 gm
  205. 64 grlevel
  206. 217 670 320 689 4 dorect
  207. 0 grlevel
  208. 219. 672. 318. 687. 0 dorect
  209. 685 526 gm
  210. 685 661 lin
  211. 670 526 gm
  212. 685 526 lin
  213. 0 0 gm
  214. 64 grlevel
  215. 247 277 320 296 4 dorect
  216. 0 grlevel
  217. 249. 279. 318. 294. 0 dorect
  218. 2 2 pen
  219. 293 527 gm
  220. 668 527 lin
  221. 671 317 gm
  222. 293 317 lin
  223. 245 524 gm
  224. 32 grlevel
  225. 245 491 lin
  226. 4 4 pen
  227. 271 247 gm
  228. 0 grlevel
  229. 292 247 lin
  230. 2 2 pen
  231. 389 317 gm
  232. 389 248 lin
  233. 449 317 gm
  234. 449 248 lin
  235. 509 317 gm
  236. 509 248 lin
  237. 575 317 gm
  238. 575 248 lin
  239. 575 596 gm
  240. 575 527 lin
  241. 509 596 gm
  242. 509 527 lin
  243. 449 596 gm
  244. 449 527 lin
  245. 389 596 gm
  246. 389 527 lin
  247. 4 4 pen
  248. 775 199 gm
  249. 718 199 lin
  250. 709 526 gm
  251. 718 526 lin
  252. 685 199 gm
  253. 688 199 lin
  254. 670 217 gm
  255. 670 142 lin
  256. 718 142 gm
  257. 718 199 lin
  258. 1 1 pen
  259. 672 147 gm
  260. 693 147 lin
  261. 672 153 gm
  262. 693 153 lin
  263. 672 159 gm
  264. 693 159 lin
  265. 672 165 gm
  266. 693 165 lin
  267. 699 147 gm
  268. 720 147 lin
  269. 699 153 gm
  270. 720 153 lin
  271. 699 159 gm
  272. 720 159 lin
  273. 699 165 gm
  274. 720 165 lin
  275. bc
  276. 693 144 gm
  277. pt
  278. 693 171 pl
  279. 699 171 pl
  280. 699 144 pl
  281. eu
  282. 4 4 pen
  283. 0 0 gm
  284. 64 grlevel
  285. 439 277 494 296 4 dorect
  286. 0 grlevel
  287. 441. 279. 492. 294. 0 dorect
  288. 64 grlevel
  289. 352 277 407 296 4 dorect
  290. 0 grlevel
  291. 354. 279. 405. 294. 0 dorect
  292. 1 1 pen
  293. 64 grlevel
  294. 210 240 247 286 4 dorect
  295. 0 grlevel
  296. 210.5 240.5 246.5 285.5 0 dorect
  297. 285 246 gm
  298. 240 210 lin
  299. 240 246 gm
  300. 285 210 lin
  301. 2 2 pen
  302. 473 527 gm
  303. 64 grlevel
  304. 455 527 lin
  305. 1 1 pen
  306. 456 528 gm
  307. 0 grlevel
  308. 456 546 lin
  309. 0 0 gm
  310. 510.5 438.5 546.5 474.5 360 450 0 doarc
  311. 2 2 pen
  312. 413 527 gm
  313. 64 grlevel
  314. 395 527 lin
  315. 1 1 pen
  316. 396 528 gm
  317. 0 grlevel
  318. 396 546 lin
  319. 0 0 gm
  320. 510.5 378.5 546.5 414.5 360 450 0 doarc
  321. 2 2 pen
  322. 365 527 gm
  323. 64 grlevel
  324. 383 527 lin
  325. 1 1 pen
  326. 384 528 gm
  327. 0 grlevel
  328. 384 546 lin
  329. 0 0 gm
  330. 510.5 366.5 546.5 402.5 90 180 0 doarc
  331. 2 2 pen
  332. 362 317 gm
  333. 64 grlevel
  334. 380 317 lin
  335. 1 1 pen
  336. 381 318 gm
  337. 0 grlevel
  338. 381 300 lin
  339. 0 0 gm
  340. 300.5 363.5 336.5 399.5 180 270 0 doarc
  341. 2 2 pen
  342. 533 527 gm
  343. 64 grlevel
  344. 515 527 lin
  345. 1 1 pen
  346. 516 528 gm
  347. 0 grlevel
  348. 516 546 lin
  349. 0 0 gm
  350. 510.5 498.5 546.5 534.5 360 450 0 doarc
  351. 2 2 pen
  352. 599 527 gm
  353. 64 grlevel
  354. 581 527 lin
  355. 1 1 pen
  356. 582 528 gm
  357. 0 grlevel
  358. 582 546 lin
  359. 0 0 gm
  360. 510.5 564.5 546.5 600.5 360 450 0 doarc
  361. 2 2 pen
  362. 599 317 gm
  363. 64 grlevel
  364. 581 317 lin
  365. 1 1 pen
  366. 582 318 gm
  367. 0 grlevel
  368. 582 300 lin
  369. 0 0 gm
  370. 300.5 564.5 336.5 600.5 270 360 0 doarc
  371. 2 2 pen
  372. 536 317 gm
  373. 64 grlevel
  374. 518 317 lin
  375. 1 1 pen
  376. 519 318 gm
  377. 0 grlevel
  378. 519 300 lin
  379. 0 0 gm
  380. 300.5 501.5 336.5 537.5 270 360 0 doarc
  381. 2 2 pen
  382. 476 317 gm
  383. 64 grlevel
  384. 458 317 lin
  385. 1 1 pen
  386. 459 318 gm
  387. 0 grlevel
  388. 459 300 lin
  389. 0 0 gm
  390. 300.5 441.5 336.5 477.5 270 360 0 doarc
  391. 2 2 pen
  392. 416 317 gm
  393. 64 grlevel
  394. 398 317 lin
  395. 1 1 pen
  396. 399 318 gm
  397. 0 grlevel
  398. 399 300 lin
  399. 0 0 gm
  400. 300.5 381.5 336.5 417.5 270 360 0 doarc
  401. 690 201 gm
  402. 690 186 lin
  403. 720 201 gm
  404. 720 186 lin
  405. 0 0 gm
  406. 186.5 675.5 216.5 705.5 270 360 0 doarc
  407. 186.5 705.5 216.5 735.5 180 270 0 doarc
  408. 246 528 gm
  409. 246 543 lin
  410. 276 528 gm
  411. 276 543 lin
  412. 0 0 gm
  413. 513.5 231.5 543.5 261.5 360 450 0 doarc
  414. 513.5 261.5 543.5 291.5 90 180 0 doarc
  415. 4 4 pen
  416. 718 595 gm
  417. 718 529 lin
  418. 2 2 pen
  419. 293 440 gm
  420. 293 404 lin
  421. 671 440 gm
  422. 671 404 lin
  423. 1 1 pen
  424. 0 0 gm
  425. 510.5 279.5 540.5 309.5 180 270 0 doarc
  426. 480.5 279.5 510.5 309.5 90 180 0 doarc
  427. 294 525 gm
  428. 279 525 lin
  429. 294 495 gm
  430. 279 495 lin
  431. 0 0 gm
  432. 336.5 279.5 366.5 309.5 180 270 0 doarc
  433. 306.5 279.5 336.5 309.5 90 180 0 doarc
  434. 294 351 gm
  435. 279 351 lin
  436. 294 321 gm
  437. 279 321 lin
  438. 0 0 gm
  439. 510.5 654.5 540.5 684.5 270 360 0 doarc
  440. 480.5 654.5 510.5 684.5 360 450 0 doarc
  441. 669 525 gm
  442. 684 525 lin
  443. 669 495 gm
  444. 684 495 lin
  445. 0 0 gm
  446. 336.5 657.5 366.5 687.5 270 360 0 doarc
  447. 306.5 657.5 336.5 687.5 360 450 0 doarc
  448. 672 351 gm
  449. 687 351 lin
  450. 672 321 gm
  451. 687 321 lin
  452. 0 0 gm
  453. 64 grlevel
  454. 443 408 480 457 4 dorect
  455. 0 grlevel
  456. 443.5 408.5 479.5 456.5 0 dorect
  457. 32 grlevel
  458. 449.5 420.5 473.5 444.5 0 doval
  459. 432 464 gm
  460. 0 grlevel
  461. 432 458 lin
  462. 435 461 gm
  463. 429 461 lin
  464. 423 489 gm
  465. 64 grlevel
  466. 481 420 492 446 2 dorect
  467. 0 grlevel
  468. 0 1 6 [tb
  469. {0 fs}fx
  470. {9 fz}fx
  471. %%Changefont: |----1Helvetica
  472. F /|----1Helvetica fnt
  473. 21 am 
  474. (Hand)aa
  475. ]es
  476. 0 0 gm
  477. 64 grlevel
  478. 419 437 432 450 4 doval
  479. 0 grlevel
  480. 419.5 437.5 431.5 449.5 0 doval
  481. 64 grlevel
  482. 410 422 441 441 4 dorect
  483. 0 grlevel
  484. 410.5 422.5 440.5 440.5 0 dorect
  485. 64 grlevel
  486. 420 425 430 435 4 dorect
  487. 0 grlevel
  488. 420.5 425.5 429.5 434.5 0 dorect
  489. 32 grlevel
  490. 420 434 430 438 4 dorect
  491. 0 grlevel
  492. 420.5 434.5 429.5 437.5 0 dorect
  493. 64 grlevel
  494. 387 486 433 535 4 dorect
  495. 0 grlevel
  496. 387.5 486.5 432.5 534.5 0 dorect
  497. 499 428 gm
  498. 0 1 6 [tb
  499. gf
  500. 25 am 
  501. (Vision)aa
  502. ]es
  503. 0 0 gm
  504. 64 grlevel
  505. 363 495 376 508 4 doval
  506. 0 grlevel
  507. 363.5 495.5 375.5 507.5 0 doval
  508. 64 grlevel
  509. 354 504 385 523 4 dorect
  510. 0 grlevel
  511. 354.5 504.5 384.5 522.5 0 dorect
  512. 64 grlevel
  513. 364 510 374 520 4 dorect
  514. 0 grlevel
  515. 364.5 510.5 373.5 519.5 0 dorect
  516. 32 grlevel
  517. 364 507 374 511 4 dorect
  518. 0 grlevel
  519. 364.5 507.5 373.5 510.5 0 dorect
  520. 399 670 gm
  521. 64 grlevel
  522. 642 396 678 586 2 dorect
  523. 0 grlevel
  524. 1 1 6 [tb
  525. {1 fs}fx
  526. {36 fz}fx
  527. %%Changefont: |----1Helvetica
  528. F /|----1Helvetica sbs 
  529. fnt
  530. 184 am 
  531. (         )aa
  532. ]es
  533. 4 4 pen
  534. 244 490 gm
  535. 220 490 lin
  536. 244 460 gm
  537. 220 460 lin
  538. 244 460 gm
  539. 244 352 lin
  540. 2 2 pen
  541. 245 350 gm
  542. 32 grlevel
  543. 245 317 lin
  544. 4 4 pen
  545. 244 250 gm
  546. 0 grlevel
  547. 244 316 lin
  548. 235 247 gm
  549. 250 247 lin
  550. 2 2 pen
  551. 707 527 gm
  552. 64 grlevel
  553. 689 527 lin
  554. 1 1 pen
  555. 690 528 gm
  556. 0 grlevel
  557. 690 546 lin
  558. 0 0 gm
  559. 510.5 672.5 546.5 708.5 360 450 0 doarc
  560. 4 4 pen
  561. 757 664 gm
  562. 757 607 lin
  563. 868 241 gm
  564. 868 178 lin
  565. 847 157 gm
  566. 796 157 lin
  567. 775 178 gm
  568. 775 199 lin
  569. 1 1 pen
  570. 0 0 gm
  571. 64 grlevel
  572. 464 638 477 651 4 doval
  573. 0 grlevel
  574. 464.5 638.5 476.5 650.5 0 doval
  575. 64 grlevel
  576. 455 647 486 666 4 dorect
  577. 0 grlevel
  578. 455.5 647.5 485.5 665.5 0 dorect
  579. 64 grlevel
  580. 465 653 475 663 4 dorect
  581. 0 grlevel
  582. 465.5 653.5 474.5 662.5 0 dorect
  583. 32 grlevel
  584. 465 650 475 654 4 dorect
  585. 0 grlevel
  586. 465.5 650.5 474.5 653.5 0 dorect
  587. 64 grlevel
  588. 434 638 447 651 4 doval
  589. 0 grlevel
  590. 434.5 638.5 446.5 650.5 0 doval
  591. 64 grlevel
  592. 425 647 456 666 4 dorect
  593. 0 grlevel
  594. 425.5 647.5 455.5 665.5 0 dorect
  595. 64 grlevel
  596. 435 653 445 663 4 dorect
  597. 0 grlevel
  598. 435.5 653.5 444.5 662.5 0 dorect
  599. 32 grlevel
  600. 435 650 445 654 4 dorect
  601. 0 grlevel
  602. 435.5 650.5 444.5 653.5 0 dorect
  603. 64 grlevel
  604. 404 638 417 651 4 doval
  605. 0 grlevel
  606. 404.5 638.5 416.5 650.5 0 doval
  607. 64 grlevel
  608. 395 647 426 666 4 dorect
  609. 0 grlevel
  610. 395.5 647.5 425.5 665.5 0 dorect
  611. 64 grlevel
  612. 405 653 415 663 4 dorect
  613. 0 grlevel
  614. 405.5 653.5 414.5 662.5 0 dorect
  615. 32 grlevel
  616. 405 650 415 654 4 dorect
  617. 0 grlevel
  618. 405.5 650.5 414.5 653.5 0 dorect
  619. 64 grlevel
  620. 374 638 387 651 4 doval
  621. 0 grlevel
  622. 374.5 638.5 386.5 650.5 0 doval
  623. 64 grlevel
  624. 365 647 396 666 4 dorect
  625. 0 grlevel
  626. 365.5 647.5 395.5 665.5 0 dorect
  627. 64 grlevel
  628. 375 653 385 663 4 dorect
  629. 0 grlevel
  630. 375.5 653.5 384.5 662.5 0 dorect
  631. 32 grlevel
  632. 375 650 385 654 4 dorect
  633. 0 grlevel
  634. 375.5 650.5 384.5 653.5 0 dorect
  635. bc
  636. 672 492 gm
  637. 32 grlevel
  638. pt
  639. 657 492 pl
  640. 657 354 pl
  641. 672 354 pl
  642. eu
  643. 0 0 gm
  644. 64 grlevel
  645. 396 594 409 607 4 doval
  646. 0 grlevel
  647. 396.5 594.5 408.5 606.5 0 doval
  648. 64 grlevel
  649. 381 585 400 616 4 dorect
  650. 0 grlevel
  651. 381.5 585.5 399.5 615.5 0 dorect
  652. 64 grlevel
  653. 384 596 394 606 4 dorect
  654. 0 grlevel
  655. 384.5 596.5 393.5 605.5 0 dorect
  656. 32 grlevel
  657. 393 596 397 606 4 dorect
  658. 0 grlevel
  659. 393.5 596.5 396.5 605.5 0 dorect
  660. 64 grlevel
  661. 354 594 367 607 4 doval
  662. 0 grlevel
  663. 354.5 594.5 366.5 606.5 0 doval
  664. 64 grlevel
  665. 363 585 382 616 4 dorect
  666. 0 grlevel
  667. 363.5 585.5 381.5 615.5 0 dorect
  668. 64 grlevel
  669. 369 596 379 606 4 dorect
  670. 0 grlevel
  671. 369.5 596.5 378.5 605.5 0 dorect
  672. 32 grlevel
  673. 366 596 370 606 4 dorect
  674. 0 grlevel
  675. 366.5 596.5 369.5 605.5 0 dorect
  676. 64 grlevel
  677. 376 558 389 571 4 doval
  678. 0 grlevel
  679. 376.5 558.5 388.5 570.5 0 doval
  680. 64 grlevel
  681. 367 567 398 586 4 dorect
  682. 0 grlevel
  683. 367.5 567.5 397.5 585.5 0 dorect
  684. 64 grlevel
  685. 377 573 387 583 4 dorect
  686. 0 grlevel
  687. 377.5 573.5 386.5 582.5 0 dorect
  688. 32 grlevel
  689. 377 570 387 574 4 dorect
  690. 0 grlevel
  691. 377.5 570.5 386.5 573.5 0 dorect
  692. 64 grlevel
  693. 372 330 381 348 4 dorect
  694. 0 grlevel
  695. 372.5 330.5 380.5 347.5 0 dorect
  696. 64 grlevel
  697. 383 302 432 375 4 dorect
  698. 0 grlevel
  699. 383.5 302.5 431.5 374.5 0 dorect
  700. 32 grlevel
  701. 389.5 308.5 425.5 344.5 0 doval
  702. 389.5 332.5 425.5 368.5 0 doval
  703. 326 404 gm
  704. 0 grlevel
  705. 326 410 lin
  706. 323 407 gm
  707. 329 407 lin
  708. 350 404 gm
  709. 350 410 lin
  710. 347 407 gm
  711. 353 407 lin
  712. 0 0 gm
  713. 64 grlevel
  714. 351 362 364 375 4 doval
  715. 0 grlevel
  716. 351.5 362.5 363.5 374.5 0 doval
  717. 64 grlevel
  718. 362 353 381 384 4 dorect
  719. 0 grlevel
  720. 362.5 353.5 380.5 383.5 0 dorect
  721. 64 grlevel
  722. 368 364 378 374 4 dorect
  723. 0 grlevel
  724. 368.5 364.5 377.5 373.5 0 dorect
  725. 32 grlevel
  726. 365 364 369 374 4 dorect
  727. 0 grlevel
  728. 365.5 364.5 368.5 373.5 0 dorect
  729. 303 364 gm
  730. 64 grlevel
  731. 356 300 367 340 2 dorect
  732. 0 grlevel
  733. 0 1 6 [tb
  734. {0 fs}fx
  735. {9 fz}fx
  736. %%Changefont: |----1Helvetica
  737. F /|----1Helvetica fnt
  738. 35 am 
  739. (Arm-Eye)aa
  740. ]es
  741. 0 0 gm
  742. 64 grlevel
  743. 438 309 451 322 4 doval
  744. 0 grlevel
  745. 438.5 309.5 450.5 321.5 0 doval
  746. 64 grlevel
  747. 431 320 462 339 4 dorect
  748. 0 grlevel
  749. 431.5 320.5 461.5 338.5 0 dorect
  750. 64 grlevel
  751. 441 326 451 336 4 dorect
  752. 0 grlevel
  753. 441.5 326.5 450.5 335.5 0 dorect
  754. 32 grlevel
  755. 441 323 451 327 4 dorect
  756. 0 grlevel
  757. 441.5 323.5 450.5 326.5 0 dorect
  758. 64 grlevel
  759. 438 354 451 367 4 doval
  760. 0 grlevel
  761. 438.5 354.5 450.5 366.5 0 doval
  762. 64 grlevel
  763. 431 338 462 357 4 dorect
  764. 0 grlevel
  765. 431.5 338.5 461.5 356.5 0 dorect
  766. 64 grlevel
  767. 441 341 451 351 4 dorect
  768. 0 grlevel
  769. 441.5 341.5 450.5 350.5 0 dorect
  770. 32 grlevel
  771. 441 350 451 354 4 dorect
  772. 0 grlevel
  773. 441.5 350.5 450.5 353.5 0 dorect
  774. 64 grlevel
  775. 465 570 478 583 4 doval
  776. 0 grlevel
  777. 465.5 570.5 477.5 582.5 0 doval
  778. 64 grlevel
  779. 444 558 469 598 4 dorect
  780. 0 grlevel
  781. 444.5 558.5 468.5 597.5 0 dorect
  782. 567 459 gm
  783. 64 grlevel
  784. 451 564 462 592 2 dorect
  785. 0 grlevel
  786. 0 1 6 [tb
  787. gf
  788. 23 am 
  789. (Voxel)aa
  790. ]es
  791. 4 4 pen
  792. 0 0 gm
  793. 64 grlevel
  794. 439 670 494 689 4 dorect
  795. 0 grlevel
  796. 441. 672. 492. 687. 0 dorect
  797. 64 grlevel
  798. 352 670 407 689 4 dorect
  799. 0 grlevel
  800. 354. 672. 405. 687. 0 dorect
  801. 1 1 pen
  802. 750 201 gm
  803. 750 303 lin
  804. 801 375 gm
  805. 867 375 lin
  806. 870 237 gm
  807. 750 237 lin
  808. 2 2 pen
  809. 749 215 gm
  810. 64 grlevel
  811. 749 233 lin
  812. 1 1 pen
  813. 750 234 gm
  814. 0 grlevel
  815. 768 234 lin
  816. 0 0 gm
  817. 216.5 732.5 252.5 768.5 270 360 0 doarc
  818. 870 303 gm
  819. 750 303 lin
  820. 2 2 pen
  821. 749 257 gm
  822. 64 grlevel
  823. 749 239 lin
  824. 1 1 pen
  825. 750 240 gm
  826. 0 grlevel
  827. 768 240 lin
  828. 0 0 gm
  829. 222.5 732.5 258.5 768.5 360 450 0 doarc
  830. 801 375 gm
  831. 801 303 lin
  832. 801 447 gm
  833. 801 375 lin
  834. 870 447 gm
  835. 801 447 lin
  836. 870 519 gm
  837. 720 519 lin
  838. 801 447 gm
  839. 801 519 lin
  840. 2 2 pen
  841. 800 350 gm
  842. 64 grlevel
  843. 800 368 lin
  844. 1 1 pen
  845. 801 369 gm
  846. 0 grlevel
  847. 819 369 lin
  848. 0 0 gm
  849. 351.5 783.5 387.5 819.5 270 360 0 doarc
  850. 2 2 pen
  851. 800 398 gm
  852. 64 grlevel
  853. 800 380 lin
  854. 1 1 pen
  855. 801 381 gm
  856. 0 grlevel
  857. 819 381 lin
  858. 0 0 gm
  859. 363.5 783.5 399.5 819.5 360 450 0 doarc
  860. 2 2 pen
  861. 800 494 gm
  862. 64 grlevel
  863. 800 512 lin
  864. 1 1 pen
  865. 801 513 gm
  866. 0 grlevel
  867. 819 513 lin
  868. 0 0 gm
  869. 495.5 783.5 531.5 819.5 270 360 0 doarc
  870. 2 2 pen
  871. 752 518 gm
  872. 64 grlevel
  873. 734 518 lin
  874. 1 1 pen
  875. 735 519 gm
  876. 0 grlevel
  877. 735 537 lin
  878. 0 0 gm
  879. 501.5 717.5 537.5 753.5 360 450 0 doarc
  880. 2 2 pen
  881. 719 470 gm
  882. 64 grlevel
  883. 719 452 lin
  884. 1 1 pen
  885. 720 453 gm
  886. 0 grlevel
  887. 738 453 lin
  888. 0 0 gm
  889. 435.5 702.5 471.5 738.5 360 450 0 doarc
  890. 2 2 pen
  891. 719 341 gm
  892. 64 grlevel
  893. 719 359 lin
  894. 1 1 pen
  895. 720 360 gm
  896. 0 grlevel
  897. 738 360 lin
  898. 0 0 gm
  899. 342.5 702.5 378.5 738.5 270 360 0 doarc
  900. 64 grlevel
  901. 558 819 571 832 4 doval
  902. 0 grlevel
  903. 558.5 819.5 570.5 831.5 0 doval
  904. 64 grlevel
  905. 570 807 583 820 4 doval
  906. 0 grlevel
  907. 570.5 807.5 582.5 819.5 0 doval
  908. 64 grlevel
  909. 570 789 583 802 4 doval
  910. 0 grlevel
  911. 570.5 789.5 582.5 801.5 0 doval
  912. 64 grlevel
  913. 570 771 583 784 4 doval
  914. 0 grlevel
  915. 570.5 771.5 582.5 783.5 0 doval
  916. 64 grlevel
  917. 558 759 571 772 4 doval
  918. 0 grlevel
  919. 558.5 759.5 570.5 771.5 0 doval
  920. 64 grlevel
  921. 546 771 559 784 4 doval
  922. 0 grlevel
  923. 546.5 771.5 558.5 783.5 0 doval
  924. 64 grlevel
  925. 546 789 559 802 4 doval
  926. 0 grlevel
  927. 546.5 789.5 558.5 801.5 0 doval
  928. 64 grlevel
  929. 546 807 559 820 4 doval
  930. 0 grlevel
  931. 546.5 807.5 558.5 819.5 0 doval
  932. 64 grlevel
  933. 555 768 574 787 4 dorect
  934. 0 grlevel
  935. 555.5 768.5 573.5 786.5 0 dorect
  936. 64 grlevel
  937. 555 786 574 805 4 dorect
  938. 0 grlevel
  939. 555.5 786.5 573.5 804.5 0 dorect
  940. 64 grlevel
  941. 555 804 574 823 4 dorect
  942. 0 grlevel
  943. 555.5 804.5 573.5 822.5 0 dorect
  944. 64 grlevel
  945. 375 726 394 739 4 dorect
  946. 0 grlevel
  947. 375.5 726.5 393.5 738.5 0 dorect
  948. 64 grlevel
  949. 422 728 435 738 4 dorect
  950. 0 grlevel
  951. 422.5 728.5 434.5 737.5 0 dorect
  952. 64 grlevel
  953. 417 726 421 730 4 doval
  954. 0 grlevel
  955. 417.5 726.5 420.5 729.5 0 doval
  956. 64 grlevel
  957. 414 729 418 733 4 doval
  958. 0 grlevel
  959. 414.5 729.5 417.5 732.5 0 doval
  960. 64 grlevel
  961. 417 732 421 736 4 doval
  962. 0 grlevel
  963. 417.5 732.5 420.5 735.5 0 doval
  964. 64 grlevel
  965. 521 824 537 867 4 dorect
  966. 0 grlevel
  967. 521.5 824.5 536.5 866.5 0 dorect
  968. 64 grlevel
  969. 524 827 537 840 4 dorect
  970. 0 grlevel
  971. 524.5 827.5 536.5 839.5 0 dorect
  972. 64 grlevel
  973. 524 839 537 852 4 dorect
  974. 0 grlevel
  975. 524.5 839.5 536.5 851.5 0 dorect
  976. 64 grlevel
  977. 524 851 537 864 4 dorect
  978. 0 grlevel
  979. 524.5 851.5 536.5 863.5 0 dorect
  980. 702 641 gm
  981. 64 grlevel
  982. 633 699 644 745 2 dorect
  983. 0 grlevel
  984. 0 1 6 [tb
  985. gf
  986. 41 am 
  987. (Workshop)aa
  988. ]es
  989. 0 0 gm
  990. 64 grlevel
  991. 435 780 445 790 4 doval
  992. 0 grlevel
  993. 435.5 780.5 444.5 789.5 0 doval
  994. 64 grlevel
  995. 426 765 457 784 4 dorect
  996. 0 grlevel
  997. 426.5 765.5 456.5 783.5 0 dorect
  998. 64 grlevel
  999. 450 783 460 793 4 dorect
  1000. 0 grlevel
  1001. 450.5 783.5 459.5 792.5 0 dorect
  1002. 32 grlevel
  1003. 447 783 451 793 4 dorect
  1004. 0 grlevel
  1005. 447.5 783.5 450.5 792.5 0 dorect
  1006. 64 grlevel
  1007. 327 768 337 778 4 doval
  1008. 0 grlevel
  1009. 327.5 768.5 336.5 777.5 0 doval
  1010. 64 grlevel
  1011. 315 753 346 772 4 dorect
  1012. 0 grlevel
  1013. 315.5 753.5 345.5 771.5 0 dorect
  1014. 64 grlevel
  1015. 312 771 322 781 4 dorect
  1016. 0 grlevel
  1017. 312.5 771.5 321.5 780.5 0 dorect
  1018. 32 grlevel
  1019. 321 771 325 781 4 dorect
  1020. 0 grlevel
  1021. 321.5 771.5 324.5 780.5 0 dorect
  1022. 64 grlevel
  1023. 414 735 418 739 4 doval
  1024. 0 grlevel
  1025. 414.5 735.5 417.5 738.5 0 doval
  1026. 64 grlevel
  1027. 425 731 432 738 4 doval
  1028. 0 grlevel
  1029. 425.5 731.5 431.5 737.5 0 doval
  1030. 475 681 gm
  1031. 403 681 lin
  1032. 475 681 gm
  1033. 475 687 lin
  1034. 403 681 gm
  1035. 403 687 lin
  1036. 439 681 gm
  1037. 439 687 lin
  1038. 457 681 gm
  1039. 457 687 lin
  1040. 421 681 gm
  1041. 421 687 lin
  1042. 469 681 gm
  1043. 469 684 lin
  1044. 463 681 gm
  1045. 463 684 lin
  1046. 451 681 gm
  1047. 451 684 lin
  1048. 445 681 gm
  1049. 445 684 lin
  1050. 433 681 gm
  1051. 433 684 lin
  1052. 427 681 gm
  1053. 427 684 lin
  1054. 415 681 gm
  1055. 415 684 lin
  1056. 409 681 gm
  1057. 409 684 lin
  1058. 402 696 gm
  1059. 0 1 6 [tb
  1060. gf
  1061. 5 am 
  1062. (0)aa
  1063. ]es
  1064. 420 696 gm
  1065. 0 1 6 [tb
  1066. gf
  1067. 5 am 
  1068. (3)aa
  1069. ]es
  1070. 438 696 gm
  1071. 0 1 6 [tb
  1072. gf
  1073. 5 am 
  1074. (6)aa
  1075. ]es
  1076. 456 696 gm
  1077. 0 1 6 [tb
  1078. gf
  1079. 5 am 
  1080. (9)aa
  1081. ]es
  1082. 471 696 gm
  1083. 0 1 6 [tb
  1084. gf
  1085. 10 am 
  1086. (12)aa
  1087. ]es
  1088. 484 696 gm
  1089. 0 1 5 [tb
  1090. gf
  1091. 16 am 
  1092. (feet)aa
  1093. ]es
  1094. 0 page
  1095. cp
  1096. %%Trailer
  1097. end
  1098. @//E*O*F trf/doc/figs/lab.ps//
  1099. chmod u=rw,g=r,o=r trf/doc/figs/lab.ps
  1100.  
  1101. echo x - trf/doc/figs/mac.pro
  1102. sed 's/^@//' > "trf/doc/figs/mac.pro" <<'@//E*O*F trf/doc/figs/mac.pro//'
  1103. %!
  1104. % Modified slightly by Ned Batchelder, University of Pennsylvania [Ned].
  1105. %
  1106. % Modified slightly for Textset.  Changes are marked with "jjs".
  1107. %    Jim Sterken
  1108. %    September 20, 1985
  1109. %
  1110. % ------------
  1111. %
  1112. %         Macintosh LaserWriter header file.
  1113. %
  1114. % This is a file of PostScript definitions that can be affixed to the
  1115. % front of the PostScript files generated by Macintosh applications in order
  1116. % that they can be printed on a LaserWriter that has not been initialized
  1117. % with the "LaserPrep" package. This situation will arise if you are
  1118. % trying to share a LaserWriter between Macintosh users and non-Macintosh
  1119. % users.
  1120. %
  1121. % Macintosh applications do not normally generate straight PostScript.
  1122. % They generate a file in PostScript format, but the contents of the file
  1123. % is a series of calls on functions that are not part of the PostScript
  1124. % language. This file defines those functions.
  1125. %
  1126. % This is not the official Apple header file. It is neither endorsed nor
  1127. % condemned by Apple. I suspect that it probably started out its life
  1128. % as a bootleg copy of a version of the Apple header file. It has been
  1129. % slightly modified by me and perhaps heavily modified by various other
  1130. % people. I have substantially augmented the comments so that they explain
  1131. % what I think the code is doing.
  1132. %
  1133. %    Brian Reid    Reid@SU-Glacier.ARPA
  1134. %    Stanford    {decwrl,hplabs,bellcore}!glacier!reid
  1135. %
  1136. % WARNING: There is no guarantee that Apple will stick to this particular
  1137. % set of definitions. This header file works with the application software
  1138. % that came with my LaserWriter; I make no promises that it will work with
  1139. % the software on anybody else's LaserWriter.
  1140. %
  1141. % To convert this file back into a downloaded file instead of a header
  1142. % file, uncomment all of the lines beginning with %-%
  1143.  
  1144. %-%0000000            % Server loop exit password
  1145. %-%serverdict begin exitserver
  1146. %-%  systemdict /statusdict known
  1147. %-%  {statusdict begin 9 0 3 setsccinteractive /waittimeout 300 def end}
  1148. %-% if
  1149. /md 200 dict def        % define a working dictionary
  1150. md begin            % start using it
  1151. /av 13 def            % define apple version
  1152. /mtx matrix currentmatrix def    % save current transformation
  1153. /s30 30 string def
  1154. /s1 ( ) def
  1155. /pys 1 def
  1156. /pxs 1 def
  1157. /pyt 760 def
  1158. /pxt 29.52 def
  1159. /por true def
  1160. /xl {translate} def
  1161. /fp {pnsh 0 ne pnsv 0 ne and} def
  1162.  
  1163. % Define QuickDraw operators as an array of procedures.
  1164. % They are {frame, paint, erase, invert, fill}
  1165. % For some reason "invert" is a no-op.
  1166.  
  1167. /vrb [
  1168. {fp
  1169.  {gsave 1 setlinewidth pnsh pnsv scale stroke grestore}
  1170.  if newpath}
  1171. {eofill}
  1172. {eofill}
  1173. {newpath}
  1174. {eofill}
  1175. {initclip eoclip newpath}
  1176. {newpath}    % [Ned] Some figures were painting an all black page.
  1177. {}
  1178. {}
  1179. {}
  1180. ] def
  1181.  
  1182. % convenience function for backwards def
  1183. /xdf {exch def} def
  1184.  
  1185. % get current halftone screen parameters
  1186. currentscreen
  1187.     /spf xdf        % spot function
  1188.     /rot xdf        % rotation
  1189.     /freq xdf        % spatial frequency
  1190.  
  1191. % "apply" function to execute appropriate numbered operator from /vrb.
  1192. /doop {vrb exch get exec} def
  1193.  
  1194. % compute page position from portrait/landscape flag, translation, scale,
  1195. %    and resolution.
  1196. %  call: P/L-flag xtransl ytransl scale*100 xbits/inch ybits/inch psu
  1197. % typical call: F 580 760 100 72 72 psu for life-size screen-resolution
  1198. % image.
  1199. %
  1200. /psu
  1201.   {2 index .72 mul exch div /pys xdf    % pixel y scale
  1202.   div .72 mul /pxs xdf            % pixel x scale
  1203.  /pyt xdf                % pixel y translation
  1204.  /pxt xdf                % pixel x translation
  1205.  /por xdf                % portrait flag (T=portrait)
  1206. } def
  1207.  
  1208. % argument is page y size; use this to determine legal, letter, or note
  1209. % and to set up appropriate scale factors and translation/reflection
  1210. % for portrait or landscape.
  1211.  
  1212. /txpose{
  1213.     dup 1680 eq
  1214.     %
  1215.     % I've disabled this because it was blanking the page (jjs)
  1216.     %
  1217.     % userdict /note known
  1218.     %   {{legal}{note}ifelse}
  1219.     %   {pop}
  1220.     % ifelse
  1221.     dup 1212 eq {54 32.4 xl} if
  1222.     1321 eq {8.64 -.6 xl} if
  1223.     pxs pys scale pxt pyt xl 
  1224.     por not {270 rotate} if
  1225.     1 -1 scale
  1226. } def
  1227.  
  1228. % Compute oblique shear value for font if flag true
  1229. /obl {{0.212557 mul}{pop 0} ifelse} def
  1230.  
  1231. %  set font from dictionary: make a font, set it to current, leave on stack
  1232. %  call: "found-font size oblique-flag dictionary sfd"
  1233. /sfd {
  1234.    [ps 0 ps 6 -1 roll obl ps neg 0 0] makefont
  1235.    dup setfont
  1236. } def
  1237. /fnt {findfont sfd} def
  1238.  
  1239. % bit test-- "number mask-word bt" returns boolean and unchanged number
  1240. % thus, "4095 512 bt" returns "true 4095" -- the argument is a mask
  1241. % and not a bit number.
  1242.  
  1243. /bt {1 index and 0 ne exch} def
  1244.  
  1245. % load style array with unpacked true/false flags from style word
  1246. % flags are Bold, Italic, Underline, Outline, Shadow (I don't know
  1247. % what the 6th one is supposed to be).
  1248. /sa 6 array def
  1249. /fs {
  1250.     1 bt     2 bt    4 bt    8 bt   16 bt
  1251.    sa astore pop
  1252. } def
  1253.  
  1254. /matrix1 matrix def
  1255. /matrix2 matrix def
  1256. /gf{
  1257.   currentfont
  1258. } def
  1259.  
  1260. % set translation center from 2 double-precision integers giving x,y
  1261. /tc{
  1262.    32768 div add        % compute y location
  1263.    3 1 roll
  1264.    32768 div add        % compute x location
  1265.    2t astore pop        % save 'em
  1266. } def
  1267.  
  1268. /3a [0 0 0] def
  1269. /2t 2 array def
  1270.  
  1271. % store transformation params: "justify flip rotation tp"
  1272. % (left/center/right/full, none/yflip,xflip, degrees)
  1273. /tp{
  1274.    3a astore pop
  1275. } def
  1276. /ee {} def
  1277.  
  1278. % move PostScript current position to QuickDraw current position,
  1279. % and get scaling and rotation right (this is in preparation for
  1280. % outputting text
  1281. /tt {
  1282.    gsave
  1283.      currentpoint 2 copy
  1284.      2t aload pop qa 2 copy xl
  1285.      3a aload pop exch dup 0 eq
  1286.      {pop}
  1287.      {1 eq {-1 1}
  1288.        {1 -1}ifelse scale}
  1289.      ifelse
  1290.      rotate
  1291.      pop neg exch neg exch xl
  1292.      moveto
  1293. } def
  1294.  
  1295. /te {                % text-end: undo effects of prior "tt"
  1296.    currentpoint currentfont
  1297.    grestore setfont moveto    % but leave font and currentpoint set
  1298. } def
  1299.  
  1300. /tb {
  1301.    /tg currentgray def
  1302.    3 -1 roll 3 eq
  1303.    {1 setgray} if
  1304.    /ml 0 def /al 0 def
  1305. } def
  1306.  
  1307. /am {
  1308.    ml add /ml xdf
  1309. } def
  1310.  
  1311. /aa {
  1312.    [currentgray /setgray cvx] cvx
  1313.    exch dup wi pop dup al add /al xdf exch
  1314. } def
  1315.  
  1316. % scale by rational value (quotient) in x and y. Set "scaleflag" to
  1317. % record that we have done this.
  1318.  
  1319. /th {
  1320.    3 -1 roll div
  1321.    3 1 roll exch div
  1322. % not sure of "transform" in next line (BKR)
  1323.    2 copy matrix1 transform scale
  1324.    pop scale
  1325.    /scaleflag true def
  1326. } def
  1327.  
  1328. % undo a "th" scaling and return to default coordinate system
  1329. /tu {
  1330.    1 1 matrix1 itransform scale
  1331.    /scaleflag false def
  1332. } def
  1333.  
  1334. /ts {
  1335.    1 1 matrix1 transform scale
  1336.    /scaleflag true def
  1337. } def
  1338.  
  1339. % record point size (of fonts)
  1340. /fz{/ps xdf} def
  1341.  
  1342. % execute a procedure but leave it on the stack
  1343. /fx{dup exec} def
  1344.  
  1345. /st{show pop pop} def
  1346.  
  1347. % text munger. This does the dirty work for the edit string procedure
  1348. % (following) by iterating over a polymorphic array and doing the right
  1349. % thing with what it finds there.
  1350. /tm {
  1351.       {dup type dup /integertype eq exch /realtype eq or
  1352.      {dup ml mul}
  1353.      {dup type /stringtype eq
  1354.         {rs}
  1355.         {dup type /dicttype eq
  1356.            {setfont}
  1357.            {dup type /arraytype eq
  1358.           {exec}
  1359.           {pop}
  1360.           ifelse
  1361.            } ifelse
  1362.         } ifelse
  1363.      } ifelse
  1364.       } forall
  1365.    } def
  1366.  
  1367. % edit string. Takes a font, a text mode, a justification mode, and an
  1368. % array of text and font changes for that text, and does it.
  1369. /es {
  1370.    3 -1 roll dup sa 5 get dup type /nulltype eq
  1371.    {pop4 pop}
  1372.    {sa 1 get
  1373.       {/ml ml .2 ps mul sub def} if
  1374.       ne {fs}
  1375.      {pop}
  1376.       ifelse exch
  1377.       dup 1 eq            % justification mode 1 is left-justify
  1378.       {pop
  1379.      al ml gt
  1380.      {/tv {ll} /ml ml al dup 0 ne
  1381.         {div}{pop} ifelse
  1382.      def}
  1383.      {/tv {st} /ml 1 def}
  1384.      ifelse def tm
  1385.       }
  1386.       {dup 3 eq         % justification mode 3 is right-justify
  1387.       {pop
  1388.       al ml gt
  1389.       {/tv {ll} /ml ml al dup 0 ne
  1390.     {div}{pop} ifelse
  1391.     def}
  1392.       {ml al sub 0 rmoveto
  1393.     /tv {st} /ml 1 def}
  1394.       ifelse def
  1395.      tm}
  1396.       {2 eq            % justification mode 3 is centered
  1397.       {al ml gt
  1398.      { /tv {ll} /ml ml al dup
  1399.        0 ne
  1400.        {div}{pop}
  1401.        ifelse def}
  1402.      {ml al sub 2 div 0 rmoveto
  1403.        /tv {st} /ml 1 def}
  1404.        ifelse def
  1405.      tm}
  1406.       {             % otherwise it is just "justified"
  1407.     /tv {ll} def
  1408.     /ml ml al dup 0 ne
  1409.       {div}{pop}
  1410.       ifelse def
  1411.      tm}
  1412.        ifelse}
  1413.      ifelse}
  1414.    ifelse}
  1415.    ifelse
  1416.    tg setgray
  1417. }def
  1418.  
  1419. /pop4 {pop pop pop pop} def
  1420. % --------------------------------------------------------------------
  1421. %             QuickDraw Procedures
  1422. %
  1423. % moveto. If a scale factor is in effect, then honor it.
  1424. /gm {
  1425.   scaleflag {matrix1 itransform} if
  1426.   moveto
  1427. } def
  1428.  
  1429. %local y move
  1430. % call: "x y localy ly"
  1431. /ly {
  1432.    exch pop
  1433.    currentpoint exch pop
  1434.    sub 0 exch rmoveto
  1435. } def
  1436.  
  1437. % print n copies of page  (ensures full speed for multiple copies)
  1438. /page {
  1439.    1 add /#copies xdf showpage
  1440. } def
  1441.  
  1442. /sk {
  1443.    systemdict /statusdict known
  1444. } def
  1445.  
  1446. % set job name
  1447. /jn {
  1448.    sk {statusdict /jobname 3 -1 roll put}
  1449.       {pop}
  1450.    ifelse
  1451. } def
  1452.  
  1453. % set pen size: h v pen
  1454. /pen {
  1455.    /pnsv xdf
  1456.    /pnsh xdf
  1457.    pnsh setlinewidth
  1458. } def
  1459.  
  1460. % draw line
  1461. % (uses current pen location, pen size and graylevel)
  1462. % This emulates the ugly QuickDraw pen on the LaserWriter but
  1463. % preserves the same endpoint and linewidth anomalies that some applications
  1464. % rely on. (Bletch).
  1465. /dlin {
  1466.    currentpoint newpath moveto
  1467.    lineto currentpoint stroke
  1468.    grestore moveto
  1469. } def
  1470.  
  1471. /lin {
  1472.    currentpoint /pnlv xdf /pnlh xdf
  1473.    gsave newpath /@y xdf /@x xdf fp
  1474.    {pnlh @x lt
  1475.       {pnlv @y ge
  1476.      {pnlh pnlv moveto @x @y lineto
  1477.       pnsh 0 rlineto
  1478.       0 pnsv rlineto
  1479.       pnlh pnsh add pnlv pnsv add lineto
  1480.       pnsh neg 0 rlineto}
  1481.      {pnlh pnlv moveto
  1482.       pnsh 0 rlineto
  1483.       @x pnsh add @y lineto
  1484.       0 pnsv rlineto
  1485.       pnsh neg 0 rlineto
  1486.       pnlh pnlv pnsv add lineto}
  1487.      ifelse}
  1488.       {pnlv @y gt
  1489.      {@x @y moveto pnsh 0 rlineto
  1490.       pnlh pnsh add pnlv lineto
  1491.       0 pnsv rlineto
  1492.       pnsh neg 0 rlineto
  1493.       @x @y pnsv add lineto}
  1494.      {pnlh pnlv moveto pnsh 0 rlineto
  1495.       0 pnsv rlineto
  1496.       @x pnsh add @y pnsv add lineto
  1497.       pnsh neg 0 rlineto
  1498.       0 pnsv neg rlineto}
  1499.      ifelse}
  1500.       ifelse
  1501.       closepath fill}
  1502.    if @x @y grestore moveto
  1503. } def
  1504.  
  1505. /dl {
  1506.    gsave
  1507.    0 setlinewidth 0 setgray
  1508. } def
  1509.  
  1510. % Arc: top left bottom right startangle stopangle verb flag
  1511. % flag true means to exclude the center of curvature in the arc
  1512. /barc {
  1513.    /@f xdf   /@op xdf    /@e xdf   /@s xdf
  1514.    /@r xdf   /@b xdf    /@l xdf   /@t xdf
  1515.    gsave
  1516.    @r @l add 2 div @b @t add 2 div xl 0 0 moveto
  1517.    @r @l sub @b @t sub mtx currentmatrix pop scale
  1518.    @f {newpath} if
  1519.    0 0 0.5 @s @e arc
  1520.    mtx setmatrix @op doop
  1521.    grestore
  1522. } def
  1523. /doarc {dup 0 eq barc} def
  1524.  
  1525. % oval:  top left bottom right verb
  1526. /doval {0 exch 360 exch true barc} def
  1527.  
  1528. % rectangle:  top left bottom right verb
  1529. /dorect {
  1530.    /@op xdf currentpoint 6 2 roll
  1531.    newpath 4 copy
  1532.    4 2 roll exch moveto
  1533.    6 -1 roll lineto
  1534.    lineto lineto closepath
  1535.    @op doop moveto
  1536. } def
  1537.  
  1538. /mup {dup pnsh 2 div le exch pnsv 2 div le or} def
  1539.  
  1540. % roundrect:  top left bottom right ovalwidth ovalheight operation
  1541. % Warning: ovalwidth is assumed equal to ovalheight.
  1542. /dorrect {
  1543.    /@op xdf    2. div /@h xdf       2. div /@w xdf
  1544.    /@r xdf    /@b xdf        /@l xdf /@t xdf
  1545.    @t @b eq @l @r eq @w mup or or
  1546.    {@t @l @b @r @op dorect}
  1547.    {@r @l sub 2. div dup @w lt
  1548.       {/@w xdf}{pop}
  1549.       ifelse
  1550.       @b @t sub 2. div dup @w lt
  1551.       {/@w xdf}{pop}
  1552.       ifelse
  1553.       @op 0 eq
  1554.       {/@w @w pnsh 2 div sub def}
  1555.       if           %this helps solve overlap gap for wide line widths
  1556.       currentpoint
  1557.       newpath
  1558.       @r @l add 2. div @t moveto
  1559.       @r @t @r @b @w arcto pop4
  1560.       @r @b @l @b @w arcto pop4
  1561.       @l @b @l @t @w arcto pop4
  1562.       @l @t @r @t @w arcto pop4
  1563.       closepath @op doop
  1564.       moveto
  1565.    }ifelse
  1566. } def
  1567.  
  1568. % Polygon utility procedures
  1569. /pr {
  1570.    gsave newpath /pl
  1571.       {moveto
  1572.        /pl {lineto} def
  1573.       }def
  1574. } def
  1575.  
  1576. /pl {lineto} def
  1577.  
  1578. /ep {
  1579.    dup 0 eq
  1580.     {
  1581.      {moveto}{lin}{}{}
  1582.      pathforall %nothing but movetos and linetos should be called
  1583.      pop grestore
  1584.     }
  1585.     {
  1586.      doop grestore
  1587.     }
  1588.     ifelse
  1589. } def
  1590.  
  1591. /bs 8 string def
  1592. /bd {/bs xdf} def
  1593.  
  1594.  
  1595.  
  1596. % These following procedures are used in defining QuickDraw patterns.
  1597. % (Pattern definition goes into halftone screen of PostScript)
  1598.  
  1599. % procedure to find black bits in QuickDraw pattern (pattern in hex string bs)
  1600. /bit {bs exch get exch 7 sub bitshift 1 and} def
  1601. /bix {1 add 4 mul cvi} def
  1602. /pp{exch bix exch bix bit}def
  1603. /grlevel {64. div setgray} def
  1604.  
  1605.  
  1606. % procedure to set a pattern: ratio hexstring
  1607. % ratio is the total number of white bits in the QuickDraw pattern represented in hexstring
  1608.  
  1609. /setpat {
  1610.    /bs xdf
  1611.    9.375 0 {pp} setscreen
  1612.    grlevel
  1613. } def
  1614.  
  1615. /setgry {
  1616.    freq rot {spf} setscreen
  1617.    grlevel
  1618. } def
  1619.  
  1620. % standard copybits routine:
  1621. % arguments: xscale yscale xloc yloc rowbytes xwidth ywidth fsmooth bitmode
  1622. % This procedure is the basis for all QuickDraw bit operations.
  1623. % xscale and yscale tell how much to scale the bit image in 72nds of an inch
  1624. % xloc and yloc are the location of the top left corner of the bitmap
  1625. % rowbytes is the total number of bytes in each scanline of hex data in the
  1626. % image.
  1627. %    Note that rowbytes must be even.
  1628. % xwidth and ywidth are the actual number of bits in the x and y coordinates
  1629. % of the image. fsmooth is a flag to tell whether or not to use bit
  1630. % smoothing.  Bit smoothing is a
  1631. % proprietary algorithm that provides smoothing of the data around a 5 by 5
  1632. % local area of each data pixel.
  1633. % bitmode can be any of the QuickDraw source transfer modes excluding srcXor
  1634. % and notSrcXor.
  1635. %    Note that this is the only QuickDraw procedure that can implement
  1636. % more than the simple srcCopy transfer mode.
  1637.  
  1638. /x4 {2 bitshift} def
  1639. /d4 {-2 bitshift} def
  1640. /xf {.96 mul exch 2 sub .96 mul exch} def
  1641. /dobits
  1642. {
  1643.    /bmode xdf
  1644.    save 9 1 roll
  1645. % 2 sub fixes dxsrc offset number required for bitsmoothing, but applies
  1646. % to both
  1647.  
  1648. %Bit Smooth mode
  1649.    {
  1650.    x4 /@dy xdf 2 sub x4 /@dx xdf /@idx xdf
  1651.    .96 mul exch 3 index 2 sub @dx div 7.68 mul dup 6 1 roll sub exch xl 0 0 moveto xf
  1652.    0 4 -1 roll 2 index 4 index 1.759 add 10 dorect clip newpath 0 0 moveto scale
  1653.    bmode 0 eq bmode 4 eq or{1 setgray 1 @dy div 1 @dx div 1 1 2 dorect}if
  1654.    bmode 3 eq bmode 7 eq or{1}{0}ifelse setgray
  1655.    @idx 5 bitshift @dy bmode 0 eq bmode 1 eq bmode 3 eq or or [@dx 0 0 @dy 0 0]
  1656.      {(%stdin)(r) file @dy d4 4 add @idx mul string readhexstring pop
  1657.      dup length @idx x4 sub 4 bitshift string
  1658.      dup 3 1 roll @dx 8 add d4 smooth} imagemask
  1659.    }
  1660. %Non Bit Smooth mode
  1661.    {
  1662.    /@dy xdf 2 sub /@dx xdf /@idx xdf
  1663.    /@xs @idx string def
  1664.    /@f (%stdin)(r) file def
  1665.    /@p{@f @xs readhexstring pop}def
  1666.    .96 mul xl 0 0 moveto xf scale
  1667.    0 0 1 1 10 dorect clip newpath 0 0 moveto
  1668.    bmode 0 eq bmode 4 eq or{1 setgray .25 @dy div .25 @dx div 1 1 2 dorect}if
  1669.    bmode 3 eq bmode 7 eq or{1}{0}ifelse setgray
  1670.    @p @p
  1671.    @idx 3 bitshift @dy bmode 0 eq bmode 1 eq bmode 3 eq or or [@dx 0 0 @dy 0 0]
  1672.    {@p} imagemask
  1673.    @p @p pop4
  1674.    }ifelse
  1675. restore
  1676. } def
  1677.  
  1678.  
  1679. % Making Mac compatible Fonts
  1680.  
  1681.  
  1682. /mfont 14 dict def
  1683. /wd 14 dict def
  1684. /mdef {mfont wcheck not{/mfont 14 dict def}if mfont begin xdf end} def
  1685. /dc {transform round .5 sub exch round .5 sub exch itransform} def
  1686.  
  1687.  
  1688. % Copy a font dictionary: fontdictionary
  1689. % copies a font dictionary into tmp so it may be used to define a new font
  1690.  
  1691. % tmp must be set before cf is called
  1692. /cf{{1 index /FID ne {tmp 3 1 roll put}{pop pop}ifelse}forall}def
  1693.  
  1694.  
  1695. % Procedures used in defining a bit map font
  1696.  
  1697. /mv{tmp /Encoding macvec put}def
  1698. /bf{
  1699. mfont begin
  1700. /FontType 3 def
  1701. /FontMatrix [1 0 0 1 0 0] def
  1702. /FontBBox [0 0 1 1] def
  1703. /Encoding macvec def
  1704. /BuildChar
  1705.   {
  1706.   wd begin
  1707.     /cr xdf
  1708.     /fd xdf
  1709.     fd /low get cr get 2 get -1 ne
  1710.     {
  1711.     fd begin
  1712.       low cr get aload pop
  1713.       sd
  1714.       low cr 1 add get 0 get
  1715.       sh
  1716.       sw
  1717.     end
  1718.     /sw xdf
  1719.     /sh xdf
  1720.     sw div /clocn xdf
  1721.     dup 0 ne {0 exch sh div neg dc xl}{pop}ifelse
  1722.     exch sw div /coff xdf
  1723.     exch sw div /cloc xdf
  1724.     /bitw clocn cloc sub def
  1725.     sw sh div 1 scale
  1726.     sw div 0 coff 0 bitw coff add 1 setcachedevice
  1727.     coff cloc sub 0 dc xl
  1728.     cloc .5 sw div add 0 dc newpath moveto
  1729.     bitw 0 ne
  1730.       {0 1 rlineto bitw .5 sw div sub 0 rlineto 0 -1 rlineto
  1731.     closepath clip
  1732.       sw sh false [sw 0 0 sh neg 0 sh]{fd /hm get}imagemask}if
  1733.     } if
  1734.   end
  1735.   } def
  1736. end
  1737. mfont definefont pop
  1738. } def
  1739.  
  1740.  
  1741. % stringwidth procedure which does not allow a show to occur: (string)
  1742.  
  1743. /wi{save exch /show{pop}def
  1744. stringwidth 3 -1 roll restore}def
  1745.  
  1746. /aps {0 get 124 eq}def
  1747. /apn {s30 cvs aps} def
  1748.  
  1749.  
  1750. %set style in a PostScript name: AppleFontName
  1751. % e.g.
  1752. % /|----name sos /|---Oname
  1753. % /|----name sis /|-I--name
  1754.  
  1755. /xc{s30 cvs dup}def
  1756. /xp{put cvn}def
  1757. /scs{xc 3 67 put dup 0 95 xp}def
  1758. /sos{xc 3 79 xp}def
  1759. /sbs{xc 1 66 xp}def
  1760. /sis{xc 2 73 xp}def
  1761. /sob{xc 2 79 xp}def
  1762. /sss{xc 4 83 xp}def
  1763.  
  1764. /dd{exch 1 index add 3 1 roll add exch} def
  1765. /smc{moveto dup show} def
  1766. /kwn{dup FontDirectory exch known{findfont exch pop}}def
  1767. /fb{/ps ps 1 add def}def
  1768. /mb
  1769. {dup sbs kwn
  1770.    {
  1771.    exch{pop}{bbc}{} mm
  1772.    }ifelse
  1773. sfd
  1774. }def
  1775. /mo
  1776. {dup sos kwn
  1777.    {
  1778.    exch{pop}{boc}{} mm
  1779.    }ifelse
  1780. sfd
  1781. }def
  1782. /ms
  1783. {dup sss kwn
  1784.    {
  1785.    exch{pop}{bsc}{} mm
  1786.    }ifelse
  1787. sfd
  1788. }def
  1789.  
  1790. /ao
  1791. {dup sos kwn
  1792.    {
  1793.    exch dup ac pop
  1794.    {scs findfont /df2 xdf}{aoc}{} mm
  1795.    }ifelse
  1796. sfd
  1797. }def
  1798.  
  1799. /as
  1800. {dup sss kwn
  1801.    {
  1802.    exch dup ac pop
  1803.    {scs findfont /df2 xdf}{asc}{} mm
  1804.    }ifelse
  1805. sfd
  1806. }def
  1807.  
  1808. /ac
  1809.    {
  1810.    dup scs kwn
  1811.       {exch /ofd exch findfont def
  1812.       /tmp ofd maxlength 1 add dict def
  1813.       ofd cf mv
  1814.       tmp /PaintType 1 put
  1815.       tmp definefont}ifelse
  1816.    }def
  1817.  
  1818. /mm{
  1819. /mfont 10 dict def
  1820. mfont begin
  1821. /FontMatrix [1 0 0 1 0 0] def
  1822. /FontType 3 def
  1823. /Encoding macvec def
  1824. /df 4 index findfont def
  1825. /FontBBox [0 0 1 1] def
  1826. /xda xdf
  1827. /mbc xdf
  1828. /BuildChar { wd begin
  1829.   /cr xdf
  1830.   /fd xdf
  1831.   /cs s1 dup 0 cr put def
  1832.   fd /mbc get exec
  1833.   end
  1834. } def
  1835. exec
  1836. end
  1837. mfont definefont} def
  1838. /bbc
  1839. {
  1840.   /da .03 def
  1841.   fd /df get setfont
  1842.   gsave
  1843.     cs wi exch da add exch %%%% (used to be "exchd", a bug)
  1844.   grestore
  1845.   setcharwidth
  1846.   cs 0 0 smc
  1847.     da 0 smc
  1848.     da da smc
  1849.      0 da moveto show
  1850. } def
  1851.  
  1852. /boc
  1853. {
  1854.   /da 1 ps div def
  1855.   fd /df get setfont
  1856.   gsave
  1857.     cs wi
  1858.     exch da add exch
  1859.   grestore
  1860.   setcharwidth
  1861.   cs 0 0 smc
  1862.     da 0 smc
  1863.     da da smc
  1864.      0 da smc
  1865.   1 setgray
  1866.      da 2. div dup moveto show
  1867. } def
  1868.  
  1869. /bsc
  1870. {
  1871.   /da 1 ps div def
  1872.   /ds .05 def %da dup .03 lt {pop .03}if def
  1873.   /da2 da 2. div def
  1874.   fd /df get setfont
  1875.   gsave
  1876.     cs wi
  1877.     exch ds add da2 add exch
  1878.   grestore
  1879.   setcharwidth
  1880.   cs ds da2 add .01 add 0 smc
  1881.       0 ds da2 sub xl
  1882.       0  0 smc
  1883.      da  0 smc
  1884.      da da smc
  1885.       0 da smc
  1886.   1 setgray
  1887.       da 2. div dup moveto show
  1888. } def
  1889. /aoc
  1890. {
  1891.   fd /df get setfont
  1892.   gsave
  1893.     cs wi
  1894.   grestore
  1895.   setcharwidth
  1896.   1 setgray
  1897.   cs 0 0 smc
  1898.   fd /df2 get setfont
  1899.   0 setgray
  1900.   0 0 moveto show
  1901. }def
  1902. /asc
  1903. {
  1904.   /da .05 def
  1905.   fd /df get setfont
  1906.   gsave
  1907.     cs wi
  1908.     exch da add exch
  1909.   grestore
  1910.   setcharwidth
  1911.   cs da .01 add 0 smc
  1912.       0 da xl
  1913.   1 setgray
  1914.       0 0 smc
  1915.   0 setgray
  1916.   fd /df2 get setfont
  1917.       0 0 moveto show
  1918. }def
  1919.  
  1920. /T true def
  1921. /F false def
  1922.  
  1923.  
  1924. % More Polygon stuff used in polygon comment
  1925.  
  1926. /6a 6 array def
  1927. /2a 2 array def
  1928. /5a 5 array def
  1929. %subtract points, first from second (reverse order):  pt0 pt1 qs newpt
  1930. /qs{3 -1 roll sub exch 3 -1 roll sub exch}def
  1931. /qa{3 -1 roll add exch 3 -1 roll add exch}def
  1932. %multiply point: pt factor qm newpt
  1933. /qm{3 -1 roll 1 index mul 3 1 roll mul}def
  1934. /qn{6a exch get mul}def
  1935. /qA .166667 def /qB .833333 def /qC .5 def
  1936. /qx{
  1937.    6a astore pop
  1938.    qA 0 qn qB 2 qn add    qA 1 qn qB 3 qn add
  1939.    qB 2 qn qA 4 qn add    qB 3 qn qA 5 qn add
  1940.    qC 2 qn qC 4 qn add    qC 3 qn qC 5 qn add
  1941. }def
  1942. /qp{6 copy 12 -2 roll pop pop}def
  1943. /qc{qp qx curveto}def
  1944. /qi{{4 copy 2a astore aload pop qa .5 qm newpath moveto}{2 copy 6 -2 roll 2 qm qs 4 2 roll}ifelse}def
  1945. /qq{{qc 2a aload pop qx curveto}{4 copy qs qa qx curveto}ifelse}def
  1946.  
  1947. %start polygon comment
  1948. /pt{gsave currentpoint newpath moveto}def
  1949.  
  1950. %fill smoothed poly
  1951. /qf{gsave eofill grestore}def
  1952. /tr{currentgray currentscreen bs 5a astore pop /fillflag 1 def}def
  1953. /bc{/fillflag 0 def}def
  1954.  
  1955. %polyverb ec
  1956. /ec{currentpoint 3 -1 roll
  1957.    1 and 0 ne
  1958.    {currentgray currentscreen bs 5a aload pop bd setscreen setgray 0 doop bd setscreen setgray}
  1959.    {newpath}ifelse
  1960.    moveto
  1961. }def
  1962.  
  1963. /bp {
  1964.    currentpoint newpath 2 copy moveto
  1965.    currentgray currentscreen bs 5a astore pop
  1966. } def
  1967.  
  1968. /eu{
  1969.    fillflag 0 ne
  1970.    {
  1971.    gsave currentgray currentscreen bs
  1972.    5a aload pop bd setscreen setgray
  1973.    4 ep
  1974.    bd setscreen setgray
  1975.    }if
  1976.    fp{0 ep}{grestore newpath}ifelse
  1977. }def
  1978.  
  1979.  
  1980. % Line Layout stuff used by string merging algorithm
  1981.  
  1982. % counts spaces in string:   (...) sm (...) n
  1983. % returns string and number of spaces in string
  1984.  
  1985. /sm
  1986. {
  1987. dup 0 exch
  1988. {32 eq{1 add}if}forall
  1989. }
  1990. def
  1991.  
  1992.  
  1993. % layout a string to length specified by desiredlength:  printerlength desiredlength (...) ll
  1994. % printerlength is length of string in printer space
  1995.  
  1996. /ll
  1997. {
  1998. 3 1 roll exch dup .0001 lt 1 index -.0001 gt and
  1999. {pop pop pop}
  2000. {sub dup 0 eq
  2001.    {
  2002.    pop show
  2003.    }
  2004.    {
  2005.    1 index sm dup 0 eq 3 index 0 le or
  2006.       {
  2007.       pop length div
  2008.       0 3 -1 roll ashow
  2009.       }
  2010.       {
  2011. % This piece does 10 percent stretching in characters and 90 percent in spaces
  2012.       10 mul exch length add div
  2013.       dup 10 mul 0 32 4 -1 roll 0 6 -1 roll awidthshow
  2014. % This piece does straight stretching in spaces only
  2015. %      exch pop div
  2016. %      0 32 4 -1 roll widthshow
  2017.       }ifelse
  2018.    }ifelse
  2019. }ifelse
  2020. }def
  2021.  
  2022.  
  2023. %set font to symbol and show the string: (...) ss
  2024.  
  2025. /ss
  2026. {  /pft currentfont def sa aload pop pop /|----2Symbol 4 1 roll
  2027.    {pop{as}}
  2028.    {{{ao}}{{fnt}}ifelse}ifelse
  2029.    exch pop exec exch pop
  2030. }def
  2031. /pf{pft dup setfont}def
  2032.  
  2033.  
  2034. % regular show does underline if ulf is true:
  2035. % arguments: printerlength desiredlength string rs
  2036.  
  2037. /rs
  2038. {
  2039.    sa 2 get
  2040.    {
  2041.    gsave
  2042.    1 index 0
  2043.    currentfont
  2044.    dup /FontInfo known
  2045.       {
  2046.       /FontInfo get
  2047.       dup /UnderlinePosition known
  2048.      {
  2049.      dup /UnderlinePosition get 1000 div ps mul
  2050.      }
  2051.      {
  2052.      ps 10 div neg    %15 makes line closer to text
  2053.      }ifelse
  2054.       exch
  2055.       dup /UnderlineThickness known
  2056.      {
  2057.      /UnderlineThickness get 1000 div ps mul
  2058.      }
  2059.      {
  2060.      pop
  2061.      ps 15 div  %20 makes slightly narrower line
  2062.      }ifelse
  2063.       }
  2064.       {
  2065.       pop
  2066.       ps 10 div neg   %15 makes line closer to text
  2067.       ps 15 div       %20 makes slightly narrower line
  2068.       }ifelse
  2069.    setlinewidth
  2070.    0 setgray
  2071.    currentpoint 3 -1 roll sub moveto
  2072.    sa 4 get{gsave currentlinewidth 2. div dup rmoveto currentpoint xl 2 copy rlineto
  2073.    stroke grestore}if
  2074.    sa 3 get sa 4 get or 3 1 roll 2 index{gsave 1 setgray 2 copy rlineto stroke grestore}if
  2075.    rlineto{strokepath 0 setlinewidth}if stroke
  2076.    grestore
  2077.    }if
  2078.    tv
  2079. }
  2080. def
  2081.  
  2082.  
  2083. %  More Font building stuff, specifically the Apple Encoding Vector
  2084.  
  2085. % Font encoding vector for PostScript fonts to match Mac
  2086. /macvec 256 array def
  2087. macvec 0
  2088. /Times-Roman findfont /Encoding get
  2089. 0 128 getinterval putinterval macvec 39 /quotesingle put
  2090.  /dotlessi /grave /circumflex /tilde /cedilla /registerserif
  2091.  /copyrightserif /trademarkserif
  2092. macvec 0 8 getinterval astore pop
  2093.  /Adieresis /Aring /Ccedilla /Eacute /Ntilde /Odieresis /Udieresis /aacute
  2094.  /agrave /acircumflex /adieresis /atilde /aring /ccedilla /eacute /egrave
  2095.  /ecircumflex /edieresis /iacute /igrave /icircumflex /idieresis /ntilde
  2096.  /oacute  /ograve /ocircumflex /odieresis /otilde /uacute /ugrave
  2097.  /ucircumflex /udieresis
  2098.  /dagger /ring /cent /sterling /section /bullet /paragraph /germandbls
  2099.  /registersans /copyrightsans /trademarksans /acute /dieresis /notequal
  2100.  /AE /Oslash
  2101.  /infinity /plusminus /lessequal /greaterequal /yen /mu /partialdiff
  2102.  /summation
  2103.  /product /pi /integral /ordfeminine /ordmasculine /Omega /ae /oslash
  2104.  /questiondown /exclamdown /logicalnot /radical /florin /approxequal /Delta
  2105.  /guillemotleft  /guillemotright /ellipsis /space /Agrave /Atilde /Otilde
  2106.  /OE /oe /endash /emdash /quotedblleft /quotedblright /quoteleft
  2107.  /quoteright /divide /lozenge /ydieresis /Ydieresis /fraction /currency
  2108.  /guilsinglleft /guilsinglright /fi /fl /daggerdbl /periodcentered
  2109.  /quotesinglbase /quotedblbase /perthousand /Acircumflex /Ecircumflex /Aacute
  2110.  /Edieresis /Egrave /Iacute /Icircumflex /Idieresis /Igrave /Oacute
  2111.  /Ocircumflex /apple /Ograve /Uacute /Ucircumflex /Ugrave /dotlessi
  2112.  /asciicircum /asciitilde /macron /breve /dotaccent /ring /cedilla
  2113.  /hungarumlaut /ogonek /caron
  2114. macvec 128 128 getinterval astore pop
  2115.  
  2116. % now redefine all fonts using the MAC Encoding (except in Symbol) to make
  2117. % them be Apple compatible.
  2118.  
  2119. FontDirectory
  2120. {exch dup s30 cvs /@s xdf @s aps
  2121.    {pop pop}
  2122.    {exch dup length dict /tmp xdf
  2123.       cf
  2124.       /Symbol ne {mv} if
  2125.       /@i false def /@o false def /@b false def
  2126.       mark @s (Italic) search {/@i true def} if (Oblique) search {/@o true def} if
  2127.       (Bold) search {/@b true def} if (Roman) search pop (-) search pop /@s xdf cleartomark
  2128.       @s cvn dup /Symbol eq{pop 50}{/Courier eq{51}{49}ifelse}ifelse
  2129.       s30 0 @s length 6 add getinterval dup 6 @s putinterval dup 0 (|-----) putinterval
  2130.       @b {dup 1 66 put} if @i @o or {dup 2 73 put} if % @o {dup 2 79 put} if
  2131.       dup 5 4 -1 roll put
  2132.       cvn tmp definefont pop
  2133.    }ifelse
  2134. }forall
  2135.  
  2136.  
  2137. %Make any other special fonts here, i.e. Seattle
  2138.  
  2139. /_--C-2Symbol /Symbol findfont /tmp 1 index maxlength 1 add dict def cf tmp /PaintType 1 put tmp definefont
  2140. /|----4Seattle /Helvetica findfont dup length 1 add dict /tmp xdf cf mv
  2141. /mxv [/zero /one /two /three /four /five /six /seven /eight /nine /comma /period /dollar /numbersign
  2142. /percent /plus /hyphen /E /parenleft /parenright /space] def
  2143. tmp /Metrics 21 dict dup begin mxv{600 def}forall end put
  2144. tmp begin /FontBBox FontBBox [0 0 0 0] astore def end
  2145. tmp definefont pop
  2146.  
  2147.  
  2148. % open document, open page and close page procedures
  2149. % close document doesn't do anything currently
  2150.  
  2151. % txpose takes the vertical page size as a parameter
  2152. /od{txpose 10 fz 0 fs F /|----3Courier fnt pop}def
  2153. /op{/scaleflag false def /pm save def}def
  2154. /cp{pm restore}def
  2155.  
  2156. end
  2157.  
  2158. %
  2159. % Add a pop to clean up the stack.  A dictionary is left behind... (jjs)
  2160. %
  2161. pop
  2162.  
  2163. @//E*O*F trf/doc/figs/mac.pro//
  2164. chmod u=rwx,g=rx,o=r trf/doc/figs/mac.pro
  2165.  
  2166. echo x - trf/doc/figs/piechart.ps
  2167. sed 's/^@//' > "trf/doc/figs/piechart.ps" <<'@//E*O*F trf/doc/figs/piechart.ps//'
  2168. %!
  2169. %%BoundingBox: 126 246 486 546
  2170. % Cookbook Example Program from First Printing, Revised 7 Jan 1985
  2171. % Program: Drawing a Pie Chart     Number: 18
  2172. %-----------------------------------------------------------------------------
  2173. %
  2174. /PieDict 24 dict def                        % Local storage for
  2175.                         % ``DrawPieChart'' and its related
  2176.                         % procedures.
  2177. PieDict begin
  2178.   /DrawSlice                                % DrawSlice draws an outlined and
  2179.     { /grayshade exch def                   % filled-in pie slice. It takes
  2180.       /endangle exch def                    % four operands: the label for
  2181.       /startangle exch def                  % this particular pie slice, the
  2182.       /thelabel exch def                    % starting angle for the slice,
  2183.                         % the ending angle for the slice
  2184.                         % and the shade of gray the slice
  2185.                         % should be.
  2186.                             
  2187.       newpath                               % Create a path which will draw a
  2188.                         % pie slice.
  2189.     0 0 moveto
  2190.     0 0 radius startangle endangle arc
  2191.       closepath
  2192.            
  2193.       1.415 setmiterlimit                   % This guarantees that when we
  2194.                         % outline the pie slices with a
  2195.                         % stroke that we will not get a
  2196.                         % spike on the interior angles.
  2197.       gsave grayshade setgray fill grestore % Fill the pie slice path with the
  2198.       stroke                                % appropriate gray color. By using
  2199.                         % gsave and grestore we don't lose
  2200.                         % the current path. Since
  2201.                         % PostScript paints color onto the
  2202.                         % page, it is very important that
  2203.                         % we fill the pie slice first and
  2204.                         % then outline it with a stroke.
  2205.       gsave                                 % Draw the tick mark and place the
  2206.                         % label:
  2207.     startangle endangle add 2 div       % Find the center of the pie slice
  2208.       rotate                            % and rotate so that the x-axis
  2209.                         % coincides with this center.
  2210.     radius 0 translate                  % Translate the origin out to the
  2211.                         % circumference.
  2212.     newpath
  2213.       0 0 moveto labelps .8 mul 0 lineto% Draw the tick-mark.
  2214.     stroke
  2215.     labelps 0 translate                 % Move the origin out a little
  2216.                         % beyond the circumference.
  2217.     0 0 transform                       % Next we wish to place the label
  2218.       grestore                              % at the current origin. If we
  2219.       itransform                            % simply draw the text on the page
  2220.       /y exch def /x exch def               % now, it would come out rotated.
  2221.       x y moveto                            % Since this is not desired we
  2222.                         % avoid it by returning to the
  2223.                         % previous unrotated coordinate
  2224.                         % system. Before returning,
  2225.                         % though, we would like to
  2226.       x 0 lt                                % remember the position of the
  2227.     { thelabel stringwidth pop neg      % current origin on the printed
  2228.         0 rmoveto                       % page. We will accomplish this by
  2229.     } if                                % using the transform and
  2230.                         % itransform operators. Performing
  2231.                         % a transform on the origin pushes
  2232.                         % the coordinates of the origin in
  2233.                         % device space onto the operand
  2234.                         % stack. Performing a grestore
  2235.                         % returns us to the previous
  2236.                         % unrotated coordinate system.
  2237.                         % Next we perform an itransform on
  2238.                         % the two device coordinates left
  2239.                         % on the stack to determine where
  2240.                         % we are in the current coordinate
  2241.                         % system.
  2242.       y 0 lt { 0 labelps neg rmoveto } if   % Make some adjustments so that
  2243.       thelabel show                         % the label text won't collide
  2244.     } def                                   % with the pie slice.
  2245.   /findgray                                 % Procedure findgray calculates
  2246.     { /i exch def /n exch def               % the gray value for a slice. It
  2247.       i 2 mod 0 eq                          % takes two arguments: the total
  2248.     { i 2 div n 2 div round add n div } % number of slices and the current
  2249.     { i 1 add 2 div n div }             % slice number (Given that there
  2250.     ifelse                              % are n pie slices, the slices are
  2251.     } def                                   % ``numbered'' from 1 to n). The
  2252. end                                         % gray values for the pie slices
  2253.                         % range evenly from white to black
  2254.                         % (i.e. - the values provided to
  2255.                         % setgray range from (n/n, n-1/n,
  2256.                         % ..., 1/n)). Since we don't want
  2257.                         % similar values of gray next to
  2258.                         % each other, findgray
  2259.                         % ``shuffles'' the possible
  2260.                         % combinations of gray.
  2261.                                    
  2262. /DrawPieChart                               % DrawPieChart takes seven
  2263.   { PieDict begin                           % arguments: the title of the pie
  2264.       /radius exch def                      % chart, the point size to print
  2265.       /ycenter exch def /xcenter exch def   % the title in, the point size to
  2266.       /PieArray exch def                    % print the labels for each slice
  2267.       /labelps exch def /titleps exch def   % in, a special array (described
  2268.       /title exch def                       % below where DrawPieChart is
  2269.                         % called), the (x,y) center of the
  2270.                         % pie chart and the radius of the
  2271.                         % pie chart.
  2272.                             
  2273.       gsave
  2274.     xcenter ycenter translate           % Translate the coordinate system
  2275.                         % origin to center of pie chart.
  2276.     /Helvetica findfont titleps         % Print the title of the pie chart
  2277.       scalefont setfont                 % in Helvetica.
  2278.     title stringwidth pop 2 div neg     % Center the title below the pie
  2279.                         % chart.
  2280.       radius neg titleps 3 mul sub
  2281.       moveto title show
  2282.     /Helvetica findfont labelps         % Print the individual pie slice
  2283.       scalefont setfont                 % labels in Helvetica
  2284.     /numslices PieArray length def
  2285.     /slicecnt 0 def
  2286.     /curangle 0 def                     % A ``loop'' variable that keeps
  2287.                         % track of the angle of arc to
  2288.                         % begin each pie slice at.
  2289.     PieArray                            % Repeat the following for each
  2290.                         % element in the PieArray.
  2291.       { /slicearray exch def
  2292.         slicearray aload pop            % Push the label and percentage
  2293.                         % onto the stack.
  2294.         /percent exch def
  2295.         /label exch def
  2296.         /perangle percent 360 mul def   % Convert the percentage into
  2297.                         % degrees of angle.
  2298.         /slicecnt slicecnt 1 add def
  2299.         label curangle
  2300.           curangle perangle add
  2301.           numslices slicecnt findgray
  2302.           DrawSlice
  2303.         /curangle curangle perangle add % Update the current starting
  2304.                         % angle.
  2305.           def
  2306.       } forall
  2307.       grestore
  2308.     end
  2309.   } def
  2310.        
  2311. (January Pie Sales) 18 9
  2312.   [ [(Blueberry) .12 ]                      % The pie array is an array of
  2313.     [(Cherry) .30 ]                         % arrays. Each array in the pie
  2314.     [(Apple) .26 ]                          % array contains a string denoting
  2315.     [(Boston Cream) .16 ]                   % the label to be printed next to
  2316.     [(Other) .04 ]                          % the pie slice followed by a real
  2317.     [(Vanilla Cream) .12 ]                  % number indicating the percentage
  2318.   ] 306 396 100 DrawPieChart                % of the pie represented by this
  2319.                         % particular slice.
  2320. showpage
  2321.  
  2322. @//E*O*F trf/doc/figs/piechart.ps//
  2323. chmod u=rw,g=r,o=r trf/doc/figs/piechart.ps
  2324.  
  2325. echo x - trf/doc/figs/pretzel.ps
  2326. sed 's/^@//' > "trf/doc/figs/pretzel.ps" <<'@//E*O*F trf/doc/figs/pretzel.ps//'
  2327. %! pretzel.ps -- an example for the psfig paper.
  2328. %%BoundingBox: 95 100 185 160
  2329.  
  2330. 5 setlinewidth
  2331. 1 setlinecap
  2332. 110 100 moveto
  2333. 120 120  140 160  160 160  curveto
  2334. 175 160  180 150  180 140  curveto
  2335. 180 120  160 100  140 100  curveto
  2336. 120 100  100 120  100 140  curveto
  2337. 100 150  105 160  120 160  curveto
  2338. 140 160  160 120  170 100  curveto
  2339. stroke
  2340. showpage
  2341. @//E*O*F trf/doc/figs/pretzel.ps//
  2342. chmod u=rw,g=r,o=r trf/doc/figs/pretzel.ps
  2343.  
  2344. echo x - trf/doc/figs/rosette.ps
  2345. sed 's/^@//' > "trf/doc/figs/rosette.ps" <<'@//E*O*F trf/doc/figs/rosette.ps//'
  2346. %!
  2347. %%BoundingBox: 155 155 457 457
  2348. % Cookbook Example Program from First Printing, Revised 7 Jan 1985
  2349. % Program: Repeated Shapes     Number: 6
  2350. %-----------------------------------------------------------------------------
  2351. %
  2352.                         % This program prints a rosette
  2353.                         % design by defining a section of
  2354.                         % that design and printing that
  2355.                         % section repeatedly. This program
  2356.                         % illustrates the ``for'' and
  2357.                         % "arc" operators, and it shows
  2358.                         % how coordinate transformations
  2359.                         % can be nested so as to use the
  2360.                         % most convenient coordinate
  2361.                         % system for each part of a
  2362.                         % design.
  2363. /inch {72 mul} def
  2364.           
  2365. /wedge                                      % Define an ``ice cream cone''
  2366.   { newpath                                 % shape by means of the ``arc''
  2367.       0 0 moveto                            % operator. This shape will have a
  2368.       1 0 translate                         % 30 degree angle topped off with
  2369.       15 rotate                             % a semicircle. Set the path's
  2370.       0 15 sin translate                    % first point at the current
  2371.       0 0 15 sin -90 90 arc                 % origin. Next, move the origin to
  2372.     closepath                               % the center of the semicircle by
  2373.   } def                                     % translating to the right 1 unit,
  2374.                         % rotating counter-clockwise by 15
  2375.                         % degrees, and translating ``up''
  2376.                         % in the rotated system by the
  2377.                         % radius of the semicircle. The
  2378.                         % ``arc'' operator includes a
  2379.                         % straight line to the initial
  2380.                         % point of the arc and a curved
  2381.                         % section to the end of the arc.
  2382.                         % Note that the semicircle goes
  2383.                         % from -90 degrees to 90 degrees
  2384.                         % in the rotated coordinate
  2385.                         % system.
  2386.                              
  2387. gsave
  2388.   4.25 inch 4.25 inch translate             % Move into position for the
  2389.                         % rosette.
  2390.   1.75 inch 1.75 inch scale                 % Make the edges of the rosette 1
  2391.                         % 3/4 inches long.
  2392.   0.02 setlinewidth                         % Use a 7/200 inch thick line.
  2393.   2 1 13                                    % Set up the ``for'' operator to
  2394.                         % iterate 12 times, pushing 2 onto
  2395.                         % the stack the first time, 3 the
  2396.                         % next time, ... , and 13 the last
  2397.                         % time.
  2398.    {                                        % The last argument for ``for'' is
  2399.                         % the sequence of operations to be
  2400.                         % repeated. This sequence must be
  2401.                         % enclosed by braces.
  2402.      13 div setgray                         % Divide the loop index by 13 to
  2403.                         % set a gray value.
  2404.      gsave                                  % Enclose the ``wedge'' operation
  2405.        wedge                                % in a ``gsave''-``grestore''
  2406.                         % pair, as it will mess up the
  2407.                         % coordinate system.
  2408.        gsave                                % Save the wedge path for use
  2409.                         % after the ``fill''.
  2410.      fill
  2411.        grestore
  2412.        0 setgray stroke                     % Draw a black border around the
  2413.                         % wedge.
  2414.      grestore                               % Get out of the coordinate system
  2415.                         % left by wedge.
  2416.      30 rotate                              % Set up for the next section.
  2417.    } for                                    % Close the last argument and
  2418.                         % execute the ``for'' operator.
  2419. grestore
  2420. showpage
  2421.  
  2422.  
  2423. @//E*O*F trf/doc/figs/rosette.ps//
  2424. chmod u=rw,g=r,o=r trf/doc/figs/rosette.ps
  2425.  
  2426. echo x - trf/doc/figs/smiley.ps
  2427. sed 's/^@//' > "trf/doc/figs/smiley.ps" <<'@//E*O*F trf/doc/figs/smiley.ps//'
  2428. %!
  2429. %%BoundingBox: 0 0 36 36
  2430. newpath 18 18 10 0 360 arc stroke    % the head
  2431. newpath 18 18 6 180 360 arc stroke     % the mouth
  2432. newpath 22 22 .5 0 360 arc stroke    % right eye
  2433. newpath 14 22 .5 0 360 arc stroke    % left eye
  2434. showpage
  2435. %                                                          
  2436. %                                                          
  2437. %                                                          
  2438. %                                                          
  2439. %                                                          
  2440. %                                                          
  2441. %                                                          
  2442. %                                                          
  2443. %                                                          
  2444. %                                                          
  2445. %                                                          
  2446. %                                                          
  2447. %                                                          
  2448. %                                                          
  2449. %                                                          
  2450. %                                                          
  2451. %                                                          
  2452. %                                                          
  2453. %                                                          
  2454. %                                                          
  2455. %                                                          
  2456. %                                                          
  2457. %                                                          
  2458. %                                                          
  2459. %                                                          
  2460. %                                                          
  2461. %                                                          
  2462. %                                                          
  2463. %                                                          
  2464. %                                                          
  2465. %                                                          
  2466. %                                                          
  2467. %                                                          
  2468. %                                                          
  2469. %                                                          
  2470. %                                                          
  2471. %                                                          
  2472. %                                                          
  2473. %                                                          
  2474. %                                                          
  2475. %                                                          
  2476. %                                                          
  2477. %                                                          
  2478. %                                                          
  2479. %                                                          
  2480. %                                                          
  2481. %                                                          
  2482. %                                                          
  2483. %                                                          
  2484. %                                                          
  2485. %                                                          
  2486. %                                                          
  2487. %                                                          
  2488. %                                                          
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.  
  2496.  
  2497.  
  2498.  
  2499.  
  2500.  
  2501.  
  2502.  
  2503.  
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519. %                                                                       
  2520. %                                                                       
  2521. %                                                                       
  2522. %                                                                       
  2523. %                                                                       
  2524. %                                                                       
  2525. %                                                                       
  2526. %                                                                       
  2527. %                                                                       
  2528. %                                                                       
  2529. %                                                                       
  2530. %                                                                       
  2531. %                                                                       
  2532. %                                                                       
  2533. %                                                                       
  2534. %                                                                       
  2535. %                                                                       
  2536. %                                                                       
  2537. %                                                                       
  2538. %                                                                       
  2539. %                                                                       
  2540. %                                                                       
  2541. @//E*O*F trf/doc/figs/smiley.ps//
  2542. chmod u=rw,g=r,o=r trf/doc/figs/smiley.ps
  2543.  
  2544. echo x - trf/doc/figs/star.ps
  2545. sed 's/^@//' > "trf/doc/figs/star.ps" <<'@//E*O*F trf/doc/figs/star.ps//'
  2546. %! star.ps -- another cute little character for psfig.txt
  2547. %%BoundingBox: 195 83 405 300
  2548.  
  2549. 200 200 translate
  2550.  
  2551. /points 5 def        % Number of points in star
  2552. /loops 2 def        % Number of times around we travel.
  2553.  
  2554. 0 0 moveto
  2555. points 1 sub {
  2556.     200 0 rlineto
  2557.     currentpoint translate
  2558.     360 points div loops mul neg rotate
  2559. } repeat
  2560. closepath
  2561. 5 setlinewidth
  2562. stroke
  2563. showpage
  2564. @//E*O*F trf/doc/figs/star.ps//
  2565. chmod u=rw,g=r,o=r trf/doc/figs/star.ps
  2566.  
  2567. echo x - trf/doc/figs/white.ps
  2568. sed 's/^@//' > "trf/doc/figs/white.ps" <<'@//E*O*F trf/doc/figs/white.ps//'
  2569. %! white.ps: a unit square for erasing stuff.
  2570. %%BoundingBox: 0 0 1 1
  2571.  
  2572. 1 setgray
  2573. 0 0 moveto
  2574. 0 1 lineto
  2575. 1 1 lineto
  2576. 1 0 lineto
  2577. closepath
  2578. fill
  2579. @//E*O*F trf/doc/figs/white.ps//
  2580. chmod u=rw,g=r,o=r trf/doc/figs/white.ps
  2581.  
  2582. echo Inspecting for damage in transit...
  2583. temp=/tmp/shar$$; dtemp=/tmp/.shar$$
  2584. trap "rm -f $temp $dtemp; exit" 0 1 2 3 15
  2585. cat > $temp <<\!!!
  2586.       10      26     121 black.ps
  2587.       10      30     147 gray.ps
  2588.     1048    3491   15162 lab.ps
  2589.     1060    4439   25623 mac.pro
  2590.      154     990    7264 piechart.ps
  2591.       14      65     349 pretzel.ps
  2592.       77     446    3415 rosette.ps
  2593.      113     127    5097 smiley.ps
  2594.       18      62     353 star.ps
  2595.       10      29     139 white.ps
  2596.     2514    9705   57670 total
  2597. !!!
  2598. wc  trf/doc/figs/black.ps trf/doc/figs/gray.ps trf/doc/figs/lab.ps trf/doc/figs/mac.pro trf/doc/figs/piechart.ps trf/doc/figs/pretzel.ps trf/doc/figs/rosette.ps trf/doc/figs/smiley.ps trf/doc/figs/star.ps trf/doc/figs/white.ps | sed 's=[^ ]*/==' | diff -b
  2599.  $temp - >$dtemp
  2600. if [ -s $dtemp ]
  2601. then echo "Ouch [diff of wc output]:" ; cat $dtemp
  2602. else echo "No problems found."
  2603. fi
  2604. exit 0
  2605.