]> git.donarmstrong.com Git - lilypond.git/commitdiff
*** empty log message ***
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 4 Feb 2005 21:04:12 +0000 (21:04 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 4 Feb 2005 21:04:12 +0000 (21:04 +0000)
ChangeLog
buildscripts/gen-emmentaler-scripts.py
lily/main.cc
ly/generate-embedded-cff.ly
mf/GNUmakefile
scm/define-markup-commands.scm
scm/stencil.scm

index 9ea2d8966a3ff9981728b47599136d8b993bb67d..1ae59b215d5ef80ad36dc554821bb980a55c026d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2005-02-04  Christian Hitz  <chhitz@gmx.net>
+
+       * 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  <hanwen@xs4all.nl>
 
        * mf/GNUmakefile ($(outdir)/lilypond.map): add aybabtu to .map file.
index 8510dd8fbfbf6bb625909fe5a19832a6e7d5295f..6c75e72ef7e6cf8bf1bf3d13eea0fa610469f3dc 100644 (file)
@@ -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
index cbab023671bfb8ac7a1259c6905885684c9c80f0..4fca4df5695c26ec17284cac0fb2196c435dcfad 100644 (file)
@@ -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;
 }
 
index 780280f20bb083690fc637bd53d90f87b809192e..73948e2183777012453a791a5a785df3a225c72c 100644 (file)
             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")
index e34ad641a6d869b95886c229798dbe5e55feba18..e626822222248bb40a542ad3e53204d529321693 100644 (file)
@@ -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 <emmentaler$$i.cff.ps" ; done \
+               do echo "emmentaler-$$i emmentaler-$$i <emmentaler-$$i.cff.ps" ; done \
        >> $@
        echo "aybabtu aybabtu <aybabtu.cff.ps" >> $@
 
index 8d4fc21eca762e32a5b8cb26356423be23fadf98..b6425764ec7fd20d5db822bfec8d52522afc250d 100644 (file)
@@ -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)
index b15731feb536570ec4fbda8b7d650f254197e256..8880f6d02d9c1664b6b31379c5b125e4b1e4c659 100644 (file)
          (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)