【问题标题】:How to add a function (latexmk variant) to TeX-command-list in AUCTeX?如何在 AUCTeX 中向 TeX-command-list 添加函数(latexmk 变体)?
【发布时间】:2012-02-26 16:32:05
【问题描述】:

我使用Latex, Emacs: automatically open *TeX Help* buffer on error and close it after correction of the error? 中的以下函数通过latexmk 编译.tex 文档:

(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 %s" 'TeX-master-file); adjusted
                 master-file)
    (if (plist-get TeX-error-report-switches (intern master-file))
        (TeX-next-error t)
      (progn
    (demolish-tex-help)
    (minibuffer-message "latexmk: Done")))))

如何将这个函数“添加”到TeX-command-list,以便.tex 文件中的C-c C-c 执行这个函数? [C-c C-c 在 .tex 文件上执行时应默认使用 run-latexmk]

我试过了

(add-hook 'LaTeX-mode-hook
      (lambda ()
        (add-to-list 'TeX-command-list
             '("latexmk" #'run-latexmk
               TeX-run-command nil t :help "Run latexmk") t)
        (setq TeX-command-default "latexmk")))

但它失败并显示消息:TeX-command-expand: Wrong type argument: stringp, (function run-latexmk)(取自 *Messages*)

【问题讨论】:

    标签: emacs auctex


    【解决方案1】:

    你不想使用TeX-run-command,因为那是为了运行一个shell命令。你会想运行TeX-run-function,但它仍然将“函数”作为一个字符串,所以你应该说(未经测试):

    (add-hook 'LaTeX-mode-hook
       (lambda ()
         (add-to-list 'TeX-command-list
              '("latexmk" "(run-latexmk)"
                TeX-run-function nil t :help "Run latexmk") t)
         (setq TeX-command-default "latexmk")))
    

    【讨论】:

    • 我在LaTeX-mode-hook 中的Tex-command-list 中设置了多个选项,所以我可以在C-c C-c 中选择任何一个,我在LaTeX-mode-hook 中将其中一个设置为TeX-command-default,但我使用另一个运行整个编译过程的函数,所以我不必从C-c C-c 中选择一个,如何在该函数中使用Tex-command-default 值?
    • 在你的其他函数中尝试 let-binding TeX-command-default 例如(defun xxx () (let ((TeX-command-default "我的命令")) ...))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-21
    • 1970-01-01
    • 2019-07-29
    • 2021-09-15
    • 2021-11-01
    • 2022-01-02
    • 2019-12-25
    相关资源
    最近更新 更多