*** /usr/local/bin/lilypond-book Thu Apr 11 11:32:21 2002 --- linux/bin/lilypond-book Sun Apr 21 19:13:37 2002 *************** *** 365,371 **** 'letterpaper': {12: in2pt(6)}} option_definitions = [ ! ('EXT', 'f', 'format', 'set format. EXT is one of texi and latex.'), ('DIM', '', 'default-music-fontsize', 'default fontsize for music. DIM is assumed to be in points'), ('DIM', '', 'default-lilypond-fontsize', 'deprecated, use --default-music-fontsize'), ('DIM', '', 'force-music-fontsize', 'force fontsize for all inline lilypond. DIM is assumed be to in points'), --- 365,371 ---- 'letterpaper': {12: in2pt(6)}} option_definitions = [ ! ('EXT', 'f', 'format', 'set format. EXT is one of texi, latex and pdflatex.'), ('DIM', '', 'default-music-fontsize', 'default fontsize for music. DIM is assumed to be in points'), ('DIM', '', 'default-lilypond-fontsize', 'deprecated, use --default-music-fontsize'), ('DIM', '', 'force-music-fontsize', 'force fontsize for all inline lilypond. DIM is assumed be to in points'), *************** *** 406,411 **** --- 406,434 ---- 'output-tex': '{\\preLilypondExample \\input %(fn)s.tex \\postLilypondExample\n}', 'pagebreak': r'\pagebreak', }, + 'pdflatex': { + 'output-lilypond-fragment' : r"""\begin[pdf,singleline,%s]{lilypond} + \context Staff < + \context Voice{ + %s + } + > + \end{lilypond}""", + 'output-filename' : r''' + + \verb+%s+:''', + 'output-lilypond': r"""\begin[%s]{lilypond} + %s + \end{lilypond}""", + 'output-verbatim': "\\begin{verbatim}%s\\end{verbatim}", + 'output-default-post': "\\def\postLilypondExample{}\n", + 'output-default-pre': "\\def\preLilypondExample{}\n", + 'usepackage-graphics': '\\usepackage{graphics}\n', + 'output-pdf': '\\noindent\\parbox{\\lilypondepswidth{%(fn)s.eps}}{\includegraphics{%(fn)s.pdf}}', + 'output-tex': '{\\preLilypondExample \\input %(fn)s.pdftex \\postLilypondExample\n}', + 'midi-link': '\\href{run:%(fn)s.midi}{Midi}', + 'pagebreak': r'\pagebreak', + }, 'texi' : {'output-lilypond': """@lilypond[%s] %s @end lilypond *************** *** 473,478 **** --- 496,520 ---- 'singleline-comment': r"(?m)^.*?(?P(?P^%.*$\n+))", 'numcols': r"(?P\\(?Pone|two)column)", }, + 'pdflatex': {'input': r'(?m)^[^%\n]*?(?P\\mbinput{?([^}\t \n}]*))', + 'include': r'(?m)^[^%\n]*?(?P\\mbinclude{(?P[^}]+)})', + 'option-sep' : ',\s*', + 'header': r"\\documentclass\s*(\[.*?\])?", + 'geometry': r"^(?m)[^%\n]*?\\usepackage\s*(\[(?P.*)\])?\s*{geometry}", + 'preamble-end': r'(?P\\begin{document})', + 'verbatim': r"(?s)(?P\\begin{verbatim}.*?\\end{verbatim})", + 'verb': r"(?P\\verb(?P.).*?(?P=del))", + 'lilypond-file': r'(?m)^[^%\n]*?(?P\\lilypondfile\s*(\[(?P.*?)\])?\s*\{(?P.+)})', + 'lilypond' : r'(?m)^[^%\n]*?(?P\\lilypond\s*(\[(?P.*?)\])?\s*{(?P.*?)})', + 'lilypond-block': r"(?sm)^[^%\n]*?(?P\\begin\s*(\[(?P.*?)\])?\s*{lilypond}(?P.*?)\\end{lilypond})", + 'def-post-re': r"\\def\\postLilypondExample", + 'def-pre-re': r"\\def\\preLilypondExample", + 'usepackage-graphics': r"\usepackage{graphics}", + 'intertext': r',?\s*intertext=\".*?\"', + 'multiline-comment': no_match, + 'singleline-comment': r"(?m)^.*?(?P(?P^%.*$\n+))", + 'numcols': r"(?P\\(?Pone|two)column)", + }, # why do we have distinction between @mbinclude and @include? *************** *** 689,695 **** if __main__.format == 'texi': scan_texi_preamble(chunks) else: ! assert __main__.format == 'latex' scan_latex_preamble(chunks) --- 731,737 ---- if __main__.format == 'texi': scan_texi_preamble(chunks) else: ! assert __main__.format == 'latex' or __main__.format == 'pdflatex' scan_latex_preamble(chunks) *************** *** 802,808 **** return [('lilypond', m.group('code'), options)] def do_columns(m): ! if __main__.format != 'latex': return [] if m.group('num') == 'one': return [('numcols', m.group('code'), 1)] --- 844,850 ---- return [('lilypond', m.group('code'), options)] def do_columns(m): ! if __main__.format != 'latex' and __main__.format != 'pdflatex': return [] if m.group('num') == 'one': return [('numcols', m.group('code'), 1)] *************** *** 905,917 **** basename = basename + "-%i" % taken_file_names[basename] if not g_read_lys: update_file(file_body, os.path.join(g_outdir, basename) + '.ly') ! needed_filetypes = ['tex'] if format == 'texi': needed_filetypes.append('eps') needed_filetypes.append('png') if 'eps' in opts and not ('eps' in needed_filetypes): needed_filetypes.append('eps') pathbase = os.path.join (g_outdir, basename) def f(base, ext1, ext2): a = os.path.isfile(base + ext2) --- 947,965 ---- basename = basename + "-%i" % taken_file_names[basename] if not g_read_lys: update_file(file_body, os.path.join(g_outdir, basename) + '.ly') ! if format == 'pdflatex': ! needed_filetypes = ['pdftex'] ! else: ! needed_filetypes = ['tex'] if format == 'texi': needed_filetypes.append('eps') needed_filetypes.append('png') if 'eps' in opts and not ('eps' in needed_filetypes): needed_filetypes.append('eps') + if 'pdf' in opts and not ('pdf' in needed_filetypes): + needed_filetypes.append('eps') + needed_filetypes.append('pdf') pathbase = os.path.join (g_outdir, basename) def f(base, ext1, ext2): a = os.path.isfile(base + ext2) *************** *** 924,931 **** --- 972,983 ---- todo = [] if 'tex' in needed_filetypes and f(pathbase, '.ly', '.tex'): todo.append('tex') + if 'pdftex' in needed_filetypes and f(pathbase, '.ly', '.pdftex'): + todo.append('pdftex') if 'eps' in needed_filetypes and f(pathbase, '.tex', '.eps'): todo.append('eps') + if 'pdf' in needed_filetypes and f(pathbase, '.eps', '.pdf'): + todo.append('pdf') if 'png' in needed_filetypes and f(pathbase, '.eps', '.png'): todo.append('png') newbody = '' *************** *** 945,957 **** m = re.search ('intertext="(.*?)"', o) if m: newbody = newbody + m.group (1) + "\n\n" if format == 'latex': if 'eps' in opts: s = 'output-eps' ! else: s = 'output-tex' ! else: # format == 'texi' ! s = 'output-all' newbody = newbody + get_output (s) % {'fn': basename } return ('lilypond', newbody, opts, todo, basename) --- 997,1019 ---- m = re.search ('intertext="(.*?)"', o) if m: newbody = newbody + m.group (1) + "\n\n" + + if 'midi' in opts: + newbody = newbody + get_output ('midi-link') % {'fn': basename } + if format == 'latex': if 'eps' in opts: s = 'output-eps' ! else: s = 'output-tex' ! else: ! if format == 'pdflatex': ! if 'pdf' in opts: ! s = 'output-pdf' ! else: ! s = 'output-tex' ! else: # format == 'texi' ! s = 'output-all' newbody = newbody + get_output (s) % {'fn': basename } return ('lilypond', newbody, opts, todo, basename) *************** *** 1013,1018 **** --- 1075,1081 ---- global foutn eps = [] tex = [] + pdf = [] png = [] for c in chunks: *************** *** 1027,1034 **** --- 1090,1103 ---- #ugh if base + '.ly' not in tex: tex.append (base + '.ly') + elif e == 'pdftex': + #ugh + if base + '.ly' not in tex: + tex.append (base + '.ly') elif e == 'png' and g_do_pictures: png.append (base) + elif e == 'pdf' and g_do_pictures: + pdf.append (base) d = os.getcwd() if g_outdir: os.chdir(g_outdir) *************** *** 1046,1052 **** if g_outdir: lilyopts = lilyopts + '--dep-prefix=' + g_outdir + '/' texfiles = string.join (tex, ' ') ! system ('lilypond --header=texidoc %s %s' % (lilyopts, texfiles)) # # Ugh, fixing up dependencies for .tex generation --- 1115,1124 ---- if g_outdir: lilyopts = lilyopts + '--dep-prefix=' + g_outdir + '/' texfiles = string.join (tex, ' ') ! if __main__.format != 'pdflatex': ! system ('lilypond --header=texidoc %s %s' % (lilyopts, texfiles)) ! else : ! system ('lilypond --header=texidoc -fpdftex %s %s' % (lilyopts, texfiles)) # # Ugh, fixing up dependencies for .tex generation *************** *** 1068,1073 **** --- 1140,1148 ---- for g in png: make_pixmap (g) + + for e in pdf: + system(r"epstopdf %s" % e) os.chdir (d)