PLplot  5.10.0
plunicode-type1.h
Go to the documentation of this file.
00001 //
00002 // This header file contains the lookup tables used for converting between
00003 // unicode and the 3 standard type 1 font sequences, dingbats, standard, and
00004 // symbol.  These data therefore allow unicode access to at least the 35
00005 // standard type 1 fonts in the gsfonts font package, and probably many other
00006 // type 1 fonts as well.
00007 //
00008 // Copyright (C) 2005  Alan W. Irwin
00009 //
00010 // This file is part of PLplot.
00011 //
00012 // PLplot is free software; you can redistribute it and/or modify
00013 // it under the terms of the GNU Library General Public License as published
00014 // by the Free Software Foundation; either version 2 of the License, or
00015 // (at your option) any later version.
00016 //
00017 // PLplot is distributed in the hope that it will be useful,
00018 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00019 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00020 // GNU Library General Public License for more details.
00021 //
00022 // You should have received a copy of the GNU Library General Public License
00023 // along with PLplot; if not, write to the Free Software
00024 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
00025 //
00026 
00027 #ifndef __PLUNICODE_TYPE1_H__
00028 #define __PLUNICODE_TYPE1_H__
00029 
00030 typedef struct
00031 {
00032     PLUNICODE     Unicode;
00033     unsigned char Type1;
00034 } Unicode_to_Type1_table;
00035 
00036 // The following table values have been updated to be consistent
00037 // with zdingbat.txt, stdenc.txt, and symbol.txt downloaded from
00038 // http://unicode.org/Public/MAPPINGS/VENDORS/ADOBE/ on 2010-04-28.
00039 static const int number_of_entries_in_unicode_to_dingbats_table = 203;
00040 
00041 static const Unicode_to_Type1_table unicode_to_dingbats_lookup_table[203] = {
00042     { 0x0020,  32 },
00043     { 0x00a0,  32 },
00044     { 0x2192, 213 },
00045     { 0x2194, 214 },
00046     { 0x2195, 215 },
00047     { 0x2460, 172 },
00048     { 0x2461, 173 },
00049     { 0x2462, 174 },
00050     { 0x2463, 175 },
00051     { 0x2464, 176 },
00052     { 0x2465, 177 },
00053     { 0x2466, 178 },
00054     { 0x2467, 179 },
00055     { 0x2468, 180 },
00056     { 0x2469, 181 },
00057     { 0x25a0, 110 },
00058     { 0x25b2, 115 },
00059     { 0x25bc, 116 },
00060     { 0x25c6, 117 },
00061     { 0x25cf, 108 },
00062     { 0x25d7, 119 },
00063     { 0x2605,  72 },
00064     { 0x260e,  37 },
00065     { 0x261b,  42 },
00066     { 0x261e,  43 },
00067     { 0x2660, 171 },
00068     { 0x2663, 168 },
00069     { 0x2665, 170 },
00070     { 0x2666, 169 },
00071     { 0x2701,  33 },
00072     { 0x2702,  34 },
00073     { 0x2703,  35 },
00074     { 0x2704,  36 },
00075     { 0x2706,  38 },
00076     { 0x2707,  39 },
00077     { 0x2708,  40 },
00078     { 0x2709,  41 },
00079     { 0x270c,  44 },
00080     { 0x270d,  45 },
00081     { 0x270e,  46 },
00082     { 0x270f,  47 },
00083     { 0x2710,  48 },
00084     { 0x2711,  49 },
00085     { 0x2712,  50 },
00086     { 0x2713,  51 },
00087     { 0x2714,  52 },
00088     { 0x2715,  53 },
00089     { 0x2716,  54 },
00090     { 0x2717,  55 },
00091     { 0x2718,  56 },
00092     { 0x2719,  57 },
00093     { 0x271a,  58 },
00094     { 0x271b,  59 },
00095     { 0x271c,  60 },
00096     { 0x271d,  61 },
00097     { 0x271e,  62 },
00098     { 0x271f,  63 },
00099     { 0x2720,  64 },
00100     { 0x2721,  65 },
00101     { 0x2722,  66 },
00102     { 0x2723,  67 },
00103     { 0x2724,  68 },
00104     { 0x2725,  69 },
00105     { 0x2726,  70 },
00106     { 0x2727,  71 },
00107     { 0x2729,  73 },
00108     { 0x272a,  74 },
00109     { 0x272b,  75 },
00110     { 0x272c,  76 },
00111     { 0x272d,  77 },
00112     { 0x272e,  78 },
00113     { 0x272f,  79 },
00114     { 0x2730,  80 },
00115     { 0x2731,  81 },
00116     { 0x2732,  82 },
00117     { 0x2733,  83 },
00118     { 0x2734,  84 },
00119     { 0x2735,  85 },
00120     { 0x2736,  86 },
00121     { 0x2737,  87 },
00122     { 0x2738,  88 },
00123     { 0x2739,  89 },
00124     { 0x273a,  90 },
00125     { 0x273b,  91 },
00126     { 0x273c,  92 },
00127     { 0x273d,  93 },
00128     { 0x273e,  94 },
00129     { 0x273f,  95 },
00130     { 0x2740,  96 },
00131     { 0x2741,  97 },
00132     { 0x2742,  98 },
00133     { 0x2743,  99 },
00134     { 0x2744, 100 },
00135     { 0x2745, 101 },
00136     { 0x2746, 102 },
00137     { 0x2747, 103 },
00138     { 0x2748, 104 },
00139     { 0x2749, 105 },
00140     { 0x274a, 106 },
00141     { 0x274b, 107 },
00142     { 0x274d, 109 },
00143     { 0x274f, 111 },
00144     { 0x2750, 112 },
00145     { 0x2751, 113 },
00146     { 0x2752, 114 },
00147     { 0x2756, 118 },
00148     { 0x2758, 120 },
00149     { 0x2759, 121 },
00150     { 0x275a, 122 },
00151     { 0x275b, 123 },
00152     { 0x275c, 124 },
00153     { 0x275d, 125 },
00154     { 0x275e, 126 },
00155     { 0x2761, 161 },
00156     { 0x2762, 162 },
00157     { 0x2763, 163 },
00158     { 0x2764, 164 },
00159     { 0x2765, 165 },
00160     { 0x2766, 166 },
00161     { 0x2767, 167 },
00162     { 0x2776, 182 },
00163     { 0x2777, 183 },
00164     { 0x2778, 184 },
00165     { 0x2779, 185 },
00166     { 0x277a, 186 },
00167     { 0x277b, 187 },
00168     { 0x277c, 188 },
00169     { 0x277d, 189 },
00170     { 0x277e, 190 },
00171     { 0x277f, 191 },
00172     { 0x2780, 192 },
00173     { 0x2781, 193 },
00174     { 0x2782, 194 },
00175     { 0x2783, 195 },
00176     { 0x2784, 196 },
00177     { 0x2785, 197 },
00178     { 0x2786, 198 },
00179     { 0x2787, 199 },
00180     { 0x2788, 200 },
00181     { 0x2789, 201 },
00182     { 0x278a, 202 },
00183     { 0x278b, 203 },
00184     { 0x278c, 204 },
00185     { 0x278d, 205 },
00186     { 0x278e, 206 },
00187     { 0x278f, 207 },
00188     { 0x2790, 208 },
00189     { 0x2791, 209 },
00190     { 0x2792, 210 },
00191     { 0x2793, 211 },
00192     { 0x2794, 212 },
00193     { 0x2798, 216 },
00194     { 0x2799, 217 },
00195     { 0x279a, 218 },
00196     { 0x279b, 219 },
00197     { 0x279c, 220 },
00198     { 0x279d, 221 },
00199     { 0x279e, 222 },
00200     { 0x279f, 223 },
00201     { 0x27a0, 224 },
00202     { 0x27a1, 225 },
00203     { 0x27a2, 226 },
00204     { 0x27a3, 227 },
00205     { 0x27a4, 228 },
00206     { 0x27a5, 229 },
00207     { 0x27a6, 230 },
00208     { 0x27a7, 231 },
00209     { 0x27a8, 232 },
00210     { 0x27a9, 233 },
00211     { 0x27aa, 234 },
00212     { 0x27ab, 235 },
00213     { 0x27ac, 236 },
00214     { 0x27ad, 237 },
00215     { 0x27ae, 238 },
00216     { 0x27af, 239 },
00217     { 0x27b1, 241 },
00218     { 0x27b2, 242 },
00219     { 0x27b3, 243 },
00220     { 0x27b4, 244 },
00221     { 0x27b5, 245 },
00222     { 0x27b6, 246 },
00223     { 0x27b7, 247 },
00224     { 0x27b8, 248 },
00225     { 0x27b9, 249 },
00226     { 0x27ba, 250 },
00227     { 0x27bb, 251 },
00228     { 0x27bc, 252 },
00229     { 0x27bd, 253 },
00230     { 0x27be, 254 },
00231     { 0xf8d7, 128 },
00232     { 0xf8d8, 129 },
00233     { 0xf8d9, 130 },
00234     { 0xf8da, 131 },
00235     { 0xf8db, 132 },
00236     { 0xf8dc, 133 },
00237     { 0xf8dd, 134 },
00238     { 0xf8de, 135 },
00239     { 0xf8df, 136 },
00240     { 0xf8e0, 137 },
00241     { 0xf8e1, 138 },
00242     { 0xf8e2, 139 },
00243     { 0xf8e3, 140 },
00244     { 0xf8e4, 141 },
00245 };
00246 
00247 static const int number_of_entries_in_unicode_to_standard_table = 154;
00248 
00249 static const Unicode_to_Type1_table unicode_to_standard_lookup_table[154] = {
00250     { 0x0020,  32 },
00251     { 0x0021,  33 },
00252     { 0x0022,  34 },
00253     { 0x0023,  35 },
00254     { 0x0024,  36 },
00255     { 0x0025,  37 },
00256     { 0x0026,  38 },
00257     { 0x0027, 169 },
00258     { 0x0028,  40 },
00259     { 0x0029,  41 },
00260     { 0x002a,  42 },
00261     { 0x002b,  43 },
00262     { 0x002c,  44 },
00263     { 0x002d,  45 },
00264     { 0x002e,  46 },
00265     { 0x002f,  47 },
00266     { 0x0030,  48 },
00267     { 0x0031,  49 },
00268     { 0x0032,  50 },
00269     { 0x0033,  51 },
00270     { 0x0034,  52 },
00271     { 0x0035,  53 },
00272     { 0x0036,  54 },
00273     { 0x0037,  55 },
00274     { 0x0038,  56 },
00275     { 0x0039,  57 },
00276     { 0x003a,  58 },
00277     { 0x003b,  59 },
00278     { 0x003c,  60 },
00279     { 0x003d,  61 },
00280     { 0x003e,  62 },
00281     { 0x003f,  63 },
00282     { 0x0040,  64 },
00283     { 0x0041,  65 },
00284     { 0x0042,  66 },
00285     { 0x0043,  67 },
00286     { 0x0044,  68 },
00287     { 0x0045,  69 },
00288     { 0x0046,  70 },
00289     { 0x0047,  71 },
00290     { 0x0048,  72 },
00291     { 0x0049,  73 },
00292     { 0x004a,  74 },
00293     { 0x004b,  75 },
00294     { 0x004c,  76 },
00295     { 0x004d,  77 },
00296     { 0x004e,  78 },
00297     { 0x004f,  79 },
00298     { 0x0050,  80 },
00299     { 0x0051,  81 },
00300     { 0x0052,  82 },
00301     { 0x0053,  83 },
00302     { 0x0054,  84 },
00303     { 0x0055,  85 },
00304     { 0x0056,  86 },
00305     { 0x0057,  87 },
00306     { 0x0058,  88 },
00307     { 0x0059,  89 },
00308     { 0x005a,  90 },
00309     { 0x005b,  91 },
00310     { 0x005c,  92 },
00311     { 0x005d,  93 },
00312     { 0x005e,  94 },
00313     { 0x005f,  95 },
00314     { 0x0060, 193 },
00315     { 0x0061,  97 },
00316     { 0x0062,  98 },
00317     { 0x0063,  99 },
00318     { 0x0064, 100 },
00319     { 0x0065, 101 },
00320     { 0x0066, 102 },
00321     { 0x0067, 103 },
00322     { 0x0068, 104 },
00323     { 0x0069, 105 },
00324     { 0x006a, 106 },
00325     { 0x006b, 107 },
00326     { 0x006c, 108 },
00327     { 0x006d, 109 },
00328     { 0x006e, 110 },
00329     { 0x006f, 111 },
00330     { 0x0070, 112 },
00331     { 0x0071, 113 },
00332     { 0x0072, 114 },
00333     { 0x0073, 115 },
00334     { 0x0074, 116 },
00335     { 0x0075, 117 },
00336     { 0x0076, 118 },
00337     { 0x0077, 119 },
00338     { 0x0078, 120 },
00339     { 0x0079, 121 },
00340     { 0x007a, 122 },
00341     { 0x007b, 123 },
00342     { 0x007c, 124 },
00343     { 0x007d, 125 },
00344     { 0x007e, 126 },
00345     { 0x00a0,  32 },
00346     { 0x00a1, 161 },
00347     { 0x00a2, 162 },
00348     { 0x00a3, 163 },
00349     { 0x00a4, 168 },
00350     { 0x00a5, 165 },
00351     { 0x00a7, 167 },
00352     { 0x00a8, 200 },
00353     { 0x00aa, 227 },
00354     { 0x00ab, 171 },
00355     { 0x00ad,  45 },
00356     { 0x00af, 197 },
00357     { 0x00b4, 194 },
00358     { 0x00b6, 182 },
00359     { 0x00b7, 180 },
00360     { 0x00b8, 203 },
00361     { 0x00ba, 235 },
00362     { 0x00bb, 187 },
00363     { 0x00bf, 191 },
00364     { 0x00c6, 225 },
00365     { 0x00d8, 233 },
00366     { 0x00df, 251 },
00367     { 0x00e6, 241 },
00368     { 0x00f8, 249 },
00369     { 0x0131, 245 },
00370     { 0x0141, 232 },
00371     { 0x0142, 248 },
00372     { 0x0152, 234 },
00373     { 0x0153, 250 },
00374     { 0x0192, 166 },
00375     { 0x02c6, 195 },
00376     { 0x02c7, 207 },
00377     { 0x02c9, 197 },
00378     { 0x02d8, 198 },
00379     { 0x02d9, 199 },
00380     { 0x02da, 202 },
00381     { 0x02db, 206 },
00382     { 0x02dc, 196 },
00383     { 0x02dd, 205 },
00384     { 0x2013, 177 },
00385     { 0x2014, 208 },
00386     { 0x2018,  96 },
00387     { 0x2019,  39 },
00388     { 0x201a, 184 },
00389     { 0x201c, 170 },
00390     { 0x201d, 186 },
00391     { 0x201e, 185 },
00392     { 0x2020, 178 },
00393     { 0x2021, 179 },
00394     { 0x2022, 183 },
00395     { 0x2026, 188 },
00396     { 0x2030, 189 },
00397     { 0x2039, 172 },
00398     { 0x203a, 173 },
00399     { 0x2044, 164 },
00400     { 0x2215, 164 },
00401     { 0x2219, 180 },
00402     { 0xfb01, 174 },
00403     { 0xfb02, 175 },
00404 };
00405 
00406 static const int number_of_entries_in_unicode_to_symbol_table = 194;
00407 
00408 static const Unicode_to_Type1_table unicode_to_symbol_lookup_table[194] = {
00409     { 0x0020,  32 },
00410     { 0x0021,  33 },
00411     { 0x0023,  35 },
00412     { 0x0025,  37 },
00413     { 0x0026,  38 },
00414     { 0x0028,  40 },
00415     { 0x0029,  41 },
00416     { 0x002b,  43 },
00417     { 0x002c,  44 },
00418     { 0x002e,  46 },
00419     { 0x002f,  47 },
00420     { 0x0030,  48 },
00421     { 0x0031,  49 },
00422     { 0x0032,  50 },
00423     { 0x0033,  51 },
00424     { 0x0034,  52 },
00425     { 0x0035,  53 },
00426     { 0x0036,  54 },
00427     { 0x0037,  55 },
00428     { 0x0038,  56 },
00429     { 0x0039,  57 },
00430     { 0x003a,  58 },
00431     { 0x003b,  59 },
00432     { 0x003c,  60 },
00433     { 0x003d,  61 },
00434     { 0x003e,  62 },
00435     { 0x003f,  63 },
00436     { 0x005b,  91 },
00437     { 0x005d,  93 },
00438     { 0x005f,  95 },
00439     { 0x007b, 123 },
00440     { 0x007c, 124 },
00441     { 0x007d, 125 },
00442     { 0x00a0,  32 },
00443     { 0x00ac, 216 },
00444     { 0x00b0, 176 },
00445     { 0x00b1, 177 },
00446     { 0x00b5, 109 },
00447     { 0x00d7, 180 },
00448     { 0x00f7, 184 },
00449     { 0x0192, 166 },
00450     { 0x0391,  65 },
00451     { 0x0392,  66 },
00452     { 0x0393,  71 },
00453     { 0x0394,  68 },
00454     { 0x0395,  69 },
00455     { 0x0396,  90 },
00456     { 0x0397,  72 },
00457     { 0x0398,  81 },
00458     { 0x0399,  73 },
00459     { 0x039a,  75 },
00460     { 0x039b,  76 },
00461     { 0x039c,  77 },
00462     { 0x039d,  78 },
00463     { 0x039e,  88 },
00464     { 0x039f,  79 },
00465     { 0x03a0,  80 },
00466     { 0x03a1,  82 },
00467     { 0x03a3,  83 },
00468     { 0x03a4,  84 },
00469     { 0x03a5,  85 },
00470     { 0x03a6,  70 },
00471     { 0x03a7,  67 },
00472     { 0x03a8,  89 },
00473     { 0x03a9,  87 },
00474     { 0x03b1,  97 },
00475     { 0x03b2,  98 },
00476     { 0x03b3, 103 },
00477     { 0x03b4, 100 },
00478     { 0x03b5, 101 },
00479     { 0x03b6, 122 },
00480     { 0x03b7, 104 },
00481     { 0x03b8, 113 },
00482     { 0x03b9, 105 },
00483     { 0x03ba, 107 },
00484     { 0x03bb, 108 },
00485     { 0x03bc, 109 },
00486     { 0x03bd, 110 },
00487     { 0x03be, 120 },
00488     { 0x03bf, 111 },
00489     { 0x03c0, 112 },
00490     { 0x03c1, 114 },
00491     { 0x03c2,  86 },
00492     { 0x03c3, 115 },
00493     { 0x03c4, 116 },
00494     { 0x03c5, 117 },
00495     { 0x03c6, 102 },
00496     { 0x03c7,  99 },
00497     { 0x03c8, 121 },
00498     { 0x03c9, 119 },
00499     { 0x03d1,  74 },
00500     { 0x03d2, 161 },
00501     { 0x03d5, 106 },
00502     { 0x03d6, 118 },
00503     { 0x2022, 183 },
00504     { 0x2026, 188 },
00505     { 0x2032, 162 },
00506     { 0x2033, 178 },
00507     { 0x2044, 164 },
00508     { 0x20ac, 160 },
00509     { 0x2111, 193 },
00510     { 0x2118, 195 },
00511     { 0x211c, 194 },
00512     { 0x2126,  87 },
00513     { 0x2135, 192 },
00514     { 0x2190, 172 },
00515     { 0x2191, 173 },
00516     { 0x2192, 174 },
00517     { 0x2193, 175 },
00518     { 0x2194, 171 },
00519     { 0x21b5, 191 },
00520     { 0x21d0, 220 },
00521     { 0x21d1, 221 },
00522     { 0x21d2, 222 },
00523     { 0x21d3, 223 },
00524     { 0x21d4, 219 },
00525     { 0x2200,  34 },
00526     { 0x2202, 182 },
00527     { 0x2203,  36 },
00528     { 0x2205, 198 },
00529     { 0x2206,  68 },
00530     { 0x2207, 209 },
00531     { 0x2208, 206 },
00532     { 0x2209, 207 },
00533     { 0x220b,  39 },
00534     { 0x220f, 213 },
00535     { 0x2211, 229 },
00536     { 0x2212,  45 },
00537     { 0x2215, 164 },
00538     { 0x2217,  42 },
00539     { 0x221a, 214 },
00540     { 0x221d, 181 },
00541     { 0x221e, 165 },
00542     { 0x2220, 208 },
00543     { 0x2227, 217 },
00544     { 0x2228, 218 },
00545     { 0x2229, 199 },
00546     { 0x222a, 200 },
00547     { 0x222b, 242 },
00548     { 0x2234,  92 },
00549     { 0x223c, 126 },
00550     { 0x2245,  64 },
00551     { 0x2248, 187 },
00552     { 0x2260, 185 },
00553     { 0x2261, 186 },
00554     { 0x2264, 163 },
00555     { 0x2265, 179 },
00556     { 0x2282, 204 },
00557     { 0x2283, 201 },
00558     { 0x2284, 203 },
00559     { 0x2286, 205 },
00560     { 0x2287, 202 },
00561     { 0x2295, 197 },
00562     { 0x2297, 196 },
00563     { 0x22a5,  94 },
00564     { 0x22c5, 215 },
00565     { 0x2320, 243 },
00566     { 0x2321, 245 },
00567     { 0x2329, 225 },
00568     { 0x232a, 241 },
00569     { 0x25ca, 224 },
00570     { 0x2660, 170 },
00571     { 0x2663, 167 },
00572     { 0x2665, 169 },
00573     { 0x2666, 168 },
00574     { 0xf6d9, 211 },
00575     { 0xf6da, 210 },
00576     { 0xf6db, 212 },
00577     { 0xf8e5,  96 },
00578     { 0xf8e6, 189 },
00579     { 0xf8e7, 190 },
00580     { 0xf8e8, 226 },
00581     { 0xf8e9, 227 },
00582     { 0xf8ea, 228 },
00583     { 0xf8eb, 230 },
00584     { 0xf8ec, 231 },
00585     { 0xf8ed, 232 },
00586     { 0xf8ee, 233 },
00587     { 0xf8ef, 234 },
00588     { 0xf8f0, 235 },
00589     { 0xf8f1, 236 },
00590     { 0xf8f2, 237 },
00591     { 0xf8f3, 238 },
00592     { 0xf8f4, 239 },
00593     { 0xf8f5, 244 },
00594     { 0xf8f6, 246 },
00595     { 0xf8f7, 247 },
00596     { 0xf8f8, 248 },
00597     { 0xf8f9, 249 },
00598     { 0xf8fa, 250 },
00599     { 0xf8fb, 251 },
00600     { 0xf8fc, 252 },
00601     { 0xf8fd, 253 },
00602     { 0xf8fe, 254 },
00603 };
00604 
00605 #endif // __PLUNICODE_TYPE1_H__
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines