>From address@hidden Tue Oct 03 18:27:22 2017 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [PATCH] Add support for dvipdfmx to \includegraphics X-Mercurial-Node: 0ff83704f9a2cb533f04d5429fd62959085263db X-Mercurial-Series-Index: 1 X-Mercurial-Series-Total: 1 Message-Id: X-Mercurial-Series-Id: User-Agent: Mercurial-patchbomb/4.3.1 Date: Tue, 03 Oct 2017 18:27:22 +0900 From: Ikumi Keita To: dummy * style/graphicx.el (LaTeX-includegraphics-extensions-list): Add support for dvipdfmx. * tests/latex/latex-test.el: New file to check correct extensions are generated. diff --git a/style/graphicx.el b/style/graphicx.el --- a/style/graphicx.el +++ b/style/graphicx.el @@ -124,8 +124,11 @@ temp)) ;; We're generating a .dvi to process with dvips or dvipdfmx (progn - (dolist (x '("jpe?g" "pdf" "png")) - (setq temp (delete x temp))) + ;; dvipdfmx can handle jpeg, pdf and png for image formats. + (unless (and TeX-PDF-mode + (string= (TeX-PDF-from-DVI) "Dvipdfmx")) + (dolist (x '("jpe?g" "pdf" "png")) + (setq temp (delete x temp)))) (delete-dups (append LaTeX-includegraphics-dvips-extensions temp))))) @@ -147,7 +150,12 @@ temp))) ;; For anything else (t - temp)))) + (if (and TeX-PDF-mode + (string= (TeX-PDF-from-DVI) "Dvipdfmx")) + ;; dvipdfmx can handle the same image formats as dvips. + (delete-dups (append LaTeX-includegraphics-dvips-extensions + temp)) + temp))))) (defun LaTeX-includegraphics-extensions (&optional list) "Return appropriate extensions for input files to \\includegraphics. diff --git a/tests/latex/latex-test.el b/tests/latex/latex-test.el --- a/tests/latex/latex-test.el +++ b/tests/latex/latex-test.el @@ -181,4 +181,89 @@ (should (LaTeX-provided-package-options-member "biblatex" "backend=biber")))) +(ert-deftest LaTeX-includegraphics-extensions () + "Check correct extensions are generated accoding to `TeX-engine'." + (with-temp-buffer + (LaTeX-mode) + (TeX-load-style "graphicx") + (let (TeX-engine TeX-PDF-mode TeX-PDF-from-DVI + TeX-PDF-via-dvips-ps2pdf TeX-DVI-via-PDFTeX) + ;; tests for default engine + (setq TeX-engine 'default) + ;; default 1 + (setq TeX-PDF-mode t + TeX-PDF-from-DVI nil + TeX-DVI-via-PDFTeX nil) + (should + (equal (LaTeX-includegraphics-extensions-list) + '("png" "pdf" "jpe?g" "jbig2" "jb2" "mps" + "PNG" "PDF" "JPE?G" "JBIG2" "JB2" "eps"))) + ;; default 2 + (setq TeX-PDF-mode t + TeX-PDF-from-DVI "Dvips" + TeX-DVI-via-PDFTeX nil) + (should + (equal (LaTeX-includegraphics-extensions-list) + '("eps" "mps" "EPS"))) + ;; default 3 + (setq TeX-PDF-mode nil + TeX-PDF-from-DVI nil + TeX-DVI-via-PDFTeX nil) + (should + (equal (LaTeX-includegraphics-extensions-list) + '("eps" "mps" "EPS"))) + ;; default 4 + (setq TeX-PDF-mode nil + TeX-PDF-from-DVI nil + TeX-DVI-via-PDFTeX t) + (should + (equal (LaTeX-includegraphics-extensions-list) + '("png" "pdf" "jpe?g" "jbig2" "jb2" "mps" + "PNG" "PDF" "JPE?G" "JBIG2" "JB2" "eps"))) + ;; default 5 + (setq TeX-PDF-mode t + TeX-PDF-from-DVI "Dvipdfmx" + TeX-DVI-via-PDFTeX nil) + (should + (equal (LaTeX-includegraphics-extensions-list) + '("eps" "mps" "EPS" "jpe?g" "pdf" "png"))) + + ;; tests for luatex engine + (setq TeX-engine 'luatex) + ;; luatex 1 + (setq TeX-PDF-mode t) + (should + (equal (LaTeX-includegraphics-extensions-list) + '("png" "pdf" "jpe?g" "jbig2" "jb2" "mps" + "PNG" "PDF" "JPE?G" "JBIG2" "JB2" "eps"))) + ;; luatex 2 + (setq TeX-PDF-mode nil) + (should + (equal (LaTeX-includegraphics-extensions-list) + '("eps" "mps" "EPS"))) + + ;; test for xetex engine + (setq TeX-engine 'xetex) + (should + (equal (LaTeX-includegraphics-extensions-list) + '("pdf" "eps" "mps" "ps" "png" "jpe?g" "jp2" "jpf" + "PDF" "EPS" "MPS" "PS" "PNG" "JPE?G" "JP2" "JPF" + "bmp" "pict" "psd" "mac" "tga" "gif" "tif" "tiff" + "BMP" "PICT" "PSD" "MAC" "TGA" "GIF" "TIF" "TIFF"))) + + ;; test for other engine + (setq TeX-engine 'omega) + ;; other 1 + (setq TeX-PDF-mode t + TeX-PDF-from-DVI "Dvipdfmx") + (should + (equal (LaTeX-includegraphics-extensions-list) + '("eps" "mps" "EPS" "jpe?g" "pdf" "png"))) + ;; other 2 + (setq TeX-PDF-mode nil + TeX-PDF-from-DVI nil) + (should + (equal (LaTeX-includegraphics-extensions-list) + '("eps" "jpe?g" "pdf" "png")))))) + ;;; latex-test.el ends here