我正在使用 GNU Emacsemacsformacos.com迁移到 OSX 10.11“El Capitan”后,Auctex 无法再运行 *tex 实用程序:
Running `LaTeX' on `poisson' with ``pdflatex -file-line-error -interaction=nonstopmode "\input" poisson.tex''
/bin/sh: pdflatex: command not found
pdflatex
例如在shell上运行没有问题:
#pdflatex
This is pdfTeX, Version 3.14159265-2.6-1.40.16 (TeX Live 2015) (preloaded format=pdflatex)
restricted \write18 enabled.
但似乎 auctex 调用/bin/sh pdflatex
了,而且不再起作用:
/bin/sh pdflatex
/Library/TeX/texbin/pdflatex: /Library/TeX/texbin/pdflatex: cannot execute binary file
可能是由于 El Capitan 对 Gatekeeper 沙盒的更改。我该如何配置 auctex 以再次运行 pdflatex?
答案1
问题在于 Emacs 使用的 PATH 变量(并传递给它运行的 shell)与用户的 PATH 变量不同。要自定义 Emacs 的 PATH,可以使用
(setenv "PATH" "/usr/local/bin:/Library/TeX/texbin/:$PATH" t)
通过此更改,AucTeX 可以再次调用命令行程序。 另请参阅此问题。
更新(2015 年 11 月):在 AucTeX 11.88.9 中安装了另一张支票查看命令行程序是否可访问。即使上述方法有效,此检查也更加严格,因为它会查看 tex 二进制文件是否位于 emacs 路径中。要通过此检查,/Library/TeX/texbin
还必须将其添加到exec-path
变量中。为此,请将其添加到您的 init 文件中:
(setq exec-path (append exec-path '("/Library/TeX/texbin")))
答案2
El Capitan 不允许直接写入,因此安装 El Capitan 时,/usr
通常指向 TeX 二进制文件的符号链接会被删除,并且无法重建。为了弥补这一点,MacTeX-2015 和 BasicTeX-2015 还安装了另一个可写入的符号链接。CLI 的 PATH 设置为包含该链接而不是 /usr/texbin,因此它开箱即用。但是许多 GUI 应用程序需要重新配置。/usr/local
/Library/TeX/texbin
/Library/TeX
我真的很想得到更多关于在哪里放置这条线的细节
(setenv "PATH" "/usr/local/bin:/Library/TeX/texbin/:$PATH" t)
重新配置 Aquamamcs/AUCTeX,因为我不是用户,但与我联系的其他人是用户。