Code

Translations. French translation minor update.
[inkscape.git] / share / extensions / render_alphabetsoup_config.py
1 #!/usr/bin/env python
2 # Syntax format: (raise your hand if you know lisp :-)
3 #
4 # 'state0':  ("file.svg", ( ( ('state1', dx, dy, T-B, L|R),),
5 #                           ( ('state2', ...), ('state3', ...),),
6 #                           ( ('state4', ...),),
7 #                           ) ),
8 # )
9
10 # Translation of the above in CNF:
11 # state0 -> state1
12 # state0 -> state2 state3
13 # state0 -> state4
14 #
15 # Semantics at state0:
16 # Paste subtree image from state1 onto "file.svg".
17 # Subtree image is translated by (dx, dy) (measured in units, not pixels!). 
18 # Subtree image is flipped top to bottom if v==1.
19 # Subtree image is flipped left to right if h==1.
20 #
21 # Notes:
22 # Origin (0,0) is at *upper* left corner.
23 # For optional reflections, add both reflecting and non-reflecting rules
24 # For 180 degree rotations, set v = 1, h = 1.
25 # It helps to have an empty "epsilon" image.
26 #
27 # Jan. 16 2002
28 #    Removed zeros from the end of rules, changed the code to reflect this.
29 #    Remember to add trailing ',' at ends of lists, especially singletons.
30 #
31 # Jan. 20-26 2002
32 #    Added uppercase.
34 syntax = {
35     'start': ("epsilon.svg", ((('lc', 0,0,0,0),),# start state
36                               (('UC', 0,0,0,0),),
37                               )),
38     # lowercase
39     'lc':    ("epsilon.svg", ((('barsym', 0,0,0,0),), #(2096714) (26) 
40                               (('lc2', 0,0,0,0),),    #(830)    (19)
41                               )),
42     # uppercase
43     'UC':    ("epsilon.svg", ((('UCb',  0,0,0,0),),   #(2160) (30)
44                               (('UCu',  0,-5,0,0),),
45                               )), 
46     'UCb':   ("epsilon.svg", ((('Bar', 0,0,0,0),),    #(21)  Psi T I KK Phi
47                               (('Bar', 0,0,0,1),),    #
48                               (('D',   0,0,0,0),),    #(39)  D O Q C G
49                               (('D',   0,0,0,1),),    #
50                               (('E',   0,0,0,0),),    #(373) E B PL 3 3r 8 S Theta Eth/Dyet
51                               (('E',   0,0,0,1),),    #
52                               (('F',   0,0,0,0),),    #(84)  F P R
53                               (('F',   0,0,0,1),),    #
54                               (('H',   0,0,0,0),),    #(8)   H Hblock
55                               (('H',   0,0,0,1),),    #
56                               (('L',   0,0,0,0),),    #(12)  L J U
57                               (('L',   0,0,0,1),),    #
58                               (('V',   0,0,0,1),),    #(6)   A V M Delta Forall W
59                               (('X',   0,0,0,0),),    #(172) X N M W Sigma NN
60                               (('X',   0,0,0,0),),    #(172) X N M W Sigma NN
61                               )),
62     'UCu':   ("epsilon.svg", ((('UCb', 0,0,1,1),),)),
63     # for statistical balancing
64     'lc2':   ("epsilon.svg", ((('osym', 0,0,0,0),),   #(40)  o, c, e, ou 
65                               (('vsym', 0,0,0,0),),   #(40)  v, w, ^, y
66                               (('dsym', 0,0,0,1),),   #(96)  x, z, 7, 2, yogh
67                               (('lc3',  0,0,0,0),),   #(928) (5)
68                               )),
69     'lc3':   ("epsilon.svg", ((('3sym', 0,0,0,0),),   #(40)  epsilon
70                               (('ssym', 0,0,0,0),),   #(8)   s
71                               (('asym', 0,0,0,0),),   #(880) a 6 9
72                               )),
73     # symmetry rules
74     'barsym':("epsilon.svg", ((('bar', 0,0,0,0),),
75                               (('bar', 0,0,0,1),),
76                               (('bar', 0,0,1,0),),
77                               (('bar', 0,0,1,1),),
78                               )),
79     '6sym':  ("epsilon.svg", ((('6', 0,0,0,0),),
80                               (('6', 0,0,0,1),),
81                               (('6', 0,0,1,0),),
82                               (('6', 0,0,1,1),),
83                               )),
84     '3sym':  ("epsilon.svg", ((('3', 0,0,0,0),),
85                               (('3', 0,0,0,1),),
86                               (('3', 0,0,1,0),),
87                               (('3', 0,0,1,1),),
88                               )),
89     'vsym':  ("epsilon.svg", ((('v', 0,0,0,0),),
90                               (('v', 0,0,1,1),),
91                               )),
92     'osym':  ("epsilon.svg", ((('o', 0,0,0,0),),
93                               (('o', 0,0,0,1),),
94                               )),
95     'ssym':  ("epsilon.svg", ((('s', 0,0,0,0),),
96                               (('s', 0,0,0,1),),
97                               )),
98     'dsym':  ("epsilon.svg", ((('diag', 0,0,0,0), ('diag', 0,0,1,1),),
99                               (('diag', 0,0,0,1), ('diag', 0,0,1,0),),
100                               (('dstk', 0,0,0,0),),
101                               )),
102     'dstk':  ("epsilon.svg", ((('stik', 0,4,0,0), ('z',    0,0,1,1),),
103                               (('stik', 0,4,0,0), ('x',    0,0,1,1),),
104                               (('stik', 0,4,0,1), ('z',    0,0,1,0),),
105                               (('stik', 0,4,0,1), ('x',    0,0,1,0),),
106                               )),
107     'asym':  ("epsilon.svg", ((('abase', 0,0,0,0),),
108                               (('abase', 0,0,0,1),),
109                               (('abase', 0,0,1,0),),
110                               (('abase', 0,0,1,1),),
111                               )),
112     # epsilon rules
113     'diag':  ("epsilon.svg", ((('x',    0,0,0,0),),
114                               (('yogh', 0,0,1,1),),
115                               (('z',    0,0,0,0),),
116                               (('7',    0,0,0,0),),
117                               (('2',    0,0,0,0),),
118                               )),
119     'bar':   ("bar.svg", ((('vert', 0,0,0,0), ('vert', 0,0,1,0),),                 # f l i t j glot.
120                           (('k', 0,0,0,0), ('vert', 0,0,0,0), ('vert', 0,0,1,0),), # k
121                           (('b', 0,0,0,0), ('vert', 0,0,1,0),),                    # h heng
122                           (('n', 0,0,0,0), ('vert', 0,0,1,0),),                    # n m r eng u uu mu
123                           (('b1', 0,0,0,0), ('b0', 0,0,1,0),),                     # thorn eject.
124                           (('b1', 0,0,0,0), ('n0', 0,0,1,0),),                     # b p q d 
125                           (('n1', 0,0,0,0), ('n0', 0,0,1,0),),                     # open-a 
126                           )),
127     'vert':  ("epsilon.svg", ((('xtnd', 0,0,0,0),),
128                               (('srf',  0,0,1,0),),
129                               #(('xtnd', 0,0,0,1),),
130                               #(('srf',  0,0,1,1),),
131                               )),
132     'srf':   ("epsilon.svg", ((('lserif', 0,0,0,0),), 
133                               (('lserif', 0,0,0,1),),
134                               (('serif',  0,0,0,0),),
135                               (('tserif', 0,0,0,0),),
136                               (('tserif', 0,0,0,1),),
137                               )),
138     'xtnd':  ("epsilon.svg", ((('cross', 0,0,0,0),), # this needs to be L-R flippable
139                               (('cross', 0,0,0,1),),
140                               (('l',     0,0,0,0),),
141                               (('?',     0,0,0,0),),
142                               (('?',     0,0,0,1),),
143                               (('idot',  0,0,0,0),),
144                               )),
145     'loop':  ("epsilon.svg", ((('o0',  5,0,0,1),),  # loop-around elts
146                               (('30',  5,0,0,1),),
147                               )),
148     'elike': ("epsilon.svg", ((('e',   0,0,0,0), ('crv', 0,0,1,0),),
149                               (('a',   0,0,0,0), ('crv', 0,0,1,0),),
150                               (('crv', 0,0,0,0), ('crv', 0,0,1,0),),
151                               )),
152     'loop2': ("epsilon.svg", ((('elike', 0,0,0,0),),
153                               (('loop', 0,0,0,0),),
154                               )),
155     'hlike': ("epsilon.svg", ((('h', 0,0,0,0),),    # h-like extensions
156                               (('m', 0,0,0,0),),
157                               (('crv', 0,0,0,0),),
158                               )),
159     'crv':   ("epsilon.svg", ((('r', 0,0,0,0),),    # curvy things
160                               (('cserif', 0,0,1,0),),
161                               )),
162     # image rules
163     'abase': ("abase.svg",   ((('n0', 0,0,1,0), ('loop2', 0,0,0,0),),
164                               (('n0', 0,0,1,0), ('loop2', 0,0,1,0),),
165                               (('b0', 0,0,1,0), ('loop2', 0,0,0,0),),
166                               (('b0', 0,0,1,0), ('loop2', 0,0,1,0),),
167                               )),
168     'v':     ("v.svg", ((('vserl', 0,0,0,0), ('vserr', 0,0,0,0),),
169                         (('vserl', 0,0,0,0), ('vserr', 0,0,0,0), ('y0', 0,0,0,0),),
170                         (('vserl', 0,0,0,0), ('w', 6,0,0,0),),
171                         (('vserl', 0,0,0,0), ('w', 6,0,0,0), ('y0', 0,0,0,0),),
172                         )),
173     'w':     ("v.svg", ((('vserr', 0,0,0,0),),
174                         (('vserr', 0,0,0,0), ('y0', 0,0,0,0),),
175                         )),
176     'y0':    ("epsilon.svg", ((('y', 0,0,0,1),),
177                               (('y', 0,0,0,0),),
178                               (('gamma', 0,0,0,0),),
179                               )),
180     'l':     ("l.svg", ((('j',   0,0,0,0),),
181                         (('j',   0,0,0,1),),
182                         (('srf', 0,-4,1,0),),
183                         )),
184     'o':     ("o.svg", ((('loop2', 0,0,0,0),),
185                         (('loop2', 0,0,1,0),),
186                         )),
187     'cross': ("cross.svg", ((('t', 0,0,0,0),),
188                             (('f0', 0,0,0,0),),
189                             )),
190     'f':     ("f.svg", ((('j',   0, 0,0,0),),
191                         (('j',   0, 0,0,1),),
192                         (('srf', 0,-4,1,0),), 
193                         )),
194     'f0':    ("f.svg", ((('j',   0, 0,0,0),),
195                         (('srf', 0,-4,1,0),), 
196                         )),
197     'idot':  ("idot.svg", ((('serif',  0,0,1,0),),
198                            (('lserif', 0,0,1,0),),
199                            (('lserif', 0,0,1,1),),
200                            )),
201     'stik':  ("f.svg", ((('srf',  0,-4,1,0),),
202                         #(('srf',  0,-4,1,1),),
203                         )),
204     '3':     ("3.svg", ((('loop2',  0,0,0,0),),
205                         )),
206     # uppercase
207     # Bar rules
208     'X':       ("epsilon.svg", ((('Xtb', 0,0,0,0), ('Xtb', 0,-5,1,1),),
209                                 (('Xlr', 0,0,0,0), ('Xlr', 0,-5,1,1),),
210                                 (('Xtb', 0,0,0,0), ('Xtb2', 0,-5,1,1),),
211                                 (('Xlr', 0,0,0,0), ('Xlr2', 0,-5,1,1),),
212                                 (('Xtb2', 0,0,0,0), ('Xtb', 0,-5,1,1),),
213                                 (('Xlr2', 0,0,0,0), ('Xlr', 0,-5,1,1),),
214                                 )),
216     'Xtb':     ("epsilon.svg", ((('Xnw', 0,0,0,0), ('Xne', 0,0,0,0),),
217                                 (('Xne', 0,0,0,0), ('Xh', 0,0,0,0), ('Lterm2', 0,0,0,0),),
218                                 (('Xnw', 0,0,0,0), ('Xh', 0,0,0,1), ('Lterm2', 0,0,0,1),),
219                                 (('Xne', 0,0,0,0), ('Xh', 0,0,0,0), ('Xnw', 0,0,0,0), ('Xh', 0,0,0,1),),
220                                 )),
221     'Xlr':     ("epsilon.svg", ((('Xne', 0,-5,1,1), ('Xnw', 0,0,0,0),),
222                                 (('Xne', 0,-5,1,1), ('Xvt', 0,0,0,0), ('Xvb', 0,0,0,0),  ('ITSerif', 0.5,0,0,0),),
223                                 (('Xnw', 0, 0,0,0), ('Xvt', 0,0,0,0), ('Xvt', 0,-5,1,0), ('IBSerif', 0,0,0,0),),
224                                 (('Xne', 0,-5,1,1), ('Xnw', 0,0,0,0), ('Xvt', 0,0,0,0),  ('Xvb', 0,0,0,0),),
225                                 )),
227     'Xtb2':    ("epsilon.svg", ((('Xne', 0,0,0,0),),
228                                 (('Xnw', 0,0,0,0),),
229                                 )),
230     'Xlr2':    ("epsilon.svg", ((('Xnw', 0,0,0,0),),
231                                 (('Xne', 0,-5,1,1),),
232                                 )),
234     'Xne':     ("Xne.svg",),
235     'Xnw':     ("Xnw.svg",),
236     'Xh':      ("Xh.svg",),
237     'Xvt':     ("Xvt.svg",),
238     'Xvb':     ("Xvb.svg",),
239                 
241     'Bar':     ("barcap.svg", ((('Bartop', 0,0,0,0), ('Barbot', 0,0,0,0), ('Barmid', 0,0,0,0),),
242                             (('Bartop2', 0,0,0,0), ('Barbot2', 0,0,0,0),),
243                             )),
244     'Bartop':  ("epsilon.svg", ((('ITSerif', 0.5,0,0,0),),
245                                 (('Tt',      0,  0,0,0),),
246                                 )),
247     'Barbot':  ("epsilon.svg", ((('IBSerif', 0,0,0,0),),
248                                 (('Tb',      0,0,0,0),),
249                                 )),
250     'Barbot2': ("epsilon.svg", ((('Barbot', 0,0,0,0),),
251                                 (('Psi',    0,0,0,0),),
252                                 )),
253     'Bartop2': ("epsilon.svg", ((('Bartop', 0, 0,0,0),),
254                                 (('Psi',    0,-5,1,0),),
255                                 )),    
256     'Barmid':  ("epsilon.svg", ((('Hm', 0,0,0,0), ('Eserif', 0,0,0,0), ('Hm', -7.5,0,0,1), ('Eserif', -7.5,0,0,1),),
257                                 (('P',  -2.5,3,0,0), ('P', -5, 3,0,1),),
258                                 (('P',    -5,3,0,1),), #points left
259                                 )),
260     'Psi':     ("epsilon.svg", ((('IBSerif', 0,0,0,0), ('R', -2.5,0,0,0,), ('R', -5,0,0,1,),),
261                                 )),
262     # D / E / F / H / L rules
263     'D':     ("epsilon.svg", ((('Dterm', 0,0,0,0), ('Dterm',  0,0,0,1),),
264                               (('Dterm', 0,0,0,0), ('Dterm2',  0,0,0,1),),
265                               )),
266     'E':     ("epsilon.svg", ((('Eterm', 0,0,0,0), ('Eterm',  0,0,0,1),),
267                               (('Eterm',  0,0,0,0), ('Eterm2',  0,0,0,1),),
268                               (('Eterm2', 0,0,0,1), ('Eterm2',  0,-5,1,0),), # for S
269                               )),
270     'F':     ("epsilon.svg", ((('Fterm', 0,0,0,0), ('Fterm',  0,0,0,1),),
271                               (('Fterm', 0,0,0,0), ('Fterm2',  0,0,0,1),),
272                               )),
273     'H':     ("epsilon.svg", ((('Hterm', 0,0,0,0), ('Hterm',  0,0,0,1),),
274                               (('Hterm', 0,0,0,0), ('Hterm2', 0,0,0,1),),
275                               )),
276     'L':     ("epsilon.svg", ((('Lterm', 0,0,0,0), ('Lterm',  0,0,0,1),),
277                               (('Lterm', 0,0,0,0), ('Lterm2', 0,0,0,1),),
278                               )),
279     'Dterm': ("epsilon.svg", ((('Barterm', 0,0,0,0), ('Et',      0,0,0,0), ('Eb', 0,0,0,0),),
280                               (('O',       0,0,0,0),),
281                               )),
282     'Dterm2':("epsilon.svg", ((('C',       0,0,0,1),),
283                               (('Ltserif', 0,0,0,1), ('Lbserif', 0,0,0,1),),
284                               )),
285     'Eterm': ("epsilon.svg", ((('Barterm', 0,0,0,0), ('Et', 0,0,0,0), ('Hm', 0,0,0,0), ('Eb', 0,0,0,0),),
286                               (('B', 0,0,0,1),),
287                               (('O',      0,0,0,0), ('Ocross',  0,0,0,0),),
288                               (('Dterm',  0,0,0,0), ('Eserif',  0,0,0,1),),
289                               (('Dterm2', 0,0,0,0), ('Eserif',  0,0,0,1),),
290                               )),
291     'Eterm2':("epsilon.svg", ((('P',     0,0,0,1), ('Lterm2', 0,-5,1,0),),
292                               )),
293     'Fterm': ("epsilon.svg", ((('Barterm', 0,0,0,0), ('Et', 0,0,0,0), ('Hm', 0,0,0,0), ('IBSerif', 0,0,0,0),),
294                               (('Lterm',   0,0,0,0), ('Eserif', 0,0,0,1),),
295                               (('P',       0,0,0,1), ('R', 0,0,0,1),), 
296                               (('Ltserif', 0,0,0,1), ('R', 0,0,0,1),), 
297                               (('Ltserif', 0,0,0,1), ('Rblock', 0,0,0,1),),
298                               (('Uterm',   0,0,0,0), ('Ocross', 0,0,0,0),),
299                               )),
300     'Fterm2':("epsilon.svg", ((('P', 0,0,0,1),),
301                               (('Lterm2',  0,0,0,0), ('Eserif', 0,0,0,1),),
302                               )),
303     'Hterm': ("epsilon.svg", ((('Barterm', 0,0,0,0), ('Hm', 0,0,0,0), ('ITSerif', 0.5,0,0,0), ('IBSerif', 0,0,0,0),),
304                               (('R',     0,0,0,1),  ('R',     0,-5,1,1),),
305                               )),
306     'Hterm2':("epsilon.svg", ((('R',     0,0,0,1),),
307                               (('Rblock',0,0,0,1),),
308                               )),
309     'Lterm': ("epsilon.svg", ((('Barterm', 0,0,0,0), ('Et', 0,0,0,0), ('IBSerif', 0,0,0,0),),
310                               (('Uterm',   0,0,0,0),),
311                               )),
312     'Lterm2':("epsilon.svg", ((('Ltserif', 0,0,0,1),),
313                               (('Cserif', 0,-5,1,1),),
314                               )),
315     'B':     ("epsilon.svg", ((('P', 0,0,0,0), ('P', 0,6,0,0),),)),
316     'C':     ("epsilon.svg", ((('Cserif', 0,0,0,0), ('Cserif', 0,-5,1,0),),)),
317     'Cserif':("epsilon.svg", (#(('Ctail', 0,0,0,0),), # I just hate the way these look...
318                               (('Cblob', 0,0,0,0),),
319                               (('Chook', 0,-5,1,0),),
320                               (('G',    0,0,0,0),),
321                               ),),
322     'O':     ("epsilon.svg", ((('Oterm', 0,0,0,0),),
323                               (('Q',     0,0,0,1),),
324                               (('Qu',    0,0,0,1),),
325                               )),
326     'Qu':    ("epsilon.svg", ((('Q', 0,-5,1,0),),)),
327     'Barterm':("barcap.svg",),
328     'Ctail': ("Ctail.svg",),
329     'Chook': ("Chook.svg",),
330     'Cblob': ("Cblob.svg",),
331     'G':     ("G.svg",),
332     'Ltserif':("Lt.svg",),
333     'Lbserif':("Lb.svg",),
334     'Et':    ("Et.svg",),
335     'Eb':    ("Eb.svg",),
336     'Hm':    ("hcap.svg",),
337     'P':     ("P.svg",),
338     'Tb':    ("Tb.svg",),
339     'Tt':    ("Tt.svg",),
340     'Ocross':("Ocross.svg",),
341     'Oterm': ("ocap.svg",),
342     'Q':     ("Q.svg",),
343     'R':     ("rcap.svg",      ((('IBSerif', -0.5,0,0,1),),)),
344     'Rblock':("Rblock.svg", ((('IBSerif', -0.5,0,0,1),),)),
345     'Uterm': ("U.svg",      ((('IBSerif', -0.5,0,0,0),),)),
346     'IBSerif':("IBSerif.svg",),
347     'ITSerif':("ITSerif.svg",),    
348     'Eserif':("Eserif.svg",),
349     # V rules
350     'V':     ("vcap.svg",       ((('V2', 0,0,0,0),),
351                               (('V2', 0,0,0,0), ('Across', 0,0,0,0)),
352                               )),
353     'V2':    ("epsilon.svg", ((('M', 0,0,0,0),),
354                               (('Delta', 0,0,0,0),),
355                               (('Vser',  0,0,0,0),),
356                               )),
357     'M':     ("mcap.svg", ((('IBSerif', -1.5,0,0,0), ('IBSerif', 1.5,0,0,1),),)),
358     'Delta': ("Delta.svg",),
359     'Vser':  ("Vser.svg",),
360     'Across':("acap.svg",),
361     # single daughter rules
362     'b':     ("b.svg", ((('hlike', 0,0,0,0), ('f', 0,0,0,0),),
363                         #(('hlike', 0,0,0,0), ('f', 0,0,0,1),),
364                         )),
365     'b1':    ("b.svg", ((('loop', 0,0,0,0), ('f', 0,0,0,0),),
366                         #(('loop', 0,0,0,0), ('f', 0,0,0,1),),
367                        )),
368     'b0':    ("b.svg", ((('f', 0,0,0,0),),
369                         #(('f', 0,0,0,1),),
370                         )),
371     'h':     ("h.svg", ((('vert', 5,0,1,0),),)),
372     'm':     ("m.svg", ((('h',   5,0,0,0), ('vert', 5,0,1,0),),)),# change later to allow 3 humped m
373     'n':     ("n.svg", ((('hlike', 0,0,0,0),),)),
374     'n1':    ("n.svg", ((('loop', 0,0,0,0),),)),
375     's':     ("s.svg", ((('crv',   0,0,0,0), ('crv',   5,0,1,1),),)),
376     'j':     ("j.svg", ((('crv',   0,-5,0,0),),)), 
377     '?':     ("question.svg", ((('crv', -2.5,-5,0,0),),)),
378     'yogh':  ("yogh.svg",((('crv', -2.5,4,1,0),),)),
379     #terminal rules
380     '2':     ("2.svg",),
381     '30':    ("3.svg",),
382     '7':     ("7.svg",),    
383     'a':     ("a.svg",),
384     'cserif':("cserif.svg",), 
385     'e':     ("e.svg",),
386     'k':     ("k.svg",),
387     'n0':    ("n.svg",),
388     'o0':    ("o.svg",),
389     'r':     ("r.svg",),
390     'serif': ("serif.svg",),
391     'tserif':("tserif.svg",),
392     'lserif':("lserif.svg",),
393     't':     ("t.svg",),
394     'x':     ("x.svg",),
395     'z':     ("z.svg",),
396     'vserl': ("vserl.svg",),
397     'vserr': ("vserr.svg",),
398     'y':     ("y.svg",),
399     'gamma': ("gamma.svg",)
400     }
402 alphabet = {
403     # Uppercase fix Y make 2)
404     '1':     ("start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Bartop.[.ITSerif.].].Barbot2.[.Barbot.[.IBSerif.].].].].].]",),
405     '33':    ("start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.[.C.|.].Eserif.|.].Eterm.[.O.Ocross.].|.].].].]",),
406     '3':     ("start.[.UC.[.UCb.[.E.[.Eterm.[.B.[.P.P.].|.].Eterm.[.Dterm2.[.C.|.].Eserif.|.].|.].|.].].]",
407               "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.[.C.|.].Eserif.|.].Eterm.[.O.Ocross.].|.].].].]",),
408     '4':     ("start.[.UC.[.UCu.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm2.[.Rblock.[.IBSerif.|.].|.].|.].].-.|.].].]",),
409     '5':     ("start.[.UC.[.UCu.[.UCb.[.E.[.Eterm.[.Dterm2.[.Ltserif.|.Lbserif.|.].Eserif.|.].Eterm2.[.P.|.Lterm2.[.Ltserif.|.].-.].|.].|.].-.|.].].]",),
410     '6':     ("start.[.UC.[.UCu.[.UCb.[.E.[.Eterm.[.Dterm.[.O.].Eserif.|.].Eterm2.[.P.|.Lterm2.-.].|.].|.].-.|.].].]",
411               "start.[.UC.[.UCu.[.UCb.[.E.[.Eterm.[.O.Ocross.].Eterm2.[.P.|.Lterm2.-.].|.].|.].-.|.].].]",),
412     '7':     ("start.[.UC.[.UCb.[.X.[.Xtb.[.Xne.Xh.Lterm2.[.Ltserif.|.].].Xtb2.[.Xne.].-.|.].].].]",),
413     '8':     ("start.[.UC.[.UCb.[.E.[.Eterm.[.B.[.P.P.].|.].Eterm.[.B.[.P.P.].|.].|.].].].]",),
414     '9':     ("start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm.[.O.].Eserif.|.].Eterm2.[.P.|.Lterm2.-.].|.].|.].].]",
415               "start.[.UC.[.UCb.[.E.[.Eterm.[.O.Ocross.].Eterm2.[.P.|.Lterm2.-.].|.].|.].].]",),
416     '0':     ("start.[.UC.[.UCb.[.D.[.Dterm.[.O.].Dterm.[.O.].|.].].].]",),
417     'A':     ("start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Barterm.Et.Hm.IBSerif.].|.].].].]", # no flip needed 
418               "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].|.].].].]", 
419               "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].|.].|.].].]", 
420               "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Uterm.[.IBSerif.].Ocross.].|.].].].]",       
421               "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Uterm.[.IBSerif.].Ocross.].|.].|.].].]",
422               "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].Fterm.[.Uterm.[.IBSerif.].Ocross.].|.].|.].].]",
423               "start.[.UC.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].|.].|.].].]",
424               "start.[.UC.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm.[.Uterm.[.IBSerif.].Ocross.].|.].].].]",
425               "start.[.UC.[.UCu.[.UCb.[.V.[.V2.[.Vser.].Across.].|.].-.|.].].]",),
426     'B':     ("start.[.UC.[.UCb.[.E.[.Eterm.[.B.[.P.P.].|.].Eterm.|.].|.].].]",
427               "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm.Eserif.|.].Eterm.[.B.[.P.P.].|.].|.].].].]",),
428     'Be':    ("start.[.UC.[.UCu.[.UCb.[.E.[.Eterm.[.Barterm.Et.Hm.Eb.].Eterm2.[.P.|.Lterm2.-.].|.].|.].-.|.].].]", #cyrillic
429               "start.[.UC.[.UCu.[.UCb.[.E.[.Eterm.[.Dterm.[.Barterm.Et.Eb.].Eserif.|.].Eterm2.[.P.|.Lterm2.-.].|.].|.].-.|.].].]",),
430     'C':     ("start.[.UC.[.UCb.[.D.[.Dterm.[.O.[.Oterm.].].Dterm2.[.C.|.].|.].].].]",),
431     'D':     ("start.[.UC.[.UCb.[.D.[.Dterm.Dterm.[.O.[.Oterm.].].|.].].].]",
432               "start.[.UC.[.UCb.[.D.[.Dterm.[.O.[.Oterm.].].Dterm2.[.Ltserif.|.Lbserif.|.].|.].|.].].].",
433               "start.[.UC.[.UCb.[.D.[.Dterm.[.Barterm.Et.Eb.].Dterm.[.Barterm.Et.Eb.].|.].].].]",),
434     'Delta': ("start.[.UC.[.UCu.[.UCb.[.V.[.V2.[.Delta.].].|.].-.|.].].]",), #Delta
435     'De':    ("start.[.UC.[.UCu.[.UCb.[.D.[.Dterm.[.Barterm.Et.Eb.].Dterm.[.Barterm.Et.Eb.].|.].].-.|.].].]",), #Cyrillic
436     'E':     ("start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.Eserif.|.].Eterm.[.Dterm.[.Barterm.Et.Eb.].Eserif.|.].|.].|.].].]",
437               "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.Eserif.|.].Eterm.[.Dterm.[.O.].Eserif.|.].|.].|.].].]",
438               "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.Eserif.|.].Eterm.[.B.[.P.P.].|.].|.].|.].].]",
439               "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.Eserif.|.].Eterm.[.Barterm.Et.Hm.Eb.].|.].|.].].]",
440               "start.[.UC.[.UCb.[.E.[.Eterm.[.O.Ocross.].Eterm.[.Dterm2.Eserif.|.].|.].].].]",),
441     'Eth':   ("start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm.[.O.].Eserif.|.].Eterm.[.Barterm.Et.Hm.Eb.].|.].|.].].]",),
442     'F':     ("start.[.UC.[.UCb.[.F.[.Fterm.Fterm2.[.Lterm2.Eserif.|.].|.].].].]",),
443     'G':     ("start.[.UC.[.UCb.[.D.[.Dterm.[.O.].Dterm2.[.C.[.Cserif.[.G.].Cserif.-.].|.].|.].].].]",),
444     'Gamma': ("start.[.UC.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm2.|.].].].]",), #Gamma
445     'H':     ("start.[.UC.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm.[.Barterm.Hm.ITSerif.IBSerif.].|.].].].]",
446               "start.[.UC.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm2.[.R.[.IBSerif.|.].|.].|.].].].]",
447               "start.[.UC.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm2.[.Rblock.[.IBSerif.|.].|.].|.].].].]",),
448     'Che':   ("start.[.UC.[.UCu.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm2.[.Rblock.[.IBSerif.|.].|.].|.].].-.|.].].]", #Cyrillic
449               "start.[.UC.[.UCu.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm2.[.R.[.IBSerif.|.].|.].|.].].-.|.].].]",),
450     'Heng':  ("start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Ltserif.|.R.[.IBSerif.|.].|.].|.].].].]",
451               "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Ltserif.|.Rblock.[.IBSerif.|.].|.].|.].].].]",
452               "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm.[.Ltserif.|.R.[.IBSerif.|.].|.].|.].].].]",
453               "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm.[.Ltserif.|.Rblock.[.IBSerif.|.].|.].|.].].].]",),
454     'I':     ("start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Bartop.[.ITSerif.].].Barbot2.[.Barbot.[.IBSerif.].].].].].]",
455               "start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Bartop.[.Tt.].].Barbot2.[.Barbot.[.Tb.].].].].].]",),
456     'J':     ("start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Uterm.[.IBSerif.].].Lterm2.|.].].-.|.].].]",),
457     'K':     ("start.[.UC.[.UCu.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xnw.].Xlr.[.Xne.-.|.Xvt.Xvb.ITSerif.].-.|.].].-.|.].].]",
458               "start.[.UC.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm.[.R.[.IBSerif.|.].|.R.[.IBSerif.|.].-.|.].|.].].].]",),
459     'Zhe':   ("start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Psi.[.IBSerif.R.[.IBSerif.|.].R.[.IBSerif.|.].|.].-.].Barbot2.[.Psi.[.IBSerif.R.[.IBSerif.|.].R.[.IBSerif.|.].|.].].].].].]",), # Cyrillic
460     'L':     ("start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm2.|.].|.].-.|.].].]",),
461     'Lambda':("start.[.UC.[.UCu.[.UCb.[.V.[.V2.[.Vser.].].|.].-.|.].].]",),# Lambda
462     'M':     ("start.[.UC.[.UCu.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xvt.Xvb.ITSerif.].Xlr.[.Xnw.Xvt.Xvt.-.IBSerif.].-.|.].].-.|.].].]",
463               "start.[.UC.[.UCb.[.V.[.V2.[.M.[.IBSerif.IBSerif.|.].].].|.].].]",),
464     'N':     ("start.[.UC.[.UCu.[.UCb.[.X.[.Xlr.[.Xnw.Xvt.Xvt.-.IBSerif.].Xlr.[.Xnw.Xvt.Xvt.-.IBSerif.].-.|.].].-.|.].].]",
465               "start.[.UC.[.UCb.[.L.[.Lterm.[.Uterm.[.IBSerif.].].Lterm.[.Barterm.Et.IBSerif.].|.].|.].].]",),
466     'NN':    ("start.[.UC.[.UCu.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xvt.Xvb.ITSerif.].Xlr.[.Xne.-.|.Xvt.Xvb.ITSerif.].-.|.].].-.|.].].]",), # Cyrillic I
467     'O':     ("start.[.UC.[.UCb.[.D.[.Dterm.[.O.].Dterm.[.O.].|.].].].]",),
468     'P':     ("start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm2.[.P.|.].|.].].].]",
469               "start.[.UC.[.UCb.[.F.[.Fterm.[.Ltserif.|.R.[.IBSerif.|.].|.].Fterm2.[.P.|.].|.].].].]",
470               "start.[.UC.[.UCb.[.F.[.Fterm.[.Ltserif.|.Rblock.[.IBSerif.|.].|.].Fterm2.[.P.|.].|.].].].]",
471               "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm2.[.P.|.].|.].].].]",
472               "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].Fterm2.[.P.|.].|.].].].]",
473               "start.[.UC.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm2.[.P.|.].|.].].].]",),
474     'PL':    ("start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm.[.Barterm.Et.Eb.].Eserif.|.].Eterm2.[.P.|.Lterm2.-.].|.].].].]",
475               "start.[.UC.[.UCb.[.E.[.Eterm.[.Barterm.Et.Hm.Eb.].Eterm2.[.P.|.Lterm2.[.Cserif.-.|.].-.].|.].].].]",),
476     'Phi':   ("start.[.UC.[.UCb.[.Bar.[.Bartop.[.ITSerif.].Barbot.[.IBSerif.].Barmid.[.P.P.|.].].].].]",),
477     'Pi':    ("start.[.UC.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm.[.Barterm.Et.IBSerif.].|.].].].]",),
478     'Psi':   ("start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Psi.[.IBSerif.R.[.IBSerif.|.].R.[.IBSerif.|.].|.].-.].Barbot2.[.Barbot.[.IBSerif.].].].].].]",),
479     'Soft':  ("start.[.UC.[.UCu.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm2.[.P.|.].|.].|.].-.|.].].]",# Cyrillic Yeru/Soft/Hard
480               "start.[.UC.[.UCu.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm2.[.P.|.].|.].|.].-.|.].].]",
481               "start.[.UC.[.UCu.[.UCb.[.F.[.Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].Fterm2.[.P.|.].|.].|.].-.|.].].]",
482               "start.[.UC.[.UCu.[.UCb.[.F.[.Fterm.[.Ltserif.|.Rblock.[.IBSerif.|.].|.].Fterm2.[.P.|.].|.].|.].-.|.].].]",
483               "start.[.UC.[.UCu.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm2.[.P.|.].|.].|.].-.|.].].]",),
484     'Q':     ("start.[.UC.[.UCb.[.D.[.Dterm.[.O.[.Oterm.].].Dterm.[.O.[.Q.|.].].|.].].].]",),
485     'R':     ("start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].].].]",
486               "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].].].]",
487               "start.[.UC.[.UCb.[.F.[.Fterm.[.P.|.R.[.IBSerif.|.].|.].Fterm.[.Barterm.Et.Hm.IBSerif.].|.].|.].].]",
488               "start.[.UC.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].].].]",),
489     'Ya':    ("start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].|.].].]",
490               "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].|.].].]",
491               "start.[.UC.[.UCb.[.F.[.Fterm.[.P.|.R.[.IBSerif.|.].|.].Fterm.[.Barterm.Et.Hm.IBSerif.].|.].].].]",
492               "start.[.UC.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].|.].].]",),
493     'S':     ("start.[.UC.[.UCb.[.E.[.Eterm2.[.P.|.Lterm2.-.].|.Eterm2.[.P.|.Lterm2.-.].-.].|.].].]",),    
494     'Sigma': ("start.[.UC.[.UCb.[.X.[.Xtb.[.Xnw.Xh.|.Lterm2.|.].Xtb.[.Xne.Xh.Lterm2.].-.|.].].].]",),
495     'T':     ("start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Bartop.[.Tt.].].Barbot2.[.Barbot.[.IBSerif.].].].].].]",
496               "start.[.UC.[.UCb.[.Bar.[.Bartop.[.ITSerif.].Barbot.[.IBSerif.].Barmid.[.Hm.Eserif.Hm.|.Eserif.|.].].].].]",),
497     'Theta': ("start.[.UC.[.UCb.[.E.[.Eterm.[.O.Ocross.].Eterm.[.O.Ocross.].|.].].].]",),
498     'Thorn': ("start.[.UC.[.UCu.[.UCb.[.Bar.[.Bartop.[.ITSerif.].Barbot.[.IBSerif.].Barmid.[.P.|.].].].-.|.].].]",),
499     'U':     ("start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm.[.Barterm.Et.IBSerif.].|.].|.].-.|.].].]",
500               "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm.[.Uterm.[.IBSerif.].].|.].].-.|.].].]",
501               "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Uterm.[.IBSerif.].].Lterm.[.Uterm.[.IBSerif.].].|.].].-.|.].].]",
502               "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm.[.Barterm.Et.IBSerif.].|.].].-.|.].].]",),
503     'Tse':   ("start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm.[.Barterm.Et.IBSerif.].|.].].-.|.].].]",),# Cyrillic
504     'V':     ("start.[.UC.[.UCb.[.V.[.V2.[.Vser.].].|.].].]",),
505     'W':     ("start.[.UC.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xvt.Xvb.ITSerif.].Xlr.[.Xnw.Xvt.Xvt.-.IBSerif.].-.|.].].].]",
506               "start.[.UC.[.UCu.[.UCb.[.V.[.V2.[.M.[.IBSerif.IBSerif.|.].].].|.].-.|.].].]",),
507     'X':     ("start.[.UC.[.UCu.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xnw.].Xlr.[.Xne.-.|.Xnw.].-.|.].].-.|.].].]", 
508               "start.[.UC.[.UCb.[.H.[.Hterm.[.R.|.R.-.|.].Hterm.[.R.|.R.-.|.].|.].].].]",),
509     'Xi':    ("start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.[.Ltserif.|.Lbserif.|.].Eserif.|.].Eterm.[.Dterm2.[.Ltserif.|.Lbserif.|.].Eserif.|.].|.].|.].].]",),
510     'Y':     ("start.[.UC.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xnw.].Xlr2.[.Xne.-.|.].-.|.].].].]",),
511     'Z':     ("start.[.UC.[.UCb.[.X.[.Xtb.[.Xne.Xh.Lterm2.].Xtb.[.Xne.Xh.Lterm2.].-.|.].].].]",),
512     # Lowercase
513     'a':    ("start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.n0.-.loop2.[.elike.[.a.crv.-.].].-.].|.].].].].]",
514              "start.[.lc.[.barsym.[.bar.[.n1.[.loop.].n0.-.].-.|.].].]",
515              "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.n0.-.loop2.[.loop.].].|.].].].].]",),
516     'carat':("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.vserr.].-.|.].].].]",),
517     'b':    ("start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.].n0.-.].].].]", 
518              "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.].-.loop2.[.loop.].].-.].].].].]",
519              "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.|.].n0.-.].].].]", 
520              "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.|.].-.loop2.[.loop.].].-.].].].].]",),
521     'c':    ("start.[.lc.[.lc2.[.osym.[.o.[.loop2.[.elike.[.crv.-.|.crv.|.].|.].].].].].]",),
522     'd':    ("start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.].n0.-.].].|.].]",
523              "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.].-.loop2.[.loop.].].-.].|.].].].]",
524              "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.|.].n0.-.].].|.].]",
525              "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.|.].-.loop2.[.loop.].].-.].|.].].].]",),
526     'e':    ("start.[.lc.[.lc2.[.osym.[.o.[.loop2.[.elike.[.e.crv.-.].].].].].].]",
527              "start.[.lc.[.lc2.[.lc3.[.3sym.[.3.[.loop2.[.elike.[.crv.crv.-.].].].].].].].]",),
528     'epsi': ("start.[.lc.[.lc2.[.lc3.[.3sym.[.3.[.loop2.[.elike.[.crv.crv.-.].].].].].].].]",),
529     'f':    ("start.[.lc.[.barsym.[.bar.[.vert.[.xtnd.[.cross.[.f0.[.j.].].].].vert.-.].].].]",),
530     'g':    ("start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.[.j.[.crv.].].].n0.-.].-.|.].].]",
531              "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.[.j.].].-.loop2.[.loop.].].-.].-.|.].].].]",),
532     'gamma':("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.vserr.y0.[.gamma.].].].].].]",),
533     'h':    ("start.[.lc.[.barsym.[.bar.[.b.[.hlike.[.h.].f.].vert.-.].].].]",
534              "start.[.lc.[.barsym.[.bar.[.b.[.hlike.[.h.].f.|.].vert.-.].].].]",),
535     'heng': ("start.[.lc.[.barsym.[.bar.[.b.[.hlike.[.h.[.vert.[.xtnd.[.l.[.j.[.crv.].].].|.].-.].].f.[.j.[.crv.].].].vert.[.srf.-.|.].-.].].].]",),
536     'i':    ("start.[.lc.[.barsym.[.bar.[.vert.vert.[.xtnd.[.idot.].-.].].-.|.].].]",
537              "start.[.lc.[.barsym.[.bar.[.vert.vert.[.xtnd.[.idot.].-.].|.].-.|.].].]",),
538     'j':    ("start.[.lc.[.barsym.[.bar.[.vert.[.xtnd.[.idot.].-.].vert.[.xtnd.[.l.[.j.].].].|.].-.].].]",),
539     'k':    ("start.[.lc.[.barsym.[.bar.[.k.vert.vert.-.].].].]",),
540     'l':    ("start.[.lc.[.barsym.[.bar.[.vert.vert.[.xtnd.[.l.].-.].|.].-.|.].].]",
541              "start.[.lc.[.barsym.[.bar.[.vert.vert.[.xtnd.[.l.|.].-.].|.].-.|.].].]",),
542     'lambda':("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.vserr.y0.].-.|.].].].]",),
543     'm':    ("start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.m.[.h.[.vert.-.].vert.-.].].].vert.-.].].].]",),
544     'mu':   ("start.[.lc.[.barsym.[.bar.[.b.[.hlike.[.h.[.vert.-.].].f.].vert.-.].-.|.].].]",),
545     'muu':  ("start.[.lc.[.barsym.[.bar.[.b.[.hlike.[.m.[.h.[.vert.-.].vert.-.].].f.].vert.-.|.].-.|.].].]",),
546     'n':    ("start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.h.[.vert.-.].].].vert.-.].].].]",),
547     'ng':   ("start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.h.[.vert.[.xtnd.[.l.[.j.].].|.].-.].].].vert.-.].].].]",),
548     'o':    ("start.[.lc.[.lc2.[.osym.[.o.[.loop2.[.loop.[.o0.|.].].].].].].]",),
549     'p':    ("start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.].n0.-.].].-.].]",
550              "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.].-.loop2.[.loop.].].-.].-.].].].]",
551              "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.|.].n0.-.].].-.].]",
552              "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.|.].-.loop2.[.loop.].].-.].-.].].].]",),
553     'q':    ("start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.].n0.-.].].-.|.].]", 
554              "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.].-.loop2.[.loop.].].-.].-.|.].].].]",
555              "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.|.].n0.-.].].-.|.].]", 
556              "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.|.].-.loop2.[.loop.].].-.].-.|.].].].]",),
557     'r':    ("start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.crv.].].vert.-.].].].]",),
558     's':    ("start.[.lc.[.lc2.[.lc3.[.ssym.[.s.[.crv.crv.-.|.].].].].].]",),
559     't':    ("start.[.lc.[.barsym.[.bar.[.vert.[.xtnd.[.cross.[.f0.].].].vert.-.].].].]",),
560     'u':    ("start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.h.[.vert.-.].].].vert.-.].-.|.].].]",),
561     'uu':   ("start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.m.[.h.[.vert.-.].vert.-.].].].vert.-.].-.|.].].]",),
562     'v':    ("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.vserr.].].].].]",),
563     'w':    ("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.w.[.vserr.].].].].].]",),
564     'x':    ("start.[.lc.[.lc2.[.dsym.[.diag.[.x.].-.diag.[.x.].|.].-.].].]",),
565     'y':    ("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.vserr.y0.].].].].]",),
566     'yogh': ("start.[.lc.[.lc2.[.dsym.[.diag.[.z.].|.diag.[.yogh.[.crv.-.].-.|.].-.].].].]",),
567     'z':    ("start.[.lc.[.lc2.[.dsym.[.diag.[.z.].diag.[.z.].-.|.].|.].].]",),
568     'glot': ("start.[.lc.[.barsym.[.bar.[.vert.[.xtnd.[.?.|.].].vert.-.].].].]",),
569     '1l':    ("start.[.lc.[.barsym.[.bar.[.vert.[.srf.[.lserif.].].vert.[.srf.[.serif.].-.].|.].].-.].]",),
570     '2l':    ("start.[.lc.[.lc2.[.dsym.[.diag.[.2.].diag.[.z.].-.|.].|.].].]",),
571     '3l':    ("start.[.lc.[.lc2.[.dsym.[.diag.[.z.].|.diag.[.yogh.[.crv.-.].-.|.].-.].].].]",),
572     '6l':    ("start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.[.j.].].-.loop2.[.loop.].-.].-.].].].].]",),
573     '7l':    ("start.[.lc.[.lc2.[.dsym.[.diag.[.z.].diag.[.7.].-.|.].|.].].]",),
574     '8l':    ("start.[.lc.[.lc2.[.lc3.[.3sym.[.3.[.loop2.[.loop.[.30.|.].].].].].].].]",),
575     '9l':    ("start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.[.j.].].-.loop2.[.loop.].-.].|.].].].].]",),
576     '0l':    ("start.[.lc.[.lc2.[.osym.[.o.[.loop2.[.loop.[.o0.|.].].].].].].]",)
577     }
579 space = 4                                         # number of unit boxes to make a " " space in string
580 units = 36                                        # pixels per unit box in font
581 font = "alphabet_soup/"                           # location of font images
582     
584 # vim: expandtab shiftwidth=4 tabstop=8 softtabstop=4 fileencoding=utf-8 textwidth=99