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 "CMR",
23 
24   0xf2,
25   "TeX text",
26   0x00600000,
27   0xb94161a8,
28   7,
29   128
30 };
31 
32 static TFM::Dimension dimension[] = {
33   { 0x01, "slant", 0x00000000 },
34   { 0x02, "space", 0x0006aaa5 },
35   { 0x03, "space_stretch", 0x00031c70 },
36   { 0x04, "space_shrink", 0x000212f5 },
37   { 0x05, "x_height", 0x0006e38d },
38   { 0x06, "quad", 0x00138e2b },
39   { 0x07, "extra_space", 0x000212f5 }
40 };
41 
42 
43 static TFM::Kerning C_0b_Kerning[] = {
44   { 0x21, 0x00014bd8 },
45   { 0x27, 0x00014bd8 },
46   { 0x29, 0x00014bd8 },
47   { 0x3f, 0x00014bd8 },
48   { 0x5d, 0x00014bd8 }
49 };
50 
51 static TFM::Kerning C_20_Kerning[] = {
52   { 0x4c, 0xfff9a500 },
53   { 0x6c, 0xfffa5ed5 }
54 };
55 
56 static TFM::Kerning C_27_Kerning[] = {
57   { 0x21, 0x000212f5 },
58   { 0x3f, 0x000212f5 }
59 };
60 
61 static TFM::Kerning C_41_Kerning[] = {
62   { 0x43, 0xffff7b43 },
63   { 0x47, 0xffff7b43 },
64   { 0x4f, 0xffff7b43 },
65   { 0x51, 0xffff7b43 },
66   { 0x54, 0xfffe71c8 },
67   { 0x55, 0xffff7b43 },
68   { 0x56, 0xfffded0b },
69   { 0x57, 0xfffded0b },
70   { 0x59, 0xfffe71c8 },
71   { 0x74, 0xffff7b43 }
72 };
73 
74 static TFM::Kerning C_44_Kerning[] = {
75   { 0x41, 0xffff7b43 },
76   { 0x56, 0xffff7b43 },
77   { 0x57, 0xffff7b43 },
78   { 0x58, 0xffff7b43 },
79   { 0x59, 0xffff7b43 }
80 };
81 
82 static TFM::Kerning C_46_Kerning[] = {
83   { 0x41, 0xfffded0b },
84   { 0x43, 0xffff7b43 },
85   { 0x47, 0xffff7b43 },
86   { 0x4f, 0xffff7b43 },
87   { 0x51, 0xffff7b43 },
88   { 0x61, 0xfffe71c8 },
89   { 0x65, 0xfffe71c8 },
90   { 0x6f, 0xfffe71c8 },
91   { 0x72, 0xfffe71c8 },
92   { 0x75, 0xfffe71c8 }
93 };
94 
95 static TFM::Kerning C_49_Kerning[] = {
96   { 0x49, 0x000084bd }
97 };
98 
99 static TFM::Kerning C_4b_Kerning[] = {
100   { 0x43, 0xffff7b43 },
101   { 0x47, 0xffff7b43 },
102   { 0x4f, 0xffff7b43 },
103   { 0x51, 0xffff7b43 }
104 };
105 
106 static TFM::Kerning C_4c_Kerning[] = {
107   { 0x54, 0xfffe71c8 },
108   { 0x56, 0xfffded0b },
109   { 0x57, 0xfffded0b },
110   { 0x59, 0xfffe71c8 }
111 };
112 
113 static TFM::Kerning C_4f_Kerning[] = {
114   { 0x41, 0xffff7b43 },
115   { 0x56, 0xffff7b43 },
116   { 0x57, 0xffff7b43 },
117   { 0x58, 0xffff7b43 },
118   { 0x59, 0xffff7b43 }
119 };
120 
121 static TFM::Kerning C_50_Kerning[] = {
122   { 0x2c, 0xfffe71c8 },
123   { 0x2e, 0xfffe71c8 },
124   { 0x41, 0xfffe71c8 },
125   { 0x61, 0xffff7b43 },
126   { 0x65, 0xffff7b43 },
127   { 0x6f, 0xffff7b43 }
128 };
129 
130 static TFM::Kerning C_52_Kerning[] = {
131   { 0x43, 0xffff7b43 },
132   { 0x47, 0xffff7b43 },
133   { 0x4f, 0xffff7b43 },
134   { 0x51, 0xffff7b43 },
135   { 0x54, 0xfffe71c8 },
136   { 0x55, 0xffff7b43 },
137   { 0x56, 0xfffded0b },
138   { 0x57, 0xfffded0b },
139   { 0x59, 0xfffe71c8 },
140   { 0x74, 0xffff7b43 }
141 };
142 
143 static TFM::Kerning C_54_Kerning[] = {
144   { 0x41, 0xfffe71c8 },
145   { 0x61, 0xfffe71c8 },
146   { 0x65, 0xfffe71c8 },
147   { 0x6f, 0xfffe71c8 },
148   { 0x72, 0xfffe71c8 },
149   { 0x75, 0xfffe71c8 },
150   { 0x79, 0xffff7b43 }
151 };
152 
153 static TFM::Kerning C_56_Kerning[] = {
154   { 0x41, 0xfffded0b },
155   { 0x43, 0xffff7b43 },
156   { 0x47, 0xffff7b43 },
157   { 0x4f, 0xffff7b43 },
158   { 0x51, 0xffff7b43 },
159   { 0x61, 0xfffe71c8 },
160   { 0x65, 0xfffe71c8 },
161   { 0x6f, 0xfffe71c8 },
162   { 0x72, 0xfffe71c8 },
163   { 0x75, 0xfffe71c8 }
164 };
165 
166 static TFM::Kerning C_57_Kerning[] = {
167   { 0x41, 0xfffded0b },
168   { 0x43, 0xffff7b43 },
169   { 0x47, 0xffff7b43 },
170   { 0x4f, 0xffff7b43 },
171   { 0x51, 0xffff7b43 },
172   { 0x61, 0xfffe71c8 },
173   { 0x65, 0xfffe71c8 },
174   { 0x6f, 0xfffe71c8 },
175   { 0x72, 0xfffe71c8 },
176   { 0x75, 0xfffe71c8 }
177 };
178 
179 static TFM::Kerning C_58_Kerning[] = {
180   { 0x43, 0xffff7b43 },
181   { 0x47, 0xffff7b43 },
182   { 0x4f, 0xffff7b43 },
183   { 0x51, 0xffff7b43 }
184 };
185 
186 static TFM::Kerning C_59_Kerning[] = {
187   { 0x41, 0xfffe71c8 },
188   { 0x61, 0xfffe71c8 },
189   { 0x65, 0xfffe71c8 },
190   { 0x6f, 0xfffe71c8 },
191   { 0x72, 0xfffe71c8 },
192   { 0x75, 0xfffe71c8 }
193 };
194 
195 static TFM::Kerning C_61_Kerning[] = {
196   { 0x6a, 0x0001097b },
197   { 0x76, 0xffff7b43 },
198   { 0x77, 0xffff7b43 },
199   { 0x79, 0xffff7b43 }
200 };
201 
202 static TFM::Kerning C_62_Kerning[] = {
203   { 0x63, 0x000084bd },
204   { 0x64, 0x000084bd },
205   { 0x65, 0x000084bd },
206   { 0x6a, 0x0001097b },
207   { 0x6f, 0x000084bd },
208   { 0x71, 0x000084bd },
209   { 0x76, 0xffff7b43 },
210   { 0x77, 0xffff7b43 },
211   { 0x78, 0xffff7b43 },
212   { 0x79, 0xffff7b43 }
213 };
214 
215 static TFM::Kerning C_63_Kerning[] = {
216   { 0x68, 0xffff7b43 },
217   { 0x6b, 0xffff7b43 }
218 };
219 
220 static TFM::Kerning C_66_Kerning[] = {
221   { 0x21, 0x00014bd8 },
222   { 0x27, 0x00014bd8 },
223   { 0x29, 0x00014bd8 },
224   { 0x3f, 0x00014bd8 },
225   { 0x5d, 0x00014bd8 }
226 };
227 
228 static TFM::Kerning C_67_Kerning[] = {
229   { 0x6a, 0x000084bd }
230 };
231 
232 static TFM::Kerning C_68_Kerning[] = {
233   { 0x62, 0xffff7b43 },
234   { 0x74, 0xffff7b43 },
235   { 0x75, 0xffff7b43 },
236   { 0x76, 0xffff7b43 },
237   { 0x77, 0xffff7b43 },
238   { 0x79, 0xffff7b43 }
239 };
240 
241 static TFM::Kerning C_6b_Kerning[] = {
242   { 0x61, 0xfffef685 },
243   { 0x61, 0xffff7b43 },
244   { 0x63, 0xffff7b43 },
245   { 0x65, 0xffff7b43 },
246   { 0x6f, 0xffff7b43 }
247 };
248 
249 static TFM::Kerning C_6d_Kerning[] = {
250   { 0x62, 0xffff7b43 },
251   { 0x74, 0xffff7b43 },
252   { 0x75, 0xffff7b43 },
253   { 0x76, 0xffff7b43 },
254   { 0x77, 0xffff7b43 },
255   { 0x79, 0xffff7b43 }
256 };
257 
258 static TFM::Kerning C_6e_Kerning[] = {
259   { 0x62, 0xffff7b43 },
260   { 0x74, 0xffff7b43 },
261   { 0x75, 0xffff7b43 },
262   { 0x76, 0xffff7b43 },
263   { 0x77, 0xffff7b43 },
264   { 0x79, 0xffff7b43 }
265 };
266 
267 static TFM::Kerning C_6f_Kerning[] = {
268   { 0x63, 0x000084bd },
269   { 0x64, 0x000084bd },
270   { 0x65, 0x000084bd },
271   { 0x6a, 0x0001097b },
272   { 0x6f, 0x000084bd },
273   { 0x71, 0x000084bd },
274   { 0x76, 0xffff7b43 },
275   { 0x77, 0xffff7b43 },
276   { 0x78, 0xffff7b43 },
277   { 0x79, 0xffff7b43 }
278 };
279 
280 static TFM::Kerning C_70_Kerning[] = {
281   { 0x63, 0x000084bd },
282   { 0x64, 0x000084bd },
283   { 0x65, 0x000084bd },
284   { 0x6a, 0x0001097b },
285   { 0x6f, 0x000084bd },
286   { 0x71, 0x000084bd },
287   { 0x76, 0xffff7b43 },
288   { 0x77, 0xffff7b43 },
289   { 0x78, 0xffff7b43 },
290   { 0x79, 0xffff7b43 }
291 };
292 
293 static TFM::Kerning C_74_Kerning[] = {
294   { 0x77, 0xffff7b43 },
295   { 0x79, 0xffff7b43 }
296 };
297 
298 static TFM::Kerning C_75_Kerning[] = {
299   { 0x77, 0xffff7b43 }
300 };
301 
302 static TFM::Kerning C_76_Kerning[] = {
303   { 0x61, 0xfffef685 },
304   { 0x61, 0xffff7b43 },
305   { 0x63, 0xffff7b43 },
306   { 0x65, 0xffff7b43 },
307   { 0x6f, 0xffff7b43 }
308 };
309 
310 static TFM::Kerning C_77_Kerning[] = {
311   { 0x61, 0xffff7b43 },
312   { 0x63, 0xffff7b43 },
313   { 0x65, 0xffff7b43 },
314   { 0x6f, 0xffff7b43 }
315 };
316 
317 static TFM::Kerning C_79_Kerning[] = {
318   { 0x2c, 0xfffe71c8 },
319   { 0x2e, 0xfffe71c8 },
320   { 0x61, 0xffff7b43 },
321   { 0x65, 0xffff7b43 },
322   { 0x6f, 0xffff7b43 }
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, 0x000c0f23, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
363   { 0x01, 0x000ffff5, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
364   { 0x02, 0x000ef67b, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
365   { 0x03, 0x000d4db5, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
366   { 0x04, 0x000ce385, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
367   { 0x05, 0x000e5730, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
368   { 0x06, 0x000ded00, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
369   { 0x07, 0x000ef67b, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
370   { 0x08, 0x000ded00, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
371   { 0x09, 0x000ef67b, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
372   { 0x0a, 0x000ded00, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
373   { 0x0b, 0x000bc713, 0x000b1c73, 0x00000000, 0x00014bd8, 5, C_0b_Kerning, 2, C_0b_Ligature },
374   { 0x0c, 0x000b4255, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
375   { 0x0d, 0x000b4255, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
376   { 0x0e, 0x0010e380, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
377   { 0x0f, 0x0010e380, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
378   { 0x10, 0x0005a12b, 0x0006e38d, 0x00000000, 0x00000000, 0, 0, 0, 0 },
379   { 0x11, 0x000625e8, 0x0006e38d, 0x00031c73, 0x00000000, 0, 0, 0, 0 },
380   { 0x12, 0x0009c715, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
381   { 0x13, 0x0009c715, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
382   { 0x14, 0x0009c715, 0x000a0e3b, 0x00000000, 0x00000000, 0, 0, 0, 0 },
383   { 0x15, 0x0009c715, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
384   { 0x16, 0x0009c715, 0x0009425d, 0x00000000, 0x00000000, 0, 0, 0, 0 },
385   { 0x17, 0x000e5730, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
386   { 0x18, 0x0008bd9b, 0x00000000, 0x0002b8e5, 0x00000000, 0, 0, 0, 0 },
387   { 0x19, 0x0009c715, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
388   { 0x1a, 0x000ded00, 0x0006e38d, 0x00000000, 0x00000000, 0, 0, 0, 0 },
389   { 0x1b, 0x000ef67b, 0x0006e38d, 0x00000000, 0x00000000, 0, 0, 0, 0 },
390   { 0x1c, 0x0009c715, 0x000871c8, 0x00018e3b, 0x00000000, 0, 0, 0, 0 },
391   { 0x1d, 0x00113e88, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
392   { 0x1e, 0x0013517d, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
393   { 0x1f, 0x000ef67b, 0x000bb60d, 0x0000c71d, 0x00000000, 0, 0, 0, 0 },
394   { 0x20, 0x0005a12b, 0x0006e38d, 0x00000000, 0x00000000, 2, C_20_Kerning, 0, 0 },
395   { 0x21, 0x0005a12b, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 1, C_21_Ligature },
396   { 0x22, 0x0009c715, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
397   { 0x23, 0x000ffff5, 0x000b1c73, 0x00031c70, 0x00000000, 0, 0, 0, 0 },
398   { 0x24, 0x0009c715, 0x000c0000, 0x0000e38d, 0x00000000, 0, 0, 0, 0 },
399   { 0x25, 0x000ffff5, 0x000c0000, 0x0000e38d, 0x00000000, 0, 0, 0, 0 },
400   { 0x26, 0x000ef67b, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
401   { 0x27, 0x0005a12b, 0x000b1c73, 0x00000000, 0x00000000, 2, C_27_Kerning, 1, C_27_Ligature },
402   { 0x28, 0x0007b420, 0x000c0000, 0x00040000, 0x00000000, 0, 0, 0, 0 },
403   { 0x29, 0x0007b420, 0x000c0000, 0x00040000, 0x00000000, 0, 0, 0, 0 },
404   { 0x2a, 0x0009c715, 0x000c0000, 0x00000000, 0x00000000, 0, 0, 0, 0 },
405   { 0x2b, 0x000ef67b, 0x000a38e0, 0x000238e0, 0x00000000, 0, 0, 0, 0 },
406   { 0x2c, 0x0005a12b, 0x0001ed0b, 0x00031c73, 0x00000000, 0, 0, 0, 0 },
407   { 0x2d, 0x0006aaa5, 0x0006e38d, 0x00000000, 0x00000000, 0, 0, 1, C_2d_Ligature },
408   { 0x2e, 0x0005a12b, 0x0001ed0b, 0x00000000, 0x00000000, 0, 0, 0, 0 },
409   { 0x2f, 0x0009c715, 0x000c0000, 0x00040000, 0x00000000, 0, 0, 0, 0 },
410   { 0x30, 0x0009c715, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
411   { 0x31, 0x0009c715, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
412   { 0x32, 0x0009c715, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
413   { 0x33, 0x0009c715, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
414   { 0x34, 0x0009c715, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
415   { 0x35, 0x0009c715, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
416   { 0x36, 0x0009c715, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
417   { 0x37, 0x0009c715, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
418   { 0x38, 0x0009c715, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
419   { 0x39, 0x0009c715, 0x000a4fa5, 0x00000000, 0x00000000, 0, 0, 0, 0 },
420   { 0x3a, 0x0005a12b, 0x0006e38d, 0x00000000, 0x00000000, 0, 0, 0, 0 },
421   { 0x3b, 0x0005a12b, 0x0006e38d, 0x00031c73, 0x00000000, 0, 0, 0, 0 },
422   { 0x3c, 0x0005a12b, 0x00080000, 0x00031c73, 0x00000000, 0, 0, 0, 0 },
423   { 0x3d, 0x000ef67b, 0x00063d28, 0xfffe3d28, 0x00000000, 0, 0, 0, 0 },
424   { 0x3e, 0x00094258, 0x00080000, 0x00031c73, 0x00000000, 0, 0, 0, 0 },
425   { 0x3f, 0x00094258, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 1, C_3f_Ligature },
426   { 0x40, 0x000ef67b, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
427   { 0x41, 0x000e5730, 0x000aeef0, 0x00000000, 0x00000000, 10, C_41_Kerning, 0, 0 },
428   { 0x42, 0x000d9d5b, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
429   { 0x43, 0x000ded00, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
430   { 0x44, 0x000ea6d5, 0x000aeef0, 0x00000000, 0x00000000, 5, C_44_Kerning, 0, 0 },
431   { 0x45, 0x000d189d, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
432   { 0x46, 0x000c93e0, 0x000aeef0, 0x00000000, 0x00000000, 10, C_46_Kerning, 0, 0 },
433   { 0x47, 0x000f1108, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
434   { 0x48, 0x000e5730, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
435   { 0x49, 0x000714d5, 0x000aeef0, 0x00000000, 0x00000000, 1, C_49_Kerning, 0, 0 },
436   { 0x4a, 0x0009fc2d, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
437   { 0x4b, 0x000edbed, 0x000aeef0, 0x00000000, 0x00000000, 4, C_4b_Kerning, 0, 0 },
438   { 0x4c, 0x000c0f23, 0x000aeef0, 0x00000000, 0x00000000, 4, C_4c_Kerning, 0, 0 },
439   { 0x4d, 0x001173a0, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
440   { 0x4e, 0x000e5730, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
441   { 0x4f, 0x000ef67b, 0x000aeef0, 0x00000000, 0x00000000, 5, C_4f_Kerning, 0, 0 },
442   { 0x50, 0x000d189d, 0x000aeef0, 0x00000000, 0x00000000, 6, C_50_Kerning, 0, 0 },
443   { 0x51, 0x000ef67b, 0x000aeef0, 0x00031c73, 0x00000000, 0, 0, 0, 0 },
444   { 0x52, 0x000e2218, 0x000aeef0, 0x00000000, 0x00000000, 10, C_52_Kerning, 0, 0 },
445   { 0x53, 0x000ad090, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
446   { 0x54, 0x000ded00, 0x000aeef0, 0x00000000, 0x00000000, 7, C_54_Kerning, 0, 0 },
447   { 0x55, 0x000e5730, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
448   { 0x56, 0x000e5730, 0x000aeef0, 0x00000000, 0x00004260, 10, C_56_Kerning, 0, 0 },
449   { 0x57, 0x00138695, 0x000aeef0, 0x00000000, 0x00004260, 10, C_57_Kerning, 0, 0 },
450   { 0x58, 0x000e5730, 0x000aeef0, 0x00000000, 0x00000000, 4, C_58_Kerning, 0, 0 },
451   { 0x59, 0x000e5730, 0x000aeef0, 0x00000000, 0x00007778, 6, C_59_Kerning, 0, 0 },
452   { 0x5a, 0x000bda0b, 0x000aeef0, 0x00000000, 0x00000000, 0, 0, 0, 0 },
453   { 0x5b, 0x0005a12b, 0x000c0000, 0x00040000, 0x00000000, 0, 0, 0, 0 },
454   { 0x5c, 0x0009c715, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
455   { 0x5d, 0x0005a12b, 0x000c0000, 0x00040000, 0x00000000, 0, 0, 0, 0 },
456   { 0x5e, 0x0009c715, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
457   { 0x5f, 0x0005a12b, 0x000acde3, 0x00000000, 0x00000000, 0, 0, 0, 0 },
458   { 0x60, 0x0005a12b, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 1, C_60_Ligature },
459   { 0x61, 0x0009c715, 0x0006e38d, 0x00000000, 0x00000000, 4, C_61_Kerning, 0, 0 },
460   { 0x62, 0x000ad090, 0x000b1c73, 0x00000000, 0x00000000, 10, C_62_Kerning, 0, 0 },
461   { 0x63, 0x0008bd9b, 0x0006e38d, 0x00000000, 0x00000000, 2, C_63_Kerning, 0, 0 },
462   { 0x64, 0x000ad090, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
463   { 0x65, 0x0008bd9d, 0x0006e38d, 0x00000000, 0x00000000, 0, 0, 0, 0 },
464   { 0x66, 0x000625e8, 0x000b1c73, 0x00000000, 0x00014bd8, 5, C_66_Kerning, 3, C_66_Ligature },
465   { 0x67, 0x0009c715, 0x0006e38d, 0x00031c73, 0x00004260, 1, C_67_Kerning, 0, 0 },
466   { 0x68, 0x000ad090, 0x000b1c73, 0x00000000, 0x00000000, 6, C_68_Kerning, 0, 0 },
467   { 0x69, 0x0005a12b, 0x000acde3, 0x00000000, 0x00000000, 0, 0, 0, 0 },
468   { 0x6a, 0x000625e8, 0x000acde3, 0x00031c73, 0x00000000, 0, 0, 0, 0 },
469   { 0x6b, 0x000a4bd3, 0x000b1c73, 0x00000000, 0x00000000, 5, C_6b_Kerning, 0, 0 },
470   { 0x6c, 0x0005a12b, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
471   { 0x6d, 0x000ffff5, 0x0006e38d, 0x00000000, 0x00000000, 6, C_6d_Kerning, 0, 0 },
472   { 0x6e, 0x000ad090, 0x0006e38d, 0x00000000, 0x00000000, 6, C_6e_Kerning, 0, 0 },
473   { 0x6f, 0x0009c715, 0x0006e38d, 0x00000000, 0x00000000, 10, C_6f_Kerning, 0, 0 },
474   { 0x70, 0x000ad090, 0x0006e38d, 0x00031c73, 0x00000000, 10, C_70_Kerning, 0, 0 },
475   { 0x71, 0x000a4bd3, 0x0006e38d, 0x00031c73, 0x00000000, 0, 0, 0, 0 },
476   { 0x72, 0x0007b420, 0x0006e38d, 0x00000000, 0x00000000, 0, 0, 0, 0 },
477   { 0x73, 0x0007cead, 0x0006e38d, 0x00000000, 0x00000000, 0, 0, 0, 0 },
478   { 0x74, 0x0007b420, 0x0009d75d, 0x00000000, 0x00000000, 2, C_74_Kerning, 0, 0 },
479   { 0x75, 0x000ad090, 0x0006e38d, 0x00000000, 0x00000000, 1, C_75_Kerning, 0, 0 },
480   { 0x76, 0x000a4bd3, 0x0006e38d, 0x00000000, 0x00004260, 5, C_76_Kerning, 0, 0 },
481   { 0x77, 0x000ded00, 0x0006e38d, 0x00000000, 0x00004260, 4, C_77_Kerning, 0, 0 },
482   { 0x78, 0x000a4bd3, 0x0006e38d, 0x00000000, 0x00000000, 0, 0, 0, 0 },
483   { 0x79, 0x000a4bd3, 0x0006e38d, 0x00031c73, 0x00004260, 5, C_79_Kerning, 0, 0 },
484   { 0x7a, 0x0008bd9b, 0x0006e38d, 0x00000000, 0x00000000, 0, 0, 0, 0 },
485   { 0x7b, 0x0009c715, 0x0006e38d, 0x00000000, 0x000084bd, 0, 0, 1, C_7b_Ligature },
486   { 0x7c, 0x00138e2b, 0x0006e38d, 0x00000000, 0x000084bd, 0, 0, 0, 0 },
487   { 0x7d, 0x0009c715, 0x000b1c73, 0x00000000, 0x00000000, 0, 0, 0, 0 },
488   { 0x7e, 0x0009c715, 0x000acde3, 0x00000000, 0x00000000, 0, 0, 0, 0 },
489   { 0x7f, 0x0009c715, 0x000acde3, 0x00000000, 0x00000000, 0, 0, 0, 0 }
490 };
491 
492 void
cmr6_tables(TFM::Font * & _font,TFM::Dimension * & _dimension,TFM::Character * & _character)493 cmr6_tables(TFM::Font*& _font, TFM::Dimension*& _dimension, TFM::Character*& _character)
494 {
495   _font = &font;
496   _dimension = dimension;
497   _character = character;
498 }
499