2008-04-14 Tassilo Horn <tassilo@member.fsf.org>
+ * 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.
+
* doc-view.el (doc-view-start-process): Don't set
default-directory to "~/" if the current value is valid. This
broke PS files that run other files in the same directory.
"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)
(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
(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)