Mercurial > emacs
changeset 94075:b31c348d0336
* 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.
author | Tassilo Horn <tassilo@member.fsf.org> |
---|---|
date | Mon, 14 Apr 2008 13:17:40 +0000 |
parents | deb6d3164716 |
children | b359dad87c7e |
files | lisp/doc-view.el |
diffstat | 1 files changed, 29 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- 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)