我正在通过 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
终端的,不是吗?有人能向我解释一下如何修复PATH
或environment 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 中遇到了同样的问题,但它起作用了!