我需要帮助在 emacs 中配置 auctex。我已经下载并安装了 auctex,但无法运行。我正在运行 MAC OS X 10.8.4,并通过终端运行 emacs。如果我使用 Aquamacs emacs(适用于 MAC 的 GUI emacs),那么我至少可以让 View 命令运行(它会打开默认的 PDF 查看器,称为 Preview)。
但是,我希望通过终端使用 emacs。我已将以下内容添加到我的.emacs
文件中:
(load "auctex.el" nil t t) ;; loads tex-site in such a way so that it can be undone
(load "preview-latex.el" nil t t) ;; actual preview-latex
(setq TeX-view-program-list '(("Shell Default" "open %o")))
(setq TeX-view-program-selection '((output-pdf "Shell Default")))
(setq TeX-PDF-mode t)
(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)
(add-hook 'LaTeX-mode-hook 'visual-line-mode)
(add-hook 'LaTeX-mode-hook 'flyspell-mode)
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
(setq reftex-plug-into-AUCTeX t)
是否有可能通过 emacs 中的终端运行 Latex?我对这些都比较陌生(但是我确实设法安装了我需要的所有其他东西,例如多个解释器甚至一个 Web 浏览器!)。到目前为止,我尝试过的是打开一个 TeX 文档(加载正常并切换到名为“LaTeX/MP Ref Wrap”的模式(这对 Auctex 来说正确吗?)。我输入:C-c C-c
emacs 给我提示:Command: (default LaTeX)
我的选择是:
Possible completions are:
BibTeX Check Clean Clean All File Index
LaTeX Other Print Queue Spell View
如果我选择使用,LaTeX
那么我会从 emacs 获得以下信息:
LaTeX errors in `*~/path/to/file output*'. Use C-c ` to display.
So I type C-c ` to display the errors and this is what I get from emacs:
ERROR: LaTeX Error: File `etoolbox.sty' not found.
--- TeX said ---
Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)
Enter file name:
! Emergency stop.
<read *>
l.28 \def
\NN{\tabularnewline}^^M
--- HELP ---
From the .log file...
*** (cannot \read from terminal in nonstop modes)
我该如何修复这个问题?
LaTeX
另外,我尝试输入View
. Emacs 会提示并自动完成 :View command: dvi2tty -q -w 132 file_name
我按下回车键来执行该命令,然后 emacs 回复:
View: done.
现在有一个包含内容的新缓冲区:
unning `View' on `combinatorics_bin_trees' with ``dvi2tty -q -w 132 combinatorics_bin_trees''
/bin/sh: dvi2tty: command not found
View exited abnormally with code 127 at Fri Jun 14 16:55:35
请注意,如上所述,使用 Aquamacs Emacs(适用于 MAC OS X 的 Emacs),该View
命令将打开默认 PDF 查看器,即 Preview。所以我一定是缺少某种包?(考虑到我使用的包管理器确实会计算依赖关系来下载我的所有程序,这很令人失望……)
我该如何解决这个问题?非常感谢大家的帮助!我还欢迎任何有关调整 emacs 的 auctex 设置的建议以及任何有用的常规链接(我发现有关 auctex 的 emacswiki 根本没有用!)
答案1
如果 Emacs 找不到 *.sty,则需要设置路径。这是用于MacTeX.pkg
安装的。如果您使用 Macports 或 Homebrew,则路径会有所不同,但类似。修复该问题然后报告,如果仍然有错误,我们将帮助您进一步解决。
(setenv "PATH" (concat (getenv "PATH") ":/usr/texbin"))
(setq exec-path (append exec-path '("/usr/texbin")))
答案2
打开 tex 文件时应加载 AUCTeX。它的主要模式是 LaTeX。我注意到您的编译消息中:“etoolbox.sty”缺失。因此请确保该包存在且可用。您可以尝试通过系统终端编译 tex 文件,看看 AUCTeX 是否有问题。
您还必须将“SHELL”路径导入变量“exec-path”。为此,我在 init.el 中放入了以下函数。
(defun set-exec-path-from-shell-PATH ()
"Set `exec-path' from `PATH' environment variable"
(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))