diff --git a/contrib/lisp/ox-groff.el b/contrib/lisp/ox-groff.el index cd7b78c2b..6ffba98c4 100644 --- a/contrib/lisp/ox-groff.el +++ b/contrib/lisp/ox-groff.el @@ -1919,9 +1919,10 @@ Return PDF file name or an error if it couldn't be produced." (let* ((base-name (file-name-sans-extension (file-name-nondirectory file))) (full-name (file-truename file)) (out-dir (file-name-directory file)) - ;; Make sure `default-directory' is set to FILE directory, - ;; not to whatever value the current buffer may have. - (default-directory (file-name-directory full-name)) + ;; Properly set working directory for compilation. + (default-directory (if (file-name-absolute-p texfile) + (file-name-directory full-name) + default-directory)) errors) (message (format "Processing Groff file %s ..." file)) (save-window-excursion @@ -1949,7 +1950,7 @@ Return PDF file name or an error if it couldn't be produced." ;; Collect standard errors from output buffer. (setq errors (org-groff-collect-errors outbuf)))) (t (error "No valid command to process to PDF"))) - (let ((pdffile (concat (file-name-sans-extension full-name) ".pdf"))) + (let ((pdffile (concat out-dir base-name ".pdf"))) ;; Check for process failure. Provide collected errors if ;; possible. (if (not (file-exists-p pdffile)) diff --git a/lisp/ox-latex.el b/lisp/ox-latex.el index 62ffd56e0..3a01693f0 100644 --- a/lisp/ox-latex.el +++ b/lisp/ox-latex.el @@ -2862,9 +2862,10 @@ Return PDF file name or an error if it couldn't be produced." (let* ((base-name (file-name-sans-extension (file-name-nondirectory texfile))) (full-name (file-truename texfile)) (out-dir (file-name-directory texfile)) - ;; Make sure `default-directory' is set to TEXFILE directory, - ;; not to whatever value the current buffer may have. - (default-directory (file-name-directory full-name)) + ;; Properly set working directory for compilation. + (default-directory (if (file-name-absolute-p texfile) + (file-name-directory full-name) + default-directory)) errors) (unless snippet (message (format "Processing LaTeX file %s..." texfile))) (save-window-excursion @@ -2892,7 +2893,7 @@ Return PDF file name or an error if it couldn't be produced." ;; Collect standard errors from output buffer. (setq errors (and (not snippet) (org-latex--collect-errors outbuf))))) (t (error "No valid command to process to PDF"))) - (let ((pdffile (concat (file-name-sans-extension full-name) ".pdf"))) + (let ((pdffile (concat out-dir base-name ".pdf"))) ;; Check for process failure. Provide collected errors if ;; possible. (if (not (file-exists-p pdffile)) diff --git a/lisp/ox-man.el b/lisp/ox-man.el index 55a79f76b..41410cfea 100644 --- a/lisp/ox-man.el +++ b/lisp/ox-man.el @@ -1204,9 +1204,10 @@ Return PDF file name or an error if it couldn't be produced." (let* ((base-name (file-name-sans-extension (file-name-nondirectory file))) (full-name (file-truename file)) (out-dir (file-name-directory file)) - ;; Make sure `default-directory' is set to FILE directory, - ;; not to whatever value the current buffer may have. - (default-directory (file-name-directory full-name)) + ;; Properly set working directory for compilation. + (default-directory (if (file-name-absolute-p texfile) + (file-name-directory full-name) + default-directory)) errors) (message (format "Processing Groff file %s..." file)) (save-window-excursion @@ -1233,7 +1234,7 @@ Return PDF file name or an error if it couldn't be produced." ;; Collect standard errors from output buffer. (setq errors (org-man-collect-errors outbuf)))) (t (error "No valid command to process to PDF"))) - (let ((pdffile (concat (file-name-sans-extension full-name) ".pdf"))) + (let ((pdffile (concat out-dir base-name ".pdf"))) ;; Check for process failure. Provide collected errors if ;; possible. (if (not (file-exists-p pdffile)) diff --git a/lisp/ox-texinfo.el b/lisp/ox-texinfo.el index b468ce19e..2491eeaf1 100644 --- a/lisp/ox-texinfo.el +++ b/lisp/ox-texinfo.el @@ -1801,9 +1801,10 @@ Return INFO file name or an error if it couldn't be produced." (let* ((base-name (file-name-sans-extension (file-name-nondirectory file))) (full-name (file-truename file)) (out-dir (file-name-directory file)) - ;; Make sure `default-directory' is set to FILE directory, - ;; not to whatever value the current buffer may have. - (default-directory (file-name-directory full-name)) + ;; Properly set working directory for compilation. + (default-directory (if (file-name-absolute-p texfile) + (file-name-directory full-name) + default-directory)) errors) (message (format "Processing Texinfo file %s..." file)) (save-window-excursion @@ -1830,7 +1831,7 @@ Return INFO file name or an error if it couldn't be produced." ;; Collect standard errors from output buffer. (setq errors (org-texinfo-collect-errors outbuf)))) (t (error "No valid command to process to Info"))) - (let ((infofile (concat (file-name-sans-extension full-name) ".info"))) + (let ((infofile (concat out-dir base-name ".info"))) ;; Check for process failure. Provide collected errors if ;; possible. (if (not (file-exists-p infofile))