]> git.donarmstrong.com Git - lilypond.git/blobdiff - buildscripts/mf-to-table.py
* The grand 2005-2006 replace.
[lilypond.git] / buildscripts / mf-to-table.py
index d162e0bd187ef853c89aa3daef91745eead51727..7035870483a84a4f491f60ea43340727f4dd21ac 100644 (file)
@@ -1,10 +1,10 @@
 #!@PYTHON@
 
-# mf-to-table.py -- convert spacing info in MF logs .afm and .tex
+# mf-to-table.py -- convert spacing info in MF logs . and .tex
 #
 # source file of the GNU LilyPond music typesetter
 #
-# (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+# (c) 1997--2006 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 
 import os
 import sys
@@ -56,8 +56,6 @@ def tfm_checksum (fn):
 
        return cs
 
-
-## ugh.  What's font_family supposed to be?  It's not an afm thing.
 font_family = 'feta'
 
 def parse_logfile (fn):
@@ -126,34 +124,6 @@ def parse_logfile (fn):
        return (global_info, charmetrics, deps)
 
 
-def write_afm_char_metric (file, charmetric):
-       f = 1000;
-       tup = (charmetric['code'],
-              charmetric['name'],
-              -charmetric['breapth'] * f,
-              -charmetric['depth'] * f,
-              charmetric['width'] * f,
-              charmetric['height'] * f,
-              charmetric['wx'] * f,
-              charmetric['wy'] * f)
-
-       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")
-       file.write ("Comment Automatically generated by mf-to-table.py\n")
-
-
-def write_afm_metric (file, global_info, charmetrics):
-       for (k, v) in global_info.items():
-               file.write ("%s %s\n" % (k, v))
-       file.write ('StartCharMetrics %d\n' % len(charmetrics ))
-       for m in charmetrics:
-               write_afm_char_metric (file, m)
-       file.write ('EndCharMetrics\n')
-       file.write ('EndFontMetrics\n')
-
 
 def write_tex_defs (file, global_info, charmetrics):
        nm = font_family
@@ -238,14 +208,12 @@ r"""%% LilyPond file to list all font symbols and the corresponding names
                ## \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 ('''    \\markup { \\raise #0.75 \\vcenter
              \\musicglyph #"%s"
-             \\typewriter " %s" } 4\n''' % (scm_string, tex_string))
+             \\typewriter " %s" } 4
+             \\noBreak
+             ''' % (scm_string, scm_string))
 
                if (count % per_line) == 0:
                        file.write ('    \\skip 8 \\break\n')
@@ -284,7 +252,6 @@ def help ():
 Generate feta metrics table from preparated feta log.
 
 Options:
-  -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
@@ -299,7 +266,7 @@ Options:
 (options, files) = \
   getopt.getopt (sys.argv[1:],
                 'a:d:hl:o:p:t:',
-                ['enc=', 'afm=', 'outdir=', 'dep=', 'lisp=',
+                ['enc=',  'outdir=', 'dep=', 'lisp=',
                  'global-lisp=',
                  'tex=', 'ly=', 'debug', 'help', 'package='])
 
@@ -308,7 +275,6 @@ char_lisp_nm = ''
 enc_nm = ''
 texfile_nm = ''
 depfile_nm = ''
-afmfile_nm = ''
 lyfile_nm = ''
 outdir_prefix = '.'
 
@@ -331,8 +297,6 @@ for opt in options:
                lyfile_nm = a
        elif o== '--help' or o == '-h':
                help()
-       elif o=='--afm' or o == '-a':
-               afmfile_nm = a
        elif o == '--debug':
                debug_b = 1
        else:
@@ -344,15 +308,6 @@ base = re.sub ('.tex$', '', texfile_nm)
 for filenm in files:
        (g, m, deps) = parse_logfile (filenm)
        cs = tfm_checksum (re.sub ('.log$', '.tfm', filenm))
-       afm = open (afmfile_nm, 'w')
-
-       write_afm_header (afm)
-       afm.write ("Comment TfmCheckSum %d\n" % cs)
-       afm.write ("Comment DesignSize %.2f\n" % g['DesignSize'])
-
-       del g['DesignSize']
-
-       write_afm_metric (afm, g, m)
 
        write_tex_defs (open (texfile_nm, 'w'), g, m)
        enc_name = 'FetaEncoding'
@@ -360,13 +315,15 @@ for filenm in files:
                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 + '.dvi', base + '.pfa', base + '.pfb',
-                            texfile_nm, afmfile_nm])
+                           [base + '.log', base + '.dvi', base + '.pfa',
+                            base + '.pfb', texfile_nm])
        if lyfile_nm:
                write_fontlist (open (lyfile_nm, 'w'), g, m)