Installing AucTeX 1.86 over Emacs.app in OS X
I am trying to install AucTeX 1.86 over an Emacs binary (version 24.0.50) from emacsformacosx.com. On first attempt ./configure
outputs:
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
I add --with-texmf-dir=/usr/local/texlive/texmf-local
, to which ./configure
replies happily with several congratulations. I compile with make
and sudo make install
without a glitch.
I open a .tex file on Emacs and AucTeX does not load. I issue (load auctex.el nil t t)
C-j in the *scratch* buffer and Emacs outputs:
Debugger entered--Lisp error:(file-error "Cannot open load file" "auctex.el")
Something is up. I figured Emacs could not find the file, so it must have not installed where it was supposed to. I track down most of AucTeX files to /usr/share/emacs/site-lisp
, where Emacs 22.1 lives.
I had two options here: 1. tell Emacs where to find AucTeX (which I don't know how to do); 2. recompile AucTeX with more configuration options (which seemed more straight forward).
I chose to recompile, after deleting all AucTeX files from the previous installation. This time I configure the source, telling it where the Emacs it should use is, with:
./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
This time it complains:
`configure: error: Cannot locate lisp directory,`
`use --with-lispdir, --datadir, or possibly --prefix to rectify this`
even though I included the --with-lisp-dir=dir
option. If I take it out, it still complains about not being able to find the lisp directory. AucTeX does not seem to like the Emacs.app in the Applications folder.
My question is, how do I get this to work?
Here's how I got Auctex to work with pure Emacs:
- Install the MacTeX distribution package
-
Download OS X emacs, place in
/Applications
- Download the Auctex tarball
-
Go to the Auctex directory, configure with the command:
./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
-
Execute:
make; sudo make install
to install the
elisp
files inside theEmacs.app
, the info files to/usr/local/share/info
, etc. -
Edit your
~/.emacs
file to load Auctex/preview-latex, and point Emacs to your Latex executables:(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 and preview-latex should work now. One thing to keep in mind: with older versions of Auctex, the
ps
pathway seems to work better thanpdf
; if preview-latex images aren't appearing with the error "/typecheck in --setfileposition--", try disabling "Generate PDF" via "Menu Bar -> Command -> TeXing option".
Update: Steps (2--5) can be replaced with the Homebrew package manager:
brew install emacs --cocoa
brew install auctex
The other steps are still correct. The Emacs "Generate PDF" option now works for me.
From the Mac/GNUstep manual, instances of Emacs launched form the Finder do not inherit environmental variables, so they need to be set. /etc/path
and /etc/path.d/
will set the environmental variables system wide, but to have to have them available for the GUI (Finder-launched instances) they need to be set in the the ~/.MacOSX/environment.plist
file.
The directory and file have to be created by the user. Once that is done, paste the following (modifying where required) into your environment.plist
file. I got this from a message in a mailing list found at 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 should behave nicely now.