OS X + Emacs + TeX

单说每一样,无论是Mac 还是Emacs还是TeX,用的人都不算少,但是三者的交集里的用户数量就没有那么多了,至少中文用户不是那么多。出了问题,容易抓瞎。

这个Post解决的问题包括显性和隐性两部分。显性的问题包括TeX的各种命令在Emacs里无法找到,eg: xelatex is not found之类。隐性的问题则是eps不能正常显示。

准备: TeX 起码要是2012及以后的发型版本,MacTeX应该是一般人的选择。 Emacs for Mac选择较新的版本,AucTeX用最新版(例如 现在的11.88),AucTeX建议用傻瓜方式安装,也即用Emacs的包管理器安装,可以省去很多不必要的配置(题外话,老版AucTeX升级的话,建议看看新版说明,至少.emacs中不用加载auctex.el了,preview-latex.el也不要用了。

这三样做完以后,可以负责任的说,现在已经不缺其他东西了,剩下的就是Tweak。

我这里只提及一个:Emacs for Mac的PATH环境变量。

Emacs.app,就是你在OSX 图形界面里启动的那个Emacs并不是沿用系统的环境变量,至少不是全部沿用。这就造成如果没有单独配置的话,在Terminal红执行的好好的命令在Emacs中只会悄悄地挂掉。 在Emacs中通过M-x getenv 可以获得当前的Emacs.app的环境变量。 例如 在互动模式里M-x,getenv PATH。

在PATH里需要确认两个路径是否存在 /usr/texbin以及/usr/local/bin

第一个路径是TeX可执行命令目录的符号链接,在2011之后的MacTeX都会创建这个符号链接。把它加到Emacs的环境变量里,是确保Emacs可以直接调用TeX相关的命令。

第二个路径也是一些可执行程序(command),和eps,ps,pdf等图片格式转换相关的命令,有一部分在这里(另一部分在/usr/texbin和/usr/bin里)。增加这个路径是保证对图片的支持。一些莫名其妙的TeX或者AucTeX内部函数的错误,有可能就是这些命令无法执行造成的。Anyway,我们把这个路径也补上。

添加这两个环境变量的方法,是在.emacs里增加如下内容:

(setenv “PATH”
(concat (getenv “PATH”) “:/usr/texbin:/usr/local/bin”))

注意中间那个是冒号”:”。

Hope this could help.

发表评论

电子邮件地址不会被公开。 必填项已用*标注