如果我愿意--shell-escape
,我是否只需要将其添加到我的.latexmkrc
文件中
$pdf_mode = 1;
$pdflatex = 'pdflatex --shell-escape -interaction=nonstopmode %O %S
-file-line-error -synctex=1';
或者应该将其添加到我的.emacs
文件中(如果是这种情况,它应该放在哪里?)
(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"
(TeX-command-expand "latexmk -pdflatex='pdflatex -file-line-error
-synctex=1' -pdf %O %S" 'TeX-master-file)
master-file))
(if (plist-get TeX-error-report-switches (intern master-file))
(TeX-next-error t)
(progn
(demolish-tex-help)
(minibuffer-message "latexmk: done."))))
或者它是否需要同时存在于和.emacs
中.latexmkrc
?
答案1
如果您latexmk
使用此功能运行,则参数-pdflatex='pdflatex -file-line-error -synctex=1'
将覆盖您在中输入的设置.latexmkrc
。
您可以按照.latexmkrc
这种方式保留它,然后简单运行latexmk -pdf <yourfile>
,或者不必担心.latexmkrc
并将所有编译参数放在中.emacs
。
第一个选项:
(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"
(TeX-command-expand "latexmk -pdf %O %S" 'TeX-master-file)
master-file))
(if (plist-get TeX-error-report-switches (intern master-file))
(TeX-next-error t)
(progn
(demolish-tex-help)
(minibuffer-message "latexmk: done."))))
第二:
(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"
(TeX-command-expand "latexmk -pdflatex='pdflatex -file-line-error
--shell-escape -synctex=1' -pdf %O %S" 'TeX-master-file)
master-file))
(if (plist-get TeX-error-report-switches (intern master-file))
(TeX-next-error t)
(progn
(demolish-tex-help)
(minibuffer-message "latexmk: done."))))
在这两种情况下,您唯一需要更改的部分是对的调用latexmk
。