X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=buildscripts%2Fmf-to-table.py;h=d24d38ee1d0fe8f4a8fece3a06ab2eda89721496;hb=b701cf00d70110479e8fe8afddda2756ab77f51f;hp=2ebb9ab290e22358a7b323500f70a927c4839181;hpb=1e3102d407f7101df26ef30caf577425c0d0c96e;p=lilypond.git diff --git a/buildscripts/mf-to-table.py b/buildscripts/mf-to-table.py index 2ebb9ab290..d24d38ee1d 100644 --- a/buildscripts/mf-to-table.py +++ b/buildscripts/mf-to-table.py @@ -4,7 +4,7 @@ # # source file of the GNU LilyPond music typesetter # -# (c) 1997 Han-Wen Nienhuys +# (c) 1997--2004 Han-Wen Nienhuys import os import sys @@ -72,13 +72,15 @@ def parse_logfile (fn): elif tags[0] == 'char': m = { 'description': tags[1], - 'name': group + '-' + tags[7], - 'tex': tags[8], + 'name': group + '-' + tags[9], + 'tex': tags[10], '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]) + 'height':string.atof (tags[6]), + 'wx': string.atof (tags[7]), + 'wy':string.atof (tags[8]), } charmetrics.append (m) elif tags[0] == 'font': @@ -110,15 +112,15 @@ def write_afm_char_metric(file, charmetric): f = 1000; tup = (charmetric['code'], - (charmetric['width'] + charmetric['breapth'])*f, charmetric['name'], -charmetric['breapth'] *f, -charmetric['depth']*f, charmetric['width']*f, - charmetric['height']*f) + charmetric['height']*f, + charmetric['wx'] * f, + charmetric['wy'] * f) - - file.write ('C %d ; WX %d ; N %s ; B %d %d %d %d ;\n'% tup) + file.write ('C %d ; N %s ; B %d %d %d %d ; W %d %d ;\n'% tup) def write_afm_header (file): file.write ("StartFontMetrics 2.0\n") @@ -154,15 +156,31 @@ def write_ps_encoding (file, global_info, charmetrics): def write_fontlist (file, global_info, charmetrics): ##nm = global_info['FontFamily'] nm = font_family + per_line = 3 file.write (r""" -% Lilypond file to list all font symbols and the corresponding names -% Automatically generated by mf-to-table.py -\score{\notes{\fatText -""") +%% LilyPond file to list all font symbols and the corresponding names +%% Automatically generated by mf-to-table.py +\score{\notes{\fatText\time %d/4 +""" % per_line) + + count = 0 for m in charmetrics: - escapedname=re.sub('_','\\\\_', m['name']) - doubleescapedname=re.sub('_','\\\\_', escapedname) - file.write (' s^\\markup { \\musicglyph #"%s" "%s" }\n' % (escapedname, doubleescapedname)) + + count += 1 + +## \musicglyph and \markup require "_" to be escaped differently: + + + scm_string = re.sub('_', r'_', m['name']) + tex_string = re.sub ('_', r'\\_' , m['name']) + +## prevent TeX from interpreting "--" as long dash: + tex_string=re.sub('--','-{}-', tex_string) + + file.write (' s^\\markup { \\musicglyph #"%s" "%s" }\n' % (scm_string, tex_string)) + + if (count % 3) ==0: + file.write (' \\break\n') file.write (r""" } \paper{ @@ -196,16 +214,19 @@ def write_deps (file, deps, targets): file.write ('\n') def help(): - sys.stdout.write(r"""Usage: mf-to-table [options] LOGFILEs -Generate feta metrics table from preparated feta log\n + sys.stdout.write(r"""Usage: mf-to-table [OPTIONS] LOGFILEs +Generate feta metrics table from preparated feta log. + Options: - -a, --afm=FILE .afm file + -a, --afm=FILE specify .afm file -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""" + -t, --tex=FILE name output tex chardefs + + """ ) sys.exit (0)