- (autolines, deps) = read_log_file (fn)
- charmetrics = []
-
- global_info = {
- 'filename' : os.path.splitext (os.path.basename (fn))[0]
- }
- group = ''
-
- for l in autolines:
- tags = string.split (l, '@:')
- if tags[0] == 'group':
- group = tags[1]
- elif tags[0] == 'puorg':
- group = ''
- elif tags[0] == 'char':
- name = tags[9]
-
- name = re.sub ('-', 'M', name)
- if group:
- name = group + '.' + name
- m = {
- 'description': tags[1],
- 'name': name,
- 'code': string.atoi (tags[2]),
- 'breapth': string.atof (tags[3]),
- 'width': string.atof (tags[4]),
- 'depth': string.atof (tags[5]),
- 'height': string.atof (tags[6]),
- 'wx': string.atof (tags[7]),
- 'wy': string.atof (tags[8]),
- }
- charmetrics.append (m)
- elif tags[0] == 'font':
- global font_family
- font_family = (tags[3])
- # To omit 'GNU' (foundry) from font name proper:
- # name = tags[2:]
- #urg
- if 0: # testing
- tags.append ('Regular')
-
- encoding = re.sub (' ','-', tags[5])
- tags = tags[:-1]
- name = tags[1:]
- global_info['design_size'] = string.atof (tags[4])
- global_info['FontName'] = string.join (name, '-')
- global_info['FullName'] = string.join (name,' ')
- global_info['FamilyName'] = string.join (name[1:-1],
- '-')
- if 1:
- global_info['Weight'] = tags[4]
- else: # testing
- global_info['Weight'] = tags[-1]
-
- global_info['FontBBox'] = '0 0 1000 1000'
- global_info['Ascender'] = '0'
- global_info['Descender'] = '0'
- global_info['EncodingScheme'] = encoding
-
- elif tags[0] == 'parameter':
- global_info[tags[1]] = tags[2];
-
- return (global_info, charmetrics, deps)
+ (autolines, deps) = read_log_file (fn)
+ charmetrics = []
+
+ global_info = {
+ 'filename' : os.path.splitext (os.path.basename (fn))[0]
+ }
+ group = ''
+
+ for l in autolines:
+ tags = string.split (l, '@:')
+ if tags[0] == 'group':
+ group = tags[1]
+ elif tags[0] == 'puorg':
+ group = ''
+ elif tags[0] == 'char':
+ name = tags[9]
+
+ name = re.sub ('-', 'M', name)
+ if group:
+ name = group + '.' + name
+ m = {
+ 'description': tags[1],
+ 'name': name,
+ 'code': string.atoi (tags[2]),
+ 'breapth': string.atof (tags[3]),
+ 'width': string.atof (tags[4]),
+ 'depth': string.atof (tags[5]),
+ 'height': string.atof (tags[6]),
+ 'wx': string.atof (tags[7]),
+ 'wy': string.atof (tags[8]),
+ }
+ charmetrics.append (m)
+ elif tags[0] == 'font':
+ global font_family
+ font_family = (tags[3])
+ # To omit 'GNU' (foundry) from font name proper:
+ # name = tags[2:]
+ #urg
+ if 0: # testing
+ tags.append ('Regular')
+
+ encoding = re.sub (' ','-', tags[5])
+ tags = tags[:-1]
+ name = tags[1:]
+ global_info['design_size'] = string.atof (tags[4])
+ global_info['FontName'] = string.join (name, '-')
+ global_info['FullName'] = string.join (name,' ')
+ global_info['FamilyName'] = string.join (name[1:-1],
+ '-')
+ if 1:
+ global_info['Weight'] = tags[4]
+ else: # testing
+ global_info['Weight'] = tags[-1]
+
+ global_info['FontBBox'] = '0 0 1000 1000'
+ global_info['Ascender'] = '0'
+ global_info['Descender'] = '0'
+ global_info['EncodingScheme'] = encoding
+
+ elif tags[0] == 'parameter':
+ global_info[tags[1]] = tags[2];
+
+ return (global_info, charmetrics, deps)
- nm = font_family
- for m in charmetrics:
-
- texname = re.sub ('[_.]', 'X', m['name'])
- def digit_to_letter (match):
- return chr (ord (match.group(1)) - ord ('0') + ord ('A'))
- texname = re.sub ('([0-9])', digit_to_letter, texname)
- file.write (r'''\gdef\%s%s{\char%d}%%%s''' % \
- (nm, texname, m['code'],'\n'))
- file.write ('\\endinput\n')
+ nm = font_family
+ for m in charmetrics:
+
+ texname = re.sub ('[_.]', 'X', m['name'])
+ def digit_to_letter (match):
+ return chr (ord (match.group(1)) - ord ('0') + ord ('A'))
+ texname = re.sub ('([0-9])', digit_to_letter, texname)
+ file.write (r'''\gdef\%s%s{\char%d}%%%s''' % \
+ (nm, texname, m['code'],'\n'))
+ file.write ('\\endinput\n')
- -charmetric['breapth'] * f,
- -charmetric['depth'] * f,
- charmetric['width'] * f,
- charmetric['height'] * f,
- global_info['filename'],
- charmetric['code'],
- charmetric['wx'],
- charmetric['wy'])
+ -charmetric['breapth'] * f,
+ -charmetric['depth'] * f,
+ charmetric['width'] * f,
+ charmetric['height'] * f,
+ global_info['filename'],
+ charmetric['code'],
+ charmetric['wx'],
+ charmetric['wy'])
- keys = ['staffsize', 'stafflinethickness', 'staff_space',
- 'linethickness', 'black_notehead_width', 'ledgerlinethickness',
- 'design_size',
- 'blot_diameter'
- ]
- for k in keys:
- if global_info.has_key (k):
- str = str + "(%s . %s)\n" % (k,global_info[k])
+ keys = ['staffsize', 'stafflinethickness', 'staff_space',
+ 'linethickness', 'black_notehead_width', 'ledgerlinethickness',
+ 'design_size',
+ 'blot_diameter'
+ ]
+ for k in keys:
+ if global_info.has_key (k):
+ str = str + "(%s . %s)\n" % (k,global_info[k])
- encs = ['.notdef'] * 256
- for m in charmetrics:
- encs[m['code']] = m['name']
-
- file.write ('/%s [\n' % name)
- for m in range (0, 256):
- file.write (' /%s %% %d\n' % (encs[m], m))
- file.write ('] def\n')
-
-
-def write_fontlist (file, global_info, charmetrics):
- ## nm = global_info['FontFamily']
- nm = font_family
- per_line = 2
- file.write (
-r"""%% LilyPond file to list all font symbols and the corresponding names
-%% Automatically generated by mf-to-table.py
-
-\score {
- \lyrics { \time %d/8
-""" % (2 * per_line + 1))
-
- count = 0
- for m in charmetrics:
- count += 1
-
- ## \musicglyph and \markup require "_" to be escaped
- ## differently
- scm_string = re.sub ('_', r'_', m['name'])
-
- file.write (''' \\markup { \\raise #0.75 \\vcenter
- \\musicglyph #"%s"
- \\typewriter " %s" } 4
- \\noBreak
- ''' % (scm_string, scm_string))
-
- if (count % per_line) == 0:
- file.write (' \\skip 8 \\break\n')
- file.write (r""" }
-
- \layout {
- interscoreline = 1.0
- indent = 0.0 \cm
- \context {
- \Lyrics
- \override SeparationItem #'padding = #2
- minimumVerticalExtent = ##f
- }
- \context {
- \Score
- \remove "Bar_number_engraver"
- }
- }
-}
-""")
+ encs = ['.notdef'] * 256
+ for m in charmetrics:
+ encs[m['code']] = m['name']
+
+ file.write ('/%s [\n' % name)
+ for m in range (0, 256):
+ file.write (' /%s %% %d\n' % (encs[m], m))
+ file.write ('] def\n')
- -d, --dep=FILE print dependency info to FILE
- -h, --help print this help
- -l, --ly=FILE name output table
- -o, --outdir=DIR prefix for dependency info
- -p, --package=DIR specify package
- -t, --tex=FILE name output tex chardefs
+ -d, --dep=FILE print dependency info to FILE
+ -h, --help print this help
+ -l, --ly=FILE name output table
+ -o, --outdir=DIR prefix for dependency info
+ -p, --package=DIR specify package
+ -t, --tex=FILE name output tex chardefs
- getopt.getopt (sys.argv[1:],
- 'a:d:hl:o:p:t:',
- ['enc=', 'outdir=', 'dep=', 'lisp=',
- 'global-lisp=',
- 'tex=', 'ly=', 'debug', 'help', 'package='])
+ getopt.getopt (sys.argv[1:],
+ 'a:d:ho:p:t:',
+ ['enc=', 'outdir=', 'dep=', 'lisp=',
+ 'global-lisp=',
+ 'tex=', 'debug', 'help', 'package='])
- (g, m, deps) = parse_logfile (filenm)
- cs = tfm_checksum (re.sub ('.log$', '.tfm', filenm))
-
- write_tex_defs (open (texfile_nm, 'w'), g, m)
- enc_name = 'FetaEncoding'
- if re.search ('parmesan', filenm):
- enc_name = 'ParmesanEncoding'
- elif re.search ('feta-brace', filenm):
- enc_name = 'FetaBraceEncoding'
- elif re.search ('feta-alphabet', filenm):
- enc_name = 'FetaAlphabetEncoding';
-
- write_ps_encoding (enc_name, open (enc_nm, 'w'), g, m)
- write_character_lisp_table (open (char_lisp_nm, 'w'), g, m)
- write_global_lisp_table (open (global_lisp_nm, 'w'), g)
- if depfile_nm:
- write_deps (open (depfile_nm, 'wb'), deps,
- [base + '.log', base + '.dvi', base + '.pfa',
- base + '.pfb', texfile_nm])
- if lyfile_nm:
- write_fontlist (open (lyfile_nm, 'w'), g, m)
+ (g, m, deps) = parse_logfile (filenm)
+
+ write_tex_defs (open (texfile_nm, 'w'), g, m)
+ enc_name = 'FetaEncoding'
+ if re.search ('parmesan', filenm):
+ enc_name = 'ParmesanEncoding'
+ elif re.search ('feta-brace', filenm):
+ enc_name = 'FetaBraceEncoding'
+ elif re.search ('feta-alphabet', filenm):
+ enc_name = 'FetaAlphabetEncoding';
+
+ write_ps_encoding (enc_name, open (enc_nm, 'w'), g, m)
+ write_character_lisp_table (open (char_lisp_nm, 'w'), g, m)
+ write_global_lisp_table (open (global_lisp_nm, 'w'), g)
+ if depfile_nm:
+ write_deps (open (depfile_nm, 'wb'), deps,
+ [base + '.log', base + '.dvi', base + '.pfa',
+ depfile_nm,
+ base + '.pfb', texfile_nm])