首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在AUCTeX的TeX-command-list中添加函数(latexmk变体)?

如何在AUCTeX的TeX-command-list中添加函数(latexmk变体)?
EN

Stack Overflow用户
提问于 2012-02-27 00:32:06
回答 1查看 977关注 0票数 6

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

代码语言:javascript
复制
(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

我试过了

代码语言:javascript
复制
(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")))

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-27 07:01:40

您不希望使用TeX-run-command,因为它用于运行外壳命令。您可能想要运行TeX-run-function,但它仍然将“函数”作为字符串,因此您应该这样说(未测试):

代码语言:javascript
复制
(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")))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9454839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档