I finally solved the problem of automaticaly generating the dicts for
unicode <-> TeX conversion. This is the first step in enabling unicode
support in mathtext.
The STIX projects is usefull after all They keep a nice table of
Unicode symbols at:
http://www.ams.org/STIX/bnb/stix-tbl.ascii-2005-09-24
Any comments about the script are appreciated :). Now I'll dig a bit
deeper into the font classes to fix them to suport unicode.
'''A script for seemlesly copying the data from the stix-tbl.ascii*
file to a set
of python dicts. Dicts are then pickled to coresponding files, for
later retrieval.
Currently used table file:
http://www.ams.org/STIX/bnb/stix-tbl.ascii-2005-09-24
'''
import pickle
table_filename = 'stix-tbl.ascii-2005-09-24'
dict_names = ['uni2type1', 'type12uni', 'uni2tex', 'tex2uni']
dicts = {}
# initialize the dicts
for name in dict_names:
dicts[name] = {}
for line in file(table_filename):
if line[:2]==' 0':
uni_num = eval("u'\\u"+line[2:6].strip().lower()+"'")
type1_name = line[12:37].strip()
tex_name = line[83:110].strip()
if type1_name:
dicts['uni2type1'][uni_num] = type1_name
dicts['type12uni'][type1_name] = uni_num
if tex_name:
dicts['uni2tex'][uni_num] = tex_name
dicts['tex2uni'][tex_name] = uni_num
for name in dict_names:
pickle.dump(dicts[name], open(name + '.pcl','w'))
# An example
uni_char = u'\u00d7'
print dicts['uni2tex'][uni_char]
print dicts['uni2type1'][uni_char]
# Testing of results, testing; feel free to unquote
# _mathtext_data.py can be found in the matplolib dir
#~ from _mathtext_data import latex_to_bakoma
#~ supported = 0
#~ unsupported = 0
#~ for tex_symbol in latex_to_bakoma:
#~ try:
#~ print tex_symbol, dicts['tex2uni'][tex_symbol]
#~ supported += 1
#~ except KeyError:
#~ unsupported += 1
#~ pass
#~ print supported, unsupported