我的.emacs包含
(setenv "PATH" (concat ".:/usr/texbin:/opt/local/bin" (getenv "PATH")))
(setq exec-path (append exec-path '(".:/usr/texbin:/opt/local/bin")))
(add-to-list 'load-path "/usr/local/share/emacs/site-lisp")
(require 'tex-site)
(load "auctex.el" nil t t)
(load "preview-latex.el" nil t t)
Run Code Online (Sandbox Code Playgroud)
/ usr/texbin是latex/pdflatex/..所在的位置./ opt/local/bin /是可以找到gs的地方.
然而,当我运行预览时,显然需要乳胶和gs,我得到了
Preview-DviPS finished at Thu Dec 22 11:25:46
DviPS sentinel: Searching for program: No such file or directory, gs
Run Code Online (Sandbox Code Playgroud)
这意味着可以找到乳胶,但不是gs.
我不确定是否需要设置exec-path,也许PATH就足够了,但我已将其设置为调试措施.
为什么emacs找不到gs,即使它所在的目录是在PATH和exec-path中?
san*_*inc 62
如果您在$PATH
Emacs中进行设置,则可能是OS X. GUI应用程序不是通过shell启动的,因此它们会看到不同的环境变量.
这是一个技巧,我用它来确保$PATH
内部Emacs与我看到的相同,如果我启动终端(但请参阅下面的"更新"):
(defun set-exec-path-from-shell-PATH ()
"Set up Emacs' `exec-path' and PATH environment variable to match that used by the user's shell.
This is particularly useful under Mac OSX, where GUI apps are not started from a shell."
(interactive)
(let ((path-from-shell (replace-regexp-in-string "[ \t\n]*$" "" (shell-command-to-string "$SHELL --login -i -c 'echo $PATH'"))))
(setenv "PATH" path-from-shell)
(setq exec-path (split-string path-from-shell path-separator))))
Run Code Online (Sandbox Code Playgroud)
然后只需set-exec-path-from-shell-PATH
从您的Emacs init文件中调用该函数即可.我把这些代码保存在github上,BTW.
更新:此代码现已改进并作为名为exec-path-from-shell的elisp库发布; MELPA中提供可安装的软件包.
hua*_*uan 11
尝试用这个替换第二行:
(setq exec-path (append exec-path '("/usr/texbin" "/opt/local/bin")))
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24185 次 |
最近记录: |