|
|
|
|
|
|
|
|
|
namespace eval ::tk { |
|
|
|
|
|
|
|
|
|
proc CreatePostscriptEncoding {} { |
|
variable psglyphs |
|
|
|
|
|
set result "\[\n" |
|
for {set i 0} {$i<256} {incr i 8} { |
|
for {set j 0} {$j<8} {incr j} { |
|
set enc [encoding convertfrom "iso8859-1" \ |
|
[format %c [expr {$i+$j}]]] |
|
catch { |
|
set hexcode {} |
|
set hexcode [format %04X [scan $enc %c]] |
|
} |
|
if {[info exists psglyphs($hexcode)]} { |
|
append result "/$psglyphs($hexcode)" |
|
} else { |
|
append result "/space" |
|
} |
|
} |
|
append result "\n" |
|
} |
|
append result "\]" |
|
return $result |
|
} |
|
|
|
|
|
|
|
|
|
variable psglyphs |
|
array set psglyphs { |
|
0020 space |
|
0021 exclam |
|
0022 quotedbl |
|
0023 numbersign |
|
0024 dollar |
|
0025 percent |
|
0026 ampersand |
|
0027 quotesingle |
|
0028 parenleft |
|
0029 parenright |
|
002A asterisk |
|
002B plus |
|
002C comma |
|
002D hyphen |
|
002E period |
|
002F slash |
|
0030 zero |
|
0031 one |
|
0032 two |
|
0033 three |
|
0034 four |
|
0035 five |
|
0036 six |
|
0037 seven |
|
0038 eight |
|
0039 nine |
|
003A colon |
|
003B semicolon |
|
003C less |
|
003D equal |
|
003E greater |
|
003F question |
|
0040 at |
|
0041 A |
|
0042 B |
|
0043 C |
|
0044 D |
|
0045 E |
|
0046 F |
|
0047 G |
|
0048 H |
|
0049 I |
|
004A J |
|
004B K |
|
004C L |
|
004D M |
|
004E N |
|
004F O |
|
0050 P |
|
0051 Q |
|
0052 R |
|
0053 S |
|
0054 T |
|
0055 U |
|
0056 V |
|
0057 W |
|
0058 X |
|
0059 Y |
|
005A Z |
|
005B bracketleft |
|
005C backslash |
|
005D bracketright |
|
005E asciicircum |
|
005F underscore |
|
0060 grave |
|
0061 a |
|
0062 b |
|
0063 c |
|
0064 d |
|
0065 e |
|
0066 f |
|
0067 g |
|
0068 h |
|
0069 i |
|
006A j |
|
006B k |
|
006C l |
|
006D m |
|
006E n |
|
006F o |
|
0070 p |
|
0071 q |
|
0072 r |
|
0073 s |
|
0074 t |
|
0075 u |
|
0076 v |
|
0077 w |
|
0078 x |
|
0079 y |
|
007A z |
|
007B braceleft |
|
007C bar |
|
007D braceright |
|
007E asciitilde |
|
00A0 space |
|
00A1 exclamdown |
|
00A2 cent |
|
00A3 sterling |
|
00A4 currency |
|
00A5 yen |
|
00A6 brokenbar |
|
00A7 section |
|
00A8 dieresis |
|
00A9 copyright |
|
00AA ordfeminine |
|
00AB guillemotleft |
|
00AC logicalnot |
|
00AD hyphen |
|
00AE registered |
|
00AF macron |
|
00B0 degree |
|
00B1 plusminus |
|
00B2 twosuperior |
|
00B3 threesuperior |
|
00B4 acute |
|
00B5 mu |
|
00B6 paragraph |
|
00B7 periodcentered |
|
00B8 cedilla |
|
00B9 onesuperior |
|
00BA ordmasculine |
|
00BB guillemotright |
|
00BC onequarter |
|
00BD onehalf |
|
00BE threequarters |
|
00BF questiondown |
|
00C0 Agrave |
|
00C1 Aacute |
|
00C2 Acircumflex |
|
00C3 Atilde |
|
00C4 Adieresis |
|
00C5 Aring |
|
00C6 AE |
|
00C7 Ccedilla |
|
00C8 Egrave |
|
00C9 Eacute |
|
00CA Ecircumflex |
|
00CB Edieresis |
|
00CC Igrave |
|
00CD Iacute |
|
00CE Icircumflex |
|
00CF Idieresis |
|
00D0 Eth |
|
00D1 Ntilde |
|
00D2 Ograve |
|
00D3 Oacute |
|
00D4 Ocircumflex |
|
00D5 Otilde |
|
00D6 Odieresis |
|
00D7 multiply |
|
00D8 Oslash |
|
00D9 Ugrave |
|
00DA Uacute |
|
00DB Ucircumflex |
|
00DC Udieresis |
|
00DD Yacute |
|
00DE Thorn |
|
00DF germandbls |
|
00E0 agrave |
|
00E1 aacute |
|
00E2 acircumflex |
|
00E3 atilde |
|
00E4 adieresis |
|
00E5 aring |
|
00E6 ae |
|
00E7 ccedilla |
|
00E8 egrave |
|
00E9 eacute |
|
00EA ecircumflex |
|
00EB edieresis |
|
00EC igrave |
|
00ED iacute |
|
00EE icircumflex |
|
00EF idieresis |
|
00F0 eth |
|
00F1 ntilde |
|
00F2 ograve |
|
00F3 oacute |
|
00F4 ocircumflex |
|
00F5 otilde |
|
00F6 odieresis |
|
00F7 divide |
|
00F8 oslash |
|
00F9 ugrave |
|
00FA uacute |
|
00FB ucircumflex |
|
00FC udieresis |
|
00FD yacute |
|
00FE thorn |
|
00FF ydieresis |
|
0100 Amacron |
|
0101 amacron |
|
0102 Abreve |
|
0103 abreve |
|
0104 Aogonek |
|
0105 aogonek |
|
0106 Cacute |
|
0107 cacute |
|
0108 Ccircumflex |
|
0109 ccircumflex |
|
010A Cdotaccent |
|
010B cdotaccent |
|
010C Ccaron |
|
010D ccaron |
|
010E Dcaron |
|
010F dcaron |
|
0110 Dcroat |
|
0111 dcroat |
|
0112 Emacron |
|
0113 emacron |
|
0114 Ebreve |
|
0115 ebreve |
|
0116 Edotaccent |
|
0117 edotaccent |
|
0118 Eogonek |
|
0119 eogonek |
|
011A Ecaron |
|
011B ecaron |
|
011C Gcircumflex |
|
011D gcircumflex |
|
011E Gbreve |
|
011F gbreve |
|
0120 Gdotaccent |
|
0121 gdotaccent |
|
0122 Gcommaaccent |
|
0123 gcommaaccent |
|
0124 Hcircumflex |
|
0125 hcircumflex |
|
0126 Hbar |
|
0127 hbar |
|
0128 Itilde |
|
0129 itilde |
|
012A Imacron |
|
012B imacron |
|
012C Ibreve |
|
012D ibreve |
|
012E Iogonek |
|
012F iogonek |
|
0130 Idotaccent |
|
0131 dotlessi |
|
0132 IJ |
|
0133 ij |
|
0134 Jcircumflex |
|
0135 jcircumflex |
|
0136 Kcommaaccent |
|
0137 kcommaaccent |
|
0138 kgreenlandic |
|
0139 Lacute |
|
013A lacute |
|
013B Lcommaaccent |
|
013C lcommaaccent |
|
013D Lcaron |
|
013E lcaron |
|
013F Ldot |
|
0140 ldot |
|
0141 Lslash |
|
0142 lslash |
|
0143 Nacute |
|
0144 nacute |
|
0145 Ncommaaccent |
|
0146 ncommaaccent |
|
0147 Ncaron |
|
0148 ncaron |
|
0149 napostrophe |
|
014A Eng |
|
014B eng |
|
014C Omacron |
|
014D omacron |
|
014E Obreve |
|
014F obreve |
|
0150 Ohungarumlaut |
|
0151 ohungarumlaut |
|
0152 OE |
|
0153 oe |
|
0154 Racute |
|
0155 racute |
|
0156 Rcommaaccent |
|
0157 rcommaaccent |
|
0158 Rcaron |
|
0159 rcaron |
|
015A Sacute |
|
015B sacute |
|
015C Scircumflex |
|
015D scircumflex |
|
015E Scedilla |
|
015F scedilla |
|
0160 Scaron |
|
0161 scaron |
|
0162 Tcommaaccent |
|
0163 tcommaaccent |
|
0164 Tcaron |
|
0165 tcaron |
|
0166 Tbar |
|
0167 tbar |
|
0168 Utilde |
|
0169 utilde |
|
016A Umacron |
|
016B umacron |
|
016C Ubreve |
|
016D ubreve |
|
016E Uring |
|
016F uring |
|
0170 Uhungarumlaut |
|
0171 uhungarumlaut |
|
0172 Uogonek |
|
0173 uogonek |
|
0174 Wcircumflex |
|
0175 wcircumflex |
|
0176 Ycircumflex |
|
0177 ycircumflex |
|
0178 Ydieresis |
|
0179 Zacute |
|
017A zacute |
|
017B Zdotaccent |
|
017C zdotaccent |
|
017D Zcaron |
|
017E zcaron |
|
017F longs |
|
0192 florin |
|
01A0 Ohorn |
|
01A1 ohorn |
|
01AF Uhorn |
|
01B0 uhorn |
|
01E6 Gcaron |
|
01E7 gcaron |
|
01FA Aringacute |
|
01FB aringacute |
|
01FC AEacute |
|
01FD aeacute |
|
01FE Oslashacute |
|
01FF oslashacute |
|
0218 Scommaaccent |
|
0219 scommaaccent |
|
021A Tcommaaccent |
|
021B tcommaaccent |
|
02BC afii57929 |
|
02BD afii64937 |
|
02C6 circumflex |
|
02C7 caron |
|
02C9 macron |
|
02D8 breve |
|
02D9 dotaccent |
|
02DA ring |
|
02DB ogonek |
|
02DC tilde |
|
02DD hungarumlaut |
|
0300 gravecomb |
|
0301 acutecomb |
|
0303 tildecomb |
|
0309 hookabovecomb |
|
0323 dotbelowcomb |
|
0384 tonos |
|
0385 dieresistonos |
|
0386 Alphatonos |
|
0387 anoteleia |
|
0388 Epsilontonos |
|
0389 Etatonos |
|
038A Iotatonos |
|
038C Omicrontonos |
|
038E Upsilontonos |
|
038F Omegatonos |
|
0390 iotadieresistonos |
|
0391 Alpha |
|
0392 Beta |
|
0393 Gamma |
|
0394 Delta |
|
0395 Epsilon |
|
0396 Zeta |
|
0397 Eta |
|
0398 Theta |
|
0399 Iota |
|
039A Kappa |
|
039B Lambda |
|
039C Mu |
|
039D Nu |
|
039E Xi |
|
039F Omicron |
|
03A0 Pi |
|
03A1 Rho |
|
03A3 Sigma |
|
03A4 Tau |
|
03A5 Upsilon |
|
03A6 Phi |
|
03A7 Chi |
|
03A8 Psi |
|
03A9 Omega |
|
03AA Iotadieresis |
|
03AB Upsilondieresis |
|
03AC alphatonos |
|
03AD epsilontonos |
|
03AE etatonos |
|
03AF iotatonos |
|
03B0 upsilondieresistonos |
|
03B1 alpha |
|
03B2 beta |
|
03B3 gamma |
|
03B4 delta |
|
03B5 epsilon |
|
03B6 zeta |
|
03B7 eta |
|
03B8 theta |
|
03B9 iota |
|
03BA kappa |
|
03BB lambda |
|
03BC mu |
|
03BD nu |
|
03BE xi |
|
03BF omicron |
|
03C0 pi |
|
03C1 rho |
|
03C2 sigma1 |
|
03C3 sigma |
|
03C4 tau |
|
03C5 upsilon |
|
03C6 phi |
|
03C7 chi |
|
03C8 psi |
|
03C9 omega |
|
03CA iotadieresis |
|
03CB upsilondieresis |
|
03CC omicrontonos |
|
03CD upsilontonos |
|
03CE omegatonos |
|
03D1 theta1 |
|
03D2 Upsilon1 |
|
03D5 phi1 |
|
03D6 omega1 |
|
0401 afii10023 |
|
0402 afii10051 |
|
0403 afii10052 |
|
0404 afii10053 |
|
0405 afii10054 |
|
0406 afii10055 |
|
0407 afii10056 |
|
0408 afii10057 |
|
0409 afii10058 |
|
040A afii10059 |
|
040B afii10060 |
|
040C afii10061 |
|
040E afii10062 |
|
040F afii10145 |
|
0410 afii10017 |
|
0411 afii10018 |
|
0412 afii10019 |
|
0413 afii10020 |
|
0414 afii10021 |
|
0415 afii10022 |
|
0416 afii10024 |
|
0417 afii10025 |
|
0418 afii10026 |
|
0419 afii10027 |
|
041A afii10028 |
|
041B afii10029 |
|
041C afii10030 |
|
041D afii10031 |
|
041E afii10032 |
|
041F afii10033 |
|
0420 afii10034 |
|
0421 afii10035 |
|
0422 afii10036 |
|
0423 afii10037 |
|
0424 afii10038 |
|
0425 afii10039 |
|
0426 afii10040 |
|
0427 afii10041 |
|
0428 afii10042 |
|
0429 afii10043 |
|
042A afii10044 |
|
042B afii10045 |
|
042C afii10046 |
|
042D afii10047 |
|
042E afii10048 |
|
042F afii10049 |
|
0430 afii10065 |
|
0431 afii10066 |
|
0432 afii10067 |
|
0433 afii10068 |
|
0434 afii10069 |
|
0435 afii10070 |
|
0436 afii10072 |
|
0437 afii10073 |
|
0438 afii10074 |
|
0439 afii10075 |
|
043A afii10076 |
|
043B afii10077 |
|
043C afii10078 |
|
043D afii10079 |
|
043E afii10080 |
|
043F afii10081 |
|
0440 afii10082 |
|
0441 afii10083 |
|
0442 afii10084 |
|
0443 afii10085 |
|
0444 afii10086 |
|
0445 afii10087 |
|
0446 afii10088 |
|
0447 afii10089 |
|
0448 afii10090 |
|
0449 afii10091 |
|
044A afii10092 |
|
044B afii10093 |
|
044C afii10094 |
|
044D afii10095 |
|
044E afii10096 |
|
044F afii10097 |
|
0451 afii10071 |
|
0452 afii10099 |
|
0453 afii10100 |
|
0454 afii10101 |
|
0455 afii10102 |
|
0456 afii10103 |
|
0457 afii10104 |
|
0458 afii10105 |
|
0459 afii10106 |
|
045A afii10107 |
|
045B afii10108 |
|
045C afii10109 |
|
045E afii10110 |
|
045F afii10193 |
|
0462 afii10146 |
|
0463 afii10194 |
|
0472 afii10147 |
|
0473 afii10195 |
|
0474 afii10148 |
|
0475 afii10196 |
|
0490 afii10050 |
|
0491 afii10098 |
|
04D9 afii10846 |
|
05B0 afii57799 |
|
05B1 afii57801 |
|
05B2 afii57800 |
|
05B3 afii57802 |
|
05B4 afii57793 |
|
05B5 afii57794 |
|
05B6 afii57795 |
|
05B7 afii57798 |
|
05B8 afii57797 |
|
05B9 afii57806 |
|
05BB afii57796 |
|
05BC afii57807 |
|
05BD afii57839 |
|
05BE afii57645 |
|
05BF afii57841 |
|
05C0 afii57842 |
|
05C1 afii57804 |
|
05C2 afii57803 |
|
05C3 afii57658 |
|
05D0 afii57664 |
|
05D1 afii57665 |
|
05D2 afii57666 |
|
05D3 afii57667 |
|
05D4 afii57668 |
|
05D5 afii57669 |
|
05D6 afii57670 |
|
05D7 afii57671 |
|
05D8 afii57672 |
|
05D9 afii57673 |
|
05DA afii57674 |
|
05DB afii57675 |
|
05DC afii57676 |
|
05DD afii57677 |
|
05DE afii57678 |
|
05DF afii57679 |
|
05E0 afii57680 |
|
05E1 afii57681 |
|
05E2 afii57682 |
|
05E3 afii57683 |
|
05E4 afii57684 |
|
05E5 afii57685 |
|
05E6 afii57686 |
|
05E7 afii57687 |
|
05E8 afii57688 |
|
05E9 afii57689 |
|
05EA afii57690 |
|
05F0 afii57716 |
|
05F1 afii57717 |
|
05F2 afii57718 |
|
060C afii57388 |
|
061B afii57403 |
|
061F afii57407 |
|
0621 afii57409 |
|
0622 afii57410 |
|
0623 afii57411 |
|
0624 afii57412 |
|
0625 afii57413 |
|
0626 afii57414 |
|
0627 afii57415 |
|
0628 afii57416 |
|
0629 afii57417 |
|
062A afii57418 |
|
062B afii57419 |
|
062C afii57420 |
|
062D afii57421 |
|
062E afii57422 |
|
062F afii57423 |
|
0630 afii57424 |
|
0631 afii57425 |
|
0632 afii57426 |
|
0633 afii57427 |
|
0634 afii57428 |
|
0635 afii57429 |
|
0636 afii57430 |
|
0637 afii57431 |
|
0638 afii57432 |
|
0639 afii57433 |
|
063A afii57434 |
|
0640 afii57440 |
|
0641 afii57441 |
|
0642 afii57442 |
|
0643 afii57443 |
|
0644 afii57444 |
|
0645 afii57445 |
|
0646 afii57446 |
|
0647 afii57470 |
|
0648 afii57448 |
|
0649 afii57449 |
|
064A afii57450 |
|
064B afii57451 |
|
064C afii57452 |
|
064D afii57453 |
|
064E afii57454 |
|
064F afii57455 |
|
0650 afii57456 |
|
0651 afii57457 |
|
0652 afii57458 |
|
0660 afii57392 |
|
0661 afii57393 |
|
0662 afii57394 |
|
0663 afii57395 |
|
0664 afii57396 |
|
0665 afii57397 |
|
0666 afii57398 |
|
0667 afii57399 |
|
0668 afii57400 |
|
0669 afii57401 |
|
066A afii57381 |
|
066D afii63167 |
|
0679 afii57511 |
|
067E afii57506 |
|
0686 afii57507 |
|
0688 afii57512 |
|
0691 afii57513 |
|
0698 afii57508 |
|
06A4 afii57505 |
|
06AF afii57509 |
|
06BA afii57514 |
|
06D2 afii57519 |
|
06D5 afii57534 |
|
1E80 Wgrave |
|
1E81 wgrave |
|
1E82 Wacute |
|
1E83 wacute |
|
1E84 Wdieresis |
|
1E85 wdieresis |
|
1EF2 Ygrave |
|
1EF3 ygrave |
|
200C afii61664 |
|
200D afii301 |
|
200E afii299 |
|
200F afii300 |
|
2012 figuredash |
|
2013 endash |
|
2014 emdash |
|
2015 afii00208 |
|
2017 underscoredbl |
|
2018 quoteleft |
|
2019 quoteright |
|
201A quotesinglbase |
|
201B quotereversed |
|
201C quotedblleft |
|
201D quotedblright |
|
201E quotedblbase |
|
2020 dagger |
|
2021 daggerdbl |
|
2022 bullet |
|
2024 onedotenleader |
|
2025 twodotenleader |
|
2026 ellipsis |
|
202C afii61573 |
|
202D afii61574 |
|
202E afii61575 |
|
2030 perthousand |
|
2032 minute |
|
2033 second |
|
2039 guilsinglleft |
|
203A guilsinglright |
|
203C exclamdbl |
|
2044 fraction |
|
2070 zerosuperior |
|
2074 foursuperior |
|
2075 fivesuperior |
|
2076 sixsuperior |
|
2077 sevensuperior |
|
2078 eightsuperior |
|
2079 ninesuperior |
|
207D parenleftsuperior |
|
207E parenrightsuperior |
|
207F nsuperior |
|
2080 zeroinferior |
|
2081 oneinferior |
|
2082 twoinferior |
|
2083 threeinferior |
|
2084 fourinferior |
|
2085 fiveinferior |
|
2086 sixinferior |
|
2087 seveninferior |
|
2088 eightinferior |
|
2089 nineinferior |
|
208D parenleftinferior |
|
208E parenrightinferior |
|
20A1 colonmonetary |
|
20A3 franc |
|
20A4 lira |
|
20A7 peseta |
|
20AA afii57636 |
|
20AB dong |
|
20AC Euro |
|
2105 afii61248 |
|
2111 Ifraktur |
|
2113 afii61289 |
|
2116 afii61352 |
|
2118 weierstrass |
|
211C Rfraktur |
|
211E prescription |
|
2122 trademark |
|
2126 Omega |
|
212E estimated |
|
2135 aleph |
|
2153 onethird |
|
2154 twothirds |
|
215B oneeighth |
|
215C threeeighths |
|
215D fiveeighths |
|
215E seveneighths |
|
2190 arrowleft |
|
2191 arrowup |
|
2192 arrowright |
|
2193 arrowdown |
|
2194 arrowboth |
|
2195 arrowupdn |
|
21A8 arrowupdnbse |
|
21B5 carriagereturn |
|
21D0 arrowdblleft |
|
21D1 arrowdblup |
|
21D2 arrowdblright |
|
21D3 arrowdbldown |
|
21D4 arrowdblboth |
|
2200 universal |
|
2202 partialdiff |
|
2203 existential |
|
2205 emptyset |
|
2206 Delta |
|
2207 gradient |
|
2208 element |
|
2209 notelement |
|
220B suchthat |
|
220F product |
|
2211 summation |
|
2212 minus |
|
2215 fraction |
|
2217 asteriskmath |
|
2219 periodcentered |
|
221A radical |
|
221D proportional |
|
221E infinity |
|
221F orthogonal |
|
2220 angle |
|
2227 logicaland |
|
2228 logicalor |
|
2229 intersection |
|
222A union |
|
222B integral |
|
2234 therefore |
|
223C similar |
|
2245 congruent |
|
2248 approxequal |
|
2260 notequal |
|
2261 equivalence |
|
2264 lessequal |
|
2265 greaterequal |
|
2282 propersubset |
|
2283 propersuperset |
|
2284 notsubset |
|
2286 reflexsubset |
|
2287 reflexsuperset |
|
2295 circleplus |
|
2297 circlemultiply |
|
22A5 perpendicular |
|
22C5 dotmath |
|
2302 house |
|
2310 revlogicalnot |
|
2320 integraltp |
|
2321 integralbt |
|
2329 angleleft |
|
232A angleright |
|
2500 SF100000 |
|
2502 SF110000 |
|
250C SF010000 |
|
2510 SF030000 |
|
2514 SF020000 |
|
2518 SF040000 |
|
251C SF080000 |
|
2524 SF090000 |
|
252C SF060000 |
|
2534 SF070000 |
|
253C SF050000 |
|
2550 SF430000 |
|
2551 SF240000 |
|
2552 SF510000 |
|
2553 SF520000 |
|
2554 SF390000 |
|
2555 SF220000 |
|
2556 SF210000 |
|
2557 SF250000 |
|
2558 SF500000 |
|
2559 SF490000 |
|
255A SF380000 |
|
255B SF280000 |
|
255C SF270000 |
|
255D SF260000 |
|
255E SF360000 |
|
255F SF370000 |
|
2560 SF420000 |
|
2561 SF190000 |
|
2562 SF200000 |
|
2563 SF230000 |
|
2564 SF470000 |
|
2565 SF480000 |
|
2566 SF410000 |
|
2567 SF450000 |
|
2568 SF460000 |
|
2569 SF400000 |
|
256A SF540000 |
|
256B SF530000 |
|
256C SF440000 |
|
2580 upblock |
|
2584 dnblock |
|
2588 block |
|
258C lfblock |
|
2590 rtblock |
|
2591 ltshade |
|
2592 shade |
|
2593 dkshade |
|
25A0 filledbox |
|
25A1 H22073 |
|
25AA H18543 |
|
25AB H18551 |
|
25AC filledrect |
|
25B2 triagup |
|
25BA triagrt |
|
25BC triagdn |
|
25C4 triaglf |
|
25CA lozenge |
|
25CB circle |
|
25CF H18533 |
|
25D8 invbullet |
|
25D9 invcircle |
|
25E6 openbullet |
|
263A smileface |
|
263B invsmileface |
|
263C sun |
|
2640 female |
|
2642 male |
|
2660 spade |
|
2663 club |
|
2665 heart |
|
2666 diamond |
|
266A musicalnote |
|
266B musicalnotedbl |
|
F6BE dotlessj |
|
F6BF LL |
|
F6C0 ll |
|
F6C1 Scedilla |
|
F6C2 scedilla |
|
F6C3 commaaccent |
|
F6C4 afii10063 |
|
F6C5 afii10064 |
|
F6C6 afii10192 |
|
F6C7 afii10831 |
|
F6C8 afii10832 |
|
F6C9 Acute |
|
F6CA Caron |
|
F6CB Dieresis |
|
F6CC DieresisAcute |
|
F6CD DieresisGrave |
|
F6CE Grave |
|
F6CF Hungarumlaut |
|
F6D0 Macron |
|
F6D1 cyrBreve |
|
F6D2 cyrFlex |
|
F6D3 dblGrave |
|
F6D4 cyrbreve |
|
F6D5 cyrflex |
|
F6D6 dblgrave |
|
F6D7 dieresisacute |
|
F6D8 dieresisgrave |
|
F6D9 copyrightserif |
|
F6DA registerserif |
|
F6DB trademarkserif |
|
F6DC onefitted |
|
F6DD rupiah |
|
F6DE threequartersemdash |
|
F6DF centinferior |
|
F6E0 centsuperior |
|
F6E1 commainferior |
|
F6E2 commasuperior |
|
F6E3 dollarinferior |
|
F6E4 dollarsuperior |
|
F6E5 hypheninferior |
|
F6E6 hyphensuperior |
|
F6E7 periodinferior |
|
F6E8 periodsuperior |
|
F6E9 asuperior |
|
F6EA bsuperior |
|
F6EB dsuperior |
|
F6EC esuperior |
|
F6ED isuperior |
|
F6EE lsuperior |
|
F6EF msuperior |
|
F6F0 osuperior |
|
F6F1 rsuperior |
|
F6F2 ssuperior |
|
F6F3 tsuperior |
|
F6F4 Brevesmall |
|
F6F5 Caronsmall |
|
F6F6 Circumflexsmall |
|
F6F7 Dotaccentsmall |
|
F6F8 Hungarumlautsmall |
|
F6F9 Lslashsmall |
|
F6FA OEsmall |
|
F6FB Ogoneksmall |
|
F6FC Ringsmall |
|
F6FD Scaronsmall |
|
F6FE Tildesmall |
|
F6FF Zcaronsmall |
|
F721 exclamsmall |
|
F724 dollaroldstyle |
|
F726 ampersandsmall |
|
F730 zerooldstyle |
|
F731 oneoldstyle |
|
F732 twooldstyle |
|
F733 threeoldstyle |
|
F734 fouroldstyle |
|
F735 fiveoldstyle |
|
F736 sixoldstyle |
|
F737 sevenoldstyle |
|
F738 eightoldstyle |
|
F739 nineoldstyle |
|
F73F questionsmall |
|
F760 Gravesmall |
|
F761 Asmall |
|
F762 Bsmall |
|
F763 Csmall |
|
F764 Dsmall |
|
F765 Esmall |
|
F766 Fsmall |
|
F767 Gsmall |
|
F768 Hsmall |
|
F769 Ismall |
|
F76A Jsmall |
|
F76B Ksmall |
|
F76C Lsmall |
|
F76D Msmall |
|
F76E Nsmall |
|
F76F Osmall |
|
F770 Psmall |
|
F771 Qsmall |
|
F772 Rsmall |
|
F773 Ssmall |
|
F774 Tsmall |
|
F775 Usmall |
|
F776 Vsmall |
|
F777 Wsmall |
|
F778 Xsmall |
|
F779 Ysmall |
|
F77A Zsmall |
|
F7A1 exclamdownsmall |
|
F7A2 centoldstyle |
|
F7A8 Dieresissmall |
|
F7AF Macronsmall |
|
F7B4 Acutesmall |
|
F7B8 Cedillasmall |
|
F7BF questiondownsmall |
|
F7E0 Agravesmall |
|
F7E1 Aacutesmall |
|
F7E2 Acircumflexsmall |
|
F7E3 Atildesmall |
|
F7E4 Adieresissmall |
|
F7E5 Aringsmall |
|
F7E6 AEsmall |
|
F7E7 Ccedillasmall |
|
F7E8 Egravesmall |
|
F7E9 Eacutesmall |
|
F7EA Ecircumflexsmall |
|
F7EB Edieresissmall |
|
F7EC Igravesmall |
|
F7ED Iacutesmall |
|
F7EE Icircumflexsmall |
|
F7EF Idieresissmall |
|
F7F0 Ethsmall |
|
F7F1 Ntildesmall |
|
F7F2 Ogravesmall |
|
F7F3 Oacutesmall |
|
F7F4 Ocircumflexsmall |
|
F7F5 Otildesmall |
|
F7F6 Odieresissmall |
|
F7F8 Oslashsmall |
|
F7F9 Ugravesmall |
|
F7FA Uacutesmall |
|
F7FB Ucircumflexsmall |
|
F7FC Udieresissmall |
|
F7FD Yacutesmall |
|
F7FE Thornsmall |
|
F7FF Ydieresissmall |
|
F8E5 radicalex |
|
F8E6 arrowvertex |
|
F8E7 arrowhorizex |
|
F8E8 registersans |
|
F8E9 copyrightsans |
|
F8EA trademarksans |
|
F8EB parenlefttp |
|
F8EC parenleftex |
|
F8ED parenleftbt |
|
F8EE bracketlefttp |
|
F8EF bracketleftex |
|
F8F0 bracketleftbt |
|
F8F1 bracelefttp |
|
F8F2 braceleftmid |
|
F8F3 braceleftbt |
|
F8F4 braceex |
|
F8F5 integralex |
|
F8F6 parenrighttp |
|
F8F7 parenrightex |
|
F8F8 parenrightbt |
|
F8F9 bracketrighttp |
|
F8FA bracketrightex |
|
F8FB bracketrightbt |
|
F8FC bracerighttp |
|
F8FD bracerightmid |
|
F8FE bracerightbt |
|
FB00 ff |
|
FB01 fi |
|
FB02 fl |
|
FB03 ffi |
|
FB04 ffl |
|
FB1F afii57705 |
|
FB2A afii57694 |
|
FB2B afii57695 |
|
FB35 afii57723 |
|
FB4B afii57700 |
|
} |
|
|
|
variable ps_preamble {} |
|
|
|
namespace eval ps { |
|
namespace ensemble create |
|
namespace export {[a-z]*} |
|
proc literal {string} { |
|
upvar 0 ::tk::ps_preamble preamble |
|
foreach line [split $string \n] { |
|
set line [string trim $line] |
|
if {$line eq ""} continue |
|
append preamble $line \n |
|
} |
|
return |
|
} |
|
proc variable {name value} { |
|
upvar 0 ::tk::ps_preamble preamble |
|
append preamble "/$name $value def\n" |
|
return |
|
} |
|
proc function {name body} { |
|
upvar 0 ::tk::ps_preamble preamble |
|
append preamble "/$name \{" |
|
foreach line [split $body \n] { |
|
set line [string trim $line] |
|
|
|
if {$line eq "" } continue |
|
if {[string match {[%#]*} $line]} continue |
|
append preamble $line " " |
|
} |
|
append preamble "\} bind def\n" |
|
return |
|
} |
|
} |
|
|
|
ps literal { |
|
%%BeginProlog |
|
% This is a standard prolog for Postscript generated by Tk's canvas |
|
% widget. |
|
} |
|
ps variable CurrentEncoding [CreatePostscriptEncoding] |
|
ps literal {50 dict begin} |
|
|
|
|
|
|
|
|
|
|
|
ps variable baseline 0 |
|
ps variable stipimage 0 |
|
ps variable height 0 |
|
ps variable justify 0 |
|
ps variable lineLength 0 |
|
ps variable spacing 0 |
|
ps variable stipple 0 |
|
ps variable strings 0 |
|
ps variable xoffset 0 |
|
ps variable yoffset 0 |
|
ps variable tmpstip null |
|
ps variable baselineSampler "( TXygqPZ)" |
|
|
|
ps literal {baselineSampler 0 196 put} |
|
|
|
ps function cstringshow { |
|
{ |
|
dup type /stringtype eq |
|
{ show } { glyphshow } |
|
ifelse |
|
} forall |
|
} |
|
|
|
ps function cstringwidth { |
|
0 exch 0 exch |
|
{ |
|
dup type /stringtype eq |
|
{ stringwidth } { |
|
currentfont /Encoding get exch 1 exch put (\001) |
|
stringwidth |
|
} |
|
ifelse |
|
exch 3 1 roll add 3 1 roll add exch |
|
} forall |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ps function ISOEncode { |
|
dup length dict begin |
|
{1 index /FID ne {def} {pop pop} ifelse} forall |
|
/Encoding CurrentEncoding def |
|
currentdict |
|
end |
|
% I'm not sure why it's necessary to use "definefont" on this new |
|
% font, but it seems to be important; just use the name "Temporary" |
|
% for the font. |
|
/Temporary exch definefont |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ps function StrokeClip { |
|
{strokepath} stopped { |
|
(This Postscript printer gets limitcheck overflows when) = |
|
(stippling dashed lines; lines will be printed solid instead.) = |
|
[] 0 setdash strokepath} if |
|
clip |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ps function EvenPixels { |
|
% Compute exact number of device pixels per stipple dot. |
|
dup 0 matrix currentmatrix dtransform |
|
dup mul exch dup mul add sqrt |
|
% Round to an integer, make sure the number is at least 1, and |
|
% compute user coord distance corresponding to this. |
|
dup round dup 1 lt {pop 1} if |
|
exch div mul |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ps function StippleFill { |
|
% The following code is needed to work around a NeWSprint bug. |
|
/tmpstip 1 index def |
|
% Change the scaling so that one user unit in user coordinates |
|
% corresponds to the size of one stipple dot. |
|
1 EvenPixels dup scale |
|
% Compute the bounding box occupied by the path (which is now the |
|
% clipping region), and round the lower coordinates down to the |
|
% nearest starting point for the stipple pattern. Be careful about |
|
% negative numbers, since the rounding works differently on them. |
|
pathbbox |
|
4 2 roll |
|
5 index div dup 0 lt {1 sub} if cvi 5 index mul 4 1 roll |
|
6 index div dup 0 lt {1 sub} if cvi 6 index mul 3 2 roll |
|
% Stack now: width height string y1 y2 x1 x2 |
|
% Below is a doubly-nested for loop to iterate across this area |
|
% in units of the stipple pattern size, going up columns then |
|
% across rows, blasting out a stipple-pattern-sized rectangle at |
|
% each position |
|
6 index exch { |
|
2 index 5 index 3 index { |
|
% Stack now: width height string y1 y2 x y |
|
gsave |
|
1 index exch translate |
|
5 index 5 index true matrix tmpstip imagemask |
|
grestore |
|
} for |
|
pop |
|
} for |
|
pop pop pop pop pop |
|
} |
|
|
|
|
|
|
|
|
|
|
|
ps function AdjustColor { |
|
CL 2 lt { |
|
currentgray |
|
CL 0 eq { |
|
.5 lt {0} {1} ifelse |
|
} if |
|
setgray |
|
} if |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ps function DrawText { |
|
/stipple exch def |
|
/justify exch def |
|
/yoffset exch def |
|
/xoffset exch def |
|
/spacing exch def |
|
/strings exch def |
|
% First scan through all of the text to find the widest line. |
|
/lineLength 0 def |
|
strings { |
|
cstringwidth pop |
|
dup lineLength gt {/lineLength exch def} {pop} ifelse |
|
newpath |
|
} forall |
|
% Compute the baseline offset and the actual font height. |
|
0 0 moveto baselineSampler false charpath |
|
pathbbox dup /baseline exch def |
|
exch pop exch sub /height exch def pop |
|
newpath |
|
% Translate and rotate coordinates first so that the origin is at |
|
% the upper-left corner of the text's bounding box. Remember that |
|
% angle for rotating, and x and y for positioning are still on the |
|
% stack. |
|
translate |
|
rotate |
|
lineLength xoffset mul |
|
strings length 1 sub spacing mul height add yoffset mul translate |
|
% Now use the baseline and justification information to translate |
|
% so that the origin is at the baseline and positioning point for |
|
% the first line of text. |
|
justify lineLength mul baseline neg translate |
|
% Iterate over each of the lines to output it. For each line, |
|
% compute its width again so it can be properly justified, then |
|
% display it. |
|
strings { |
|
dup cstringwidth pop |
|
justify neg mul 0 moveto |
|
stipple { |
|
% The text is stippled, so turn it into a path and print |
|
% by calling StippledText, which in turn calls |
|
% StippleFill. Unfortunately, many Postscript interpreters |
|
% will get overflow errors if we try to do the whole |
|
% string at once, so do it a character at a time. |
|
gsave |
|
/char (X) def |
|
{ |
|
dup type /stringtype eq { |
|
% This segment is a string. |
|
{ |
|
char 0 3 -1 roll put |
|
currentpoint |
|
gsave |
|
char true charpath clip StippleText |
|
grestore |
|
char stringwidth translate |
|
moveto |
|
} forall |
|
} { |
|
% This segment is glyph name |
|
% Temporary override |
|
currentfont /Encoding get exch 1 exch put |
|
currentpoint |
|
gsave (\001) true charpath clip StippleText |
|
grestore |
|
(\001) stringwidth translate |
|
moveto |
|
} ifelse |
|
} forall |
|
grestore |
|
} {cstringshow} ifelse |
|
0 spacing neg translate |
|
} forall |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ps function TkPhotoColor { |
|
gsave |
|
32 dict begin |
|
/tinteger exch def |
|
/transparent 1 string def |
|
transparent 0 tinteger put |
|
/olddict exch def |
|
olddict /DataSource get dup type /filetype ne { |
|
olddict /DataSource 3 -1 roll |
|
0 () /SubFileDecode filter put |
|
} { |
|
pop |
|
} ifelse |
|
/newdict olddict maxlength dict def |
|
olddict newdict copy pop |
|
/w newdict /Width get def |
|
/crpp newdict /Decode get length 2 idiv def |
|
/str w string def |
|
/pix w crpp mul string def |
|
/substrlen 2 w log 2 log div floor exp cvi def |
|
/substrs [ { |
|
substrlen string |
|
0 1 substrlen 1 sub { |
|
1 index exch tinteger put |
|
} for |
|
/substrlen substrlen 2 idiv def |
|
substrlen 0 eq {exit} if |
|
} loop ] def |
|
/h newdict /Height get def |
|
1 w div 1 h div matrix scale |
|
olddict /ImageMatrix get exch matrix concatmatrix |
|
matrix invertmatrix concat |
|
newdict /Height 1 put |
|
newdict /DataSource pix put |
|
/mat [w 0 0 h 0 0] def |
|
newdict /ImageMatrix mat put |
|
0 1 h 1 sub { |
|
mat 5 3 -1 roll neg put |
|
olddict /DataSource get str readstring pop pop |
|
/tail str def |
|
/x 0 def |
|
olddict /DataSource get pix readstring pop pop |
|
{ |
|
tail transparent search dup /done exch not def |
|
{exch pop exch pop} if |
|
/w1 exch length def |
|
w1 0 ne { |
|
newdict /DataSource |
|
pix x crpp mul w1 crpp mul getinterval put |
|
newdict /Width w1 put |
|
mat 4 x neg put |
|
/x x w1 add def |
|
newdict image |
|
/tail tail w1 tail length w1 sub getinterval def |
|
} if |
|
done {exit} if |
|
tail substrs { |
|
anchorsearch {pop} if |
|
} forall |
|
/tail exch def |
|
tail length 0 eq {exit} if |
|
/x w tail length sub def |
|
} loop |
|
} for |
|
end |
|
grestore |
|
} |
|
ps function TkPhotoMono { |
|
gsave |
|
32 dict begin |
|
/dummyInteger exch def |
|
/olddict exch def |
|
olddict /DataSource get dup type /filetype ne { |
|
olddict /DataSource 3 -1 roll |
|
0 () /SubFileDecode filter put |
|
} { |
|
pop |
|
} ifelse |
|
/newdict olddict maxlength dict def |
|
olddict newdict copy pop |
|
/w newdict /Width get def |
|
/pix w 7 add 8 idiv string def |
|
/h newdict /Height get def |
|
1 w div 1 h div matrix scale |
|
olddict /ImageMatrix get exch matrix concatmatrix |
|
matrix invertmatrix concat |
|
newdict /Height 1 put |
|
newdict /DataSource pix put |
|
/mat [w 0 0 h 0 0] def |
|
newdict /ImageMatrix mat put |
|
0 1 h 1 sub { |
|
mat 5 3 -1 roll neg put |
|
0.000 0.000 0.000 setrgbcolor |
|
olddict /DataSource get pix readstring pop pop |
|
newdict /DataSource pix put |
|
newdict imagemask |
|
1.000 1.000 1.000 setrgbcolor |
|
olddict /DataSource get pix readstring pop pop |
|
newdict /DataSource pix put |
|
newdict imagemask |
|
} for |
|
end |
|
grestore |
|
} |
|
|
|
ps literal %%EndProlog |
|
} |
|
|
|
proc tk::ensure_psenc_is_loaded {} { |
|
} |
|
|