X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=lib%2Fconfigure.py;h=3ffec2b5b595d85f4b5c021b49c66bed8452eb22;hb=c393abbe12c360eec07a3dcbb5929e6b7c0ad329;hp=4b7fbcbdc2ce8e01c43cd0fe461b7812a7ba0ec0;hpb=7f072cc5d7be62125ffe4e301adcf7e8ce7ef2ac;p=lyx.git diff --git a/lib/configure.py b/lib/configure.py index 4b7fbcbdc2..3ffec2b5b5 100644 --- a/lib/configure.py +++ b/lib/configure.py @@ -378,7 +378,7 @@ def checkDTLtools(): def checkLatex(dtl_tools): ''' Check latex, return lyx_check_config ''' - path, LATEX = checkProg('a Latex2e program', ['latex $$i', 'platex $$i', 'latex2e $$i']) + path, LATEX = checkProg('a Latex2e program', ['latex $$i', 'latex2e $$i']) path, PPLATEX = checkProg('a DVI postprocessing program', ['pplatex $$i']) #----------------------------------------------------------------- path, PLATEX = checkProg('pLaTeX, the Japanese LaTeX', ['platex $$i']) @@ -392,7 +392,6 @@ def checkLatex(dtl_tools): if cmdOutput(PLATEX + ' chklatex.ltx').find('pLaTeX2e') != -1: # We have the Japanese pLaTeX2e addToRC(r'\converter platex dvi "%s" "latex"' % PLATEX) - LATEX = PLATEX else: PLATEX = '' removeFiles(['chklatex.ltx', 'chklatex.log']) @@ -506,6 +505,7 @@ def checkFormatEntries(dtl_tools): \Format literate nw NoWeb N "" "%%" "document" \Format sweave Rnw "Sweave" S "" "%%" "document" \Format lilypond ly "LilyPond music" "" "" "%%" "vector" +\Format lilypond-book lytex "LilyPond book (LaTeX)" "" "" "%%" "document" \Format latex tex "LaTeX (plain)" L "" "%%" "document" \Format pdflatex tex "LaTeX (pdflatex)" "" "" "%%" "document" \Format xetex tex "LaTeX (XeTeX)" "" "" "%%" "document" @@ -565,14 +565,15 @@ def checkFormatEntries(dtl_tools): \Format csv csv "Table (CSV)" "" "" "" "document" \Format fax "" Fax "" "" "" "document" \Format lyx lyx LyX "" "" "" "" -\Format lyx13x lyx13 "LyX 1.3.x" "" "" "" "document" -\Format lyx14x lyx14 "LyX 1.4.x" "" "" "" "document" -\Format lyx15x lyx15 "LyX 1.5.x" "" "" "" "document" -\Format lyx16x lyx16 "LyX 1.6.x" "" "" "" "document" +\Format lyx13x 13.lyx "LyX 1.3.x" "" "" "" "document" +\Format lyx14x 14.lyx "LyX 1.4.x" "" "" "" "document" +\Format lyx15x 15.lyx "LyX 1.5.x" "" "" "" "document" +\Format lyx16x 16.lyx "LyX 1.6.x" "" "" "" "document" \Format clyx cjklyx "CJK LyX 1.4.x (big5)" "" "" "" "document" \Format jlyx cjklyx "CJK LyX 1.4.x (euc-jp)" "" "" "" "document" \Format klyx cjklyx "CJK LyX 1.4.x (euc-kr)" "" "" "" "document" \Format lyxpreview lyxpreview "LyX Preview" "" "" "" "" +\Format lyxpreview-lytex lyxpreview-lytex "LyX Preview (LilyPond book)" "" "" "" "" \Format lyxpreview-platex lyxpreview-platex "LyX Preview (pLaTeX)" "" "" "" "" \Format pdftex pdftex_t PDFTEX "" "" "" "" \Format program "" Program "" "" "" "" @@ -611,7 +612,7 @@ def checkConverterEntries(): rc_entry = [r'''\converter literate latex "%%" "" \converter literate pdflatex "%%" ""''']) # - checkProg('a Sweave -> LaTeX converter', ['R CMD Sweave $$i'], + checkProg('a Sweave -> LaTeX converter', ['Rscript --vanilla $$s/scripts/lyxsweave.R $$i $$e'], rc_entry = [r'''\converter sweave latex "%%" "" \converter sweave pdflatex "%%" ""''']) # @@ -777,7 +778,6 @@ def checkConverterEntries(): checkProg('a Dot -> Image converter', ['dot'], rc_entry = [ r'''\converter dot eps "dot -Teps $$i -o $$o" "" -\converter dot pdf "dot -Tpdf $$i -o $$o" "" \converter dot png "dot -Tpng $$i -o $$o" ""''', '']) # @@ -805,21 +805,49 @@ def checkConverterEntries(): version_number = match.groups()[0] version = version_number.split('.') if int(version[0]) > 2 or (len(version) > 1 and int(version[0]) == 2 and int(version[1]) >= 11): - addToRC(r'''\converter lilypond eps "lilypond -dbackend=eps --ps $$i" "" -\converter lilypond png "lilypond -dbackend=eps --png $$i" ""''') - addToRC(r'\converter lilypond pdf "lilypond -dbackend=eps --pdf $$i" ""') - print '+ found LilyPond version %s.' % version_number + addToRC(r'''\converter lilypond eps "lilypond -dbackend=eps -dsafe --ps $$i" "" +\converter lilypond png "lilypond -dbackend=eps -dsafe --png $$i" ""''') + addToRC(r'\converter lilypond pdf "lilypond -dbackend=eps -dsafe --pdf $$i" ""') + logger.info('+ found LilyPond version %s.' % version_number) elif int(version[0]) > 2 or (len(version) > 1 and int(version[0]) == 2 and int(version[1]) >= 6): - addToRC(r'''\converter lilypond eps "lilypond -b eps --ps $$i" "" + addToRC(r'''\converter lilypond eps "lilypond -b eps --ps --safe $$i" "" \converter lilypond png "lilypond -b eps --png $$i" ""''') if int(version[0]) > 2 or (len(version) > 1 and int(version[0]) == 2 and int(version[1]) >= 9): - addToRC(r'\converter lilypond pdf "lilypond -b eps --pdf $$i" ""') + addToRC(r'\converter lilypond pdf "lilypond -b eps --pdf --safe $$i" ""') logger.info('+ found LilyPond version %s.' % version_number) else: logger.info('+ found LilyPond, but version %s is too old.' % version_number) else: logger.info('+ found LilyPond, but could not extract version number.') # + path, lilypond_book = checkProg('a LilyPond book (LaTeX) -> LaTeX converter', ['lilypond-book']) + if (lilypond_book != ''): + version_string = cmdOutput("lilypond-book --version") + match = re.match('^(\S+)$', version_string) + if match: + version_number = match.groups()[0] + version = version_number.split('.') + if int(version[0]) > 2 or (len(version) > 1 and int(version[0]) == 2 and int(version[1]) >= 13): + addToRC(r'\converter lyxpreview-lytex ppm "python -tt $$s/scripts/lyxpreview-lytex2bitmap.py" ""') + if dvipng == "dvipng": + addToRC(r'\converter lyxpreview-lytex png "python -tt $$s/scripts/lyxpreview-lytex2bitmap.py" ""') + else: + addToRC(r'\converter lyxpreview-lytex png "" ""') + # Note: The --lily-output-dir flag is required because lilypond-book + # does not process input again unless the input has changed, + # even if the output format being requested is different. So + # once a .eps file exists, lilypond-book won't create a .pdf + # even when requested with --pdf. This is a problem if a user + # clicks View PDF after having done a View DVI. To circumvent + # this, use different output folders for eps and pdf outputs. + addToRC(r'\converter lilypond-book latex "lilypond-book --safe --lily-output-dir=ly-eps $$i" ""') + addToRC(r'\converter lilypond-book pdflatex "lilypond-book --safe --pdf --latex-program=pdflatex --lily-output-dir=ly-pdf $$i" ""') + logger.info('+ found LilyPond-book version %s.' % version_number) + else: + logger.info('+ found LilyPond-book, but version %s is too old.' % version_number) + else: + logger.info('+ found LilyPond-book, but could not extract version number.') + # checkProg('a Noteedit -> LilyPond converter', ['noteedit --export-lilypond $$i'], rc_entry = [ r'\converter noteedit lilypond "%%" ""', '']) # @@ -1191,10 +1219,13 @@ def checkTeXAllowSpaces(): if lyx_check_config: msg = "Checking whether TeX allows spaces in file names... " writeToFile('a b.tex', r'\message{working^^J}' ) - if os.name == 'nt': - latex_out = cmdOutput(LATEX + r""" "\nonstopmode\input{\"a b\"}" """) + if LATEX != '': + if os.name == 'nt': + latex_out = cmdOutput(LATEX + r""" "\nonstopmode\input{\"a b\"}" """) + else: + latex_out = cmdOutput(LATEX + r""" '\nonstopmode\input{"a b"}' """) else: - latex_out = cmdOutput(LATEX + r""" '\nonstopmode\input{"a b"}' """) + latex_out = '' if 'working' in latex_out: logger.info(msg + 'yes') tex_allows_spaces = 'true'