我使用 Emacs+AUCTex 来编写 LaTeX 文档。我有特定的需求,所以我的典型序言很长。今天,我有一个仅包含此序言的 .tex 文件(一个模板),我使用 C-x C-w 从该模板编写一个新文件。这不是最好的解决方案,因为我的模板本地化可能与新文件相距甚远。
那么有没有办法以另一种(更短的)方式在 Emacs 中调用 LaTeX 模板?
编辑:自动插入模式提供了一种实现我想要的方法,但当我创建 .tex 文件时,它不会自动放置我的模板(LaTeX 前导码)。我必须启动 M-x 自动插入。如何根据文件扩展名自动执行此操作?
最佳答案
在 VirTeX-common-initialization
末尾(本质上)将 TeX-master-file
添加到 find-file-hooks
中。这是 %%% Local Variables: %%% mode: Latex %%% TeX-master: t %%% End:
内容的来源。 (请注意,VirTeX-common-initialization
是 LaTeX-common-initialization
中的第一件事,它在 TeX-latex-mode
中被调用latex-mode
的别名。)
要使用自动添加的评论,您可以删除 Hook :
(add-hook 'TeX-mode-hook '(lambda ()
(remove-hook 'find-file-hooks (car find-file-hooks) 'local)))
这看起来像是黑客攻击。但是添加 TeX-master-file
是相当硬编码的,没有用户选项。所以,在我看来,你没有其他机会了。
修正后,自动插入
功能会自动工作。
(至少对我而言。)
但是,我已经替换了 auto-insert-alist
中的条目。意思是,而不是
(define-auto-insert "\\.tex$""my-latex-template.tex")
我有类似的东西:
(let ((el (assoc 'latex-mode auto-insert-alist)))
(if el
(setcdr el "/c/temp/autoinsert.tex")
(define-auto-insert "\\.tex$" "/c/temp/autoinsert.tex")))
也许,这很重要,也许不重要。我现在必须回家,无法进一步调查。
关于templates - 如何使用 Emacs+AUCTeX 创建(自动插入)LaTeX 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19335434/