From: Han-Wen Nienhuys Date: Fri, 4 Feb 2005 21:04:12 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: release/2.5.14~170 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=5b988950c19151b875628a5b3e0016fd442c61f2;p=lilypond.git *** empty log message *** --- diff --git a/ChangeLog b/ChangeLog index 9ea2d8966a..1ae59b215d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2005-02-04 Christian Hitz + + * scm/scm/define-markup-commands.scm (fill-line): rework for better + alignment with centered texts + + * scm/stencil.scm (stack-stencils-padding-list): new function, takes a + list of paddings + 2005-02-04 Han-Wen Nienhuys * mf/GNUmakefile ($(outdir)/lilypond.map): add aybabtu to .map file. diff --git a/buildscripts/gen-emmentaler-scripts.py b/buildscripts/gen-emmentaler-scripts.py index 8510dd8fbf..6c75e72ef7 100644 --- a/buildscripts/gen-emmentaler-scripts.py +++ b/buildscripts/gen-emmentaler-scripts.py @@ -59,16 +59,16 @@ endloop MergeFonts("feta-alphabet%(design_size)d.pfa"); MergeKern("feta-alphabet%(design_size)d.tfm"); -LoadTableFromFile("LILF", "%(name)s%(design_size)d.subfonts") +LoadTableFromFile("LILF", "%(name)s-%(design_size)d.subfonts") LoadTableFromFile("LILC", "feta%(design_size)d.otf-table") LoadTableFromFile("LILY", "feta%(design_size)d.otf-gtable") -Generate("%(name)s%(design_size)d.otf"); -Generate("%(name)s%(design_size)d.cff"); -Generate("%(name)s%(design_size)d.svg"); +Generate("%(name)s-%(design_size)d.otf"); +Generate("%(name)s-%(design_size)d.cff"); +Generate("%(name)s-%(design_size)d.svg"); ''' % vars() - path = os.path.join (outdir, name + '%d' % design_size + '.pe') + path = os.path.join (outdir, '%s-%d.pe' % (name, design_size)) open (path, 'w').write (script) subfonts = ['feta%(design_size)d', @@ -81,11 +81,11 @@ Generate("%(name)s%(design_size)d.svg"); subfonts_str = string.join (ns) - open (os.path.join (outdir, '%(name)s%(design_size)d.subfonts' % vars()), 'w').write (subfonts_str) + open (os.path.join (outdir, '%(name)s-%(design_size)d.subfonts' % vars()), 'w').write (subfonts_str) - path = os.path.join (outdir, name + '%d' % design_size + '.dep') + path = os.path.join (outdir, '%s-%d.dep' % (name, design_size)) - deps = r'''%(name)s%(design_size)d.otf: $(outdir)/feta%(design_size)d.pfa \ + deps = r'''%(name)s-%(design_size)d.otf: $(outdir)/feta%(design_size)d.pfa \ $(outdir)/parmesan%(design_size)d.pfa \ $(outdir)/feta-alphabet%(design_size)d.pfa feta%(design_size)d.otf-table \ $(outdir)/feta-alphabet%(design_size)d.pfa feta%(design_size)d.otf-gtable diff --git a/lily/main.cc b/lily/main.cc index cbab023671..4fca4df569 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -337,7 +337,7 @@ static void add_output_format (String format) { if (output_format_global != "") - output_format_global += ", "; + output_format_global += ","; output_format_global += format; } diff --git a/ly/generate-embedded-cff.ly b/ly/generate-embedded-cff.ly index 780280f20b..73948e2183 100644 --- a/ly/generate-embedded-cff.ly +++ b/ly/generate-embedded-cff.ly @@ -10,12 +10,12 @@ out-port) )) -#(write-cff "emmentaler-26" "emmentaler26.cff") -#(write-cff "emmentaler-23" "emmentaler23.cff") -#(write-cff "emmentaler-20" "emmentaler20.cff") -#(write-cff "emmentaler-18" "emmentaler18.cff") -#(write-cff "emmentaler-16" "emmentaler16.cff") -#(write-cff "emmentaler-14" "emmentaler14.cff") -#(write-cff "emmentaler-13" "emmentaler13.cff") -#(write-cff "emmentaler-11" "emmentaler11.cff") +#(write-cff "emmentaler-26" "emmentaler-26.cff") +#(write-cff "emmentaler-23" "emmentaler-23.cff") +#(write-cff "emmentaler-20" "emmentaler-20.cff") +#(write-cff "emmentaler-18" "emmentaler-18.cff") +#(write-cff "emmentaler-16" "emmentaler-16.cff") +#(write-cff "emmentaler-14" "emmentaler-14.cff") +#(write-cff "emmentaler-13" "emmentaler-13.cff") +#(write-cff "emmentaler-11" "emmentaler-11.cff") #(write-cff "aybabtu" "aybabtu.cff") diff --git a/mf/GNUmakefile b/mf/GNUmakefile index e34ad641a6..e626822222 100644 --- a/mf/GNUmakefile +++ b/mf/GNUmakefile @@ -18,10 +18,10 @@ FETA_MF_FILES = $(wildcard feta[0-9]*.mf)\ STAFF_SIZES = 11 13 14 16 18 20 23 26 BRACES = a b c d e f g h i -OTF_FILES = $(addsuffix .otf, $(addprefix $(outdir)/emmentaler, $(STAFF_SIZES)))\ +OTF_FILES = $(addsuffix .otf, $(addprefix $(outdir)/emmentaler-, $(STAFF_SIZES)))\ $(outdir)/aybabtu.otf -PE_SCRIPTS = $(addsuffix .pe, $(addprefix $(outdir)/emmentaler, $(STAFF_SIZES))) \ - $(addsuffix .dep, $(addprefix $(outdir)/emmentaler, $(STAFF_SIZES))) +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))) \ $(BRACES:%=$(outdir)/feta-braces-%.otf-table) FETA_FONTS = $(FETA_MF_FILES:.mf=) @@ -125,7 +125,7 @@ INSTALLATION_OUT_FILES9=$(SVG_FILES) export MFINPUTS:=.:$(MFINPUTS) -default: pfa_warning $(ALL_GEN_FILES) $(outdir)/emmentaler20.otf +default: pfa_warning $(ALL_GEN_FILES) $(outdir)/emmentaler-20.otf pfa_warning: ifneq ($(shell $(MFTRACE) --version | sed 's/ .*//'),mftrace) @@ -181,7 +181,7 @@ fontdir: $(addprefix $(outdir)/, lilypond.map lilypond.sfd private-fonts fonts.s $(outdir)/lilypond.map: $(AFM_FILES) for i in $(FETA_FONTS); do echo $$i $$i '<'$$i.pfa; done > $@ for i in $(STAFF_SIZES); \ - do echo "emmentaler$$i emmentaler-$$i > $@ echo "aybabtu aybabtu > $@ diff --git a/scm/define-markup-commands.scm b/scm/define-markup-commands.scm index 8d4fc21eca..b6425764ec 100644 --- a/scm/define-markup-commands.scm +++ b/scm/define-markup-commands.scm @@ -100,19 +100,34 @@ gsave /ecrm10 findfont (if (ly:stencil-empty? stc) point-stencil stc)) orig-stencils)) - (text-width (apply + - (map (lambda (stc) - (if (ly:stencil-empty? stc) - 0.0 - (interval-length (ly:stencil-extent stc X)))) - stencils))) + (text-widths + (map (lambda (stc) + (if (ly:stencil-empty? stc) + 0.0 + (interval-length (ly:stencil-extent stc X)))) + stencils)) + (text-width (apply + text-widths)) (word-count (length stencils)) (word-space (chain-assoc-get 'word-space props)) (line-width (chain-assoc-get 'linewidth props)) - (fill-space (if (< line-width text-width) - word-space - (/ (- line-width text-width) - (if (= word-count 1) 2 (- word-count 1))))) + (fill-space + (cond + ((= word-count 1) + (list + (/ (- line-width text-width) 2) + (/ (- line-width text-width) 2))) + ((= word-count 2) + (list + (- line-width text-width))) + (else + (get-fill-space word-count line-width text-widths)))) + (fill-space-normal + (map (lambda (x) + (if (< x word-space) + word-space + x)) + fill-space)) + (line-stencils (if (= word-count 1) (list point-stencil @@ -122,7 +137,30 @@ gsave /ecrm10 findfont (if (null? (remove ly:stencil-empty? orig-stencils)) empty-stencil - (stack-stencils X RIGHT fill-space line-stencils)))) + (stack-stencils-padding-list X RIGHT fill-space-normal line-stencils)))) + +(define (get-fill-space word-count line-width text-widths) + "Calculates the necessary paddings between each two adjacent texts. + The lengths of all texts are stored in @var{text-widths}. + The normal formula for the padding between texts a and b is: + padding = line-width/(word-count - 1) - (length(a) + length(b))/2 + The first and last padding have to be calculated specially using the + whole length of the first or last text. + Returns a list of paddings. +" + (cond + ;; special case first padding + ((= (length text-widths) word-count) + (cons + (- (- (/ line-width (1- word-count)) (car text-widths)) (/ (car (cdr text-widths)) 2)) + (get-fill-space word-count line-width (cdr text-widths)))) + ;; special case last padding + ((= (length text-widths) 2) + (list (- (/ line-width (1- word-count)) (+ (/ (car text-widths) 2) (car (cdr text-widths)))) 0)) + (else + (cons + (- (/ line-width (1- word-count)) (/ (+ (car text-widths) (car (cdr text-widths))) 2)) + (get-fill-space word-count line-width (cdr text-widths)))))) (define (font-markup qualifier value) (lambda (layout props arg) diff --git a/scm/stencil.scm b/scm/stencil.scm index b15731feb5..8880f6d02d 100644 --- a/scm/stencil.scm +++ b/scm/stencil.scm @@ -13,6 +13,15 @@ (car stils) axis dir (stack-stencils axis dir padding (cdr stils)) padding)))) +(define-public (stack-stencils-padding-list axis dir padding stils) + "Stack stencils STILS in direction AXIS, DIR, using a list of PADDING." + (cond + ((null? stils) empty-stencil) + ((null? (cdr stils)) (car stils)) + (else (ly:stencil-combine-at-edge + (car stils) axis dir (stack-stencils-padding-list axis dir (cdr padding) (cdr stils)) + (car padding))))) + (define-public (stack-lines dir padding baseline stils) "Stack vertically with a baseline-skip." (if (null? stils)