AUCTeX 13

AUCTeX 13最近发布了(事实上已经有近两个月了),论坛里好像没啥人讨论,我自己在使用中也遇到了一些问题,因此开个贴和大家讨论一下相关的话题。

首先是该怎样与use-package结合使用的问题。应该有不少和我类似,第一次自己安装AUCTeX时使用了

(use-package auctex
  :ensure t)

然后遇到报错的经历。事实上,虽然这个包名为auctex,但auctex.el并没有(provide 'auctex),这样也就使得use-package的宏展开后,(require 'auctex)一拳打在了空气上。

那正确的使用方法是什么呢?经过搜索,比较常见的方法是

(use-package tex
  :ensure auctex)

或者

(use-package tex-site
  :ensure auctex)

这两种用法都有一定的例子,但我更愿意使用

(use-package latex
  :ensure auctex)

来载入auctex包。这样做的原因是,latex-el的内容中包含了(require 'tex),也就是说载入了latex.el自然也就载入了tex.el,首先这是向下兼容的;其次,一些变量是定义在latex.el中的,典型的比如LaTeX-default-styleLaTeX-electric-left-right-braceLaTeX-clean-intermediate-suffixes等等。干脆一次性把相应的feature都载入,是相对比较稳妥的做法。

至于textex-site的区别,我暂时没有看出来,区别似乎不大,欢迎指教。

7 个赞

第二个相关的问题是,我希望调用latexmk来进行编译。这方面有现成的包:auctex-latexmk。但这个包最近一次的commit还是在2017年,在AUCTeX更新的13之前,仍然非常好用,不过由于最近的更新,AUCTeX把tex-buf.el给删除了,相应的内容也转移到了tex.el中。这导致auctex-latexmk(require 'tex-buf)会报错。关于这个问题,我发了PR,但毕竟是陈年老包,不知道作者会不会合并。

不知道有没有人配 corfu + auctex 的补全。 company 倒是有现成的几个包可以用,但迁到 corfu 上有点水土不服(比如会明显卡顿)

xenops 也用了 tex-buf, 目前也还没有更新