Emacs 如何在AUCTeX中向TeX命令列表添加函数(latexmk变体)?

Emacs 如何在AUCTeX中向TeX命令列表添加函数(latexmk变体)?,emacs,auctex,Emacs,Auctex,我使用以下函数从通过latexmk编译.tex文档: (defun运行latexmk() (互动) (let((TeX保存查询nil) (TeX进程异步零) (主文件(TeX主文件))) (TeX保存文档“”) (TeX run TeX“latexmk” (TeX命令展开“latexmk-pdf%s”TeX主文件);已调整 主文件) (如果(plist get TeX错误报告开关(实习生主文件)) (TeX下一个错误t) (项目 (拆除tex帮助) (微型缓冲区消息“latexmk:Done”(

我使用以下函数从通过
latexmk
编译.tex文档:

(defun运行latexmk()
(互动)
(let((TeX保存查询nil)
(TeX进程异步零)
(主文件(TeX主文件)))
(TeX保存文档“”)
(TeX run TeX“latexmk”
(TeX命令展开“latexmk-pdf%s”TeX主文件);已调整
主文件)
(如果(plist get TeX错误报告开关(实习生主文件))
(TeX下一个错误t)
(项目
(拆除tex帮助)
(微型缓冲区消息“latexmk:Done”()()()))
如何将此函数“添加”到
TeX命令列表
,以便.TeX文件中的
C-C-C
执行此函数?[
C-C-C
在.tex文件上执行时,应使用
运行latexmk
作为默认值]

我试过了

(添加钩子“乳胶模式钩子”
(lambda()
(添加到列表“TeX命令列表”
“(“latexmk”#”run-latexmk
TeX run命令nil t:help“run latexmk”)t)
(setq TeX命令默认值为“latexmk”))

但它失败的消息是:
TeX-command-expand:error-type参数:stringp,(function-run-latexmk)
(取自*Messages*)

您不想使用
TeX-run-command
,因为这是用于运行shell命令的。您希望运行
TeX run function
,但它仍然将“function”作为字符串,因此您应该说(未测试):


我在
LaTeX mode hook
中的
Tex命令列表
中设置了多个选项,这样我就可以在
C-C-C
中选择任何一个,并在
LaTeX mode hook
中将其中一个设置为
Tex命令默认值
,但我使用另一个函数来运行整个编译过程,所以我不必从
C-C-C
中选择一个,如何在该函数中使用
Tex command default
值?请尝试在其他函数中使用binding Tex command default,例如(defun xxx()(let((Tex command default“my command”)…)
(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")))