# HG changeset patch # User Tassilo Horn # Date 1208179060 0 # Node ID b31c348d033693a55d66f40cf1ba56669e49bed3 # Parent deb6d31647161e3e416a8fd4f9c62a605aaee309 * doc-view.el (doc-view-dvipdf-program): New variable. (doc-view-dvipdfm-program): Mention doc-view-dvipdf-program. (doc-view-mode-p): Check for doc-view-dvipdf-program as alternative for doc-view-dvipdfm-program. (doc-view-dvi->pdf): Prefer dvipdf over dvipdfm. diff -r deb6d3164716 -r b31c348d0336 lisp/doc-view.el --- a/lisp/doc-view.el Mon Apr 14 11:02:31 2008 +0000 +++ b/lisp/doc-view.el Mon Apr 14 13:17:40 2008 +0000 @@ -172,7 +172,21 @@ "Program to convert DVI files to PDF. DVI file will be converted to PDF before the resulting PDF is -converted to PNG." +converted to PNG. + +If this and `doc-view-dvipdf-program' are set, +`doc-view-dvipdf-program' will be preferred." + :type 'file + :group 'doc-view) + +(defcustom doc-view-dvipdf-program (executable-find "dvipdf") + "Program to convert DVI files to PDF. + +DVI file will be converted to PDF before the resulting PDF is +converted to PNG. + +If this and `doc-view-dvipdfm-program' are set, +`doc-view-dvipdf-program' will be preferred." :type 'file :group 'doc-view) @@ -509,8 +523,10 @@ (cond ((eq type 'dvi) (and (doc-view-mode-p 'pdf) - doc-view-dvipdfm-program - (executable-find doc-view-dvipdfm-program))) + (or (and doc-view-dvipdf-program + (executable-find doc-view-dvipdf-program)) + (and doc-view-dvipdfm-program + (executable-find doc-view-dvipdfm-program))))) ((or (eq type 'postscript) (eq type 'ps) (eq type 'eps) (eq type 'pdf)) (and doc-view-ghostscript-program @@ -574,9 +590,16 @@ (defun doc-view-dvi->pdf (dvi pdf callback) "Convert DVI to PDF asynchronously and call CALLBACK when finished." - (doc-view-start-process "dvi->pdf" doc-view-dvipdfm-program - (list "-o" pdf dvi) - callback)) + ;; Prefer dvipdf over dvipdfm, because the latter has problems if the DVI + ;; references and includes other PS files. + (if (and doc-view-dvipdf-program + (executable-find doc-view-dvipdf-program)) + (doc-view-start-process "dvi->pdf" doc-view-dvipdf-program + (list dvi pdf) + callback) + (doc-view-start-process "dvi->pdf" doc-view-dvipdfm-program + (list "-o" pdf dvi) + callback))) (defun doc-view-pdf/ps->png (pdf-ps png)