X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=python%2Fbook_latex.py;h=f2aa5e36cf6106e2c427fe30465bf9c1d446be6f;hb=f42142c17b68d84721597f8abf400fa18364b118;hp=fcd539aeaa8219eeeb5e8d07e4860e632ae31bb9;hpb=2941f9718947990dc9c2eefa1f842d54766c0561;p=lilypond.git diff --git a/python/book_latex.py b/python/book_latex.py index fcd539aeaa..f2aa5e36cf 100644 --- a/python/book_latex.py +++ b/python/book_latex.py @@ -3,6 +3,7 @@ import re import tempfile import os +import sys import subprocess import book_base as BookBase from book_snippets import * @@ -124,14 +125,15 @@ Latex_output = { \expandafter\preLilyPondExample \fi \def\lilypondbook{}%% -\input %(base)s-systems.tex +\input{%(base)s-systems.tex} \ifx\postLilyPondExample \undefined \else \expandafter\postLilyPondExample \fi }''', - PRINTFILENAME: '''\\texttt{%(filename)s} + PRINTFILENAME: r'''\texttt{%(filename)s} +\linebreak ''', QUOTE: r'''\begin{quote} @@ -186,13 +188,38 @@ def get_latex_textwidth (source, global_options): progress (_ ("Running `%s' on file `%s' to detect default page settings.\n") % (global_options.latex_program, tmpfile)); cmd = '%s %s' % (global_options.latex_program, tmpfile); - proc = subprocess.Popen (cmd, - universal_newlines=True, shell=True, - stdout=subprocess.PIPE, stderr=subprocess.PIPE); - (parameter_string, error_string) = proc.communicate () - if proc.returncode != 0: - warning (_ ("Unable to auto-detect default page settings:\n%s") - % error_string); + ly.debug_output ("Executing: %s\n" % cmd); + run_env = os.environ.copy() + run_env['LC_ALL'] = 'C' + + ### unknown why this is necessary + universal_newlines = True + if sys.platform == 'mingw32': + universal_newlines = False + ### use os.system to avoid weird sleep() problems on + ### GUB's python 2.4.2 on mingw + # make file to write to + output_dir = tempfile.mkdtemp() + output_filename = os.path.join(output_dir, 'output.txt') + # call command + cmd += " > %s" % output_filename + returncode = os.system(cmd) + parameter_string = open(output_filename).read() + if returncode != 0: + warning (_ ("Unable to auto-detect default settings:\n")) + # clean up + os.remove(output_filename) + os.rmdir(output_dir) + else: + proc = subprocess.Popen (cmd, + env=run_env, + universal_newlines=universal_newlines, + shell=True, + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + (parameter_string, error_string) = proc.communicate () + if proc.returncode != 0: + warning (_ ("Unable to auto-detect default settings:\n%s") + % error_string) os.unlink (tmpfile) if os.path.exists (auxfile): os.unlink (auxfile) @@ -271,8 +298,11 @@ class BookLatexOutputFormat (BookBase.BookOutputFormat): def snippet_output (self, basename, snippet): str = '' rep = snippet.get_replacements (); - rep['base'] = basename - str += self.output_print_filename (basename, snippet) + rep['base'] = basename.replace ('\\', '/') + rep['filename'] = os.path.basename (snippet.filename).replace ('\\', '/') + rep['ext'] = snippet.ext + if PRINTFILENAME in snippet.option_dict: + str += self.output[PRINTFILENAME] % rep if VERBATIM in snippet.option_dict: rep['verb'] = snippet.verb_ly () str += self.output[VERBATIM] % rep