]> git.donarmstrong.com Git - lilypond.git/commitdiff
Correct convert-ly of page spacing
authorKeith OHara <k-ohara5a5a@oco.net>
Sat, 8 Jan 2011 11:21:41 +0000 (03:21 -0800)
committerGraham Percival <graham@percival-music.ca>
Sun, 9 Jan 2011 06:47:20 +0000 (06:47 +0000)
Add a new rule to convert assignments to some page spacing variables
 from mm to staff spaces
Add a NOT_SMART for variables the rule is unable to convert
Correct text of a NOT_SMART

Documentation/changes.tely
input/regression/morgenlied.ly
input/regression/typography-demo.ly
python/convertrules.py

index 70e022276a25e77ed1a03598ec2ddc50dc385a55..635984362fd40e6a85f41de5ccdc6e9959d5f000 100644 (file)
@@ -454,6 +454,14 @@ from being typeset.
 @item
 The vertical spacing engine has been drastically changed, making
 it more flexible and easier to control.
+The spacing between staves within a system can now change
+to better use the space on the page.
+User-defined contexts may participate in this flexible spacing,
+depending on how their @code{staff-affinity} is defined.
+Some page formatting variables (@code{page-top-space},
+@code{between-system-space -padding}, and
+@code{before- between- after-title-space}) have been replaced
+by flexible vertical dimensions.
 
 @end itemize
 
index 4b5cd97dd412ea82e778eb32d37f2f02616e8429..7a9c3b7c709614922971390d95e8b22316780983 100644 (file)
@@ -38,8 +38,7 @@ manuscriptBreak = { \break }
 %#(set-global-staff-size (* 5.8 mm))
     line-width = #(* mm 160)
     indent = 8\mm
-    interscoreline = 2.\mm
-    between-system-space = 15\mm
+    system-system-spacing #'basic-distance = #10.3
     ragged-bottom = ##t 
     }
 
@@ -171,7 +170,6 @@ pianoLH =  \relative c'' \repeat volta 2 {
        \layout {
            \context {
                \Lyrics
-               \override VerticalAxisGroup #'minimum-Y-extent = #'(-0.5 . 2.5)
                \override LyricText #'font-size = #-1
            }
            \context {
index a28757a87137617c8b3d1bc40918985d8f37e39c..d3d7d1c2f4c2363ffd71f3e3c6459ebba0625e1a 100644 (file)
@@ -19,8 +19,7 @@ ignoreMelismaOff = \unset ignoreMelismata
                                %#(set-global-staff-size (* 5.8 mm))
   indent = #(* mm 4)
   line-width = #(* mm 140)
-  interscoreline = 2.\mm
-  between-system-space = 15\mm
+  system-system-spacing #'basic-distance = #10.3
   ragged-bottom = ##t 
 }
 
@@ -146,7 +145,6 @@ pianoLH =  \relative c'' \repeat volta 2\new Voice {
       \layout {
        \context {
          \Lyrics
-         \override VerticalAxisGroup #'minimum-Y-extent = #'(-0.85 . 2.2)
          \override LyricText #'font-size = #-1
        }
        \context {
index 06e144a23f020902af4345b8d39caceeee1744d3..c3cbc2133809dcb2b10d658f2461a1bdcda28208 100644 (file)
@@ -2964,22 +2964,29 @@ def conv(str):
                   '(Note|Rest|Skip_event)_swallow_translator|String_number_engraver)"*',
                   '', str)
 
-    str = re.sub (r"page-top-space\s*=\s*#([0-9.]+)",
-                  r"top-system-spacing #'space = #\1",
+    # match through the end of assignments in the form "x = 30", "x = 1 \in", or "x = #3"
+    str = re.sub (r"(page-top-space)\s*=\s*(([+-]?[.\d]*\s*\\[-\w]+)|(#?\s*[-+]?[.\d]+))",
+                  r"obsolete-\g<0>"
+                  r"  top-system-spacing #'space = #(/ obsolete-\1 staff-space)",
                   str)
-    str = re.sub (r"between-system-space\s*=\s*#([0-9.]+)",
-                  r"between-system-spacing #'space = #\1\nbetween-scores-system-spacing #'space = #\1",
+    str = re.sub (r"(between-system-space)\s*=\s*(([+-]?[.\d]*\s*\\[-\w]+)|(#?\s*[-+]?[.\d]+))",
+                  r"obsolete-\g<0>"
+                  r"  between-system-spacing #'space = #(/ obsolete-\1 staff-space)"
+                  r"  between-scores-system-spacing #'space = #(/ obsolete-\1 staff-space)",
                   str)
-    str = re.sub (r"between-system-padding\s*=\s*#([0-9.]+)",
-                  r"between-system-spacing #'padding = #\1\nbetween-scores-system-spacing #'padding = #\1",
+    str = re.sub (r"(between-system-padding)\s*=\s*(([+-]?[.\d]*\s*\\[-\w]+)|(#?\s*[-+]?[.\d]+))",
+                  r"obsolete-\g<0>"
+                  r"  between-system-spacing #'padding = #(/ obsolete-\1 staff-space)"
+                  r"  between-scores-system-spacing #'padding = #(/ obsolete-\1 staff-space)",
                   str)
-    str = re.sub (r"(after|between|before)-title-space\s*=\s*#([0-9.]+)",
-                  r"\1-title-spacing #'space = #\2",
+    str = re.sub (r"((before|between|after)-title-space)\s*=\s*(([+-]?[.\d]*\s*\\[-\w]+)|(#?\s*[-+]?[.\d]+))",
+                  r"obsolete-\g<0>"
+                  r"  \2-title-spacing #'space = #(/ obsolete-\1 staff-space)",
                   str)
 
-    if re.search(r'minimum-Y-extent', str):
+    if re.search(r"VerticalAxisGroup\s*#\s*'minimum-Y-extent", str):
         stderr_write("\n")
-        stderr_write(NOT_SMART % _("vertical spacing has been changed; minimum-Y-extent is obsolete.\n"))
+        stderr_write(NOT_SMART % _("minimum-Y-extent; vertical spacing no longer depends on the Y-extent of a VerticalAxisGroup.\n"))
         stderr_write(UPDATE_MANUALLY)
 
     return str
@@ -3131,7 +3138,8 @@ def conv(str):
 
 @rule ((2, 13, 46),
     _ ("Change stringTunings from a list of semitones to a list of pitches.\n"\
-       "Change tenor and baritone ukulele names in string tunings."))
+       "Change tenor and baritone ukulele names in string tunings.\n"\
+       "Generate messages for manual conversion of vertical spacing if required."))
 
 def conv(str):
     def semitones2pitch(semitones):
@@ -3161,6 +3169,16 @@ def conv(str):
           new_tunings , str)
 
     str = re.sub (r"ukulele-(tenor|baritone)-tuning", r"\1-ukulele-tuning", str)
+
+    if re.search (r"[^-]page-top-space", str):
+        stderr_write (NOT_SMART % "page-top-space.  " + UPDATE_MANUALLY)
+    if re.search (r"[^-]between-system-(space|padding)", str):
+        stderr_write (NOT_SMART % "between-system-space, -padding.  " + UPDATE_MANUALLY)
+    if re.search (r"[^-](before|between|after)-title-space", str):
+        stderr_write (NOT_SMART % "-title-space.  " + UPDATE_MANUALLY)
+    if re.search (r"\\name\s", str):
+        stderr_write("\n" + _("Vertical spacing changes might affect user-defined contexts.  ") + UPDATE_MANUALLY)
+
     return str
 
 # Guidelines to write rules (please keep this at the end of this file)