在Emacs终端模式下,pdflatex命令无法正常工作

4
我在Emacs终端模式中遇到了一些问题。我是一名Mac用户,使用从emacsformacosx.com下载的Emacs;我也安装了ESS和AucTex。
我使用R、LaTex、Sweve,并且全部都用Emacs管理。当我想编译Sweave文件时,我会打开终端并使用“R CMD Sweave myfile.Rnw”命令生成一个myfile.tex文件。之后我使用“pdflatex myfile.tex”命令来编译LaTex文件。
如果在osx的终端应用程序中使用所有这些命令都能正常工作,但是,如果我使用Emacs teminal模式,则pdflatex命令无法工作:
“bash: pdflatex: command not found”
你有什么建议吗?
编辑:感谢您的建议,我通过在我的.emacs文件中添加以下内容解决了我的问题:
(defun set-exec-path-from-shell-PATH ()
  (let ((path-from-shell 
      (replace-regexp-in-string "[[:space:]\n]*$" "" 
        (shell-command-to-string "$SHELL -l -c 'echo $PATH'"))))
    (setenv "PATH" path-from-shell)
    (setq exec-path (split-string path-from-shell path-separator))))
(when (equal system-type 'darwin) (set-exec-path-from-shell-PATH))

我在链接文本中找到了它。

最好的, Riccardo



2
这似乎更像是一个superuser.com的问题。很可能是你的$PATH环境变量出了问题,在终端中设置正确,但在Emacs shell窗口中没有设置正确。我对OSX的怪癖不够了解,无法帮助你解决这个问题。 - zwol
1
你能把编辑后的内容移到答案里吗?这样更符合 Stack Overflow 的问答格式,而且你也可以获得赞和接受自己的答案。谢谢。 - Bill the Lizard
1个回答

1
在OS X上,GUI程序的环境变量设置在~/.MacOSX/environment.plist中。有许多Emacs特定的解决方法,比如使用(setenv "PATH" (shell-command-to-string "echo -n $PATH")),你可以在Stack Overflow和互联网上找到它们的分散信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接