Meine .emacs enthält
(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)
/ usr/texbin ist der Ort, an dem sich latex/pdflatex/.. befindet.
Und wenn ich Preview-at-Point starte, was anscheinend sowohl Latex als auch gs benötigt, bekomme ich es
Preview-DviPS finished at Thu Dec 22 11:25:46
DviPS sentinel: Searching for program: No such file or directory, gs
was bedeutet, dass Latex gut gefunden werden konnte, aber nicht gs.
Ich bin mir nicht sicher, ob das Setzen des Exec-Pfads notwendig ist, vielleicht reicht PATH aus, aber ich habe es als Debugging-Maßnahme festgelegt.
Warum kann emacs gs nicht finden, obwohl sich das Verzeichnis, in dem es sich befindet, sowohl in PATH als auch im exec-Pfad befindet?
Wenn Sie $PATH
in Ihren Emacs einstellen, befinden Sie sich möglicherweise auf OS X. GUI-Anwendungen werden nicht über Ihre Shell gestartet, so dass andere Umgebungsvariablen angezeigt werden.
Hier ist ein Trick, den ich verwende, um sicherzustellen, dass der $PATH
in Emacs derselbe ist, den ich sehe, wenn ich ein Terminal hochfahre (aber siehe "update" unter):
(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))))
Dann rufen Sie einfach die set-exec-path-from-Shell-PATH
-Funktion auf, vielleicht aus Ihrer Emacs-Init-Datei. Ich behalte diesen Code auf github , BTW.
Update: Dieser Code wurde verbessert und als elisp-Bibliothek mit dem Namen exec-path-from-Shell veröffentlicht. installierbare Pakete sind in MELPA verfügbar.
Versuchen Sie, die zweite Zeile durch folgende zu ersetzen:
(setq exec-path (append exec-path '("/usr/texbin" "/opt/local/bin")))
Ich bin auf ein ähnliches Problem gestoßen, aber mit einem korrekten PFAD, einschließlich des Nachlaufens von ´: ´. Es stellte sich heraus, dass das interne emacs-Shell-Programm fehlte, was zu einer "Suche nach Programm: Keine solche Datei oder ein solches Verzeichnis" führte. Festgelegt mit
(setq Shell-file-name "bash").