pdflatex 在 Emacs.app 中失败,但在终端中可以运行

pdflatex 在 Emacs.app 中失败,但在终端中可以运行

我正在通过 MacTex 运行带有 Emacs 24、Auctex 11.86 和 TexLive 2011 的 OS X 10.7。

当我在终端中通过 Emacs 运行 LaTeX 时,它test.tex可以test.pdf正常输出。

但是,当我在 Emacs.app 中通过 Auctex 运行同一个文件时,它失败了,并给出以下信息:

LaTex: problems after [0] pages'

输出结果为

Running `LaTeX' on `test2' with ``pdflatex -synctex=1  -interaction=nonstopmode "\input" test2.tex''
/bin/sh: pdflatex: command not found

我一直在谷歌搜索这个问题,知道这是一个相当常见的问题,但我还是没能找到解决办法。从我读到的内容来看,Emacs 似乎有一个不同于PATH终端的,不是吗?有人能向我解释一下如何修复PATHenvironment variable(我不确定是哪个)以便 Emacs 可以找到 pdflatex 吗?我需要在我的 中更改什么吗~/.emacs

答案1

好的,抱歉回复晚了——我之前不允许发布自我回答。事实上,Emacs.app 在与终端不同的环境中运行。

M-x getenv显示缺少的PATH内容/usr/texbin,这解释了为什么 LaTex 无法在 Emacs.app shell 中工作。

按照@Alan Munn 的想法,不要编辑 .plist,我发现了一些这里有好消息 并将其整合在一起~/.emacs

(getenv "PATH")
 (setenv "PATH"
(concat
 "/usr/texbin" ":"

(getenv "PATH")))

/usr/texbin现在是其中的一部分PATH,并且 LaTeX 可以与 Emacs.app 很好地配合使用

在 El Captain 中,PATH 发生了变化。因此,您应该which latex在终端中使用 来确定实际位置。在我的计算机上,它返回/Library/TeX/texbin/latex,因此我应该使用/Library/TeX/texbin/而不是“/usr/textbin”。

谢谢大家的帮助!

答案2

在 OSX 上有一个 emacs 包可以解决这个问题,叫做exec-path-from-shell。你可以通过界面安装它list-packages。你需要使用以下命令激活它

(exec-path-from-shell-initialize)

在你的 emacs 初始化文件中。请参阅https://emacs.stackexchange.com/q/10722/2710

答案3

您可以尝试在 .emacs 中添加以下命令:

(setq exec-path (append exec-path '("YOUR/PATH/TO/LATEXB/BIN/")) )

答案4

如果您具有 root 权限,则可以将路径添加到末尾,/etc/profile如下所示:

export PATH=$PATH:/work/tools/arc/arcanist/bin:/work/tools/jdk1.6.0_25/bin

我在我的 Linux/Ubuntu 12.04 中遇到了同样的问题,但它起作用了!

相关内容