Emacs 和 latexmk 设置 --shell-escape

Emacs 和 latexmk 设置 --shell-escape

如果我愿意--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

相关内容