]> git.donarmstrong.com Git - lilypond.git/commitdiff
Make -deps-box-padding take a positive argument in mm. Fixes #199.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 30 Dec 2006 13:43:35 +0000 (14:43 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 30 Dec 2006 13:43:35 +0000 (14:43 +0100)
Add --left-padding option to lilypond-book, document and set to 3.0 by
default. Shorten music lines correspondingly.

Conflicts:

scripts/lilypond-book.py

Documentation/user/lilypond-book.itely
scm/framework-ps.scm
scm/lily.scm
scripts/lilypond-book.py

index 68177e1e1a33b867a5250267396a270c461e9451..cf79a542ff4a32ddc62964e8f081183d46845823 100644 (file)
@@ -769,6 +769,17 @@ cd out
 ...
 @end example
 
+@itemx --padding=@var{amount}
+Pad EPS boxes by this much. @var{amount} is measured in milimeters,
+and is 3.0 by default.  This option should be used if the lines of
+music stick out of the right margin.
+
+The width of a tightly clipped systems can vary, due to notation
+elements that stick into the left margin, such as bar numbers and
+instrument names. This option will shorten each line and move each 
+line to the right by the same amount.
+
+
 @item -P @var{process}
 @itemx --process=@var{command}
 Process LilyPond snippets using @var{command}.  The default command is
index f06424d72ca3cb844198947baa762732008891ad..38369614510812053f781102a4cad7ef502b79f7 100644 (file)
   (let*
       ((xext (ly:stencil-extent dump-me X))
        (yext (ly:stencil-extent dump-me Y))
-       (left-overshoot (ly:get-option 'eps-box-padding))
+       (left-overshoot (*
+                       -1
+                       (ly:get-option 'eps-box-padding)
+                       (ly:output-def-lookup paper 'mm)
+                       ))
        (bbox
        (map
         (lambda (x)
index f717b5a66d084fa65148419b3b02924653cf7ae0..d5121fe32b3084701bce9d893972a3647029831c 100644 (file)
                                         "delete unusable PostScript files")
              (dump-signatures #f "dump output signatures of each system")
              (dump-tweaks #f "dump page layout and tweaks for each score having the tweak-key layout property set.")
+             
+             (eps-box-padding #f "Pad EPS bounding box left edge by this much to guarantee alignment between systems")
+
              (gs-load-fonts #f
                            "load fonts via Ghostscript.")
+             (gui #f "running from gui; redirect stderr to log file")
+
              (include-book-title-preview #t "include book-titles in preview images.")
              (include-eps-fonts #t "Include fonts in separate-system EPS files.")
              (job-count #f "Process in parallel") 
-
-             (eps-box-padding #f "Pad EPS bounding box left edge by this much to guarantee alignment between systems")
-
-             (gui #f "running from gui; redirect stderr to log file")
              (log-file #f "redirect output to log FILE.log")
+
              (old-relative #f
                            "relative for simultaneous music works
 similar to chord syntax")
index 6699ba2dcb8b5a269536238c32f4331b6c5f92cb..12b97b78fb74c787c75f8740d8c5765bb7d52bea 100644 (file)
@@ -80,7 +80,6 @@ Example usage:
 authors = ('Jan Nieuwenhuizen <janneke@gnu.org>',
       'Han-Wen Nienhuys <hanwen@cs.uu.nl>')
 
-    
 ################################################################
 def exit (i):
     if global_options.verbose:
@@ -140,12 +139,20 @@ def get_option_parser ():
                   metavar="DIR",
                   action='append', dest='include_path',
                   default=[os.path.abspath (os.getcwd ())])
+
+    p.add_option ('--left-padding', 
+                  metavar=_("PAD"),
+                  dest="padding_mm",
+                  help="Pad left side of music to align music inspite of uneven bar numbers. (in mm)",
+                  type="float",
+                  default=-3.0)
     
     p.add_option ("-o", '--output', help=_('write output to DIR'),
                   metavar="DIR",
                   action='store', dest='output_name',
                   default='')
-    p.add_option ('-P', '--process', metavar=_("COMMAND"),
+
+    p.add_option ('-P', '--process', metavar=_ ("COMMAND"),
                   help = _ ("process ly_files using COMMAND FILE..."),
                   action='store', 
                   dest='process_cmd', default='lilypond -b eps')
@@ -704,6 +711,8 @@ PREAMBLE_LY = '''%%%% Generated by %(program_name)s
   #(define dump-extents #t)
   %(font_dump_setting)s
   %(paper_string)s
+  force-assignment = #""
+  line-width = #(- line-width (* mm  %(padding_mm)f))
 }
 
 \layout {
@@ -1058,7 +1067,7 @@ class Lilypond_snippet (Snippet):
                       '\n  ') % vars ()
         preamble_string = string.join (compose_dict[PREAMBLE],
                        '\n  ') % override
-        
+        padding_mm = global_options.padding_mm
         font_dump_setting = ''
         if FONTLOAD in self.option_dict:
             font_dump_setting = '#(define-public force-eps-font-include #t)\n'
@@ -1768,6 +1777,22 @@ def do_options ():
         
     return args
 
+def psfonts_warning (options, basename):
+    if options.format in (TEXINFO, LATEX):
+        psfonts_file = os.path.join (options.output_name, basename + '.psfonts')
+        output = os.path.join (options.output_name, basename +  '.dvi' )
+
+        if not options.create_pdf:
+            if not options.psfonts:
+                warning (_ ("option --psfonts not used"))
+                warning (_ ("processing with dvips will have no fonts"))
+            else:
+                progress ('\n')
+                progress (_ ("DVIPS usage:"))
+                progress ('\n')
+                progress ("    dvips -h %(psfonts_file)s %(output)s" % vars ())
+                progress ('\n')
+
 def main ():
     # FIXME: 85 lines of `main' macramee??
     files = do_options ()
@@ -1796,17 +1821,16 @@ def main ():
     if global_options.format in (TEXINFO, LATEX):
         ## prevent PDF from being switched on by default.
         global_options.process_cmd += ' --formats=eps '
-        
-    if (global_options.format in (TEXINFO, LATEX)
-        and global_options.create_pdf):
-        global_options.process_cmd += "--pdf  -dinclude-eps-fonts -dgs-load-fonts "
-
-        
+        if global_options.create_pdf:
+            global_options.process_cmd += "--pdf -dinclude-eps-fonts -dgs-load-fonts "
     
     if global_options.verbose:
         global_options.process_cmd += " --verbose "
 
-    global_options.process_cmd += " -dread-file-list -deps-box-padding=-3 "
+    if global_options.padding_mm:
+        global_options.process_cmd += " -deps-box-padding=%f " % global_options.padding_mm
+        
+    global_options.process_cmd += " -dread-file-list "
 
     identify ()
 
@@ -1830,19 +1854,7 @@ def main ():
     except Compile_error:
         exit (1)
 
-    if global_options.format in (TEXINFO, LATEX):
-        psfonts_file = os.path.join (global_options.output_name, basename + '.psfonts')
-        output = os.path.join (global_options.output_name, basename +  '.dvi' )
-        
-        if not global_options.psfonts and not global_options.create_pdf:
-            warning (_ ("option --psfonts not used"))
-            warning (_ ("processing with dvips will have no fonts"))
-        else:
-            progress ('\n')
-            progress (_ ("DVIPS usage:"))
-            progress ('\n')
-            progress ("    dvips -h %(psfonts_file)s %(output)s" % vars ())
-            progress ('\n')
+    psfonts_warning (global_options, basename)
 
     inputs = note_input_file ('')
     inputs.pop ()