Your file worked approximately right for me. The code block did not render too well (I set it up to use minted), but everything else did fine I guess. My tex header is different than yours, but I don't know how much that matters. The output I got is attached. I did see two places where delete-file might cause that and have pushed fixes to scimax for them. They may have been the cause (although I don't know why mine would have worked, and it didn't for you, the ox-word versions should have been the same probably). John ----------------------------------- Professor John Kitchin Doherty Hall A207F Department of Chemical Engineering Carnegie Mellon University Pittsburgh, PA 15213 412-268-7803 @johnkitchin http://kitchingroup.cheme.cmu.edu On Tue, Jun 27, 2017 at 7:21 PM, Doyley, Marvin M. wrote: > Here is a sample file that I have been using, > > > > > On Jun 27, 2017, at 10:53 AM, John Kitchin > wrote: > > > > can you post a small org file that has this problem? > > > > Doyley, Marvin M. writes: > > > >> Thanks for point this out, which I have now removed, but I still get > an error. This time I get > >> > >> pandoc: nil: openFile: does not exist (No such file or directory) > >> helm-M-x: Wrong type argument: stringp, nil > >> > >> Thanks, > >> M > >> PS here is the back trace > >> Debugger entered--Lisp error: (wrong-type-argument stringp nil) > >> delete-file(nil) > >> (let* ((bibfiles (mapcar (quote expand-file-name) > (org-ref-find-bibliography))) (temp-bib) (bibtex-entries) biboption csl > (current-file (buffer-file-name)) (basename (file-name-sans-extension > current-file)) (tex-file (concat basename ".tex")) (docx-file (concat > basename ".docx"))) (save-buffer) (if bibfiles (progn (setq bibtex-entries > (let* ((bibtex-files bibfiles) (keys (reverse ...)) > (bibtex-entry-kill-ring-max (length keys)) (bibtex-entry-kill-ring (quote > nil))) (let ((wconfig ...)) (unwind-protect (progn ...) > (set-window-configuration wconfig))) (mapconcat (quote identity) > bibtex-entry-kill-ring "\n\n")) temp-bib (make-temp-file "ox-word-" nil > ".bib") biboption (format " --bibliography=%s " temp-bib)) (let ((temp-file > temp-bib) (temp-buffer (get-buffer-create (generate-new-buffer-name " *temp > file*")))) (unwind-protect (prog1 (save-current-buffer (set-buffer > temp-buffer) (insert bibtex-entries)) (save-current-buffer (set-buffer > temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name > temp-buffer) (kill-buffer temp-buffer)))))) (setq csl (cdr (assoc > "PANDOC-CSL" (org-element-map (org-element-parse-buffer) (quote keyword) > (function (lambda (key) (cons ... ...))))))) (if csl (setq csl (format " > --csl=%s " csl)) (setq csl " ")) (org-latex-export-to-latex async subtreep > visible-only body-only options) (if (file-exists-p docx-file) (progn > (delete-file docx-file))) (shell-command (format "pandoc -s -S %s%s\"%s\" > -o \"%s\"" biboption csl tex-file docx-file)) (delete-file temp-bib) > (org-open-file docx-file (quote (16)))) > >> ox-export-via-latex-pandoc-to-docx-and-open() > >> funcall-interactively(ox-export-via-latex-pandoc-to-docx-and-open) > >> call-interactively(ox-export-via-latex-pandoc-to-docx-and-open record > nil) > >> command-execute(ox-export-via-latex-pandoc-to-docx-and-open record) > >> helm-M-x(nil #("ox-export-via-latex-pandoc-to-docx-and-open" 0 43 > (match-part "ox-export-via-latex-pandoc-to-docx-and-open"))) > >> funcall-interactively(helm-M-x nil #("ox-export-via-latex-pandoc-to-docx-and-open" > 0 43 (match-part "ox-export-via-latex-pandoc-to-docx-and-open"))) > >> call-interactively(helm-M-x nil nil) > >> command-execute(helm-M-x) > >> > >> > >> > >> > >>> On Jun 24, 2017, at 1:07 PM, John Kitchin > wrote: > >>> > >>> what is this function: my-other-delete-trailing-blank-lines > >>> > >>> it appears it is not defined. but is getting called in a > before-save-hook. > >>> > >>> Doyley, Marvin M. writes: > >>> > >>>> Hi there, > >>>> > >>>> I am play with John’s ox-word.el function, which us pandoc to convert > org via latex to docx. However, when I try to use it, I get the following > error > >>>> > >>>> helm-M-x: Wrong type argument: stringp, nil > >>>> > >>>> > >>>> Any suggestion on how to resolve this issue. > >>>> > >>>> Cheers, > >>>> M > >>>> > >>>> Ps Here is the backtrace > >>>> > >>>> Debugger entered--Lisp error: (void-function my-other-delete-trailing- > blank-lines) > >>>> my-other-delete-trailing-blank-lines() > >>>> run-hooks(before-save-hook) > >>>> basic-save-buffer(nil) > >>>> save-buffer() > >>>> write-file("./test.tex.tex") > >>>> (let ((coding-system-for-write encoding)) (write-file file)) > >>>> (progn (insert output) (let ((coding-system-for-write encoding)) > (write-file file))) > >>>> (unwind-protect (progn (insert output) (let ((coding-system-for-write > encoding)) (write-file file))) (and (buffer-name temp-buffer) (kill-buffer > temp-buffer))) > >>>> (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn > (insert output) (let ((coding-system-for-write encoding)) (write-file > file))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))) > >>>> (let ((temp-buffer (generate-new-buffer " *temp*"))) > (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn > (insert output) (let ((coding-system-for-write encoding)) (write-file > file))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) > >>>> (let ((output (org-export-as backend subtreep visible-only body-only > ext-plist))) (let ((temp-buffer (generate-new-buffer " *temp*"))) > (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn > (insert output) (let ((coding-system-for-write encoding)) (write-file > file))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if > (and (org-export--copy-to-kill-ring-p) (org-string-nw-p output)) (progn > (org-kill-new output))) (or (and (functionp post-process) (funcall > post-process file)) file)) > >>>> (if async (let ((with-temp-message "Initializing asynchronous export > process") (current-message)) (unwind-protect (progn (if with-temp-message > (progn (setq current-message (current-message)) (message "%s" > with-temp-message))) (let ((--copy-fun (org-export--generate-copy-script > ...)) (--temp-file (make-temp-file "org-export-process")) (--coding > buffer-file-coding-system)) (let ((temp-file --temp-file) (temp-buffer > ...)) (unwind-protect (prog1 ... ...) (and ... ...))) (let* > ((process-connection-type nil) (--proc-buffer ...) (--process ...)) > (org-export-add-to-stack (get-buffer --proc-buffer) nil --process) (let > (...) (set-process-sentinel --process ...))))) (and with-temp-message (if > current-message (message "%s" current-message) (message nil))))) (let > ((output (org-export-as backend subtreep visible-only body-only > ext-plist))) (let ((temp-buffer (generate-new-buffer " *temp*"))) > (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn > (insert output) (let (...) (write-file file))) (and (buffer-name > temp-buffer) (kill-buffer temp-buffer))))) (if (and > (org-export--copy-to-kill-ring-p) (org-string-nw-p output)) (progn > (org-kill-new output))) (or (and (functionp post-process) (funcall > post-process file)) file))) > >>>> (let ((ext-plist (org-combine-plists (list (quote :output-file) file) > ext-plist)) (encoding (or org-export-coding-system > buffer-file-coding-system))) (if async (let ((with-temp-message > "Initializing asynchronous export process") (current-message)) > (unwind-protect (progn (if with-temp-message (progn (setq current-message > ...) (message "%s" with-temp-message))) (let ((--copy-fun ...) (--temp-file > ...) (--coding buffer-file-coding-system)) (let (... ...) (unwind-protect > ... ...)) (let* (... ... ...) (org-export-add-to-stack ... nil --process) > (let ... ...)))) (and with-temp-message (if current-message (message "%s" > current-message) (message nil))))) (let ((output (org-export-as backend > subtreep visible-only body-only ext-plist))) (let ((temp-buffer > (generate-new-buffer " *temp*"))) (save-current-buffer (set-buffer > temp-buffer) (unwind-protect (progn (insert output) (let ... ...)) (and > (buffer-name temp-buffer) (kill-buffer temp-buffer))))) (if (and > (org-export--copy-to-kill-ring-p) (org-string-nw-p output)) (progn > (org-kill-new output))) (or (and (functionp post-process) (funcall > post-process file)) file)))) > >>>> (if (not (file-writable-p file)) (error "Output file not writable") > (let ((ext-plist (org-combine-plists (list (quote :output-file) file) > ext-plist)) (encoding (or org-export-coding-system > buffer-file-coding-system))) (if async (let ((with-temp-message > "Initializing asynchronous export process") (current-message)) > (unwind-protect (progn (if with-temp-message (progn ... ...)) (let (... ... > ...) (let ... ...) (let* ... ... ...))) (and with-temp-message (if > current-message (message "%s" current-message) (message nil))))) (let > ((output (org-export-as backend subtreep visible-only body-only > ext-plist))) (let ((temp-buffer (generate-new-buffer " *temp*"))) > (save-current-buffer (set-buffer temp-buffer) (unwind-protect (progn ... > ...) (and ... ...)))) (if (and (org-export--copy-to-kill-ring-p) > (org-string-nw-p output)) (progn (org-kill-new output))) (or (and > (functionp post-process) (funcall post-process file)) file))))) > >>>> org-export-to-file(latex "./test.tex.tex" nil nil nil nil nil) > >>>> (let ((outfile (org-export-output-file-name ".tex" subtreep))) > (org-export-to-file (quote latex) outfile async subtreep visible-only > body-only ext-plist)) > >>>> org-latex-export-to-latex(nil nil nil nil nil) > >>>> (let* ((bibfiles (mapcar (quote expand-file-name) > (org-ref-find-bibliography))) (temp-bib) (bibtex-entries) biboption csl > (current-file (buffer-file-name)) (basename (file-name-sans-extension > current-file)) (tex-file (concat basename ".tex")) (docx-file (concat > basename ".docx"))) (save-buffer) (if bibfiles (progn (setq bibtex-entries > (let* ((bibtex-files bibfiles) (keys (reverse ...)) > (bibtex-entry-kill-ring-max (length keys)) (bibtex-entry-kill-ring (quote > nil))) (let ((wconfig ...)) (unwind-protect (progn ...) > (set-window-configuration wconfig))) (mapconcat (quote identity) > bibtex-entry-kill-ring "\n\n")) temp-bib (make-temp-file "ox-word-" nil > ".bib") biboption (format " --bibliography=%s " temp-bib)) (let ((temp-file > temp-bib) (temp-buffer (get-buffer-create (generate-new-buffer-name " *temp > file*")))) (unwind-protect (prog1 (save-current-buffer (set-buffer > temp-buffer) (insert bibtex-entries)) (save-current-buffer (set-buffer > temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-name > temp-buffer) (kill-buffer temp-buffer)))))) (setq csl (cdr (assoc > "PANDOC-CSL" (org-element-map (org-element-parse-buffer) (quote keyword) > (function (lambda (key) (cons ... ...))))))) (if csl (setq csl (format " > --csl=%s " csl)) (setq csl " ")) (org-latex-export-to-latex async subtreep > visible-only body-only options) (if (file-exists-p docx-file) (progn > (delete-file docx-file))) (shell-command (format "pandoc -s -S %s%s\"%s\" > -o \"%s\"" biboption csl tex-file docx-file)) (delete-file temp-bib) > (org-open-file docx-file (quote (16)))) > >>>> ox-export-via-latex-pandoc-to-docx-and-open() > >>>> funcall-interactively(ox-export-via-latex-pandoc-to-docx-and-open) > >>>> call-interactively(ox-export-via-latex-pandoc-to-docx-and-open > record nil) > >>>> command-execute(ox-export-via-latex-pandoc-to-docx-and-open record) > >>>> helm-M-x(nil #("ox-export-via-latex-pandoc-to-docx-and-open" 0 43 > (match-part "ox-export-via-latex-pandoc-to-docx-and-open"))) > >>>> funcall-interactively(helm-M-x nil #("ox-export-via-latex-pandoc-to-docx-and-open" > 0 43 (match-part "ox-export-via-latex-pandoc-to-docx-and-open"))) > >>>> call-interactively(helm-M-x nil nil) > >>>> command-execute(helm-M-x) > >>> > >>> > >>> -- > >>> Professor John Kitchin > >>> Doherty Hall A207F > >>> Department of Chemical Engineering > >>> Carnegie Mellon University > >>> Pittsburgh, PA 15213 > >>> 412-268-7803 > >>> @johnkitchin > >>> https://urldefense.proofpoint.com/v2/url?u=http-3A__ > kitchingroup.cheme.cmu.edu&d=DwIFaQ&c=kbmfwr1Yojg42sGEpaQh5ofMHBeTl9 > EI2eaqQZhHbOU&r=s3_3riAscdqtNAzgOuwYB9g0dZVGcp8BN > Cy_RylYdxU&m=fpDGKjoBGMLn-IR_Ppzt26Yc5eU8GW50J-DqGll1blc&s= > jqihIKTRKkfrF9V2SuWfN6RqVs6ghQUh-wXvKohuNi8&e= > > > > > > -- > > Professor John Kitchin > > Doherty Hall A207F > > Department of Chemical Engineering > > Carnegie Mellon University > > Pittsburgh, PA 15213 > > 412-268-7803 > > @johnkitchin > > https://urldefense.proofpoint.com/v2/url?u=http-3A__ > kitchingroup.cheme.cmu.edu&d=DwIFaQ&c=kbmfwr1Yojg42sGEpaQh5ofMHBeTl9 > EI2eaqQZhHbOU&r=s3_3riAscdqtNAzgOuwYB9g0dZVGcp8BNCy_RylYdxU&m= > Ak2zZPodYjZldCE4XzfFYpSENYzapnBe2-oTIEbBnI4&s=kQj3UIrDBe- > cf4dsH6pm2x4G8P9a_nOw-uI1_hgatLI&e= > > >