X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fconfigure.py;h=e5f71f7a2a5d3bb29eb95b0e8af94bd981a51cdc;hb=1a800bf3e502a3072bd41aafdb7a74726bdeb880;hp=92cf561b80c520d51ed249178109e5e7e0a17502;hpb=4296df99601b53815c1263c8d2dda7d9df75f4a8;p=lyx.git diff --git a/lib/configure.py b/lib/configure.py index 92cf561b80..e5f71f7a2a 100644 --- a/lib/configure.py +++ b/lib/configure.py @@ -1064,7 +1064,7 @@ def checkConverterEntries(): checkProg('a RTF -> HTML converter', ['unrtf --html $$i > $$o'], rc_entry = [ r'\converter rtf html "%%" ""' ]) # Do not define a converter to pdf6, ps is a pure export format - checkProg('a PS to PDF converter', ['ps2pdf $$i $$o'], + checkProg('a PS to PDF converter', ['ps2pdf -dALLOWPSTRANSPARENCY $$i $$o'], rc_entry = [ r'\converter ps pdf "%%" "hyperref-driver=dvips"' ]) # checkProg('a PS to TXT converter', ['pstotext $$i > $$o'], @@ -1087,13 +1087,15 @@ def checkConverterEntries(): # Only define a converter from pdf6 for graphics checkProg('a PDF to EPS converter', ['pdftops -eps -f 1 -l 1 $$i $$o'], rc_entry = [ r'\converter pdf6 eps "%%" ""' ]) - # Define a converter from pdf6 to png for Macs where pdftops is missing. + # sips:Define a converter from pdf6 to png for Macs where pdftops is missing. # The converter utility sips allows to force the dimensions of the resulting # png image. The value of 800 pixel for the width is arbitrary and not # related to the current screen resolution or width. # There is no converter parameter for this information. + # + #pdftoppm: Some systems ban IM eps->png conversion. We will offer eps->pdf->png route instead. checkProg('a PDF to PNG converter', - ['sips --resampleWidth 800 --setProperty format png $$i --out $$o'], + ['sips --resampleWidth 800 --setProperty format png $$i --out $$o' , 'pdftoppm -r 72 -png -singlefile $$i > $$o'], rc_entry = [ r'\converter pdf6 png "%%" ""' ]) # Create one converter for a PDF produced using TeX fonts and one for a # PDF produced using non-TeX fonts. This does not produce non-unique @@ -1190,8 +1192,25 @@ def checkConverterEntries(): checkProg('an EPS -> PDF converter', ['epstopdf'], rc_entry = [ r'\converter eps pdf6 "epstopdf --outfile=$$o $$i" ""']) # - checkProg('an EPS -> PNG converter', ['magick $$i[0] $$o', 'convert $$i[0] $$o'], - rc_entry = [ r'\converter eps png "%%" ""']) + # Due to more restrictive policies, it is possible that (image)magick + # does not allow conversions from eps to png. + # So before setting the converter test it it on a mock file + _, cmd = checkProg('an EPS -> PNG converter', ['magick', 'convert']) + if cmd: + writeToFile('mock.eps', r'%!PS') + try: + subprocess.check_call([cmd, "mock.eps", "mock.png"]) + removeFiles(['mock.eps', 'mock.png']) + rc_entry = r'\converter eps png "%s $$i[0] $$o" ""' + addToRC(rc_entry % cmd) + except: + removeFiles(['mock.eps']) + #needs empty record otherwise default converter will be issued + addToRC(r'''\converter eps png "" "" +\converter png eps "" "" +\converter jpg tiff "convert $$i $$o" "" +\converter png tiff "convert $$i $$o" ""''') + logger.info('ImageMagick seems to ban conversions from EPS. Disabling direct EPS->PNG.') # # no agr -> pdf6 converter, since the pdf library used by gracebat is not # free software and therefore not compiled in in many installations. @@ -1290,15 +1309,15 @@ 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 -dsafe --ps $$i" "" -\converter lilypond png "lilypond -dbackend=eps -dsafe --png $$i" ""''') - addToRC(r'\converter lilypond pdf6 "lilypond -dbackend=eps -dsafe --pdf $$i" ""') + addToRC(r'''\converter lilypond eps "lilypond -dbackend=eps --ps $$i" "needauth" +\converter lilypond png "lilypond -dbackend=eps --png $$i" "needauth"''') + addToRC(r'\converter lilypond pdf6 "lilypond -dbackend=eps --pdf $$i" "needauth"') 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 --safe $$i" "" + addToRC(r'''\converter lilypond eps "lilypond -b eps --ps $$i" "needauth" \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 pdf6 "lilypond -b eps --pdf --safe $$i" ""') + addToRC(r'\converter lilypond pdf6 "lilypond -b eps --pdf $$i" "needauth"') logger.info('+ found LilyPond version %s.' % version_number) else: logger.info('+ found LilyPond, but version %s is too old.' % version_number) @@ -1328,12 +1347,12 @@ def checkConverterEntries(): # clicks View PDF after having done a View DVI. To circumvent # this, use different output folders for eps and pdf outputs. cmd = cmd.replace('"', r'\"') - addToRC(r'\converter lilypond-book latex "' + cmd + ' --safe --lily-output-dir=ly-eps $$i" ""') - addToRC(r'\converter lilypond-book pdflatex "' + cmd + ' --safe --pdf --latex-program=pdflatex --lily-output-dir=ly-pdf $$i" ""') - addToRC(r'\converter lilypond-book-ja platex "' + cmd + ' --safe --pdf --latex-program=platex --lily-output-dir=ly-pdf $$i" ""') - addToRC(r'\converter lilypond-book xetex "' + cmd + ' --safe --pdf --latex-program=xelatex --lily-output-dir=ly-pdf $$i" ""') - addToRC(r'\converter lilypond-book luatex "' + cmd + ' --safe --pdf --latex-program=lualatex --lily-output-dir=ly-pdf $$i" ""') - addToRC(r'\converter lilypond-book dviluatex "' + cmd + ' --safe --latex-program=dvilualatex --lily-output-dir=ly-eps $$i" ""') + addToRC(r'\converter lilypond-book latex "' + cmd + ' --lily-output-dir=ly-eps $$i" "needauth"') + addToRC(r'\converter lilypond-book pdflatex "' + cmd + ' --pdf --latex-program=pdflatex --lily-output-dir=ly-pdf $$i" "needauth"') + addToRC(r'\converter lilypond-book-ja platex "' + cmd + ' --pdf --latex-program=platex --lily-output-dir=ly-pdf $$i" "needauth"') + addToRC(r'\converter lilypond-book xetex "' + cmd + ' --pdf --latex-program=xelatex --lily-output-dir=ly-pdf $$i" "needauth"') + addToRC(r'\converter lilypond-book luatex "' + cmd + ' --pdf --latex-program=lualatex --lily-output-dir=ly-pdf $$i" "needauth"') + addToRC(r'\converter lilypond-book dviluatex "' + cmd + ' --latex-program=dvilualatex --lily-output-dir=ly-eps $$i" "needauth"') # Also create the entry to apply LilyPond on DocBook files. However, # command must be passed as argument, and it might already have @@ -1985,7 +2004,7 @@ if __name__ == '__main__': lyx_check_config = True lyx_kpsewhich = True outfile = 'lyxrc.defaults' - lyxrc_fileformat = 36 + lyxrc_fileformat = 37 rc_entries = '' lyx_keep_temps = False version_suffix = ''