rsalz@uunet.UU.NET (Rich Salz) (11/09/87)
Submitted-by: Crispin Goswell <caag@vd.rl.ac.uk> Posting-number: Volume 12, Issue 62 Archive-name: postscript/part13 #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of archive 13 (of 18)." PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'postscript/fonts/SANS/italic.r' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'postscript/fonts/SANS/italic.r'\" else echo shar: Extracting \"'postscript/fonts/SANS/italic.r'\" \(15498 characters\) sed "s/^X//" >'postscript/fonts/SANS/italic.r' <<'END_OF_FILE' XCharStrings X/zero X<CC34 X4935 X4737 X453A X443D X4341 X4344 X4447 X4548 X4749 X4949 X4C48 X4E46 X5043 X5140 X523C X5239 X5136 X5035 X4E34 X4C34 XCC34 X4A35 X4837 X463A X453D X4441 X4444 X4547 X4749 XC949 X4B48 X4D46 X4F43 X5040 X513C X5139 X5036 X4E34 X> Xput XMetrics X/zero X[2 X21] Xput XCharStrings X/one X<CC38 X4749 XCE34 X4849 XCE34 X4B37 X4839 X463A XCD37 X4939 X463A X> Xput XMetrics X/one X[2 X21] Xput XCharStrings X/two X<C738 X4839 X473A X4639 X4638 X4736 X4835 X4B34 X4E34 X5135 X5237 X5239 X513B X4F3D X4C3F X4841 X4543 X4345 X4149 XCE34 X5035 X5137 X5139 X503B X4E3D X4841 XC247 X4346 X4546 X4A48 X4D48 X4F47 X5045 XC546 X4A49 X4D49 X4F48 X5045 X> Xput XMetrics X/two X[2 X21] Xput XCharStrings X/three X<C738 X4839 X473A X4639 X4638 X4736 X4835 X4B34 X4E34 X5135 X5237 X5239 X513B X4E3D X4B3E XCE34 X5035 X5137 X5139 X503B X4E3D XC93E X4B3E X4E3F X4F40 X5042 X5045 X4F47 X4E48 X4B49 X4749 X4448 X4347 X4245 X4244 X4343 X4444 X4345 XCB3E X4D3F X4E40 X4F42 X4F45 X4E47 X4D48 X4B49 X> Xput XMetrics X/three X[2 X21] Xput XCharStrings X/four X<D035 X4A49 XD134 X4B49 XD134 X4243 X5243 X> Xput XMetrics X/four X[2 X21] Xput XCharStrings X/five X<C934 X443E XC934 X5334 XC935 X4E35 X5334 XC43E X453D X483C X4B3C X4E3D X4F3E X5040 X5043 X4F46 X4D48 X4A49 X4749 X4448 X4347 X4245 X4244 X4343 X4444 X4345 XCB3C X4D3D X4E3E X4F40 X4F43 X4E46 X4C48 X4A49 X> Xput XMetrics X/five X[2 X21] Xput XCharStrings X/six X<D137 X5038 X5139 X5238 X5237 X5135 X4F34 X4C34 X4935 X4737 X453A X443D X4341 X4345 X4447 X4548 X4749 X4A49 X4D48 X4F46 X5044 X5041 X4F3F X4E3E X4C3D X493D X473E X4540 X4442 XCC34 X4A35 X4837 X463A X453D X4441 X4446 X4548 XCA49 X4C48 X4E46 X4F44 X4F40 X4E3E X> Xput XMetrics X/six X[2 X21] Xput XCharStrings X/seven X<C634 X443A XD334 X5237 X503A X4B40 X4943 X4845 X4749 XD03A X4A40 X4843 X4745 X4649 XC537 X4834 X4A34 X4F37 XC636 X4835 X4A35 X4F37 X5137 X5236 X5334 X> Xput XMetrics X/seven X[2 X21] Xput XCharStrings X/eight X<CB34 X4835 X4736 X4638 X463B X473D X493E X4C3E X503D X513C X523A X5237 X5135 X4E34 X4B34 XCB34 X4935 X4836 X4738 X473B X483D X493E XCC3E X4F3D X503C X513A X5137 X5035 X4E34 XC93E X453F X4341 X4243 X4246 X4348 X4649 X4A49 X4E48 X4F47 X5045 X5042 X4F40 X4E3F X4C3E XC93E X463F X4441 X4343 X4346 X4448 X4649 XCA49 X4D48 X4E47 X4F45 X4F41 X4E3F X> Xput XMetrics X/eight X[2 X21] Xput XCharStrings X/nine X<D13B X503D X4E3F X4C40 X4940 X473F X463E X453C X4539 X4637 X4835 X4B34 X4E34 X5035 X5136 X5238 X523C X5140 X5043 X4E46 X4C48 X4949 X4649 X4448 X4346 X4345 X4444 X4545 X4446 XC73F X463D X4639 X4737 X4935 X4B34 XD035 X5137 X513C X5040 X4F43 X4D46 X4B48 X4949 X> Xput XMetrics X/nine X[2 X21] Xput XCharStrings X/period X<C347 X4248 X4349 X4448 X4347 X> Xput XMetrics X/period X[-2 X11] Xput XCharStrings X/comma X<C349 X4248 X4347 X4448 X4449 X434B X414D X> Xput XMetrics X/comma X[-1 X11] Xput XCharStrings X/colon X<C63B X453C X463D X473C X463B XC347 X4248 X4349 X4448 X> Xput XMetrics X/colon X[0 X11] Xput XCharStrings X/semicolon X<C63B X453C X463D X473C X463B XC349 X4248 X4347 X4448 X4449 X434B X414D X> Xput XMetrics X/semicolon X[0 X11] Xput XCharStrings X/exclam X<C834 X4735 X4541 XC835 X4541 XC834 X4935 X4541 XC347 X4248 X4349 X4448 X4347 X> Xput XMetrics X/exclam X[7 X11] Xput XCharStrings X/question X<C738 X4839 X473A X4639 X4638 X4736 X4835 X4B34 X4F34 X5235 X5337 X5339 X523B X513C X4B3E X493F X4941 X4A42 X4C42 XCF34 X5135 X5237 X5239 X513B X503C X4E3D XC847 X4748 X4849 X4948 X4847 X> Xput XMetrics X/question X[2 X21] Xput XCharStrings X/quoteleft X<C934 X4736 X4638 X4639 X473A X4839 X4738 X> Xput XMetrics X/quoteleft X[7 X11] Xput XCharStrings X/quoteright X<C836 X4735 X4834 X4935 X4936 X4838 X463A X> Xput XMetrics X/quoteright X[7 X11] Xput XCharStrings X/ampersand X<D73C X563D X573E X583D X583C X573B X563B X543C X523E X4D46 X4B48 X4949 X4649 X4348 X4246 X4244 X4342 X4441 X4640 X4B3E X4D3D X4F3B X5039 X5037 X4F35 X4D34 X4B35 X4A37 X4A3A X4B40 X4C43 X4E46 X5048 X5249 X5449 X5547 X5546 XC649 X4448 X4346 X4344 X4442 X4541 X4B3E XCA3A X4B3F X4C42 X4E45 X5047 X5248 X5448 X5547 X> Xput XMetrics X/ampersand X[-1 X26] Xput XCharStrings X/dollar X<CC30 X444D XD130 X494D XD238 X5139 X523A X5339 X5338 X5236 X5135 X4E34 X4A34 X4735 X4537 X4539 X463B X473C X4E40 X5042 XC539 X473B X4E3F X4F40 X5042 X5045 X4F47 X4E48 X4B49 X4749 X4448 X4347 X4245 X4244 X4343 X4444 X4345 X> Xput XMetrics X/dollar X[6 X21] Xput XCharStrings X/slash X<D830 X3E50 X> Xput XMetrics X/slash X[5 X22] Xput XCharStrings X/parenleft X<CF30 X4B33 X4836 X4639 X443D X4342 X4346 X444B X454E X4650 XCB33 X4837 X463B X453E X4443 X4448 X454D X4650 X> Xput XMetrics X/parenleft X[9 X15] Xput XCharStrings X/parenright X<C930 X4A32 X4B35 X4C3A X4C3E X4B43 X4947 X474A X444D X4050 XC930 X4A33 X4B38 X4B3D X4A42 X4945 X4749 X444D X> Xput XMetrics X/parenright X[8 X15] Xput XCharStrings X/asterisk X<CA34 X4A40 XC537 X4F3D XCF37 X453D X> Xput XMetrics X/asterisk X[4 X17] Xput XCharStrings X/minus X<C440 X5640 X> Xput XMetrics X/minus X[-4 X26] Xput XCharStrings X/plus X<CD37 X4D49 XC440 X5640 X> Xput XMetrics X/plus X[-4 X26] Xput XCharStrings X/equal X<C43D X563D XC443 X5643 X> Xput XMetrics X/equal X[-4 X26] Xput XCharStrings X/quotesingle X<C734 X453B XC834 X453B X> Xput XMetrics X/quotesingle X[8 X9] Xput XCharStrings X/quotedbl X<C734 X453B XC834 X453B XD034 X4E3B XD134 X4E3B X> Xput XMetrics X/quotedbl X[3 X18] Xput XCharStrings X/ring X<C834 X4635 X4537 X4539 X463B X483C X4A3C X4C3B X4D39 X4D37 X4C35 X4A34 X4834 X> Xput XMetrics X/ring X[5 X15] Xput XCharStrings X/A<D334 X5136 X4F39 X4C3E X4A41 X4745 X4448 X4249 X4049 X3F48 X3F46 X4045 X4146 X4047 XD334 X5238 X5042 X4F49 XD334 X5049 XCF49 X4F47 X4E44 X4D42 X4B40 X493F X473F X4640 X4642 X4745 X4A48 X4D49 X5149 X5348 X> Xput XMetrics X/A[1 X23] Xput XCharStrings X/B<CF35 X4E36 X4D38 X4B3D X4943 X4845 X4648 X4449 XCE36 X4D39 X4B41 X4A44 X4946 X4748 X4449 X4249 X4148 X4146 X4245 X4346 X4247 XC93A X483C X473D X453D X443C X443A X4538 X4736 X4935 X4C34 X5234 X5435 X5537 X5539 X543B X523C X4E3D X4C3D XD234 X5335 X5437 X5439 X533B X523C XCE3D X513E X523F X5341 X5344 X5247 X5148 X4F49 X4D49 X4C48 X4C46 X4D43 XCE3D X503E X513F X5241 X5244 X5147 X4F49 X> Xput XMetrics X/B[0 X24] Xput XCharStrings X/C<C336 X4238 X423A X433C X463D X493D X4D3C X4F3B X5139 X5237 X5235 X5134 X4F34 X4C35 X4938 X473B X453F X4443 X4446 X4548 X4849 X4A49 X4D48 X4F46 X5044 X5042 X4F40 X4D40 X4B41 X4A43 XCF34 X4D35 X4A38 X483B X463F X4543 X4546 X4648 X4849 X> Xput XMetrics X/C[2 X21] Xput XCharStrings X/D<CF35 X4E36 X4D38 X4B3D X4943 X4845 X4648 X4449 XCE36 X4D39 X4B41 X4A44 X4946 X4748 X4449 X4249 X4148 X4146 X4245 X4445 X4646 X4848 X4A49 X4D49 X4F48 X5146 X5342 X543D X543A X5337 X5135 X4F34 X4A34 X4735 X4537 X4439 X443B X453C X473C X483B X4939 X> Xput XMetrics X/D[0 X23] Xput XCharStrings X/E<CE37 X4D38 X4D3A X4E3B X503B X5139 X5137 X5035 X4E34 X4B34 X4935 X4836 X4738 X473A X483C X4A3D XCB34 X4936 X4838 X483B X4A3D XCA3D X483D X453E X4340 X4242 X4245 X4347 X4448 X4649 X4949 X4C48 X4E46 X4F44 X4F42 X4E40 X4C40 X4A41 X4943 XC83D X463E X4440 X4342 X4346 X4448 X> Xput XMetrics X/E[3 X19] Xput XCharStrings X/F<D036 X4F38 X4D3D X4B43 X4A45 X4848 X4649 XCA3A X493C X473D X453D X443B X4439 X4537 X4735 X4A34 X5434 X5135 X5036 X4F39 X4D41 X4C44 X4B46 X4948 X4649 X4449 X4248 X4147 X4146 X4245 X4346 X4247 XCC34 X5035 X5135 XC841 X4940 X4B3F X4F3F X513E X533B X5142 X> Xput XMetrics X/F[1 X21] Xput XCharStrings X/G<C337 X4239 X423B X433D X453E X483E X4B3D X4D3C X5039 X5136 X5135 X5034 X4F34 X4D35 X4B37 X4A39 X493C X493F X4A41 X4C42 X4E42 X5041 X523F X533D XD034 X4E35 X4C37 X4B39 X4A3C X4A40 X4C42 XD33D X5241 X5045 X4E47 X4C48 X4849 X4549 X4348 X4246 X4245 X4344 X4445 X4346 XD241 X5044 X4E46 X4B48 X4849 X> Xput XMetrics X/G[1 X22] Xput XCharStrings X/H<C63A X4539 X4537 X4635 X4934 X4C34 X493F X4745 X4647 X4548 X4349 X4149 X4048 X4046 X4145 X4246 X4147 XCC34 X493D X4840 X4645 X4547 X4349 XC442 X4541 X4740 X503D X523C X553A X5738 X5836 X5835 X5734 X5634 X5435 X5238 X513A X4F40 X4E44 X4E47 X5049 X5149 X5348 X5546 XD634 X5436 X523A X5040 X4F44 X4F47 X5049 X> Xput XMetrics X/H[0 X24] Xput XCharStrings X/I<CE36 X4C39 X4A3E X4843 X4745 X4548 X4349 XD03A X4E3C X4B3D X483D X463C X453A X4538 X4636 X4835 X4C34 X5034 X4E36 X4D38 X4B3E X4944 X4846 X4648 X4349 X4149 X4048 X4046 X4145 X4246 X4147 X> Xput XMetrics X/I[3 X16] Xput XCharStrings X/J<D034 X4E36 X4C39 X4A3E X4747 X454B XD03B X4E3D X4B3E X483E X463D X453B X4539 X4637 X4835 X4C34 X5034 X4E37 X4D39 X4A42 X4846 X4748 X454B X444C X424D X414C X414A X4248 X4446 X4645 X4944 X4D43 X> Xput XMetrics X/J[3 X17] Xput XCharStrings X/K<C63A X4539 X4537 X4735 X4A34 X4C34 X493F X4745 X4647 X4548 X4349 X4149 X4048 X4046 X4145 X4246 X4147 XCC34 X493D X4840 X4645 X4547 X4349 XD435 X5139 X4F3B X4D3C X4A3D XD735 X5636 X5737 X5836 X5835 X5734 X5634 X5435 X513A X503B X4E3C X4A3D XCA3D X4D3E X4E40 X4F47 X5049 XCA3D X4C3E X4D40 X4E47 X5049 X5149 X5348 X5546 X> Xput XMetrics X/K[0 X24] Xput XCharStrings X/L<C437 X4339 X433B X443D X463E X493E X4C3D X4E3C X5139 X5236 X5235 X5134 X5034 X4E35 X4D36 X4B39 X4743 X4645 X4448 X4249 XCD36 X4B3A X4941 X4844 X4746 X4548 X4249 X4049 X3F48 X3F46 X4045 X4245 X4446 X4748 X4949 X4C49 X4E48 X5046 X> Xput XMetrics X/L[3 X18] Xput XCharStrings X/M<CE34 X4A3D X4743 X4546 X4348 X4149 X3F49 X3E48 X3E46 X3F45 X4046 X3F47 XCE34 X4C3B X4B3F X4A44 X4A48 X4C49 XCE34 X4D38 X4C3D X4B44 X4B48 X4C49 XD734 X533D X4E46 X4C49 XD734 X553B X543F X5344 X5348 X5549 X5649 X5848 X5A46 XD734 X5638 X553D X5444 X5448 X5549 X> Xput XMetrics X/M[2 X28] Xput XCharStrings X/N<CB34 X4A38 X483E X4643 X4545 X4348 X4149 X3F49 X3E48 X3E46 X3F45 X4046 X3F47 XCB34 X4B39 X4C44 X4D49 XCB34 X4C39 X4D44 X4D49 XD935 X5836 X5937 X5A36 X5A35 X5934 X5734 X5535 X5338 X523A X503F X4E45 X4D49 X> Xput XMetrics X/N[2 X23] Xput XCharStrings X/O<CB34 X4935 X4737 X453A X443C X4340 X4344 X4447 X4548 X4749 X4949 X4C48 X4E46 X5043 X5141 X523D X5239 X5136 X5035 X4F35 X4D36 X4B38 X493C X4841 X4844 XC935 X4738 X453C X4440 X4444 X4547 X4749 X> Xput XMetrics X/O[2 X21] Xput XCharStrings X/P<CF35 X4E36 X4D38 X4B3D X4943 X4845 X4648 X4449 XCE36 X4D39 X4B41 X4A44 X4946 X4748 X4449 X4249 X4148 X4146 X4245 X4346 X4247 XC93A X483C X473D X453D X443C X443A X4538 X4736 X4935 X4C34 X5034 X5335 X5436 X5538 X553B X543D X533E X503F X4E3F X4C3E XD034 X5235 X5336 X5438 X543B X533D X523E X503F X> Xput XMetrics X/P[0 X23] Xput XCharStrings X/Q<CD38 X4D3A X4C3C X4B3D X493E X473E X463C X463A X4737 X4935 X4C34 X4F34 X5135 X5237 X523B X513E X4F41 X4B45 X4847 X4648 X4349 X4149 X4048 X4046 X4145 X4345 X4546 X4848 X4B49 X4E49 X5048 X5246 XCF34 X5035 X5137 X513B X503E X4E41 X4B44 X4747 X4349 X> Xput XMetrics X/Q[2 X21] Xput XCharStrings X/R<CF35 X4E36 X4D38 X4B3D X4943 X4845 X4648 X4449 XCE36 X4D39 X4B41 X4A44 X4946 X4748 X4449 X4249 X4148 X4146 X4245 X4346 X4247 XC93A X483C X473D X453D X443C X443A X4538 X4736 X4935 X4C34 X5134 X5435 X5537 X5539 X543B X533C X503D X4C3D XD134 X5335 X5437 X5439 X533B X523C X503D XCC3D X4F3E X5040 X5147 X5249 XCC3D X4E3E X4F40 X5047 X5249 X5349 X5548 X5746 X> Xput XMetrics X/R[0 X24] Xput XCharStrings X/S<C637 X4539 X453B X463D X483E X4B3E X4E3D X503C X5339 X5436 X5435 X5334 X5234 X5035 X4F36 X4E38 X4D3B X4B42 X4A45 X4848 X4649 XCE38 X4D3C X4C43 X4B46 X4948 X4649 X4349 X4148 X4046 X4045 X4144 X4245 X4146 X> Xput XMetrics X/S[2 X20] Xput XCharStrings X/T<D036 X4F38 X4D3D X4B43 X4A45 X4848 X4649 XCA3A X493C X473D X453D X443B X4439 X4537 X4735 X4A34 X5334 X5135 X5036 X4F39 X4D41 X4C44 X4B46 X4948 X4649 X4449 X4248 X4147 X4146 X4245 X4346 X4247 XCC34 X5035 X5135 X> Xput XMetrics X/T[3 X18] Xput XCharStrings X/U<C138 X4335 X4534 X4634 X4836 X4839 X473C X4444 X4447 X4549 XC634 X4736 X4739 X4441 X4344 X4347 X4549 X4749 X4948 X4C45 X4E42 X4F40 XD334 X4F40 X4E44 X4E47 X5049 X5149 X5348 X5546 XD434 X5040 X4F44 X4F47 X5049 X> Xput XMetrics X/U[1 X22] Xput XCharStrings X/V<C138 X4335 X4534 X4634 X4836 X4839 X473D X4544 X4547 X4649 XC634 X4736 X4739 X4540 X4444 X4447 X4649 X4749 X4A48 X4D45 X4F42 X513E X523B X5337 X5335 X5234 X5134 X5035 X4F37 X4F3A X503C X523E X543F X563F X> Xput XMetrics X/V[1 X21] Xput XCharStrings X/W<C33A X423A X4139 X4137 X4235 X4434 X4834 X4736 X463A X4543 X4449 XC63A X4643 X4549 XD034 X4E36 X4C3A X4943 X4747 X4549 XD034 X4F36 X4E3A X4D43 X4C49 XCE3A X4E43 X4D49 XDA34 X5835 X5637 X543A X5143 X4F47 X4D49 X> Xput XMetrics X/W[0 X23] Xput XCharStrings X/X<C839 X473A X453A X4439 X4437 X4535 X4734 X4934 X4B35 X4C37 X4C3A X4B3E X4943 X4746 X4548 X4249 X4049 X3F48 X3F46 X4045 X4146 X4047 XC934 X4A35 X4B37 X4B3A X4A3E X4843 X4646 X4448 X4249 XD535 X5436 X5537 X5636 X5635 X5534 X5334 X5135 X4F37 X4D3A X4B3E X4A43 X4A46 X4B48 X4C49 X4D49 X4F48 X5146 X> Xput XMetrics X/X[2 X20] Xput XCharStrings X/Y<C338 X4535 X4734 X4834 X4A35 X4A37 X483D X4840 X4942 XC834 X4935 X4937 X473D X4740 X4942 X4B42 X4E41 X503F X523C X533A XD534 X533A X5042 X4E46 XD634 X543A X523F X5043 X4E46 X4C48 X4949 X4549 X4348 X4246 X4245 X4344 X4445 X4346 X> Xput XMetrics X/Y[1 X22] Xput XCharStrings X/Z<D336 X5238 X503D X4F40 X4E42 X4C45 X4A47 X4848 X4549 XCC3A X4B3C X493D X473D X463B X4639 X4737 X4935 X4C34 X5634 X5435 X5336 X5239 X513D X4F43 X4D46 X4A48 X4549 X4149 X4048 X4046 X4145 X4345 X4546 X4848 X4A49 X4D49 X5048 X5246 XCF34 X5335 X5435 X> Xput XMetrics X/Z[1 X21] Xput XCharStrings X/a<CA43 X4941 X4740 X4540 X4341 X4242 X4144 X4146 X4248 X4449 X4649 X4848 X4946 XC540 X4342 X4244 X4247 X4449 XCB40 X4946 X4948 X4B49 X4D48 X4E47 X5044 XCC40 X4A46 X4A48 X4B49 X> Xput XMetrics X/a[-1 X16] Xput XCharStrings X/b<C044 X4241 X443D XC734 X4146 X4148 X4349 X4449 X4648 X4846 X4943 X4940 X4A44 X4B45 X4C45 X4E44 XC834 X4246 X4248 X4349 X> Xput XMetrics X/b[6 X14] Xput XCharStrings X/c<C841 X4742 X4842 X4841 X4740 X4540 X4341 X4242 X4144 X4146 X4248 X4449 X4749 X4A47 X4C44 XC540 X4342 X4244 X4247 X4449 X> Xput XMetrics X/c[-1 X12] Xput XCharStrings X/d<CA43 X4941 X4740 X4540 X4341 X4242 X4144 X4146 X4248 X4449 X4649 X4848 X4946 XC540 X4342 X4244 X4247 X4449 XCF34 X4946 X4948 X4B49 X4D48 X4E47 X5044 XD034 X4A46 X4A48 X4B49 X> Xput XMetrics X/d[5 X16] Xput XCharStrings X/e<C347 X4546 X4645 X4743 X4741 X4640 X4540 X4341 X4242 X4144 X4146 X4248 X4449 X4749 X4A47 X4C44 XC540 X4342 X4244 X4247 X4449 X> Xput XMetrics X/e[-1 X12] Xput XCharStrings X/f<C340 X463D X483A X4937 X4935 X4834 X4635 X4537 X3C52 X3C54 X3D55 X3F54 X4051 X4148 X4249 X4449 X4648 X4747 X4944 XC537 X443C X4340 X4049 X3E4E X3C52 X> Xput XMetrics X/f[9 X9] Xput XCharStrings X/g<CA43 X4941 X4740 X4540 X4341 X4242 X4144 X4146 X4248 X4449 X4649 X4848 X4946 XC540 X4342 X4244 X4247 X4449 XCB40 X4552 XCC40 X4949 X474E X4552 X4454 X4255 X4154 X4152 X424F X444D X474B X4B49 X4E47 X5044 X> Xput XMetrics X/g[-1 X16] Xput XCharStrings X/h<C044 X4241 X443D XC734 X4049 XC834 X4149 XC343 X4541 X4740 X4840 X4A41 X4A43 X4946 X4948 X4A49 XC840 X4941 X4943 X4846 X4848 X4A49 X4C48 X4D47 X4F44 X> Xput XMetrics X/h[6 X15] Xput XCharStrings X/i<C53A X443B X453C X463B X453A XC340 X4146 X4148 X4349 X4548 X4647 X4844 XC440 X4246 X4248 X4349 X> Xput XMetrics X/i[2 X8] Xput XCharStrings X/j<C53A X443B X453C X463B X453A XC340 X3D52 XC440 X4149 X3F4E X3D52 X3C54 X3A55 X3954 X3952 X3A4F X3C4D X3F4B X4349 X4647 X4844 X> Xput XMetrics X/j[7 X8] Xput XCharStrings X/k<C044 X4241 X443D XC734 X4049 XC834 X4149 XC940 X4941 X4A41 X4940 X4840 X4642 X4343 XC343 X4644 X4748 X4849 XC343 X4544 X4648 X4849 X4949 X4C47 X4E44 X> Xput XMetrics X/k[6 X14] Xput XCharStrings X/l<C044 X4241 X443D XC734 X4146 X4148 X4349 X4548 X4647 X4844 XC834 X4246 X4248 X4349 X> Xput XMetrics X/l[8 X8] Xput XCharStrings X/m<C044 X4241 X4440 X4641 X4643 X4449 XC440 X4541 X4543 X4349 XC643 X4841 X4A40 X4B40 X4D41 X4D43 X4B49 XCB40 X4C41 X4C43 X4A49 XCD43 X4F41 X5140 X5240 X5441 X5443 X5346 X5348 X5449 XD240 X5341 X5343 X5246 X5248 X5449 X5648 X5747 X5944 X> Xput XMetrics X/m[0 X25] Xput XCharStrings X/n<C044 X4241 X4440 X4641 X4643 X4449 XC440 X4541 X4543 X4349 XC643 X4841 X4A40 X4B40 X4D41 X4D43 X4C46 X4C48 X4D49 XCB40 X4C41 X4C43 X4B46 X4B48 X4D49 X4F48 X5047 X5244 X> Xput XMetrics X/n[0 X18] Xput XCharStrings X/o<C740 X4540 X4341 X4242 X4144 X4146 X4248 X4449 X4649 X4848 X4947 X4A45 X4A43 X4941 X4740 X4641 X4643 X4745 X4946 X4B46 X4D45 X4E44 XC540 X4342 X4244 X4247 X4449 X> Xput XMetrics X/o[-1 X14] Xput XCharStrings X/p<C044 X4241 X443D XC53A X3C55 XC63A X3D55 XC343 X4541 X4740 X4840 X4A41 X4A43 X4946 X4948 X4A49 XC840 X4941 X4943 X4846 X4848 X4A49 X4C48 X4D47 X4F44 X> Xput XMetrics X/p[4 X15] Xput XCharStrings X/q<CA43 X4941 X4740 X4540 X4341 X4242 X4144 X4146 X4248 X4449 X4649 X4848 XC540 X4342 X4244 X4247 X4449 XCB40 X4552 X4554 X4655 X4854 X4951 X4949 X4B49 X4E47 X5044 XCC40 X4949 X474E X4552 X> Xput XMetrics X/q[-1 X16] Xput XCharStrings X/r<C044 X4241 X4440 X4641 X4643 X4449 XC440 X4541 X4543 X4349 XC643 X4841 X4A40 X4B40 X4A43 XCA40 X4A43 X4B45 X4C45 X4E44 X> Xput XMetrics X/r[0 X14] Xput XCharStrings X/s<C044 X4241 X433F X4341 X4643 X4745 X4747 X4648 X4449 XC341 X4543 X4645 X4647 X4449 XC048 X4249 X4749 X4A47 X4C44 X> Xput XMetrics X/s[0 X12] Xput XCharStrings X/t<C044 X4241 X443D XC734 X4146 X4148 X4349 X4548 X4647 X4844 XC834 X4246 X4248 X4349 XC23C X483C X> Xput XMetrics X/t[8 X8] Xput XCharStrings X/u<C340 X4146 X4148 X4349 X4449 X4648 X4846 X4A43 XC440 X4246 X4248 X4349 XCB40 X4946 X4948 X4B49 X4D48 X4E47 X5044 XCC40 X4A46 X4A48 X4B49 X> Xput XMetrics X/u[-1 X16] Xput XCharStrings X/v<C340 X4242 X4145 X4148 X4349 X4449 X4748 X4946 X4A43 X4A40 XC440 X4342 X4245 X4248 X4349 XCA40 X4B44 X4C45 X4D45 X4F44 X> Xput XMetrics X/v[-1 X15] Xput XCharStrings X/w<C440 X4242 X4145 X4148 X4349 X4449 X4648 X4846 XC540 X4342 X4245 X4248 X4349 XCA40 X4846 X4848 X4A49 X4B49 X4D48 X4F46 X5043 X5040 XCB40 X4946 X4948 X4A49 XD040 X5144 X5245 X5345 X5544 X> Xput XMetrics X/w[-1 X21] Xput XCharStrings X/x<C044 X4241 X4440 X4640 X4741 X4743 X4646 X4548 X4349 X4249 X4148 X4147 X4247 X4148 XCD41 X4C42 X4D42 X4D41 X4C40 X4B40 X4941 X4843 X4746 X4748 X4849 X4B49 X4E47 X5044 XC741 X4843 XC941 X4743 XC646 X4748 XC746 X4548 X> Xput XMetrics X/x[0 X16] Xput XCharStrings X/y<C340 X4146 X4148 X4349 X4449 X4648 X4846 X4A43 XC440 X4246 X4248 X4349 XCB40 X4552 XCC40 X4949 X474E X4552 X4454 X4255 X4154 X4152 X424F X444D X474B X4B49 X4E47 X5044 X> Xput XMetrics X/y[-1 X16] Xput XCharStrings X/z<C044 X4241 X4440 X4640 X4841 X4844 X4746 X4448 X4249 XC640 X4741 X4744 X4646 X4448 XC249 X444A X454C X454F X4452 X4254 X4055 X3F54 X3F52 X404F X434C X464A X4A47 X4D44 XC249 X434A X444C X444F X4352 X4254 X> Xput XMetrics X/z[1 X13] Xput END_OF_FILE if test 15498 -ne `wc -c <'postscript/fonts/SANS/italic.r'`; then echo shar: \"'postscript/fonts/SANS/italic.r'\" unpacked with wrong size! fi # end of 'postscript/fonts/SANS/italic.r' fi if test -f 'postscript/fonts/SANS/roman.r' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'postscript/fonts/SANS/roman.r'\" else echo shar: Extracting \"'postscript/fonts/SANS/roman.r'\" \(16026 characters\) sed "s/^X//" >'postscript/fonts/SANS/roman.r' <<'END_OF_FILE' XCharStrings X/A<CA34 X4249 XCA37 X4349 X4249 XCA37 X5149 X5249 XCA34 X5249 XC543 X4F43 XC444 X5044 X> Xput XMetrics X/A[2 X20] Xput XCharStrings X/B<C434 X4449 XC535 X4548 XC434 X4C34 X4F35 X5036 X5138 X513B X503D X4F3E X4C3F XC535 X4C35 X4F36 X5038 X503B X4F3D X4C3E XC53E X4C3E X4F3F X5040 X5142 X5145 X5047 X4F48 X4C49 X4449 XC53F X4C3F X4F40 X5042 X5045 X4F47 X4C48 X4548 X> Xput XMetrics X/B[2 X20] Xput XCharStrings X/C<D239 X5137 X4F35 X4D34 X4934 X4735 X4537 X4439 X433C X4341 X4444 X4546 X4748 X4949 X4D49 X4F48 X5146 X5244 XD239 X5139 X5037 X4F36 X4D35 X4935 X4736 X4539 X443C X4441 X4544 X4747 X4948 X4D48 X4F47 X5046 X5144 X5244 X> Xput XMetrics X/C[2 X21] Xput XCharStrings X/D<C434 X4449 XC535 X4548 XC434 X4B34 X4E35 X5037 X5139 X523C X5241 X5144 X5046 X4E48 X4B49 X4449 XC535 X4B35 X4E36 X4F37 X5039 X513C X5141 X5044 X4F46 X4E47 X4B48 X4548 X> Xput XMetrics X/D[2 X21] Xput XCharStrings X/E<C434 X4449 XC535 X4548 XC434 X5034 XC535 X5035 X5034 XC53E X4B3E X4B3F XC53F X4B3F XC548 X5048 X5049 XC449 X5049 X> Xput XMetrics X/E[3 X19] Xput XCharStrings X/F<C434 X4449 XC535 X4549 X4449 XC434 X5034 XC535 X5035 X5034 XC53E X4B3E X4B3F XC53F X4B3F X> Xput XMetrics X/F[3 X18] Xput XCharStrings X/G<D239 X5137 X4F35 X4D34 X4934 X4735 X4537 X4439 X433C X4341 X4444 X4546 X4748 X4949 X4D49 X4F48 X5146 X5244 X5240 X4D40 XD239 X5139 X5037 X4F36 X4D35 X4935 X4736 X4637 X4539 X443C X4441 X4544 X4646 X4747 X4948 X4D48 X4F47 X5046 X5144 X5141 X4D41 X4D40 X> Xput XMetrics X/G[2 X21] Xput XCharStrings X/H<C434 X4449 XC434 X4534 X4549 X4449 XD234 X5134 X5149 X5249 XD234 X5249 XC53E X513E XC53F X513F X> Xput XMetrics X/H[1 X22] Xput XCharStrings X/I<C434 X4449 X4549 XC434 X4534 X4549 X> Xput XMetrics X/I[8 X9] Xput XCharStrings X/J<CC34 X4C44 X4B47 X4948 X4748 X4547 X4444 X4344 XCC34 X4D34 X4D44 X4C47 X4B48 X4949 X4749 X4548 X4447 X4344 X> Xput XMetrics X/J[4 X17] Xput XCharStrings X/K<C434 X4449 X4549 XC434 X4534 X4549 XD234 X5134 X4540 XD234 X4541 XC83D X5149 X5249 XC93D X5249 X> Xput XMetrics X/K[2 X21] Xput XCharStrings X/L<C434 X4449 XC434 X4534 X4548 XC548 X5048 X5049 XC449 X5049 X> Xput XMetrics X/L[3 X17] Xput XCharStrings X/M<C434 X4449 XC539 X4549 X4449 XC539 X4C49 XC434 X4C46 XD434 X4C46 XD339 X4C49 XD339 X5349 X5449 XD434 X5449 X> Xput XMetrics X/M[0 X24] Xput XCharStrings X/N<C434 X4449 XC537 X4549 X4449 XC537 X5249 XC434 X5146 XD134 X5146 XD134 X5234 X5249 X> Xput XMetrics X/N[1 X22] Xput XCharStrings X/O<C934 X4735 X4537 X4439 X433C X4341 X4444 X4546 X4748 X4949 X4D49 X4F48 X5146 X5244 X5341 X533C X5239 X5137 X4F35 X4D34 X4934 XCA35 X4736 X4539 X443C X4441 X4544 X4747 X4A48 X4C48 X4F47 X5144 X5241 X523C X5139 X4F36 X4C35 X4A35 X> Xput XMetrics X/O[1 X22] Xput XCharStrings X/P<C434 X4449 XC535 X4549 X4449 XC434 X4D34 X4F35 X5036 X5138 X513B X503D X4F3E X4D3F X453F XC535 X4D35 X4F36 X5038 X503B X4F3D X4D3E X453E X> Xput XMetrics X/P[2 X20] Xput XCharStrings X/Q<C934 X4735 X4537 X4439 X433C X4341 X4444 X4546 X4748 X4949 X4D49 X4F48 X5146 X5244 X5341 X533C X5239 X5137 X4F35 X4D34 X4934 XCA35 X4736 X4539 X443C X4441 X4544 X4747 X4A48 X4C48 X4F47 X5144 X5241 X523C X5139 X4F36 X4C35 X4A35 XCC46 X514B X524B XCC46 X4D46 X524B X> Xput XMetrics X/Q[1 X22] Xput XCharStrings X/R<C434 X4449 XC535 X4549 X4449 XC434 X4C34 X4F35 X5036 X5138 X513B X503D X4F3E X4C3F X453F XC535 X4C35 X4F36 X5038 X503B X4F3D X4C3E X453E XCA3F X5049 X5149 XCB3F X5149 X> Xput XMetrics X/R[2 X20] Xput XCharStrings X/S<D137 X4F35 X4C34 X4834 X4535 X4337 X4339 X443B X453C X473D X4C3F X4E40 X4F41 X5043 X5046 X4F47 X4C48 X4848 X4647 X4546 X4346 XD137 X4F37 X4E36 X4C35 X4835 X4536 X4437 X4439 X453B X473C X4C3E X4E3F X5041 X5143 X5146 X4F48 X4C49 X4849 X4548 X4346 X> Xput XMetrics X/S[2 X20] Xput XCharStrings X/T<C835 X4849 XC935 X4949 X4849 XC234 X4F34 X4F35 XC234 X4235 X4F35 X> Xput XMetrics X/T[4 X17] Xput XCharStrings X/U<C434 X4443 X4546 X4748 X4A49 X4C49 X4F48 X5146 X5243 X5234 XC434 X4534 X4543 X4646 X4747 X4A48 X4C48 X4F47 X5046 X5143 X5134 X5234 X> Xput XMetrics X/U[1 X22] Xput XCharStrings X/V<C234 X4A49 XC234 X4334 X4A46 XD234 X5134 X4A46 XD234 X4A49 X> Xput XMetrics X/V[2 X20] Xput XCharStrings X/W<C234 X4849 XC234 X4334 X4846 XCD34 X4846 XCD37 X4849 XCD37 X5249 XCD34 X5246 XD834 X5734 X5246 XD834 X5249 X> Xput XMetrics X/W[-1 X26] Xput XCharStrings X/X<C334 X5049 X5149 XC334 X4434 X5149 XD134 X5034 X4349 XD134 X4449 X4349 X> Xput XMetrics X/X[2 X20] Xput XCharStrings X/Y<C234 X493E X4949 X4A49 XC234 X4334 X4A3E XD134 X5034 X493E XD134 X4A3E X4A49 X> Xput XMetrics X/Y[3 X19] Xput XCharStrings X/Z<D034 X4349 XD134 X4449 XC334 X5134 XC334 X4335 X5035 XC448 X5148 X5149 XC349 X5149 X> Xput XMetrics X/Z[2 X20] Xput XCharStrings X/zero X<C934 X4635 X4438 X433D X4340 X4445 X4648 X4949 X4B49 X4E48 X5045 X5140 X513D X5038 X4E35 X4B34 X4934 XC735 X4538 X443D X4440 X4545 X4748 XC647 X4948 X4B48 X4E47 XCD48 X4F45 X5040 X503D X4F38 X4D35 XCE36 X4B35 X4935 X4636 X> Xput XMetrics X/zero X[2 X20] Xput XCharStrings X/one X<C638 X4837 X4B34 X4B49 XC638 X4639 X4838 X4A36 X4A49 X4B49 X> Xput XMetrics X/one X[2 X20] Xput XCharStrings X/two X<C439 X4438 X4536 X4635 X4834 X4C34 X4E35 X4F36 X5038 X503A X4F3C X4D3F X4449 XC439 X4539 X4538 X4636 X4835 X4C35 X4E36 X4F38 X4F3A X4E3C X4C3F X4349 XC448 X5148 X5149 XC349 X5149 X> Xput XMetrics X/two X[2 X20] Xput XCharStrings X/three X<C534 X5034 X493D XC534 X4535 X4F35 XCF34 X483D XC93C X4B3C X4E3D X503F X5142 X5143 X5046 X4E48 X4B49 X4849 X4548 X4447 X4345 X4445 XC83D X4B3D X4E3E X5041 XCC3D X4F3F X5042 X5043 X4F46 X4C48 XD044 X4E47 X4B48 X4848 X4547 X4445 XC748 X4446 X> Xput XMetrics X/three X[2 X20] Xput XCharStrings X/four X<CD37 X4D49 X4E49 XCE34 X4E49 XCE34 X4344 X5244 XCD37 X4444 XC443 X5243 X5244 X> Xput XMetrics X/four X[2 X20] Xput XCharStrings X/five X<C534 X443D XC635 X453C XC534 X4F34 X4F35 XC635 X4F35 XC53C X483B X4B3B X4E3C X503E X5141 X5143 X5046 X4E48 X4B49 X4849 X4548 X4447 X4345 X4445 XC43D X453D X473C X4B3C X4E3D X5040 XCC3C X4F3E X5041 X5043 X4F46 X4C48 XD044 X4E47 X4B48 X4848 X4547 X4445 XC748 X4446 X> Xput XMetrics X/five X[2 X20] Xput XCharStrings X/six X<CE35 X4F37 X5037 X4F35 X4C34 X4A34 X4735 X4538 X443D X4442 X4546 X4748 X4A49 X4B49 X4E48 X5046 X5143 X5142 X503F X4E3D X4B3C X4A3C X473D X453F XCF36 X4C35 X4A35 X4736 XC835 X4638 X453D X4542 X4646 X4948 XC544 X4747 X4A48 X4B48 X4E47 X5044 XCC48 X4F46 X5043 X5042 X4F3F X4C3D XD041 X4E3E X4B3D X4A3D X473E X4541 XC93D X463F X4542 X> Xput XMetrics X/six X[2 X20] Xput XCharStrings X/seven X<C334 X5134 X4749 XC334 X4335 X5035 XD034 X4649 X4749 X> Xput XMetrics X/seven X[2 X20] Xput XCharStrings X/eight X<C834 X4535 X4437 X4439 X453B X463C X483D X4C3E X4E3F X4F40 X5042 X5045 X4F47 X4C48 X4848 X4547 X4445 X4442 X4540 X463F X483E X4C3D X4E3C X4F3B X5039 X5037 X4F35 X4C34 X4834 XC635 X4537 X4539 X463B X483C X4C3D X4E3E X5040 X5142 X5145 X5047 X4F48 X4C49 X4849 X4548 X4447 X4345 X4342 X4440 X463E X483D X4C3C X4E3B X4F39 X4F37 X4E35 XCF36 X4C35 X4835 X4536 XC446 X4748 XCD48 X5046 X> Xput XMetrics X/eight X[2 X20] Xput XCharStrings X/nine X<CF3E X4D40 X4A41 X4941 X4640 X443E X433B X433A X4437 X4635 X4934 X4A34 X4D35 X4F37 X503B X5040 X4F45 X4D48 X4A49 X4849 X4548 X4446 X4546 X4648 XCF3B X4E3E X4B40 XCF3C X4D3F X4A40 X4940 X463F X443C XC840 X453E X443B X443A X4537 X4835 XC439 X4636 X4935 X4A35 X4D36 X4F39 XCB35 X4E37 X4F3B X4F40 X4E45 X4C48 XCD47 X4A48 X4848 X4547 X> Xput XMetrics X/nine X[2 X20] Xput XCharStrings X/period X<C546 X4447 X4448 X4549 X4649 X4748 X4747 X4646 X4546 XC547 X4548 X4648 X4647 X4547 X> Xput XMetrics X/period X[-4 X11] Xput XCharStrings X/comma X<C748 X4649 X4549 X4448 X4447 X4546 X4646 X4747 X474A X464C X444D XC547 X4548 X4648 X4647 X4547 XC649 X474A XC748 X464C X> Xput XMetrics X/comma X[-4 X11] Xput XCharStrings X/colon X<C53B X443C X443D X453E X463E X473D X473C X463B X453B XC53C X453D X463D X463C X453C XC546 X4447 X4448 X4549 X4649 X4748 X4747 X4646 X4546 XC547 X4548 X4648 X4647 X4547 X> Xput XMetrics X/colon X[0 X11] Xput XCharStrings X/semicolon X<C53B X443C X443D X453E X463E X473D X473C X463B X453B XC53C X453D X463D X463C X453C XC748 X4649 X4549 X4448 X4447 X4546 X4646 X4747 X474A X464C X444D XC547 X4548 X4648 X4647 X4547 XC649 X474A XC748 X464C X> Xput XMetrics X/semicolon X[0 X11] Xput XCharStrings X/exclam X<C534 X4542 X4642 XC534 X4634 X4642 XC546 X4447 X4448 X4549 X4649 X4748 X4747 X4646 X4546 XC547 X4548 X4648 X4647 X4547 X> Xput XMetrics X/exclam X[7 X11] Xput XCharStrings X/question X<C339 X4338 X4436 X4535 X4834 X4B34 X4E35 X4F36 X5038 X503A X4F3C X4E3D X4C3E X493F XC339 X4439 X4438 X4536 X4835 X4B35 X4E36 X4F38 X4F3A X4E3C X4C3D X493E XC437 X4735 XCC35 X4F37 XCF3B X4B3E XC93E X4942 X4A42 X4A3E XC946 X4847 X4848 X4949 X4A49 X4B48 X4B47 X4A46 X4946 XC947 X4948 X4A48 X4A47 X4947 X> Xput XMetrics X/question X[3 X19] Xput XCharStrings X/quoteleft X<C734 X4535 X4437 X443A X453B X463B X473A X4739 X4638 X4538 X4439 XC539 X453A X463A X4639 X4539 XC535 X4439 XC437 X4538 X> Xput XMetrics X/quoteleft X[7 X11] Xput XCharStrings X/quoteright X<C736 X4637 X4537 X4436 X4435 X4534 X4634 X4735 X4738 X463A X443B XC535 X4536 X4636 X4635 X4535 XC637 X4738 XC736 X463A X> Xput XMetrics X/quoteright X[7 X11] Xput XCharStrings X/ampersand X<D63B X543B X523C X513E X4F44 X4E46 X4D47 X4B48 X4748 X4547 X4445 X4443 X4541 X4640 X4B3D X4D3B X4E39 X4E37 X4D35 X4B34 X4A34 X4835 X4737 X4739 X483C X4A3F X4F45 X5248 X5449 X5649 XD63B X563C X543C X523D XD33C X523E X5044 X4F46 X4D48 X4B49 X4749 X4548 X4447 X4345 X4343 X4441 X463F X4B3C X4C3B X4D39 X4D37 X4C35 XCD36 X4B35 X4A35 X4836 XC935 X4837 X4839 X493C X4B3F X5045 X5247 X5448 X5648 X5649 X> Xput XMetrics X/ampersand X[0 X25] Xput XCharStrings X/dollar X<C930 X494D X4A4D XC930 X4A30 X4A4D XCE37 X5037 X4E35 X4B34 X4834 X4535 X4337 X4339 X443B X453C X4D40 X4E41 X4F43 X4F45 X4E47 X4B48 X4848 X4647 X4546 XCE37 X4D36 X4B35 X4835 X4536 X4437 X4439 X453B X4D3F X4F41 X5043 X5045 X4F47 X4E48 X4B49 X4849 X4548 X4346 X4546 XCF46 X4C48 X> Xput XMetrics X/dollar X[7 X19] Xput XCharStrings X/slash X<D430 X4250 X4350 XD430 X5530 X4350 X> Xput XMetrics X/slash X[5 X23] Xput XCharStrings X/parenleft X<CA30 X4832 X4635 X4439 X433E X4342 X4447 X464B X484E X4A50 X4B50 XCA30 X4B30 X4932 X4735 X4539 X443E X4442 X4547 X474B X494E X4B50 X> Xput XMetrics X/parenleft X[9 X14] Xput XCharStrings X/parenright X<C330 X4532 X4735 X4939 X4A3E X4A42 X4947 X474B X454E X4350 X4450 XC330 X4430 X4632 X4835 X4A39 X4B3E X4B42 X4A47 X484B X464E X4450 X> Xput XMetrics X/parenright X[9 X14] Xput XCharStrings X/asterisk X<C834 X4735 X493F X4840 XC834 X4840 XC834 X4935 X473F X4840 XC337 X4437 X4C3D X4D3D XC337 X4D3D XC337 X4338 X4D3C X4D3D XCD37 X4C37 X443D X433D XCD37 X433D XCD37 X4D38 X433C X433D X> Xput XMetrics X/asterisk X[4 X16] Xput X% XCharStrings X/minus X<C43F X553F X5540 XC43F X4440 X5540 X> Xput XMetrics X/minus X[-4 X25] Xput XCharStrings X/plus X<CC37 X4C48 X4D48 XCC37 X4D37 X4D48 XC43F X553F X5540 XC43F X4440 X5540 X> Xput XMetrics X/plus X[-3 X25] Xput XCharStrings X/equal X<C43B X553B X553C XC43B X443C X553C XC443 X5543 X5544 XC443 X4444 X5544 X> Xput XMetrics X/equal X[-4 X25] Xput XCharStrings X/quotesingle X<C534 X4435 X443B XC535 X443B XC534 X4635 X443B X> Xput XMetrics X/quotesingle X[8 X9] Xput XCharStrings X/quotedbl X<C534 X4435 X443B XC535 X443B XC534 X4635 X443B XCE34 X4D35 X4D3B XCE35 X4D3B XCE34 X4F35 X4D3B X> Xput XMetrics X/quotedbl X[3 X18] Xput XCharStrings X/ring X<C634 X4435 X4337 X4339 X443B X463C X483C X4A3B X4B39 X4B37 X4A35 X4834 X4634 XC634 X4337 X443B X483C X4B39 X4A35 X4634 XC834 X4435 X4339 X463C X4A3B X4B37 X4834 X> Xput XMetrics X/ring X[5 X14] Xput XCharStrings X/a<CF3B X4F49 X5049 XCF3B X503B X5049 XCF3E X4D3C X4B3B X483B X463C X443E X4341 X4343 X4446 X4648 X4849 X4B49 X4D48 X4F46 XCF3E X4B3C X483C X463D X453E X4441 X4443 X4546 X4647 X4848 X4B48 X4F46 X> Xput XMetrics X/a[-3 X20] Xput XCharStrings X/b<C434 X4449 X4549 XC434 X4534 X4549 XC53E X473C X493B X4C3B X4E3C X503E X5141 X5143 X5046 X4E48 X4C49 X4949 X4748 X4546 XC53E X493C X4C3C X4E3D X4F3E X5041 X5043 X4F46 X4E47 X4C48 X4948 X4546 X> Xput XMetrics X/b[2 X20] Xput XCharStrings X/c<CF3E X4D3C X4B3B X483B X463C X443E X4341 X4343 X4446 X4648 X4849 X4B49 X4D48 X4F46 XCF3E X4E3F X4D3D X4B3C X483C X463D X453E X4441 X4443 X4546 X4647 X4848 X4B48 X4D47 X4E45 X4F46 X> Xput XMetrics X/c[-3 X18] Xput XCharStrings X/d<CF34 X4F49 X5049 XCF34 X5034 X5049 XCF3E X4D3C X4B3B X483B X463C X443E X4341 X4343 X4446 X4648 X4849 X4B49 X4D48 X4F46 XCF3E X4B3C X483C X463D X453E X4441 X4443 X4546 X4647 X4848 X4B48 X4F46 X> Xput XMetrics X/d[2 X20] Xput XCharStrings X/e<C442 X4F42 X4F3F X4E3D X4D3C X4B3B X483B X463C X443E X4341 X4343 X4446 X4648 X4849 X4B49 X4D48 X4F46 XC441 X4E41 X4E3F X4D3D X4B3C X483C X463D X453E X4441 X4443 X4546 X4647 X4848 X4B48 X4D47 X4E45 X4F46 X> Xput XMetrics X/e[-3 X18] Xput XCharStrings X/f<CB34 X4934 X4735 X4638 X4649 X4749 XCB34 X4B35 X4935 X4736 XC835 X4738 X4749 XC33B X4A3B X4A3C XC33B X433C X4A3C X> Xput XMetrics X/f[6 X14] Xput XCharStrings X/g<D03B X4F3B X4F4A X4E4D X4D4E X4B4F X494F X474E X464D X444D XD03B X504A X4F4D X4D4F X4B50 X4850 X464F X444D XCF3E X4D3C X4B3B X483B X463C X443E X4341 X4343 X4446 X4648 X4849 X4B49 X4D48 X4F46 XCF3E X4B3C X483C X463D X453E X4441 X4443 X4546 X4647 X4848 X4B48 X4F46 X> Xput XMetrics X/g[-3 X20] Xput XCharStrings X/h<C434 X4449 X4549 XC434 X4534 X4549 XC53F X483C X4A3B X4D3B X4F3C X503F X5049 XC53F X483D X4A3C X4C3C X4E3D X4F3F X4F49 X5049 X> Xput XMetrics X/h[2 X20] Xput XCharStrings X/i<C434 X4335 X4336 X4437 X4537 X4636 X4635 X4534 X4434 XC435 X4436 X4536 X4535 X4435 XC43B X4449 X4549 XC43B X453B X4549 X> Xput XMetrics X/i[8 X9] Xput XCharStrings X/j<C534 X4435 X4436 X4537 X4637 X4736 X4735 X4634 X4534 XC535 X4536 X4636 X4635 X4535 XC63B X464C X454F X4350 X4150 X414F XC63B X453B X454C X444E X434F X414F X> Xput XMetrics X/j[7 X10] Xput XCharStrings X/k<C434 X4449 X4549 XC434 X4534 X4549 XD03B X4F3B X4545 XD03B X4546 XC842 X4E49 X5049 XC941 X5049 X> Xput XMetrics X/k[2 X19] Xput XCharStrings X/l<C434 X4449 X4549 XC434 X4534 X4549 X> Xput XMetrics X/l[8 X9] Xput XCharStrings X/m<C43B X4449 X4549 XC43B X453B X4549 XC53F X483C X4A3B X4D3B X4F3C X503F X5049 XC53F X483D X4A3C X4C3C X4E3D X4F3F X4F49 X5049 XD03F X533C X553B X583B X5A3C X5B3F X5B49 XD03F X533D X553C X573C X593D X5A3F X5A49 X5B49 X> Xput XMetrics X/m[-4 X31] Xput XCharStrings X/n<C43B X4449 X4549 XC43B X453B X4549 XC53F X483C X4A3B X4D3B X4F3C X503F X5049 XC53F X483D X4A3C X4C3C X4E3D X4F3F X4F49 X5049 X> Xput XMetrics X/n[-4 X20] Xput XCharStrings X/o<C83B X463C X443E X4341 X4343 X4446 X4648 X4849 X4B49 X4D48 X4F46 X5043 X5041 X4F3E X4D3C X4B3B X483B XC83C X463D X453E X4441 X4443 X4546 X4647 X4848 X4B48 X4D47 X4E46 X4F43 X4F41 X4E3E X4D3D X4B3C X483C X> Xput XMetrics X/o[-3 X19] Xput XCharStrings X/p<C43B X4450 X4550 XC43B X453B X4550 XC53E X473C X493B X4C3B X4E3C X503E X5141 X5143 X5046 X4E48 X4C49 X4949 X4748 X4546 XC53E X493C X4C3C X4E3D X4F3E X5041 X5043 X4F46 X4E47 X4C48 X4948 X4546 X> Xput XMetrics X/p[-4 X20] Xput XCharStrings X/q<CF3B X4F50 X5050 XCF3B X503B X5050 XCF3E X4D3C X4B3B X483B X463C X443E X4341 X4343 X4446 X4648 X4849 X4B49 X4D48 X4F46 XCF3E X4B3C X483C X463D X453E X4441 X4443 X4546 X4647 X4848 X4B48 X4F46 X> Xput XMetrics X/q[-3 X20] Xput XCharStrings X/r<C43B X4449 X4549 XC43B X453B X4549 XC541 X463E X483C X4A3B X4D3B XC541 X463F X483D X4A3C X4D3C X4D3B X> Xput XMetrics X/r[-2 X14] Xput XCharStrings X/s<CE3E X4D3C X4A3B X473B X443C X433E X4440 X4641 X4B43 X4D44 XCC43 X4D45 X4D46 X4C48 XCD47 X4A48 X4748 X4447 XC548 X4446 X4346 XCE3E X4D3E X4C3C XCD3D X4A3C X473C X443D XC53C X443E X4540 XC43F X4640 X4B42 X4D43 X4E45 X4E46 X4D48 X4A49 X4749 X4448 X4346 X> Xput XMetrics X/s[-3 X17] Xput XCharStrings X/t<C534 X4549 X4649 XC534 X4634 X4649 XC23B X493B X493C XC23B X423C X493C X> Xput XMetrics X/t[7 X11] Xput XCharStrings X/u<C43B X4445 X4548 X4749 X4A49 X4C48 X4F45 XC43B X453B X4545 X4647 X4848 X4A48 X4C47 X4F45 XCF3B X4F49 X5049 XCF3B X503B X5049 X> Xput XMetrics X/u[-4 X20] Xput XCharStrings X/v<C23B X4849 XC23B X433B X4847 XCE3B X4D3B X4847 XCE3B X4849 X> Xput XMetrics X/v[-2 X16] Xput XCharStrings X/w<C33B X4849 XC33B X443B X4846 XCC3B X4846 XCC3E X4849 XCC3E X5049 XCC3B X5046 XD53B X543B X5046 XD53B X5049 X> Xput XMetrics X/w[-3 X24] Xput XCharStrings X/x<C33B X4E49 X4F49 XC33B X443B X4F49 XCF3B X4E3B X4349 XCF3B X4449 X4349 X> Xput XMetrics X/x[-3 X18] Xput XCharStrings X/y<C23B X4849 XC23B X433B X4847 XCE3B X4D3B X4847 X4450 XCE3B X4849 X4550 X4450 X> Xput XMetrics X/y[-2 X16] Xput XCharStrings X/z<CD3C X4349 XCF3B X4548 XC33B X4F3B XC33B X433C X4D3C XC548 X4F48 X4F49 XC349 X4F49 X> Xput XMetrics X/z[-3 X18] Xput X XCharStrings X/.notdef X<CF44 X4F45 X4E47 X4D48 X4B49 X4749 X4548 X4447 X4345 X4343 X4441 X4540 X493E X493B XC936 X4A35 X4934 X4835 X4936 X> Xput XMetrics X/.notdef X[3 X18] Xput XCharStrings X/space X() Xput XMetrics X/space X[0 X20] Xput XCharStrings X/numbersign X<CB34 X4450 XD134 X4A50 XC43F X523F XC345 X5145 X> Xput XMetrics X/numbersign X[2 X21] Xput XCharStrings X/bracketleft X<C430 X4450 XC530 X4550 XC430 X4B30 XC450 X4B50 X> Xput XMetrics X/bracketleft X[9 X14] Xput XCharStrings X/bracketright X<C930 X4950 XCA30 X4A50 XC330 X4A30 XC350 X4A50 X> Xput XMetrics X/bracketright X[9 X14] Xput XCharStrings X/braceleft X<C930 X4731 X4632 X4534 X4536 X4638 X4739 X483B X483D X463F XC731 X4633 X4635 X4737 X4838 X493A X493C X483E X4440 X4842 X4944 X4946 X4848 X4749 X464B X464D X474F XC641 X4843 X4845 X4747 X4648 X454A X454C X464E X474F X4950 X> Xput XMetrics X/braceleft X[9 X14] Xput XCharStrings X/braceright X<C530 X4731 X4832 X4934 X4936 X4838 X4739 X463B X463D X483F XC731 X4833 X4835 X4737 X4638 X453A X453C X463E X4A40 X4642 X4544 X4546 X4648 X4749 X484B X484D X474F XC841 X4643 X4645 X4747 X4848 X494A X494C X484E X474F X4550 X> Xput XMetrics X/braceright X[9 X14] Xput XCharStrings X/minus X<C440 X5640 X> Xput XMetrics X/minus X[-4 X26] Xput XCharStrings X/percent X<D534 X4349 XC834 X4A36 X4A38 X493A X473B X453B X4339 X4337 X4435 X4634 X4834 X4A35 X4D36 X5036 X5335 X5534 XD142 X4F43 X4E45 X4E47 X5049 X5249 X5448 X5546 X5544 X5342 X5142 X> Xput XMetrics X/percent X[0 X24] Xput XCharStrings X/underscore X<C048 X4049 X5049 X5048 X4048 X> Xput XMetrics X/underscore X[0 X16] Xput XCharStrings X/backslash X<C43D X563D X5643 X> Xput XMetrics X/backslash X[-4 X26] Xput XCharStrings X/asciitilde X<C343 X4341 X443E X463D X483D X4A3E X4E41 X5042 X5242 X5441 X553F XC341 X443F X463E X483E X4A3F X4E42 X5043 X5243 X5442 X553F X553D X> Xput XMetrics X/asciitilde X[-3 X24] Xput XCharStrings X/less X<D437 X4440 X5449 X> Xput XMetrics X/less X[-3 X24] Xput XCharStrings X/greater X<C437 X5440 X4449 X> Xput XMetrics X/greater X[-3 X24] Xput XCharStrings X/asciicircum X<C342 X4B3D X5342 XC342 X4B3E X5342 X> Xput XMetrics X/asciicircum X[-3 X22] Xput XCharStrings X/asciitilde X<C343 X4341 X443E X463D X483D X4A3E X4E41 X5042 X5242 X5441 X553F XC341 X443F X463E X483E X4A3F X4E42 X5043 X5243 X5442 X553F X553D X> Xput XMetrics X/asciitilde X[-3 X24] Xput XCharStrings X/bar X<C430 X4450 X> Xput XMetrics X/bar X[12 X8] Xput END_OF_FILE if test 16026 -ne `wc -c <'postscript/fonts/SANS/roman.r'`; then echo shar: \"'postscript/fonts/SANS/roman.r'\" unpacked with wrong size! fi # end of 'postscript/fonts/SANS/roman.r' fi if test -f 'source/font.c' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'source/font.c'\" else echo shar: Extracting \"'source/font.c'\" \(16487 characters\) sed "s/^X//" >'source/font.c' <<'END_OF_FILE' X/* X * Copyright (C) Rutherford Appleton Laboratory 1987 X * X * This source may be copied, distributed, altered or used, but not sold for profit X * or incorporated into a product except under licence from the author. X * It is not in the public domain. X * This notice should remain in the source unaltered, and any changes to the source X * made by persons other than the author should be marked as such. X * X * Crispin Goswell @ Rutherford Appleton Laboratory caag@uk.ac.rl.vd X */ X#include "main.h" X#include "graphics.h" X X#define MOVETO 0x80 X#define BYTE 0xFF X X#define FONT_USER 3 X Xstatic struct show_context show_stack [MAXGSAVES]; X Xint MoveTo (), LineTo (); X Xstatic int PCurrentFont (); Xstatic int PDefineFont (); Xstatic int PFindFont (); Xstatic int PScaleFont (); Xstatic int PMakeFont (); Xstatic int PSetFont (); X Xstatic int BuildHershey (); Xstatic int PShow (); Xstatic int PWidthShow (); Xstatic int PAShow (); Xstatic int PAWidthShow (); Xstatic int PStringWidth (); Xstatic int PAdjust (); X Xstatic Vector GetMetrics (); X Xstatic int ShowString (); Xstatic int ShowStop (); Xstatic int ShowStopped (); X XObject Fid, FD, FontMatrix, FontType, Encoding, FontBBox, OpShowStop, OpShowString, OpStopped; XObject UserShow, CharStrings, Metrics, BuildChar, FontName; X Xstatic last_fid = 0; X Xstatic int Update (); X Xstatic Point zeroPoint; Xstatic HardPoint zeroHardPoint; X Xextern Matrix HardPointTranslate (); X XInitFont () X { X Fid = NameFrom ("FID"); X FontMatrix = NameFrom ("FontMatrix"); X FontType = NameFrom ("FontType"); X Encoding = NameFrom ("Encoding"); X FontBBox = NameFrom ("FontBBox"); X UserShow = NameFrom (".show"); X CharStrings = NameFrom ("CharStrings"); X Metrics = NameFrom ("Metrics"); X BuildChar = NameFrom ("BuildChar"); X FontName = NameFrom ("FontName"); X X OpShowStop = MakeOp ("(showstop)", ShowStop, 1, 0, 0, 0, Boolean); X OpShowString = MakeOp ("(showstring)", ShowString, 1, 0, 0, 0, String); X OpStopped = MakeOp ("(showstopped)", ShowStopped,0, 1, 1, 0); X X InstallOp ("currentfont", PCurrentFont, 0, 1, 0, 0); X InstallOp ("definefont", PDefineFont, 2, 1, 0, 0, Poly, Dictionary); X InstallOp ("findfont", PFindFont, 1, 1, 0, 0, Poly); X InstallOp ("scalefont", PScaleFont, 2, 1, 0, 0, Dictionary, Float); X InstallOp ("makefont", PMakeFont, 2, 1, 0, 0, Dictionary, Array); X InstallOp ("setfont", PSetFont, 1, 0, 0, 0, Dictionary); X X InstallOp ("show", PShow, 1, 0, 0, 0, String); X InstallOp ("widthshow", PWidthShow, 4, 0, 0, 0, Float, Float, Integer, String); X InstallOp ("ashow", PAShow, 3, 0, 0, 0, Float, Float, String); X InstallOp ("awidthshow", PAWidthShow, 6, 0, 0, 0, Float, Float, Integer, Float, Float, String); X InstallOp ("stringwidth", PStringWidth, 1, 2, 0, 0, String); X InstallOp (".adjust", PAdjust, 1, 0, 0, 0, Integer); X InstallOp ("buildhershey", BuildHershey, 2, 0, 0, 0, Dictionary, Integer); X InstallOp ("update", Update, 1, 0, 0, 0, Boolean); X X Install ("FontDirectory", FD = MakeDict (20)); X X zeroPoint = NewPoint (0.0, 0.0); X zeroHardPoint = NewHardPoint (0.0, 0.0); X } X XHardPoint DExtToInt (p) Point p; X { X Matrix m; X HardPoint res; X X m = gstate->CTM; X res.hx = p.x * m.A + p.y * m.C; X res.hy = p.x * m.B + p.y * m.D; X X return res; X } X Xstatic int update_state = TRUE; X Xstatic int Update (bool) Object bool; X { X int new = BodyBoolean (bool); X X if (new != update_state) X UpdateControl (gstate->device->dev, update_state = new); X return TRUE; X } X XInitShowContext () X { X gstate->show = show_stack; X } X XHardPoint Adjust (basic, code) HardPoint basic; char code; X { X if (code == gstate->show->space) X return MoveHardPoint (MoveHardPoint (gstate->show->shim, gstate->show->space_shim), basic); X else X return MoveHardPoint (gstate->show->shim, basic); X } X Xstatic int PAdjust (code) Object code; X { X gstate->CTM = HardPointTranslate (gstate->CTM, Adjust (ExtToInt (NewPoint (0.0, 0.0)), BodyInteger (code))); X X return TRUE; X } X Xstatic int PCurrentFont () X { X return Push (OpStack, gstate->font); X } X Xstatic int PFindFont (key) Object key; X { X Object res; X X res = DictLoad (FD, key); X if (TypeOf (res) == Condition) X return Error (PInvFont); X return Push (OpStack, res); X } X Xstatic Object *encodingCache = NULL; Xstatic Matrix fontmatrixCache; Xstatic int fonttypeCache; Xint fidCache; Xfloat fontbboxCache[4]; X Xstatic int PSetFont (font) Object font; X { X if (!CheckFont (font)) X return Error (PInvFont); X gstate->font = font; X ExtractMatrix (&fontmatrixCache, DictLoad (font, FontMatrix)); X encodingCache = BodyArray (DictLoad (font, Encoding)); X fonttypeCache = BodyInteger (DictLoad (font, FontType)); X fidCache = BodyFontID (DictLoad (font, Fid)); X ExtractBBox (fontbboxCache, DictLoad (font, FontBBox)); X return TRUE; X } X Xint CheckFont (font) Object font; X { X Object mat, bbox, enc, fonttype; X Matrix dummy; X float bboxdummy[4]; X X mat = DictLoad (font, FontMatrix); X if (TypeOf (mat) == Condition || !ExtractMatrix (&dummy, mat)) X return FALSE; X fonttype = DictLoad (font, FontType); X if (TypeOf (fonttype) != Integer) X return FALSE; X bbox = DictLoad (font, FontBBox); X if (TypeOf (bbox) != Array || lengthArray (bbox) != 4 || !ExtractBBox (bboxdummy, bbox)) X return FALSE; X enc = DictLoad (font, Encoding); X if (TypeOf (enc) != Array || lengthArray (enc) != 256) X return FALSE; X X switch (BodyInteger (fonttype)) X { X case FONT_USER: return TRUE; X X default: return TRUE; X } X } X Xint CheckHershey (font, encoding) Object font, *encoding; X { X Object cs, metrics; X int i; X cs = DictLoad (font, CharStrings); X if (TypeOf (cs) != Dictionary) X return FALSE; X metrics = DictLoad (font, Metrics); X if (TypeOf (metrics) != Dictionary) X return FALSE; X X for (i = 0; i < 256; i++) X { X Object met; X X met = DictLoad (metrics, encoding[i]); X if (TypeOf (met) == Array) X { X Object *m = BodyArray (met); X int j, l = lengthArray (met); X X if (l != 1 && l != 2 && l != 4) X return FALSE; X X for (j = 0; j < l; j++) X if (TypeOf (m[j]) != Integer && TypeOf (m[j]) != Real) X return FALSE; X } X else if (TypeOf (metrics) != Integer && TypeOf (metrics) != Real) X return FALSE; X } X return TRUE; X } X Xint ExtractBBox (bbox, array) float *bbox; Object array; X { X Object num; X int i; X X if (lengthArray (array) != 4) X return FALSE; X for (i = 0; i < 4; i++) X { X num = getArray (array, i); X X if (TypeOf (num) == Integer) X bbox [i] = BodyInteger (num); X else if (TypeOf (num) == Real) X bbox [i] = BodyReal (num); X else X return FALSE; X } X return TRUE; X } X Xstatic Object MakeFontID () X { X Object res; X X res = MakeObject (FontID); X res.u.Font = last_fid++; /* just for uniqueness */ X X return res; X } X Xint BodyFontID (fid) Object fid; X { X return fid.u.Font; X } X Xstatic int PDefineFont (key, dict) Object key, dict; X { X if (maxDict (dict) == lengthDict (dict) || maxDict (FD) == lengthDict (FD)) X return Error (PDictFull); X X if (!CheckFont (dict)) X return Error (PInvFont); X X DictStore (FD, key, ReadOnly (dict)); X DictStore (dict, Fid, MakeFontID ()); X return Push (OpStack, ReadOnly (dict)); X } X Xstruct font_entry X { X Object font; X Matrix mat; X int fid; X struct font_entry *font_next; X } *font_list = NULL; X XObject LookupFont (font, matrix) Object font; Matrix matrix; X { X Object res, mat, new; X Matrix m, n; X struct font_entry *p, *fe; X int fid = BodyFontID (DictLoad (font, Fid)); X X mat = DictLoad (font, FontMatrix); X ExtractMatrix (&m, mat); X n = MatMult (matrix, m); X X for (p = font_list; p != NULL; p = p->font_next) X if (p->fid == fid && EqFont (p->mat, n)) X { X Message ("font matched"); X return p->font; X } X Message ("building a font dict"); X X copyDict (font, res = MakeDict (maxDict (font))); X new = MakeArray ((Object *) Malloc ((unsigned) 6 * sizeof (Object)), 6); X VOID AssignMatrix (new, n); X DictStore (res, FontMatrix, new); X X res = ReadOnly (res); X X fe = (struct font_entry *) Malloc (sizeof (struct font_entry)); X fe->mat = n; X fe->font = res; X fe->font_next = font_list; X fe->fid = fid; X font_list = fe; X X return res; X } X Xstatic int PScaleFont (font, scale) Object font, scale; X { X Object res; X float s = BodyReal (scale); X X if (!CheckFont (font)) X return Error (PInvFont); X res = LookupFont (font, NewMatrix (s, 0.0, 0.0, s, 0.0, 0.0)); X X return Push (OpStack, res); X } X Xstatic int PMakeFont (font, matrix) Object font, matrix; X { X Object res; X Matrix m; X X if (!CheckFont (font)) X return Error (PInvFont); X ExtractMatrix (&m, matrix); X res = LookupFont (font, m); X X return Push (OpStack, res); X } X Xstatic Vector GetMetrics (ob) Object ob; X { X if (TypeOf (ob) == Integer || TypeOf (ob) == Real) X return NewVector (BodyFloat (ob), 0.0, 0.0); X else if (TypeOf (ob) != Array) X return NewVector (0.0, 0.0, 1.0); X else if (lengthArray (ob) == 2) X return NewVector (BodyFloat (getArray (ob, 1)), 0.0, 0.0); X else if (lengthArray (ob) == 4) X return NewVector (BodyFloat (getArray (ob, 2)), BodyFloat (getArray (ob, 3)), 0.0); X else X return NewVector (0.0, 0.0, 1.0); X } X Xstatic int BuildHershey (font, code) Object font, code; X { X Vector met; X Object *bbox, string, nm; X unsigned char *s; X Path p; X int i, l; X X bbox = BodyArray (DictLoad (font, FontBBox)); X nm = BodyArray (DictLoad (font, Encoding)) [BodyInteger (code)]; X met = GetMetrics (DictLoad (DictLoad (font, Metrics), nm)); X met.vx -= 2; /* hershey bodge - they look better closer */ X string = DictLoad (DictLoad (font, CharStrings), nm); X X SetCacheDevice (nm, NewPoint (met.vx, met.vy), X BodyReal (bbox[0]), BodyReal (bbox[1]), X BodyReal (bbox[2]), BodyReal (bbox[3])); X X if (TypeOf (string) != String) X return TRUE; X gstate->line_width = 1.5; X gstate->line_join = 2; X gstate->line_cap = 0; X gstate->dash_length = 0; X X s = BodyString (string); X l = lengthString (string) / 2; X p = gstate->path; X X VOID PNewPath (); X for (i = 0; i < l; i++, s++, s++) X { X Point po; X /* SUN2 FLOATING POINT BUG: (float) (int) is necessary, where (float) should be sufficient */ X po = NewPoint ((float) (int) ((*s & ~MOVETO) - 64), (float) (int) ((s[1] & ~MOVETO) - 73)); X (*(*s & MOVETO ? MoveTo : LineTo)) X (p, ExtToInt (po)); X } X return Push (ExecStack, Cvx (NameFrom ("stroke"))); X } X X/* X Persistent state important across a BuildChar call-back X InShow - the fact that we're in a call back X gstate - graphics state X ccache - the current cache device X gstate->device - whether a cache device has been set or not. X The old device if a cache device is installed. X The old CTM. X Width - current width information - used for moving cp X awx, awy - shim adjustment parameters X scode, X axcode, aycode - spacing adjustment parameters X X XXXXXXX XXXXXX XXXXXXXXXX XXXXXXXXX X XXXXXXX XXXXXX XXXXXXXXXX XXXXXXXXX X XXXXXXX XXXXXX XXXXXXXXXX XXXXXXXXX X XXXXXXX XXXXXX XXXXXXXXXX XXXXXXXXX X XXXXXXX XXXXXX XXXXXXXXXX XXXXXXXXX X |_______| |_______| |_______| X | X ashow/widthshow width vector X X ShowUser shows the first character (to avoid a leading gap). X It may have to call buildchar if the character is not cached. X ShowString finishes off a BuildChar (if necessary) X then shows gaps and characters until it encounters X one which is not cached. X It then stacks: X a stopped context to reset things if an error occurs. X another ShowString to continue output. X A buildchar to build a character X*/ X Xstatic int Show (string, space, shim, space_shim) X Object string; char space; HardPoint shim, space_shim; X { X if (!gstate->cp_defined) X return Error (PNoCurrentPoint); X X switch (fonttypeCache) X { X case FONT_USER: X return ShowUser (string, fontmatrixCache, space, shim, space_shim); X X default: X return Error (PInvFont); X } X } X Xstatic int ShowStopped () X { X VOID Pop (ExecStack); X VOID Push (OpStack, False); X return TRUE; X } X X#define lengthString(s) ((s).Length) X X#define BodyString(s) ((s).u.String) X Xint ShowUser (string, m, space, shim, space_shim) X Object string; Matrix m; char space; HardPoint shim, space_shim; X { X unsigned char *s = BodyString (string); X int l = lengthString (string); X X if (l == 0) X return TRUE; X X /* GSave (); */ X X ++gstate->show; X gstate->show->InShow = TRUE; X gstate->show->shim = shim; X gstate->show->space_shim = space_shim; X gstate->show->space = space; X gstate->show->mat = gstate->CTM; X X gstate->CTM.tx = gstate->cp.hx; X gstate->CTM.ty = gstate->cp.hy; X X gstate->CTM = MatMult (m, gstate->CTM); X FindCache (); X X UpdateControl (gstate->device->dev, FALSE); X X gstate->cp.hx = gstate->CTM.tx; X gstate->cp.hy = gstate->CTM.ty; X if (CacheShow (encodingCache [*s], gstate->cp)) X return ShowStringAux (string, s, l, gstate->show->Width); X X UpdateControl (gstate->device->dev, TRUE); X X GSave (); X VOID Push (ExecStack, OpShowStop); X PStopped (OpShowString); X VOID Push (OpStack, string); X VOID Push (OpStack, gstate->font); X VOID Push (OpStack, MakeInteger (*s)); X VOID Push (ExecStack, DictLoad (gstate->font, BuildChar)); X return TRUE; X } X Xstatic int ShowString (string) Object string; X { X int l = lengthString (string); X unsigned char *st = BodyString (string); X Point last_width; X X Pop (ExecStack); X Pop (ExecStack); X Pop (ExecStack); X GRestore (); X X UpdateControl (gstate->device->dev, FALSE); X X last_width = gstate->show->Width; X CacheShow (encodingCache [*st], gstate->cp); X X return ShowStringAux (string, st, l, last_width); X } X XShowStringAux (string, st, l, last_width) Object string; unsigned char *st; int l; Point last_width; X { X unsigned char *s = st; X HardPoint loc; X X loc.hx = gstate->CTM.tx; loc.hy = gstate->CTM.ty; X for (;;) X { X int code = *++s; X HardPoint offset, cp; X X offset = Adjust (DExtToInt (last_width), code); X loc.hx += offset.hx; X loc.hy += offset.hy; X if (--l == 0) X break; X if (!CacheShow (encodingCache [code], loc)) X { X gstate->cp = loc; X gstate->CTM.tx = loc.hx; gstate->CTM.ty = loc.hy; X X VOID Push (ExecStack, OpShowStop); X PStopped (OpShowString); X X VOID Push (OpStack, getIString (string, s - st, l)); X X VOID Push (OpStack, gstate->font); X VOID Push (OpStack, MakeInteger (*s)); X VOID Push (ExecStack, DictLoad (gstate->font, BuildChar)); X UpdateControl (gstate->device->dev, TRUE); X X GSave (); X X return TRUE; X } X last_width = gstate->show->Width; X } X gstate->CTM.tx = loc.hx; gstate->CTM.ty = loc.hy; X UpdateControl (gstate->device->dev, TRUE); X X return ShowStopAux (); X } X Xstatic int ShowStop (st) Object st; X { X GRestore (); X ShowStopAux (); X if (BodyBoolean (st)) X return PStop (); X return TRUE; X } X XShowStopAux () X { X HardPoint cp; X X cp.hx = gstate->CTM.tx; X cp.hy = gstate->CTM.ty; X /* GRestore (); */ X gstate->CTM = gstate->show->mat; X --gstate->show; X gstate->cp = cp; X X return TRUE; X } X Xstatic int PShow (string) Object string; X { X return Show (string, 0, zeroHardPoint, zeroHardPoint); X } X Xstatic int PWidthShow (x, y, code, string) Object x, y, code, string; X { X return Show (string, BodyInteger (code), zeroHardPoint, DExtToInt (NewPoint (BodyReal (x), BodyReal (y)))); X } X Xstatic int PAShow (ax, ay, string) Object ax, ay, string; X { X return Show (string, 0, DExtToInt (NewPoint (BodyReal (ax), BodyReal (ay))), zeroHardPoint); X } X Xstatic int PAWidthShow (x, y, code, ax, ay, string) Object x, y, code, ax, ay, string; X { X return Show (string, X BodyInteger (code), X DExtToInt (NewPoint (BodyReal (x), BodyReal (y))), X DExtToInt (NewPoint (BodyReal (ax), BodyReal (ay)))); X } X Xstatic int PStringWidth (string) Object string; X { X Matrix m; X Vector v; X Object *enc, met; X int i, l = lengthString (string); X unsigned char *s = BodyString (string); X float x = 0, y = 0; X X if (!CheckFont (gstate->font)) X return Error (PInvFont); X if (BodyInteger (DictLoad (gstate->font, FontType)) == 3) X { X VOID Push (OpStack, string); X VOID Push (ExecStack, Cvx (NameFrom (".stringwidth"))); X return TRUE; X } X enc = BodyArray (DictLoad (gstate->font, Encoding)); X met = DictLoad (gstate->font, Metrics); X for (i = 0; i < l; i++) X { X v = GetMetrics (DictLoad (met, enc[s[i]])); X x += v.vx; X y += v.vy; X } X ExtractMatrix (&m, DictLoad (gstate->font, FontMatrix)); X v = Transform (NewVector (x, y, 0.0), m); X return Push (OpStack, MakeReal (v.vx)), Push (OpStack, MakeReal (v.vy)); X } END_OF_FILE if test 16487 -ne `wc -c <'source/font.c'`; then echo shar: \"'source/font.c'\" unpacked with wrong size! fi # end of 'source/font.c' fi echo shar: End of archive 13 \(of 18\). cp /dev/null ark13isdone MISSING="" for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 ; do if test ! -f ark${I}isdone ; then MISSING="${MISSING} ${I}" fi done if test "${MISSING}" = "" ; then echo You have unpacked all 18 archives. rm -f ark[1-9]isdone ark[1-9][0-9]isdone else echo You still need to unpack the following archives: echo " " ${MISSING} fi ## End of shell archive. exit 0