It's because the master file is up a directory, and it is run synchronously. You can reproduce this by setting TeX-process-asynchronous to nil, and running TeX-command-master (C-c C-c) on a file with TeX-master set to something like "../master".
You can work around it by using the full path to the master file. However it seems like a bug and should be reported—though maybe it's been fixed in CVS. Perhaps the best way to fix this would be to change TeX-master-file to call expand-file-name on the result. This could be done with advice, but I haven't tried it. There may be other repercussions or places that use TeX-master directly. -Ivan On May 14, 2012, at 1:26 PM, Adam wrote: > Hello. > > I use such a function for compiling LaTeX in emacs (AUCTeX) taken from > http://stackoverflow.com/a/7811232/726922 (accepted answer by Jouni K. > Seppänen): > > (defun run-latexmk () > (interactive) > (let ((TeX-save-query nil) > (TeX-process-asynchronous nil) > (master-file (TeX-master-file))) > (TeX-save-document "") > (TeX-run-TeX "latexmk" "latexmk" master-file) > (if (plist-get TeX-error-report-switches (intern master-file)) > (TeX-next-error t) > (minibuffer-message "latexmk done")))) > > It works really well but I observed some problem when I compile a multifile > document. > > I have some master.tex and \input{chap1.tex} in it. When I use run-latexmk > while editing chap1.tex (master file is properly set in chap1.tex) then > I get a message > > TeX-run-TeX: Wrong type argument: stringp, nil. > > Output pdf/dvi file seems to be good but I am curious why I get this message. > > I tried changing the line (TeX-run-TeX "latexmk" "latexmk" master-file) > in many ways but without success. > > Of course when I compile singlefile document then all works good without > any messages. > > What should I change to get rid of this warning? > > When I turn on toggle-debug-on-error I get this message > > Debugger entered--Lisp error: (wrong-type-argument stringp nil) > TeX-synchronous-sentinel("latexmk" "../master" 12) > TeX-run-TeX("latexmk" "latexmk" "../master") > (let ((TeX-save-query nil) (TeX-process-asynchronous nil) > (master-file ...)) (TeX-save-document "") (TeX-run-TeX "latexmk" > "latexmk" master-file) (if (plist-get > TeX-error-report-switches ...) (TeX-next-error t) > (minibuffer-message "latexmk done"))) > run-latexmk() > call-interactively(run-latexmkk nil nil) > > To clarify, if my document compile without errors (TeX errors) then I get > nice output file (and this annoying message). But when my document has > some TeX errors then I get only `Wrong type argument` message. It is > then pretty unusable. > > I would be grateful for any help. > > > _______________________________________________ > auctex mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/auctex _______________________________________________ auctex mailing list [email protected] https://lists.gnu.org/mailman/listinfo/auctex
