]> 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:41:20 +0000 (14:41 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 30 Dec 2006 13:41:20 +0000 (14:41 +0100)
Add --left-padding option to lilypond-book, document and set to 3.0 by
default. Shorten music lines correspondingly.

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

index 587df0ee4071f58fd57f4d99ff2537e5d19b51d8..d326bafb9d2113ce83d38cb9786d5385ccb39110 100644 (file)
@@ -775,6 +775,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 23d0f10dfc1ebc00074b507b6df9c0136a609147..e63cb262e8ee4def523bf8fce9207e2098d7c524 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 7f73a3dfde450fd001649cb109fce4dab437bd92..a403861990399ad17a94141c5b3a73ea910fd7ff 100644 (file)
@@ -31,16 +31,18 @@ ensure that all refs to parsed objects are dead.  This is an internal option, an
                                         "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 472101b8b53338edd2d542bcd60c0feee1ea9e57..340c1f0e442910a7ffbf932c50675c0314da2c7f 100644 (file)
@@ -80,7 +80,6 @@ _ ("Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document
 authors = ('Jan Nieuwenhuizen <janneke@gnu.org>',
       'Han-Wen Nienhuys <hanwen@xs4all.nl>')
 
-    
 ################################################################
 def exit (i):
     if global_options.verbose:
@@ -139,11 +138,19 @@ 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"),
                   help = _ ("process ly_files using COMMAND FILE..."),
                   action='store', 
@@ -698,6 +705,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 {
@@ -1052,7 +1061,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'
@@ -1762,6 +1771,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 ()
@@ -1790,15 +1815,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 ()
 
@@ -1822,19 +1848,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 ()