branch: externals/auctex
commit 7371b4617346d6f77fed2e916acd5b794743a733
Author: Ikumi Keita <[email protected]>
Commit: Ikumi Keita <[email protected]>
Add support for dvipdfmx to \includegraphics
* style/graphicx.el (LaTeX-includegraphics-extensions-list): Add
support for dvipdfmx.
* tests/latex/latex-test.el (LaTeX-includegraphics-extensions): New
test to check whether correct extensions are generated.
---
style/graphicx.el | 15 +++++++--
tests/latex/latex-test.el | 86 +++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 98 insertions(+), 3 deletions(-)
diff --git a/style/graphicx.el b/style/graphicx.el
index 94ec51c..bb89b13 100644
--- a/style/graphicx.el
+++ b/style/graphicx.el
@@ -124,8 +124,11 @@ Return value is a list of regexps."
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))))
(TeX-delete-duplicate-strings
(append LaTeX-includegraphics-dvips-extensions
temp)))))
@@ -148,7 +151,13 @@ Return value is a list of regexps."
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.
+ (TeX-delete-duplicate-strings
+ (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
index a2dc565..78d2341 100644
--- a/tests/latex/latex-test.el
+++ b/tests/latex/latex-test.el
@@ -162,4 +162,90 @@ backend=biber % here is a comment
(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 (sort (LaTeX-includegraphics-extensions-list) #'string<)
+ (sort '("png" "pdf" "jpe?g" "jbig2" "jb2" "mps"
+ "PNG" "PDF" "JPE?G" "JBIG2" "JB2" "eps") #'string<)))
+ ;; default 2
+ (setq TeX-PDF-mode t
+ TeX-PDF-from-DVI "Dvips"
+ TeX-DVI-via-PDFTeX nil)
+ (should
+ (equal (sort (LaTeX-includegraphics-extensions-list) #'string<)
+ (sort '("eps" "mps" "EPS") #'string<)))
+ ;; default 3
+ (setq TeX-PDF-mode nil
+ TeX-PDF-from-DVI nil
+ TeX-DVI-via-PDFTeX nil)
+ (should
+ (equal (sort (LaTeX-includegraphics-extensions-list) #'string<)
+ (sort '("eps" "mps" "EPS") #'string<)))
+ ;; default 4
+ (setq TeX-PDF-mode nil
+ TeX-PDF-from-DVI nil
+ TeX-DVI-via-PDFTeX t)
+ (should
+ (equal (sort (LaTeX-includegraphics-extensions-list) #'string<)
+ (sort '("png" "pdf" "jpe?g" "jbig2" "jb2" "mps"
+ "PNG" "PDF" "JPE?G" "JBIG2" "JB2" "eps") #'string<)))
+ ;; default 5
+ (setq TeX-PDF-mode t
+ TeX-PDF-from-DVI "Dvipdfmx"
+ TeX-DVI-via-PDFTeX nil)
+ (should
+ (equal (sort (LaTeX-includegraphics-extensions-list) #'string<)
+ (sort '("eps" "mps" "EPS" "jpe?g" "pdf" "png") #'string<)))
+
+ ;; tests for luatex engine
+ (setq TeX-engine 'luatex)
+ ;; luatex 1
+ (setq TeX-PDF-mode t)
+ (should
+ (equal (sort (LaTeX-includegraphics-extensions-list) #'string<)
+ (sort '("png" "pdf" "jpe?g" "jbig2" "jb2" "mps"
+ "PNG" "PDF" "JPE?G" "JBIG2" "JB2" "eps") #'string<)))
+ ;; luatex 2
+ (setq TeX-PDF-mode nil)
+ (should
+ (equal (sort (LaTeX-includegraphics-extensions-list) #'string<)
+ (sort '("eps" "mps" "EPS") #'string<)))
+
+ ;; test for xetex engine
+ (setq TeX-engine 'xetex)
+ (should
+ (equal (sort (LaTeX-includegraphics-extensions-list) #'string<)
+ (sort '("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")
+ #'string<)))
+
+ ;; test for other engine
+ (setq TeX-engine 'omega)
+ ;; other 1
+ (setq TeX-PDF-mode t
+ TeX-PDF-from-DVI "Dvipdfmx")
+ (should
+ (equal (sort (LaTeX-includegraphics-extensions-list) #'string<)
+ (sort '("eps" "mps" "EPS" "jpe?g" "pdf" "png") #'string<)))
+ ;; other 2
+ (setq TeX-PDF-mode nil
+ TeX-PDF-from-DVI nil)
+ (should
+ (equal (sort (LaTeX-includegraphics-extensions-list) #'string<)
+ (sort '("eps" "jpe?g" "pdf" "png") #'string<))))))
+
;;; latex-test.el ends here