我正在尝试通过 emacsformacosx.com 上的 Emacs 二进制文件(版本 24.0.50)安装 AucTeX 1.86。首次尝试./configure
输出:
configure: error: Cannot find the texmf directory!
Please use --with-texmf-dir=dir to specify where the preview tex files go
configure: error: ./configure failed for preview
我补充说--with-texmf-dir=/usr/local/texlive/texmf-local
,他./configure
高兴地回复了几句祝贺。我顺利地make
编译了。sudo make install
我在 Emacs 上打开一个 .tex 文件,但 AucTeX 无法加载。我(load auctex.el nil t t)
在 *scratch* 缓冲区中发出 Cj,Emacs 输出:
Debugger entered--Lisp error:(file-error "Cannot open load file" "auctex.el")
出事了。我认为 Emacs 找不到该文件,所以它一定没有安装在它应该安装的位置。我追踪到大多数 AucTeX 文件到/usr/share/emacs/site-lisp
Emacs 22.1 所在的位置。
我有两个选择:1. 告诉 Emacs 在哪里找到 AucTeX(我不知道怎么做);2. 使用更多配置选项重新编译 AucTeX(这似乎更直接)。
我选择重新编译,删除了之前安装的所有 AucTeX 文件。这次我配置了源,告诉它应该使用的 Emacs 在哪里,如下所示:
./configure -with-emacs=/Applications/Emacs.app/Contents/MacOS/Emacs --with-lisp-dir=/Applications/Emacs.app/Contents/Resources/site-lisp --with-texmf-dir=/usr/local/texlive/texmf-local
这次它抱怨道:
`configure: error: Cannot locate lisp directory,`
`use --with-lispdir, --datadir, or possibly --prefix to rectify this`
即使我包含了该--with-lisp-dir=dir
选项。如果我将其取出,它仍然会抱怨找不到 lisp 目录。AucTeX 似乎不喜欢 Applications 文件夹中的 Emacs.app。
我的问题是,我该如何让它发挥作用?
答案1
以下是我如何让 Auctex 与纯 Emacs 协同工作:
- 安装MacTeX 分发包
- 下载 OS X emacs, 放入
/Applications
- 下载 Auctex 压缩包
进入Auctex目录,使用命令进行配置:
./configure --with-emacs=/Applications/Emacs.app/Contents/MacOS/Emacs --with-lispdir=/Applications/Emacs.app/Contents/Resources/site-lisp --with-texmf-dir=/usr/local/texlive/texmf-local
执行:
make; sudo make install
elisp
安装里面的文件Emacs.app
,将信息文件安装到/usr/local/share/info
等等。编辑
~/.emacs
文件以加载 Auctex/preview-latex,并将 Emacs 指向您的 Latex 可执行文件:(setenv "PATH" (concat "/usr/texbin:/usr/local/bin:" (getenv "PATH"))) (setq exec-path (append '("/usr/texbin" "/usr/local/bin") exec-path)) (load "auctex.el" nil t t) (load "preview-latex.el" nil t t)
Auctex 和 preview-latex 现在应该可以正常工作了。有一点要记住:使用旧版本的 Auctex,该
ps
路径似乎比 效果更好pdf
;如果 preview-latex 图像没有出现错误“/typecheck in --setfileposition--”,请尝试通过“菜单栏 -> 命令 -> TeXing 选项”禁用“生成 PDF”。
更新:步骤(2-5)可以用 Homebrew 包管理器替换:
brew install emacs --cocoa
brew install auctex
其余步骤仍然正确。Emacs“生成 PDF”选项现在对我有用。
答案2
从 Mac/GNUstep 手册来看,从 Finder 启动的 Emacs 实例不会继承环境变量,因此需要设置它们。/etc/path
并将/etc/path.d/
设置系统范围内的环境变量,但为了使它们可用于 GUI(Finder 启动的实例),需要在文件中设置它们~/.MacOSX/environment.plist
。
目录和文件必须由用户创建。完成后,将以下内容(根据需要进行修改)粘贴到文件中environment.plist
。这是我从邮件列表中的一条消息中得到的,地址是http://newsgroups.derkeiler.com/Archive/Comp/comp.text.tex/2009-12/msg00199.html。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd";>
<plist version="1.0">
<dict>
<key>PATH</key>
<string>/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/usr/local/texlive/2009basic/bin/universal-darwin</string>
</dict>
</plist>
AUCTeX 现在应该表现良好了。
答案3
要加载 AUCTeX,.emacs
需要修改文件。摘自 AUCTeX 手册:
使用 Emacs(或者如果您明确禁用了软件包系统),启动文件“auctex.el”和“preview-latex.el”可能已经位于“site-start.d/”目录中(如果您的 Emacs 安装提供了该目录)。在这种情况下,它们应该在启动时自动加载,无需执行任何其他操作。如果没有,它们至少应该放在您的加载路径中的某个位置。然后,您可以通过放置以下行来加载它们
(load "auctex.el" nil t t)
(load "preview-latex.el" nil t t)
进入你的初始化文件。
如果你明确使用了 --with-lispdir,则可能需要将指定的目录添加到 Emacs 的 load-path 变量中,方法是添加类似
(add-to-list 'load-path "~/elisp")
将上述几行放入你的 Emacs 启动文件之前。
我的系统中没有~/elisp
目录,因此我添加了配置中指定的目录:
(add-to-list 'load-path "/Applications/Emacs.app/Contents/Resources/site-lisp")
。这似乎可以.tex
在 Emacs 中打开文件时加载 AUCTex。出于某种原因,工具栏默认未启用。
AUCTeX 钩子现已应用。但是,尝试对文档进行 latex 处理时会出错:
/bin/sh: pdflatex: command not found
看起来这是一个$PATH$问题。