从 auctex 编译时用 context 替换 texexec

从 auctex 编译时用 context 替换 texexec

当我从 AucTEX 命令菜单(或使用 Cc Cc)启动 ConTeXt 命令时,AucTEX 会调用 texexec,并且编译会失败,因为 texexec 依赖于未安装在我的 Windows 帐户下的 ruby​​ 依赖项。这段代码可能有些过时:据我所知,texexec 是为 MkII 设计的。此外,如果可以自由选择 context 或 contextjit 就更好了。

当然,在 Emacs 下一切都可以配置。我寻找一种方法来将 texexec 变量更改为 .emacs 中的上下文。我所能找到的只是,当将 TeX-command-default 设置为“ConTeXt”时,会启动 texexec。我不知道如何更改这一点。

任何想法 ?

答案1

要在 Emacs 中切换到 MKIV,请设置ConTeXt-Mark 版本

(setq ConTeXt-Mark-version "IV")

在你的 中.emacs。默认情况下,ConTeXtEmacs 中的命令会执行context --once。我不喜欢这样,并且想利用 ConTeXt 的自动多遍编译功能,所以我ConTeXt Full默认切换到。

(add-hook 'ConTeXt-mode-hook
          (lambda()
            (setq TeX-command-default "ConTeXt Full")))

如果您和我一样,不使用.tex扩展名来保存 ConTeXt 文件,而是.mkiv使用或甚至.mkvi,那么您还需要以下部分,以便在打开这些文件时启用 ConTeXt,并且 AUCTeX 在编译时知道扩展名:

(add-to-list 'auto-mode-alist '("\\.mkiv\\'" . ConTeXt-mode))
(add-to-list 'auto-mode-alist '("\\.mkvi\\'" . ConTeXt-mode))
(with-eval-after-load "context"
  (add-to-list 'TeX-file-extensions "mkvi" t)
  (add-to-list 'TeX-file-extensions "mkiv" t))

答案2

亨利的回答很透彻。

在任何 GNU/Linux 发行版的 AUCTeX 预编译包上,您都可以拥有:

 (load "context.el" nil t t) 

在你的初始化文件上,只要你修改保存context.el并退出。

 ;; Define before first use.
 (defcustom ConTeXt-Mark-version "IV"
   "ConTeXt Mark version used for running ConTeXt."
   :type 'string
   :group 'TeX-command)
 (make-variable-buffer-local 'ConTeXt-Mark-version)
 (put 'ConTeXt-Mark-version 'safe-local-variable 'stringp)

文件context.el/usr/share/emacs/site-lisp/auctex可以在目录中找到

还有其他问题与独立的 ConTeXt 有关,例如https://emacs.stackexchange.com/questions/33879. 对于涉及 PATH 的情况,请从头开始。

相关内容