我使用Latex,Emacs中的以下函数:出错时自动打开*TeX Help*缓冲区并在纠正错误后关闭它?通过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")))))
Run Code Online (Sandbox Code Playgroud)
如何"添加"此功能,TeX-command-list
以便C-c C-c
在.tex文件中执行此功能?[ 在.tex文件上执行时C-c C-c
应该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")))
Run Code Online (Sandbox Code Playgroud)
但它失败并带有消息:( TeX-command-expand: Wrong type argument: stringp, (function run-latexmk)
取自*Messages*)
您不想使用它,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")))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
872 次 |
最近记录: |