在 OS X 上通过 Emacs.app 安装 AucTeX 1.86

在 OS X 上通过 Emacs.app 安装 AucTeX 1.86

我正在尝试通过 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-lispEmacs 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 协同工作:

  1. 安装MacTeX 分发包
  2. 下载 OS X emacs, 放入/Applications
  3. 下载 Auctex 压缩包
  4. 进入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
    
  5. 执行:

    make; sudo make install
    

    elisp安装里面的文件Emacs.app,将信息文件安装到/usr/local/share/info等等。

  6. 编辑~/.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)
    
  7. 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$问题。

相关内容