From ed509cba1882db8041801696a025cefdf6a6cfbd Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Wed, 6 Apr 2005 09:59:51 +0000 Subject: [PATCH] * mf/aybabtu.pe.in (i): generate PFAAybabtu.pfa * buildscripts/gen-emmentaler-scripts.py (i): generate PFAEmmentaler as well. * scm/framework-ps.scm (munge-lily-font-name): new function (write-preamble): hack: insert PFA equivalent of CFF into .PS. This makes LilyPond output printable on normal PS printers again. * buildscripts/gen-emmentaler-scripts.py (i): generate PFAEmmentaler.pfa aswell. --- ChangeLog | 13 +++++++++++++ buildscripts/gen-emmentaler-scripts.py | 4 ++++ mf/GNUmakefile | 7 +++++-- mf/aybabtu.pe.in | 2 ++ scm/framework-ps.scm | 22 ++++++++++++++++------ 5 files changed, 40 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index f5cdf7f7f7..ee7b8e5ee2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,18 @@ 2005-04-06 Han-Wen Nienhuys + * mf/aybabtu.pe.in (i): generate PFAAybabtu.pfa + + * buildscripts/gen-emmentaler-scripts.py (i): generate + PFAEmmentaler as well. + + * scm/framework-ps.scm (munge-lily-font-name): new function + (write-preamble): hack: insert PFA equivalent of CFF into + .PS. This makes LilyPond output printable on normal PS printers + again. + + * buildscripts/gen-emmentaler-scripts.py (i): generate + PFAEmmentaler.pfa aswell. + * scripts/lilypond-book.py: refactor the compose_ly procedure. Patch by John Williams. diff --git a/buildscripts/gen-emmentaler-scripts.py b/buildscripts/gen-emmentaler-scripts.py index 34b306c3d9..4643c3d5aa 100644 --- a/buildscripts/gen-emmentaler-scripts.py +++ b/buildscripts/gen-emmentaler-scripts.py @@ -68,6 +68,10 @@ LoadTableFromFile("LILY", "feta%(design_size)d.otf-gtable") Generate("%(filename)s-%(design_size)d.otf"); Generate("%(filename)s-%(design_size)d.cff"); Generate("%(filename)s-%(design_size)d.svg"); +SetFontNames("PFA%(name)s-%(design_size)d", "PFA%(name)s", "PFA%(name)s %(design_size)d", "%(design_size)d", "GNU GPL", "@TOPLEVEL_VERSION@"); + +# different name to prevent conflict with OTF +Generate("PFA%(filename)s-%(design_size)d.pfa"); ''' % vars() basename = '%s-%d' % (filename, design_size) diff --git a/mf/GNUmakefile b/mf/GNUmakefile index ed863d2165..3f4ab66c0c 100644 --- a/mf/GNUmakefile +++ b/mf/GNUmakefile @@ -20,6 +20,8 @@ BRACES = a b c d e f g h i OTF_FILES = $(addsuffix .otf, $(addprefix $(outdir)/emmentaler-, $(STAFF_SIZES)))\ $(outdir)/aybabtu.otf +PFA_OTF_FILES = $(addsuffix .pfa, $(addprefix $(outdir)/PFAemmentaler-, $(STAFF_SIZES)))\ + $(outdir)/PFAaybabtu.pfa PE_SCRIPTS = $(addsuffix .pe, $(addprefix $(outdir)/emmentaler-, $(STAFF_SIZES))) \ $(addsuffix .dep, $(addprefix $(outdir)/emmentaler-, $(STAFF_SIZES))) OTF_TABLES = $(addsuffix .otf-table, $(addprefix $(outdir)/feta, $(STAFF_SIZES))) \ @@ -76,7 +78,7 @@ $(PE_SCRIPTS): $(buildscript-dir)/gen-emmentaler-scripts.py ALL_FONTS = $(FETA_FONTS) $(SAUTER_FONTS) -PFA_FILES = $(ALL_FONTS:%=$(outdir)/%.pfa) +PFA_FILES = $(ALL_FONTS:%=$(outdir)/%.pfa) $(PFA_OTF_FILES) # Make tfm files first, log files last, # so that normally log files aren't made twice @@ -183,9 +185,10 @@ $(outdir)/Fontmap.lily: for i in $(FETA_FONTS); do echo "/$$i ($$i.pfa);" ; done > $@ for i in $(STAFF_SIZES); \ do echo "/Emmentaler-$$i (emmentaler-$$i.cff.ps);" ; done \ + do echo "/PFAEmmentaler-$$i (PFAemmentaler-$$i.pfa);" ; done \ >> $@ echo "/Aybabtu (aybabtu.cff.ps);" >> $@ - + echo "/PFAAybabtu (PFAaybabtu.pfa);" >> $@ local-clean: rm -f mfplain.mem mfplain.log diff --git a/mf/aybabtu.pe.in b/mf/aybabtu.pe.in index 62b89a49af..63ecfdfaae 100644 --- a/mf/aybabtu.pe.in +++ b/mf/aybabtu.pe.in @@ -85,3 +85,5 @@ MergeFonts ("feta-alphabet20.pfa"); Generate("aybabtu.otf"); Generate("aybabtu.cff"); Generate("aybabtu.svg"); +SetFontNames("PFAAybabtu-Regular", "PFAAybabtu", "PFAAybabtu Regular", "Regular", "GNU GPL", "@TOPLEVEL_VERSION@"); +Generate("PFAaybabtu.pfa"); diff --git a/scm/framework-ps.scm b/scm/framework-ps.scm index ee072d05ac..ecc78b5e47 100644 --- a/scm/framework-ps.scm +++ b/scm/framework-ps.scm @@ -28,12 +28,12 @@ (define mm-to-bigpoint (/ 72 25.4)) -(define-public (ps-font-command font . override-coding) - (let* ((name (ly:font-file-name font)) +(define-public (ps-font-command font) + (let* ((name (munge-lily-font-name (ly:font-file-name font))) (magnify (ly:font-magnification font))) (string-append - "magfont" (string-encode-integer (hashq name 1000000)) + "magfont" (string-encode-integer (hash name 1000000)) "m" (string-encode-integer (inexact->exact (round (* 1000 magnify))))))) (define (tex-font? fontname) @@ -64,12 +64,12 @@ (define (font-load-command font) (let* ((specced-font-name (ly:font-name font)) (fontname (if specced-font-name - specced-font-name + (munge-lily-font-name specced-font-name) (ly:font-file-name font))) (command (ps-font-command font)) ;; FIXME -- see (ps-font-command ) - (plain (ps-font-command font #f)) + (plain (ps-font-command font)) (designsize (ly:font-design-size font)) (magnification (* (ly:font-magnification font))) (ops (ly:output-def-lookup paper 'outputscale)) @@ -203,6 +203,9 @@ "init-lilypond-parameters\n" "%%EndSetup\n")) +(define-public (munge-lily-font-name name) + (regexp-substitute/global #f "([eE]mmentaler|[aA]ybabtu)" name 'pre "PFA" 1 'post)) + (define (write-preamble paper load-fonts? port) (define (load-fonts paper) (let* ((fonts (ly:paper-fonts paper)) @@ -226,13 +229,20 @@ (cffname (string-append x ".cff.ps")) (cff-file-name (ly:find-file cffname)) ) + + (cond ((and bare-file-name (string-match "\\.pfa" bare-file-name)) (cached-file-contents bare-file-name)) ((and bare-file-name (string-match "\\.pfb" bare-file-name)) (ly:pfb->pfa bare-file-name)) + + ((string-match "([eE]mmentaler|[Aa]ybabtu)" x) + (cached-file-contents + (format "~a.pfa" (munge-lily-font-name x)))) + ((and bare-file-name - (string-match "\\.(otf|cff)" bare-file-name)) + (string-match "\\.(otf|cff)" bare-file-name)) ; replace with the CFF.ps, which lives in a ; separate subdir. -- 2.39.5