X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=scripts%2Flilypond-book.py;h=6a8fcc1963eff910910707d0226c6addcd3dbb12;hb=d30cc154540a6596290f85ec14510c90233bd1b1;hp=6699ba2dcb8b5a269536238c32f4331b6c5f92cb;hpb=a68f14eddcd0b57dde6be76abb41d3434f4761fb;p=lilypond.git diff --git a/scripts/lilypond-book.py b/scripts/lilypond-book.py index 6699ba2dcb..6a8fcc1963 100644 --- a/scripts/lilypond-book.py +++ b/scripts/lilypond-book.py @@ -67,20 +67,19 @@ program_name = os.path.basename (sys.argv[0]) original_dir = os.getcwd () backend = 'ps' -help_summary = _ ( -'''Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document. - -Example usage: - - lilypond-book --filter="tr '[a-z]' '[A-Z]'" BOOK - lilypond-book --filter="convert-ly --no-version --from=2.0.0 -" BOOK - lilypond-book --process='lilypond -I include' BOOK -''') +help_summary = ( +_ ("Process LilyPond snippets in hybrid HTML, LaTeX, texinfo or DocBook document.") ++ '\n\n' ++ _ ("Examples:") ++ ''' + lilypond-book --filter="tr '[a-z]' '[A-Z]'" %(BOOK)s + lilypond-book --filter="convert-ly --no-version --from=2.0.0 -" %(BOOK)s + lilypond-book --process='lilypond -I include' %(BOOK)s +''' % {'BOOK': _ ("BOOK")}) authors = ('Jan Nieuwenhuizen ', - 'Han-Wen Nienhuys ') + 'Han-Wen Nienhuys ') - ################################################################ def exit (i): if global_options.verbose: @@ -116,14 +115,13 @@ def warranty (): %s %s -''' % ( _('Copyright (c) %s by') % '2001--2006', +''' % ( _ ('Copyright (c) %s by') % '2001--2006', ' '.join (authors), - _('Distributed under terms of the GNU General Public License.'), - _('It comes with NO WARRANTY.'))) - + _ ("Distributed under terms of the GNU General Public License."), + _ ("It comes with NO WARRANTY."))) def get_option_parser (): - p = ly.get_option_parser (usage='lilypond-book [OPTIONS] FILE', + p = ly.get_option_parser (usage=_ ("%s [OPTION]... FILE") % 'lilypond-book', version="@TOPLEVEL_VERSION@", description=help_summary) @@ -133,47 +131,50 @@ def get_option_parser (): help=_ ("pipe snippets through FILTER [convert-ly -n -]"), default=None) p.add_option ('-f', '--format', - help=_('''use output format FORMAT (texi [default], texi-html, latex, html, docbook)'''), + help=_ ("use output format FORMAT (texi [default], texi-html, latex, html, docbook)"), action='store') - p.add_option ("-I", '--include', help=_('add DIR to include path'), - metavar="DIR", + p.add_option ("-I", '--include', help=_ ("add DIR to include path"), + 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", + 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') - p.add_option ('--pdf', action="store_true", dest="create_pdf", - help="Create PDF files for use with PDFTeX", + help=_ ("Create PDF files for use with PDFTeX"), default=False) - p.add_option ('', '--psfonts', action="store_true", dest="psfonts", help=_ ('''extract all PostScript fonts into INPUT.psfonts for LaTeX must use this with dvips -h INPUT.psfonts'''), default=None) - p.add_option ('-V', '--verbose', help=_("be verbose"), + p.add_option ('-V', '--verbose', help=_ ("be verbose"), action="store_true", default=False, dest="verbose") - p.add_option ('-w', '--warranty', - help=_("show warranty and copyright"), + help=_ ("show warranty and copyright"), action='store_true') - - - p.add_option_group ('bugs', - description='''Report bugs via http://post.gmane.org/post.php''' - '''?group=gmane.comp.gnu.lilypond.bugs\n''') - + p.add_option_group ('bugs', + description=(_ ("Report bugs via") + + ''' http://post.gmane.org/post.php''' + '''?group=gmane.comp.gnu.lilypond.bugs\n''')) return p lilypond_binary = os.path.join ('@bindir@', 'lilypond') @@ -704,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 { @@ -1058,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' @@ -1445,10 +1448,12 @@ def process_snippets (cmd, ly_snippets, texstr_snippets, png_snippets): be_verbose=global_options.verbose, progress_p=1) - if global_options.format in (HTML, TEXINFO): + if global_options.format in (HTML, TEXINFO) and '--formats' not in cmd: cmd += ' --formats=png ' - if global_options.format in (DOCBOOK): + elif global_options.format in (DOCBOOK) and '--formats' not in cmd: cmd += ' --formats=png,pdf ' + + # UGH # the --process=CMD switch is a bad idea # it is too generic for lilypond-book. @@ -1479,7 +1484,7 @@ LATEX_INSPECTION_DOCUMENT = r''' def get_latex_textwidth (source): m = re.search (r'''(?P\\begin\s*{document})''', source) if m == None: - warning (_ ("Can't find \\begin{document} in LaTeX document")) + warning (_ ("cannot find \\begin{document} in LaTeX document")) ## what's a sensible default? return 550.0 @@ -1608,7 +1613,7 @@ def guess_format (input_filename): # FIXME format = ext2format[e] else: - error (_ ("can't determine format for: %s" \ + error (_ ("cannot determine format for: %s" \ % input_filename)) exit (1) return format @@ -1768,6 +1773,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 +1817,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 +1850,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 ()