1 // Copyright (C) 2000-2007, Luca Padovani <padovani@sti.uniurb.it>.
2 //
3 // This file is part of GtkMathView, a flexible, high-quality rendering
4 // engine for MathML documents.
5 //
6 // GtkMathView is free software; you can redistribute it and/or modify it
7 // under the terms of the GNU Lesser General Public License as published
8 // by the Free Software Foundation; either version 3 of the License, or
9 // (at your option) any later version.
10 //
11 // GtkMathView is distributed in the hope that it will be useful, but
12 // WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
14 // Lesser General Public License for more details.
15 //
16 // You should have received a copy of the GNU Lesser General Public License
17 // along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 
19 #include "TFM.hh"
20 
21 static TFM::Font font = {
22 "CMBX",
23 
24   0xec,
25   "TeX text",
26   0x00900000,
27   0x740c893a,
28   7,
29   128
30 };
31 
32 static TFM::Dimension dimension[] = {
33   { 0x01, "slant", 0x00000000 },
34   { 0x02, "space", 0x00064fa0 },
35   { 0x03, "space_stretch", 0x000327d0 },
36   { 0x04, "space_shrink", 0x00021a8b },
37   { 0x05, "x_height", 0x00071c72 },
38   { 0x06, "quad", 0x0012eee0 },
39   { 0x07, "extra_space", 0x00021a8b }
40 };
41 
42 
43 static TFM::Kerning C_0b_Kerning[] = {
44   { 0x21, 0x0001cfa5 },
45   { 0x27, 0x0001cfa5 },
46   { 0x29, 0x0001cfa5 },
47   { 0x3f, 0x0001cfa5 },
48   { 0x5d, 0x0001cfa5 }
49 };
50 
51 static TFM::Kerning C_20_Kerning[] = {
52   { 0x4c, 0xfff9ccce },
53   { 0x6c, 0xfffabda5 }
54 };
55 
56 static TFM::Kerning C_27_Kerning[] = {
57   { 0x21, 0x00021a8b },
58   { 0x3f, 0x00021a8b }
59 };
60 
61 static TFM::Kerning C_41_Kerning[] = {
62   { 0x43, 0xffff795c },
63   { 0x47, 0xffff795c },
64   { 0x4f, 0xffff795c },
65   { 0x51, 0xffff795c },
66   { 0x54, 0xfffe6c17 },
67   { 0x55, 0xffff795c },
68   { 0x56, 0xfffde575 },
69   { 0x57, 0xfffde575 },
70   { 0x59, 0xfffe6c17 },
71   { 0x74, 0xffff795c }
72 };
73 
74 static TFM::Kerning C_44_Kerning[] = {
75   { 0x41, 0xffff795c },
76   { 0x56, 0xffff795c },
77   { 0x57, 0xffff795c },
78   { 0x58, 0xffff795c },
79   { 0x59, 0xffff795c }
80 };
81 
82 static TFM::Kerning C_46_Kerning[] = {
83   { 0x41, 0xfffde575 },
84   { 0x43, 0xffff795c },
85   { 0x47, 0xffff795c },
86   { 0x4f, 0xffff795c },
87   { 0x51, 0xffff795c },
88   { 0x61, 0xfffe6c17 },
89   { 0x65, 0xfffe6c17 },
90   { 0x6f, 0xfffe6c17 },
91   { 0x72, 0xfffe6c17 },
92   { 0x75, 0xfffe6c17 }
93 };
94 
95 static TFM::Kerning C_49_Kerning[] = {
96   { 0x49, 0x000086a4 }
97 };
98 
99 static TFM::Kerning C_4b_Kerning[] = {
100   { 0x43, 0xffff795c },
101   { 0x47, 0xffff795c },
102   { 0x4f, 0xffff795c },
103   { 0x51, 0xffff795c }
104 };
105 
106 static TFM::Kerning C_4c_Kerning[] = {
107   { 0x54, 0xfffe6c17 },
108   { 0x56, 0xfffde575 },
109   { 0x57, 0xfffde575 },
110   { 0x59, 0xfffe6c17 }
111 };
112 
113 static TFM::Kerning C_4f_Kerning[] = {
114   { 0x41, 0xffff795c },
115   { 0x56, 0xffff795c },
116   { 0x57, 0xffff795c },
117   { 0x58, 0xffff795c },
118   { 0x59, 0xffff795c }
119 };
120 
121 static TFM::Kerning C_50_Kerning[] = {
122   { 0x2c, 0xfffe6c17 },
123   { 0x2e, 0xfffe6c17 },
124   { 0x41, 0xfffe6c17 },
125   { 0x61, 0xffff795c },
126   { 0x65, 0xffff795c },
127   { 0x6f, 0xffff795c }
128 };
129 
130 static TFM::Kerning C_52_Kerning[] = {
131   { 0x43, 0xffff795c },
132   { 0x47, 0xffff795c },
133   { 0x4f, 0xffff795c },
134   { 0x51, 0xffff795c },
135   { 0x54, 0xfffe6c17 },
136   { 0x55, 0xffff795c },
137   { 0x56, 0xfffde575 },
138   { 0x57, 0xfffde575 },
139   { 0x59, 0xfffe6c17 },
140   { 0x74, 0xffff795c }
141 };
142 
143 static TFM::Kerning C_54_Kerning[] = {
144   { 0x41, 0xfffe6c17 },
145   { 0x61, 0xfffe6c17 },
146   { 0x65, 0xfffe6c17 },
147   { 0x6f, 0xfffe6c17 },
148   { 0x72, 0xfffe6c17 },
149   { 0x75, 0xfffe6c17 },
150   { 0x79, 0xffff795c }
151 };
152 
153 static TFM::Kerning C_56_Kerning[] = {
154   { 0x41, 0xfffde575 },
155   { 0x43, 0xffff795c },
156   { 0x47, 0xffff795c },
157   { 0x4f, 0xffff795c },
158   { 0x51, 0xffff795c },
159   { 0x61, 0xfffe6c17 },
160   { 0x65, 0xfffe6c17 },
161   { 0x6f, 0xfffe6c17 },
162   { 0x72, 0xfffe6c17 },
163   { 0x75, 0xfffe6c17 }
164 };
165 
166 static TFM::Kerning C_57_Kerning[] = {
167   { 0x41, 0xfffde575 },
168   { 0x43, 0xffff795c },
169   { 0x47, 0xffff795c },
170   { 0x4f, 0xffff795c },
171   { 0x51, 0xffff795c },
172   { 0x61, 0xfffe6c17 },
173   { 0x65, 0xfffe6c17 },
174   { 0x6f, 0xfffe6c17 },
175   { 0x72, 0xfffe6c17 },
176   { 0x75, 0xfffe6c17 }
177 };
178 
179 static TFM::Kerning C_58_Kerning[] = {
180   { 0x43, 0xffff795c },
181   { 0x47, 0xffff795c },
182   { 0x4f, 0xffff795c },
183   { 0x51, 0xffff795c }
184 };
185 
186 static TFM::Kerning C_59_Kerning[] = {
187   { 0x41, 0xfffe6c17 },
188   { 0x61, 0xfffe6c17 },
189   { 0x65, 0xfffe6c17 },
190   { 0x6f, 0xfffe6c17 },
191   { 0x72, 0xfffe6c17 },
192   { 0x75, 0xfffe6c17 }
193 };
194 
195 static TFM::Kerning C_61_Kerning[] = {
196   { 0x6a, 0x00010d45 },
197   { 0x76, 0xffff795c },
198   { 0x77, 0xffff795c },
199   { 0x79, 0xffff795c }
200 };
201 
202 static TFM::Kerning C_62_Kerning[] = {
203   { 0x63, 0x000086a4 },
204   { 0x64, 0x000086a4 },
205   { 0x65, 0x000086a4 },
206   { 0x6a, 0x00010d45 },
207   { 0x6f, 0x000086a4 },
208   { 0x71, 0x000086a4 },
209   { 0x76, 0xffff795c },
210   { 0x77, 0xffff795c },
211   { 0x78, 0xffff795c },
212   { 0x79, 0xffff795c }
213 };
214 
215 static TFM::Kerning C_63_Kerning[] = {
216   { 0x68, 0xffff795c },
217   { 0x6b, 0xffff795c }
218 };
219 
220 static TFM::Kerning C_66_Kerning[] = {
221   { 0x21, 0x0001cfa5 },
222   { 0x27, 0x0001cfa5 },
223   { 0x29, 0x0001cfa5 },
224   { 0x3f, 0x0001cfa5 },
225   { 0x5d, 0x0001cfa5 }
226 };
227 
228 static TFM::Kerning C_67_Kerning[] = {
229   { 0x6a, 0x000086a4 }
230 };
231 
232 static TFM::Kerning C_68_Kerning[] = {
233   { 0x62, 0xffff795c },
234   { 0x74, 0xffff795c },
235   { 0x75, 0xffff795c },
236   { 0x76, 0xffff795c },
237   { 0x77, 0xffff795c },
238   { 0x79, 0xffff795c }
239 };
240 
241 static TFM::Kerning C_6b_Kerning[] = {
242   { 0x61, 0xfffef2bb },
243   { 0x61, 0xffff795c },
244   { 0x63, 0xffff795c },
245   { 0x65, 0xffff795c },
246   { 0x6f, 0xffff795c }
247 };
248 
249 static TFM::Kerning C_6d_Kerning[] = {
250   { 0x62, 0xffff795c },
251   { 0x74, 0xffff795c },
252   { 0x75, 0xffff795c },
253   { 0x76, 0xffff795c },
254   { 0x77, 0xffff795c },
255   { 0x79, 0xffff795c }
256 };
257 
258 static TFM::Kerning C_6e_Kerning[] = {
259   { 0x62, 0xffff795c },
260   { 0x74, 0xffff795c },
261   { 0x75, 0xffff795c },
262   { 0x76, 0xffff795c },
263   { 0x77, 0xffff795c },
264   { 0x79, 0xffff795c }
265 };
266 
267 static TFM::Kerning C_6f_Kerning[] = {
268   { 0x63, 0x000086a4 },
269   { 0x64, 0x000086a4 },
270   { 0x65, 0x000086a4 },
271   { 0x6a, 0x00010d45 },
272   { 0x6f, 0x000086a4 },
273   { 0x71, 0x000086a4 },
274   { 0x76, 0xffff795c },
275   { 0x77, 0xffff795c },
276   { 0x78, 0xffff795c },
277   { 0x79, 0xffff795c }
278 };
279 
280 static TFM::Kerning C_70_Kerning[] = {
281   { 0x63, 0x000086a4 },
282   { 0x64, 0x000086a4 },
283   { 0x65, 0x000086a4 },
284   { 0x6a, 0x00010d45 },
285   { 0x6f, 0x000086a4 },
286   { 0x71, 0x000086a4 },
287   { 0x76, 0xffff795c },
288   { 0x77, 0xffff795c },
289   { 0x78, 0xffff795c },
290   { 0x79, 0xffff795c }
291 };
292 
293 static TFM::Kerning C_74_Kerning[] = {
294   { 0x77, 0xffff795c },
295   { 0x79, 0xffff795c }
296 };
297 
298 static TFM::Kerning C_75_Kerning[] = {
299   { 0x77, 0xffff795c }
300 };
301 
302 static TFM::Kerning C_76_Kerning[] = {
303   { 0x61, 0xfffef2bb },
304   { 0x61, 0xffff795c },
305   { 0x63, 0xffff795c },
306   { 0x65, 0xffff795c },
307   { 0x6f, 0xffff795c }
308 };
309 
310 static TFM::Kerning C_77_Kerning[] = {
311   { 0x61, 0xffff795c },
312   { 0x63, 0xffff795c },
313   { 0x65, 0xffff795c },
314   { 0x6f, 0xffff795c }
315 };
316 
317 static TFM::Kerning C_79_Kerning[] = {
318   { 0x2c, 0xfffe6c17 },
319   { 0x2e, 0xfffe6c17 },
320   { 0x61, 0xffff795c },
321   { 0x65, 0xffff795c },
322   { 0x6f, 0xffff795c }
323 };
324 
325 static TFM::Ligature C_0b_Ligature[] = {
326   { 0x69, 0x00, 0x0e },
327   { 0x6c, 0x00, 0x0f }
328 };
329 
330 static TFM::Ligature C_21_Ligature[] = {
331   { 0x60, 0x00, 0x3c }
332 };
333 
334 static TFM::Ligature C_27_Ligature[] = {
335   { 0x27, 0x00, 0x22 }
336 };
337 
338 static TFM::Ligature C_2d_Ligature[] = {
339   { 0x2d, 0x00, 0x7b }
340 };
341 
342 static TFM::Ligature C_3f_Ligature[] = {
343   { 0x60, 0x00, 0x3e }
344 };
345 
346 static TFM::Ligature C_60_Ligature[] = {
347   { 0x60, 0x00, 0x5c }
348 };
349 
350 static TFM::Ligature C_66_Ligature[] = {
351   { 0x66, 0x00, 0x0b },
352   { 0x69, 0x00, 0x0c },
353   { 0x6c, 0x00, 0x0d }
354 };
355 
356 static TFM::Ligature C_7b_Ligature[] = {
357   { 0x2d, 0x00, 0x7c }
358 };
359 
360 
361 static TFM::Character character[] = {
362   { 0x00, 0x000b5f69, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
363   { 0x01, 0x000fc710, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
364   { 0x02, 0x000eb9cb, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
365   { 0x03, 0x000d3c04, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
366   { 0x04, 0x000c9f40, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
367   { 0x05, 0x000eca3c, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
368   { 0x06, 0x000dac85, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
369   { 0x07, 0x000eb9cb, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
370   { 0x08, 0x000dac85, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
371   { 0x09, 0x000eb9cb, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
372   { 0x0a, 0x000dac85, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
373   { 0x0b, 0x000b0b59, 0x000b1c72, 0x00000000, 0x0001cfa5, 5, C_0b_Kerning, 2, C_0b_Ligature },
374   { 0x0c, 0x000a84b5, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
375   { 0x0d, 0x000a84b5, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
376   { 0x0e, 0x000fc710, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
377   { 0x0f, 0x000fc710, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
378   { 0x10, 0x0005425b, 0x00071c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
379   { 0x11, 0x0005c8fe, 0x00071c72, 0x00031c72, 0x00000000, 0, 0, 0, 0 },
380   { 0x12, 0x00097770, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
381   { 0x13, 0x00097770, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
382   { 0x14, 0x00097770, 0x000a1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
383   { 0x15, 0x00097770, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
384   { 0x16, 0x00097770, 0x0009948b, 0x00000000, 0x00000000, 0, 0, 0, 0 },
385   { 0x17, 0x000e4949, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
386   { 0x18, 0x00086a2b, 0x00000000, 0x0002b8e4, 0x00000000, 0, 0, 0, 0 },
387   { 0x19, 0x0009de7e, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
388   { 0x1a, 0x000dac85, 0x00071c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
389   { 0x1b, 0x000eb9cb, 0x00071c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
390   { 0x1c, 0x00097770, 0x0008aaab, 0x00018e39, 0x00000000, 0, 0, 0, 0 },
391   { 0x1d, 0x001122b7, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
392   { 0x1e, 0x00133d42, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
393   { 0x1f, 0x000eb9cb, 0x000bc16c, 0x0000c71c, 0x00000000, 0, 0, 0, 0 },
394   { 0x20, 0x0005425b, 0x00071c72, 0x00000000, 0x00000000, 2, C_20_Kerning, 0, 0 },
395   { 0x21, 0x0005c34e, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 1, C_21_Ligature },
396   { 0x22, 0x0009e1a4, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
397   { 0x23, 0x000fc710, 0x000b1c72, 0x00031c72, 0x00000000, 0, 0, 0, 0 },
398   { 0x24, 0x00097770, 0x000c0000, 0x0000e38e, 0x00000000, 0, 0, 0, 0 },
399   { 0x25, 0x000fc710, 0x000c0000, 0x0000e38e, 0x00000000, 0, 0, 0, 0 },
400   { 0x26, 0x000eb9cb, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
401   { 0x27, 0x0005425b, 0x000b1c72, 0x00000000, 0x00000000, 2, C_27_Kerning, 1, C_27_Ligature },
402   { 0x28, 0x00075ce5, 0x000c0000, 0x00040000, 0x00000000, 0, 0, 0, 0 },
403   { 0x29, 0x00075ce5, 0x000c0000, 0x00040000, 0x00000000, 0, 0, 0, 0 },
404   { 0x2a, 0x00097770, 0x000c0000, 0x00000000, 0x00000000, 0, 0, 0, 0 },
405   { 0x2b, 0x000eb9cb, 0x000a4fa0, 0x00024fa0, 0x00000000, 0, 0, 0, 0 },
406   { 0x2c, 0x0005425b, 0x000284be, 0x00031c72, 0x00000000, 0, 0, 0, 0 },
407   { 0x2d, 0x00064fa0, 0x00071c72, 0x00000000, 0x00000000, 0, 0, 1, C_2d_Ligature },
408   { 0x2e, 0x0005425b, 0x000284be, 0x00000000, 0x00000000, 0, 0, 0, 0 },
409   { 0x2f, 0x00097770, 0x000c0000, 0x00040000, 0x00000000, 0, 0, 0, 0 },
410   { 0x30, 0x00097770, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
411   { 0x31, 0x00097770, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
412   { 0x32, 0x00097770, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
413   { 0x33, 0x00097770, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
414   { 0x34, 0x00097770, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
415   { 0x35, 0x00097770, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
416   { 0x36, 0x00097770, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
417   { 0x37, 0x00097770, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
418   { 0x38, 0x00097770, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
419   { 0x39, 0x00097770, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
420   { 0x3a, 0x0005425b, 0x00071c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
421   { 0x3b, 0x0005425b, 0x00071c72, 0x00031c72, 0x00000000, 0, 0, 0, 0 },
422   { 0x3c, 0x0005c34e, 0x00080000, 0x00031c72, 0x00000000, 0, 0, 0, 0 },
423   { 0x3d, 0x000eb9cb, 0x00065b07, 0xfffe5b07, 0x00000000, 0, 0, 0, 0 },
424   { 0x3e, 0x0008f0ce, 0x00080000, 0x00031c72, 0x00000000, 0, 0, 0, 0 },
425   { 0x3f, 0x0008f0ce, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 1, C_3f_Ligature },
426   { 0x40, 0x000eb9cb, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
427   { 0x41, 0x000e4949, 0x000afa50, 0x00000000, 0x00000000, 10, C_41_Kerning, 0, 0 },
428   { 0x42, 0x000d7445, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
429   { 0x43, 0x000dac85, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
430   { 0x44, 0x000e818b, 0x000afa50, 0x00000000, 0x00000000, 5, C_44_Kerning, 0, 0 },
431   { 0x45, 0x000c6cae, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
432   { 0x46, 0x000be60c, 0x000afa50, 0x00000000, 0x00000000, 10, C_46_Kerning, 0, 0 },
433   { 0x47, 0x000ee0fc, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
434   { 0x48, 0x000eca3c, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
435   { 0x49, 0x00072405, 0x000afa50, 0x00000000, 0x00000000, 1, C_49_Kerning, 0, 0 },
436   { 0x4a, 0x0009c5d2, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
437   { 0x4b, 0x000ecfec, 0x000afa50, 0x00000000, 0x00000000, 4, C_4b_Kerning, 0, 0 },
438   { 0x4c, 0x000b5f69, 0x000afa50, 0x00000000, 0x00000000, 4, C_4c_Kerning, 0, 0 },
439   { 0x4d, 0x0011f20c, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
440   { 0x4e, 0x000eca3c, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
441   { 0x4f, 0x000e38d7, 0x000afa50, 0x00000000, 0x00000000, 5, C_4f_Kerning, 0, 0 },
442   { 0x50, 0x000ceda2, 0x000afa50, 0x00000000, 0x00000000, 6, C_50_Kerning, 0, 0 },
443   { 0x51, 0x000e38d7, 0x000afa50, 0x00031c72, 0x00000000, 0, 0, 0, 0 },
444   { 0x52, 0x000e3002, 0x000afa50, 0x00000000, 0x00000000, 10, C_52_Kerning, 0, 0 },
445   { 0x53, 0x000a84b5, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
446   { 0x54, 0x000d2b92, 0x000afa50, 0x00000000, 0x00000000, 7, C_54_Kerning, 0, 0 },
447   { 0x55, 0x000e89c4, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
448   { 0x56, 0x000e4949, 0x000afa50, 0x00000000, 0x00004352, 10, C_56_Kerning, 0, 0 },
449   { 0x57, 0x00138ba4, 0x000afa50, 0x00000000, 0x00004352, 10, C_57_Kerning, 0, 0 },
450   { 0x58, 0x000e4949, 0x000afa50, 0x00000000, 0x00000000, 4, C_58_Kerning, 0, 0 },
451   { 0x59, 0x000e4949, 0x000afa50, 0x00000000, 0x0000792c, 6, C_59_Kerning, 0, 0 },
452   { 0x5a, 0x000b91fb, 0x000afa50, 0x00000000, 0x00000000, 0, 0, 0, 0 },
453   { 0x5b, 0x0005425b, 0x000c0000, 0x00040000, 0x00000000, 0, 0, 0, 0 },
454   { 0x5c, 0x0009e1a4, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
455   { 0x5d, 0x0005425b, 0x000c0000, 0x00040000, 0x00000000, 0, 0, 0, 0 },
456   { 0x5e, 0x00097770, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
457   { 0x5f, 0x0005425b, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
458   { 0x60, 0x0005425b, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 1, C_60_Ligature },
459   { 0x61, 0x0009341e, 0x00071c72, 0x00000000, 0x00000000, 4, C_61_Kerning, 0, 0 },
460   { 0x62, 0x000a84b5, 0x000b1c72, 0x00000000, 0x00000000, 10, C_62_Kerning, 0, 0 },
461   { 0x63, 0x00086a2b, 0x00071c72, 0x00000000, 0x00000000, 2, C_63_Kerning, 0, 0 },
462   { 0x64, 0x000a84b5, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
463   { 0x65, 0x0008b005, 0x00071c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
464   { 0x66, 0x0005c8fe, 0x000b1c72, 0x00000000, 0x0001cfa5, 5, C_66_Kerning, 3, C_66_Ligature },
465   { 0x67, 0x00097770, 0x00071c72, 0x00031c72, 0x00004352, 1, C_67_Kerning, 0, 0 },
466   { 0x68, 0x000a84b5, 0x000b1c72, 0x00000000, 0x00000000, 6, C_68_Kerning, 0, 0 },
467   { 0x69, 0x0005425b, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
468   { 0x6a, 0x0005c8fe, 0x000b1c72, 0x00031c72, 0x00000000, 0, 0, 0, 0 },
469   { 0x6b, 0x0009fe14, 0x000b1c72, 0x00000000, 0x00000000, 5, C_6b_Kerning, 0, 0 },
470   { 0x6c, 0x0005425b, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
471   { 0x6d, 0x000fc710, 0x00071c72, 0x00000000, 0x00000000, 6, C_6d_Kerning, 0, 0 },
472   { 0x6e, 0x000a84b5, 0x00071c72, 0x00000000, 0x00000000, 6, C_6e_Kerning, 0, 0 },
473   { 0x6f, 0x00097770, 0x00071c72, 0x00000000, 0x00000000, 10, C_6f_Kerning, 0, 0 },
474   { 0x70, 0x000a84b5, 0x00071c72, 0x00031c72, 0x00000000, 10, C_70_Kerning, 0, 0 },
475   { 0x71, 0x0009fe12, 0x00071c72, 0x00031c72, 0x00000000, 0, 0, 0, 0 },
476   { 0x72, 0x0007cf52, 0x00071c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
477   { 0x73, 0x000777d4, 0x00071c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
478   { 0x74, 0x00075ce5, 0x000a28a4, 0x00000000, 0x00000000, 2, C_74_Kerning, 0, 0 },
479   { 0x75, 0x000a84b5, 0x00071c72, 0x00000000, 0x00000000, 1, C_75_Kerning, 0, 0 },
480   { 0x76, 0x0009fe14, 0x00071c72, 0x00000000, 0x00004352, 5, C_76_Kerning, 0, 0 },
481   { 0x77, 0x000dac85, 0x00071c72, 0x00000000, 0x00004352, 4, C_77_Kerning, 0, 0 },
482   { 0x78, 0x0009fe14, 0x00071c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
483   { 0x79, 0x0009fe14, 0x00071c72, 0x00031c72, 0x00004352, 5, C_79_Kerning, 0, 0 },
484   { 0x7a, 0x00086a2b, 0x00071c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
485   { 0x7b, 0x00097770, 0x00071c72, 0x00000000, 0x000086a4, 0, 0, 1, C_7b_Ligature },
486   { 0x7c, 0x0012eee0, 0x00071c72, 0x00000000, 0x000086a4, 0, 0, 0, 0 },
487   { 0x7d, 0x00097770, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
488   { 0x7e, 0x00097770, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
489   { 0x7f, 0x00097770, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 }
490 };
491 
492 void
cmbx9_tables(TFM::Font * & _font,TFM::Dimension * & _dimension,TFM::Character * & _character)493 cmbx9_tables(TFM::Font*& _font, TFM::Dimension*& _dimension, TFM::Character*& _character)
494 {
495   _font = &font;
496   _dimension = dimension;
497   _character = character;
498 }
499