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 "CMSSI",
23 
24   0xec,
25   "TeX text",
26   0x00900000,
27   0x2ba19717,
28   7,
29   128
30 };
31 
32 static TFM::Dimension dimension[] = {
33   { 0x01, "slant", 0x000366a0 },
34   { 0x02, "space", 0x00057b40 },
35   { 0x03, "space_stretch", 0x0002bda0 },
36   { 0x04, "space_shrink", 0x0001d3c0 },
37   { 0x05, "x_height", 0x00071c72 },
38   { 0x06, "quad", 0x001071c0 },
39   { 0x07, "extra_space", 0x0001d3c0 }
40 };
41 
42 
43 static TFM::Kerning C_0b_Kerning[] = {
44   { 0x21, 0x00012459 },
45   { 0x27, 0x00012459 },
46   { 0x29, 0x00012459 },
47   { 0x3f, 0x00012459 },
48   { 0x5d, 0x00012459 }
49 };
50 
51 static TFM::Kerning C_20_Kerning[] = {
52   { 0x4c, 0xfffbbda4 },
53   { 0x6c, 0xfffc12f9 }
54 };
55 
56 static TFM::Kerning C_27_Kerning[] = {
57   { 0x21, 0x0001d3c0 },
58   { 0x3f, 0x0001d3c0 }
59 };
60 
61 static TFM::Kerning C_41_Kerning[] = {
62   { 0x43, 0xffff8b10 },
63   { 0x47, 0xffff8b10 },
64   { 0x4f, 0xffff8b10 },
65   { 0x51, 0xffff8b10 },
66   { 0x54, 0xfffea130 },
67   { 0x55, 0xffff8b10 },
68   { 0x56, 0xfffe2c40 },
69   { 0x57, 0xfffe2c40 },
70   { 0x59, 0xfffea130 },
71   { 0x74, 0xffff8b10 }
72 };
73 
74 static TFM::Kerning C_44_Kerning[] = {
75   { 0x41, 0xffff8b10 },
76   { 0x56, 0xffff8b10 },
77   { 0x57, 0xffff8b10 },
78   { 0x58, 0xffff8b10 },
79   { 0x59, 0xffff8b10 }
80 };
81 
82 static TFM::Kerning C_46_Kerning[] = {
83   { 0x41, 0xfffea130 },
84   { 0x43, 0xffff8b10 },
85   { 0x47, 0xffff8b10 },
86   { 0x4f, 0xffff8b10 },
87   { 0x51, 0xffff8b10 },
88   { 0x61, 0xffff8b10 },
89   { 0x65, 0xffff8b10 },
90   { 0x6f, 0xffff8b10 },
91   { 0x72, 0xffff8b10 },
92   { 0x75, 0xffff8b10 }
93 };
94 
95 static TFM::Kerning C_49_Kerning[] = {
96   { 0x49, 0x000074f0 }
97 };
98 
99 static TFM::Kerning C_4b_Kerning[] = {
100   { 0x43, 0xffff8b10 },
101   { 0x47, 0xffff8b10 },
102   { 0x4f, 0xffff8b10 },
103   { 0x51, 0xffff8b10 }
104 };
105 
106 static TFM::Kerning C_4c_Kerning[] = {
107   { 0x54, 0xfffea130 },
108   { 0x56, 0xfffe2c40 },
109   { 0x57, 0xfffe2c40 },
110   { 0x59, 0xfffea130 }
111 };
112 
113 static TFM::Kerning C_4f_Kerning[] = {
114   { 0x41, 0xffff8b10 },
115   { 0x56, 0xffff8b10 },
116   { 0x57, 0xffff8b10 },
117   { 0x58, 0xffff8b10 },
118   { 0x59, 0xffff8b10 }
119 };
120 
121 static TFM::Kerning C_50_Kerning[] = {
122   { 0x2c, 0xfffea130 },
123   { 0x2e, 0xfffea130 },
124   { 0x41, 0xfffea130 },
125   { 0x61, 0xffff8b10 },
126   { 0x65, 0xffff8b10 },
127   { 0x6f, 0xffff8b10 }
128 };
129 
130 static TFM::Kerning C_54_Kerning[] = {
131   { 0x41, 0xfffea130 },
132   { 0x61, 0xfffea130 },
133   { 0x65, 0xfffea130 },
134   { 0x6f, 0xfffea130 },
135   { 0x72, 0xfffea130 },
136   { 0x75, 0xfffea130 },
137   { 0x79, 0xfffea130 }
138 };
139 
140 static TFM::Kerning C_56_Kerning[] = {
141   { 0x41, 0xfffea130 },
142   { 0x43, 0xffff8b10 },
143   { 0x47, 0xffff8b10 },
144   { 0x4f, 0xffff8b10 },
145   { 0x51, 0xffff8b10 },
146   { 0x61, 0xffff8b10 },
147   { 0x65, 0xffff8b10 },
148   { 0x6f, 0xffff8b10 },
149   { 0x72, 0xffff8b10 },
150   { 0x75, 0xffff8b10 }
151 };
152 
153 static TFM::Kerning C_57_Kerning[] = {
154   { 0x41, 0xfffea130 },
155   { 0x43, 0xffff8b10 },
156   { 0x47, 0xffff8b10 },
157   { 0x4f, 0xffff8b10 },
158   { 0x51, 0xffff8b10 },
159   { 0x61, 0xffff8b10 },
160   { 0x65, 0xffff8b10 },
161   { 0x6f, 0xffff8b10 },
162   { 0x72, 0xffff8b10 },
163   { 0x75, 0xffff8b10 }
164 };
165 
166 static TFM::Kerning C_58_Kerning[] = {
167   { 0x43, 0xffff8b10 },
168   { 0x47, 0xffff8b10 },
169   { 0x4f, 0xffff8b10 },
170   { 0x51, 0xffff8b10 }
171 };
172 
173 static TFM::Kerning C_59_Kerning[] = {
174   { 0x41, 0xfffea130 },
175   { 0x61, 0xfffea130 },
176   { 0x65, 0xfffea130 },
177   { 0x6f, 0xfffea130 },
178   { 0x72, 0xfffea130 },
179   { 0x75, 0xfffea130 }
180 };
181 
182 static TFM::Kerning C_61_Kerning[] = {
183   { 0x72, 0xffff8b10 },
184   { 0x77, 0xffff8b10 },
185   { 0x79, 0xffff8b10 }
186 };
187 
188 static TFM::Kerning C_62_Kerning[] = {
189   { 0x63, 0x000074f0 },
190   { 0x64, 0x000074f0 },
191   { 0x65, 0x000074f0 },
192   { 0x6f, 0x000074f0 },
193   { 0x71, 0x000074f0 },
194   { 0x72, 0xffff8b10 },
195   { 0x77, 0xffff8b10 },
196   { 0x78, 0xffff8b10 },
197   { 0x79, 0xffff8b10 }
198 };
199 
200 static TFM::Kerning C_66_Kerning[] = {
201   { 0x21, 0x00012459 },
202   { 0x27, 0x00012459 },
203   { 0x29, 0x00012459 },
204   { 0x3f, 0x00012459 },
205   { 0x5d, 0x00012459 }
206 };
207 
208 static TFM::Kerning C_67_Kerning[] = {
209   { 0x6a, 0x000074f0 }
210 };
211 
212 static TFM::Kerning C_6b_Kerning[] = {
213   { 0x61, 0xffff8b10 },
214   { 0x63, 0xffff8b10 },
215   { 0x65, 0xffff8b10 },
216   { 0x6f, 0xffff8b10 }
217 };
218 
219 static TFM::Kerning C_6f_Kerning[] = {
220   { 0x63, 0x000074f0 },
221   { 0x64, 0x000074f0 },
222   { 0x65, 0x000074f0 },
223   { 0x6f, 0x000074f0 },
224   { 0x71, 0x000074f0 },
225   { 0x72, 0xffff8b10 },
226   { 0x77, 0xffff8b10 },
227   { 0x78, 0xffff8b10 },
228   { 0x79, 0xffff8b10 }
229 };
230 
231 static TFM::Kerning C_70_Kerning[] = {
232   { 0x63, 0x000074f0 },
233   { 0x64, 0x000074f0 },
234   { 0x65, 0x000074f0 },
235   { 0x6f, 0x000074f0 },
236   { 0x71, 0x000074f0 },
237   { 0x72, 0xffff8b10 },
238   { 0x77, 0xffff8b10 },
239   { 0x78, 0xffff8b10 },
240   { 0x79, 0xffff8b10 }
241 };
242 
243 static TFM::Kerning C_74_Kerning[] = {
244   { 0x77, 0xffff8b10 },
245   { 0x79, 0xffff8b10 }
246 };
247 
248 static TFM::Kerning C_75_Kerning[] = {
249   { 0x77, 0xffff8b10 }
250 };
251 
252 static TFM::Kerning C_77_Kerning[] = {
253   { 0x61, 0xffff8b10 },
254   { 0x63, 0xffff8b10 },
255   { 0x65, 0xffff8b10 },
256   { 0x6f, 0xffff8b10 }
257 };
258 
259 static TFM::Kerning C_79_Kerning[] = {
260   { 0x2c, 0xfffea130 },
261   { 0x2e, 0xfffea130 },
262   { 0x61, 0xffff8b10 },
263   { 0x65, 0xffff8b10 },
264   { 0x6f, 0xffff8b10 }
265 };
266 
267 static TFM::Ligature C_0b_Ligature[] = {
268   { 0x69, 0x00, 0x0e },
269   { 0x6c, 0x00, 0x0f }
270 };
271 
272 static TFM::Ligature C_21_Ligature[] = {
273   { 0x60, 0x00, 0x3c }
274 };
275 
276 static TFM::Ligature C_27_Ligature[] = {
277   { 0x27, 0x00, 0x22 }
278 };
279 
280 static TFM::Ligature C_2d_Ligature[] = {
281   { 0x2d, 0x00, 0x7b }
282 };
283 
284 static TFM::Ligature C_3f_Ligature[] = {
285   { 0x60, 0x00, 0x3e }
286 };
287 
288 static TFM::Ligature C_60_Ligature[] = {
289   { 0x60, 0x00, 0x5c }
290 };
291 
292 static TFM::Ligature C_66_Ligature[] = {
293   { 0x66, 0x00, 0x0b },
294   { 0x69, 0x00, 0x0c },
295   { 0x6c, 0x00, 0x0d }
296 };
297 
298 static TFM::Ligature C_7b_Ligature[] = {
299   { 0x2d, 0x00, 0x7c }
300 };
301 
302 
303 static TFM::Character character[] = {
304   { 0x00, 0x0008f680, 0x000b1c72, 0x00000000, 0x00002944, 0, 0, 0, 0 },
305   { 0x01, 0x000db420, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
306   { 0x02, 0x000cca40, 0x000b1c72, 0x00000000, 0x00004c89, 0, 0, 0, 0 },
307   { 0x03, 0x000a12f2, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
308   { 0x04, 0x000af680, 0x000b1c72, 0x00000000, 0x0000e7ab, 0, 0, 0, 0 },
309   { 0x05, 0x000ba12b, 0x000b1c72, 0x00000000, 0x00008244, 0, 0, 0, 0 },
310   { 0x06, 0x000be060, 0x000b1c72, 0x00000000, 0x0000d207, 0, 0, 0, 0 },
311   { 0x07, 0x000cca40, 0x000b1c72, 0x00000000, 0x00003e60, 0, 0, 0, 0 },
312   { 0x08, 0x000be060, 0x000b1c72, 0x00000000, 0x0000b95c, 0, 0, 0, 0 },
313   { 0x09, 0x000cca40, 0x000b1c72, 0x00000000, 0x00003e60, 0, 0, 0, 0 },
314   { 0x0a, 0x000be060, 0x000b1c72, 0x00000000, 0x0000a557, 0, 0, 0, 0 },
315   { 0x0b, 0x000997b0, 0x000b1c72, 0x00000000, 0x000064b9, 5, C_0b_Kerning, 2, C_0b_Ligature },
316   { 0x0c, 0x0008d094, 0x000b1c72, 0x00000000, 0x00007ce7, 0, 0, 0, 0 },
317   { 0x0d, 0x0008d094, 0x000b1c72, 0x00000000, 0x0000764e, 0, 0, 0, 0 },
318   { 0x0e, 0x000d61f4, 0x000b1c72, 0x00000000, 0x00007ce7, 0, 0, 0, 0 },
319   { 0x0f, 0x000d61f4, 0x000b1c72, 0x00000000, 0x0000764e, 0, 0, 0, 0 },
320   { 0x10, 0x0003ed07, 0x00071c72, 0x00000000, 0x0000ac09, 0, 0, 0, 0 },
321   { 0x11, 0x000461f7, 0x00071c72, 0x00031c72, 0x0000ac09, 0, 0, 0, 0 },
322   { 0x12, 0x000838e0, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
323   { 0x13, 0x000838e0, 0x000b1c72, 0x00000000, 0x000049f5, 0, 0, 0, 0 },
324   { 0x14, 0x000838e0, 0x000a1c72, 0x00000000, 0x0000ac09, 0, 0, 0, 0 },
325   { 0x15, 0x000838e0, 0x000b1c72, 0x00000000, 0x000064b9, 0, 0, 0, 0 },
326   { 0x16, 0x000838e0, 0x0009ceb2, 0x00000000, 0x00002944, 0, 0, 0, 0 },
327   { 0x17, 0x000c1f07, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
328   { 0x18, 0x00074f00, 0x00000000, 0x0002b8e4, 0x00000000, 0, 0, 0, 0 },
329   { 0x19, 0x0007e6b4, 0x000b1c72, 0x00000000, 0x000049f5, 0, 0, 0, 0 },
330   { 0x1a, 0x000be060, 0x00071c72, 0x00000000, 0x00003e60, 0, 0, 0, 0 },
331   { 0x1b, 0x000cca40, 0x00071c72, 0x00000000, 0x00003e60, 0, 0, 0, 0 },
332   { 0x1c, 0x000838e0, 0x0008aaab, 0x00018e39, 0x0000c30c, 0, 0, 0, 0 },
333   { 0x1d, 0x000e2c39, 0x000b1c72, 0x00000000, 0x0000d207, 0, 0, 0, 0 },
334   { 0x1e, 0x000ffff9, 0x000b1c72, 0x00000000, 0x0000d207, 0, 0, 0, 0 },
335   { 0x1f, 0x000cca40, 0x000be38e, 0x0000c71c, 0x00004c89, 0, 0, 0, 0 },
336   { 0x20, 0x0003ed07, 0x00071c72, 0x00000000, 0x00000000, 2, C_20_Kerning, 0, 0 },
337   { 0x21, 0x000535b9, 0x000b1c72, 0x00000000, 0x0000e7ab, 0, 0, 1, C_21_Ligature },
338   { 0x22, 0x000838e0, 0x000b1c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
339   { 0x23, 0x000db420, 0x000b1c72, 0x00031c72, 0x0000d207, 0, 0, 0, 0 },
340   { 0x24, 0x000838e0, 0x000c0000, 0x0000e38e, 0x0000ac09, 0, 0, 0, 0 },
341   { 0x25, 0x000db420, 0x000c0000, 0x0000e38e, 0x00007ce7, 0, 0, 0, 0 },
342   { 0x26, 0x000c7814, 0x000b1c72, 0x00000000, 0x0000764e, 0, 0, 0, 0 },
343   { 0x27, 0x00049160, 0x000b1c72, 0x00000000, 0x0000602e, 2, C_27_Kerning, 1, C_27_Ligature },
344   { 0x28, 0x00066520, 0x000c0000, 0x00040000, 0x00000000, 0, 0, 0, 0 },
345   { 0x29, 0x00066520, 0x000c0000, 0x00040000, 0x000064b9, 0, 0, 0, 0 },
346   { 0x2a, 0x000838e0, 0x000c0000, 0x00000000, 0x0000b95c, 0, 0, 0, 0 },
347   { 0x2b, 0x000cca40, 0x00097b40, 0x00017b40, 0x000064b9, 0, 0, 0, 0 },
348   { 0x2c, 0x00049160, 0x000161f9, 0x00020652, 0x00000000, 0, 0, 0, 0 },
349   { 0x2d, 0x00057b40, 0x00071c72, 0x00000000, 0x00004c89, 0, 0, 1, C_2d_Ligature },
350   { 0x2e, 0x00049160, 0x000161f9, 0x00000000, 0x00000000, 0, 0, 0, 0 },
351   { 0x2f, 0x000838e0, 0x000c0000, 0x00040000, 0x00000000, 0, 0, 0, 0 },
352   { 0x30, 0x000838e0, 0x000a7819, 0x00000000, 0x0000ac09, 0, 0, 0, 0 },
353   { 0x31, 0x000838e0, 0x000a7819, 0x00000000, 0x0000ac09, 0, 0, 0, 0 },
354   { 0x32, 0x000838e0, 0x000a7819, 0x00000000, 0x0000ac09, 0, 0, 0, 0 },
355   { 0x33, 0x000838e0, 0x000a7819, 0x00000000, 0x0000ac09, 0, 0, 0, 0 },
356   { 0x34, 0x000838e0, 0x000a7819, 0x00000000, 0x0000ac09, 0, 0, 0, 0 },
357   { 0x35, 0x000838e0, 0x000a7819, 0x00000000, 0x0000ac09, 0, 0, 0, 0 },
358   { 0x36, 0x000838e0, 0x000a7819, 0x00000000, 0x0000ac09, 0, 0, 0, 0 },
359   { 0x37, 0x000838e0, 0x000a7819, 0x00000000, 0x0000ac09, 0, 0, 0, 0 },
360   { 0x38, 0x000838e0, 0x000a7819, 0x00000000, 0x0000ac09, 0, 0, 0, 0 },
361   { 0x39, 0x000838e0, 0x000a7819, 0x00000000, 0x0000ac09, 0, 0, 0, 0 },
362   { 0x3a, 0x00049160, 0x00071c72, 0x00000000, 0x0000602e, 0, 0, 0, 0 },
363   { 0x3b, 0x00049160, 0x00071c72, 0x00020652, 0x0000602e, 0, 0, 0, 0 },
364   { 0x3c, 0x000535b9, 0x00080000, 0x00031c72, 0x00003e60, 0, 0, 0, 0 },
365   { 0x3d, 0x000cca40, 0x00060247, 0xfffe0247, 0x0000d207, 0, 0, 0, 0 },
366   { 0x3e, 0x0007c3f0, 0x00080000, 0x00031c72, 0x00000000, 0, 0, 0, 0 },
367   { 0x3f, 0x0007c3f0, 0x000b1c72, 0x00000000, 0x0000c30c, 0, 0, 1, C_3f_Ligature },
368   { 0x40, 0x000af680, 0x000b1c72, 0x00000000, 0x00004c89, 0, 0, 0, 0 },
369   { 0x41, 0x000afcd2, 0x000b1c72, 0x00000000, 0x00000000, 10, C_41_Kerning, 0, 0 },
370   { 0x42, 0x000af9a9, 0x000b1c72, 0x00000000, 0x0000a557, 0, 0, 0, 0 },
371   { 0x43, 0x000a8190, 0x000b1c72, 0x00000000, 0x0000d207, 0, 0, 0, 0 },
372   { 0x44, 0x000be389, 0x000b1c72, 0x00000000, 0x00004c89, 5, C_44_Kerning, 0, 0 },
373   { 0x45, 0x0009e060, 0x000b1c72, 0x00000000, 0x0000d207, 0, 0, 0, 0 },
374   { 0x46, 0x00096b70, 0x000b1c72, 0x00000000, 0x00002944, 10, C_46_Kerning, 0, 0 },
375   { 0x47, 0x000af680, 0x000b1c72, 0x00000000, 0x0000d207, 0, 0, 0, 0 },
376   { 0x48, 0x000ba12b, 0x000b1c72, 0x00000000, 0x00008244, 0, 0, 0, 0 },
377   { 0x49, 0x000497b2, 0x000b1c72, 0x00000000, 0x00002944, 1, C_49_Kerning, 0, 0 },
378   { 0x4a, 0x0007c719, 0x000b1c72, 0x00000000, 0x00008244, 0, 0, 0, 0 },
379   { 0x4b, 0x000b71c2, 0x000b1c72, 0x00000000, 0x0000d207, 4, C_4b_Kerning, 0, 0 },
380   { 0x4c, 0x0008f680, 0x000b1c72, 0x00000000, 0x00000000, 4, C_4c_Kerning, 0, 0 },
381   { 0x4d, 0x000e5ecb, 0x000b1c72, 0x00000000, 0x00008244, 0, 0, 0, 0 },
382   { 0x4e, 0x000ba12b, 0x000b1c72, 0x00000000, 0x00008244, 0, 0, 0, 0 },
383   { 0x4f, 0x000c25e7, 0x000b1c72, 0x00000000, 0x00004c89, 5, C_4f_Kerning, 0, 0 },
384   { 0x50, 0x000a84b9, 0x000b1c72, 0x00000000, 0x0000a557, 6, C_50_Kerning, 0, 0 },
385   { 0x51, 0x000c25e7, 0x000b1c72, 0x00020652, 0x00004c89, 0, 0, 0, 0 },
386   { 0x52, 0x000aa77c, 0x000b1c72, 0x00000000, 0x0000a557, 0, 0, 0, 0 },
387   { 0x53, 0x000922c0, 0x000b1c72, 0x00000000, 0x000049f5, 0, 0, 0, 0 },
388   { 0x54, 0x000b3c07, 0x000b1c72, 0x00000000, 0x00002944, 7, C_54_Kerning, 0, 0 },
389   { 0x55, 0x000b4efe, 0x000b1c72, 0x00000000, 0x00008244, 0, 0, 0, 0 },
390   { 0x56, 0x000afcd2, 0x000b1c72, 0x00000000, 0x00004c89, 10, C_56_Kerning, 0, 0 },
391   { 0x57, 0x000f8e32, 0x000b1c72, 0x00000000, 0x00004c89, 10, C_57_Kerning, 0, 0 },
392   { 0x58, 0x000afcd2, 0x000b1c72, 0x00000000, 0x00002944, 4, C_58_Kerning, 0, 0 },
393   { 0x59, 0x000afcd2, 0x000b1c72, 0x00000000, 0x0000602e, 6, C_59_Kerning, 0, 0 },
394   { 0x5a, 0x000a0ca0, 0x000b1c72, 0x00000000, 0x0000d207, 0, 0, 0, 0 },
395   { 0x5b, 0x0004c71b, 0x000c0000, 0x00040000, 0x000049f5, 0, 0, 0, 0 },
396   { 0x5c, 0x000838e0, 0x000b1c72, 0x00000000, 0x00003e60, 0, 0, 0, 0 },
397   { 0x5d, 0x0004c71b, 0x000c0000, 0x00040000, 0x0000c30c, 0, 0, 0, 0 },
398   { 0x5e, 0x000838e0, 0x000b1c72, 0x00000000, 0x0000764e, 0, 0, 0, 0 },
399   { 0x5f, 0x00049160, 0x000aec97, 0x00000000, 0x00007ce7, 0, 0, 0, 0 },
400   { 0x60, 0x00049160, 0x000b1c72, 0x00000000, 0x0000602e, 0, 0, 1, C_60_Ligature },
401   { 0x61, 0x0007e6b4, 0x00071c72, 0x00000000, 0x00002944, 3, C_61_Kerning, 0, 0 },
402   { 0x62, 0x00087e67, 0x000b1c72, 0x00000000, 0x00008244, 9, C_62_Kerning, 0, 0 },
403   { 0x63, 0x00074f00, 0x00071c72, 0x00000000, 0x0000b95c, 0, 0, 0, 0 },
404   { 0x64, 0x00087e67, 0x000b1c72, 0x00000000, 0x0000764e, 0, 0, 0, 0 },
405   { 0x65, 0x00074f02, 0x00071c72, 0x00000000, 0x00003e60, 0, 0, 0, 0 },
406   { 0x66, 0x00050650, 0x000b1c72, 0x00000000, 0x000064b9, 5, C_66_Kerning, 3, C_66_Ligature },
407   { 0x67, 0x000838e0, 0x00071c72, 0x00031c72, 0x0000a557, 1, C_67_Kerning, 0, 0 },
408   { 0x68, 0x00087e67, 0x000b1c72, 0x00000000, 0x000049f5, 0, 0, 0, 0 },
409   { 0x69, 0x0003ed07, 0x000aec97, 0x00000000, 0x00008244, 0, 0, 0, 0 },
410   { 0x6a, 0x000461f7, 0x000aec97, 0x00031c72, 0x0000602e, 0, 0, 0, 0 },
411   { 0x6b, 0x00080977, 0x000b1c72, 0x00000000, 0x0000b95c, 4, C_6b_Kerning, 0, 0 },
412   { 0x6c, 0x0003ed07, 0x000b1c72, 0x00000000, 0x0000764e, 0, 0, 0, 0 },
413   { 0x6d, 0x000d0fc7, 0x00071c72, 0x00000000, 0x000049f5, 0, 0, 0, 0 },
414   { 0x6e, 0x00087e67, 0x00071c72, 0x00000000, 0x000049f5, 0, 0, 0, 0 },
415   { 0x6f, 0x000838e0, 0x00071c72, 0x00000000, 0x00002944, 9, C_6f_Kerning, 0, 0 },
416   { 0x70, 0x00087e67, 0x00071c72, 0x00031c72, 0x0000a557, 9, C_70_Kerning, 0, 0 },
417   { 0x71, 0x00087e67, 0x00071c72, 0x00031c72, 0x0000ac09, 0, 0, 0, 0 },
418   { 0x72, 0x00059e04, 0x00071c72, 0x00000000, 0x0000a557, 0, 0, 0, 0 },
419   { 0x73, 0x00064dbe, 0x00071c72, 0x00000000, 0x000064b9, 0, 0, 0, 0 },
420   { 0x74, 0x0005f030, 0x00092495, 0x00000000, 0x000049f5, 2, C_74_Kerning, 0, 0 },
421   { 0x75, 0x00087e67, 0x00071c72, 0x00000000, 0x0000ac09, 1, C_75_Kerning, 0, 0 },
422   { 0x76, 0x00079487, 0x00071c72, 0x00000000, 0x0000a557, 0, 0, 0, 0 },
423   { 0x77, 0x000b3c07, 0x00071c72, 0x00000000, 0x0000a557, 4, C_77_Kerning, 0, 0 },
424   { 0x78, 0x00079487, 0x00071c72, 0x00000000, 0x00004c89, 0, 0, 0, 0 },
425   { 0x79, 0x00079487, 0x00071c72, 0x00031c72, 0x0000a557, 5, C_79_Kerning, 0, 0 },
426   { 0x7a, 0x000725e9, 0x00071c72, 0x00000000, 0x00000000, 0, 0, 0, 0 },
427   { 0x7b, 0x000838e0, 0x00071c72, 0x00000000, 0x0000d207, 0, 0, 1, C_7b_Ligature },
428   { 0x7c, 0x001071c0, 0x00071c72, 0x00000000, 0x0000d207, 0, 0, 0, 0 },
429   { 0x7d, 0x000838e0, 0x000b1c72, 0x00000000, 0x000049f5, 0, 0, 0, 0 },
430   { 0x7e, 0x000838e0, 0x000ad9a0, 0x00000000, 0x0000e7ab, 0, 0, 0, 0 },
431   { 0x7f, 0x000838e0, 0x000aec97, 0x00000000, 0x00000000, 0, 0, 0, 0 }
432 };
433 
434 void
cmssi9_tables(TFM::Font * & _font,TFM::Dimension * & _dimension,TFM::Character * & _character)435 cmssi9_tables(TFM::Font*& _font, TFM::Dimension*& _dimension, TFM::Character*& _character)
436 {
437   _font = &font;
438   _dimension = dimension;
439   _character = character;
440 }
441