Here is part two of my quest to make Emacs my default LaTex IDE on both windows and Linux. Installation and configuration of Emacs and the LaTex add-on AUCTex on Ubuntu was surprisingly easy and uneventful. On windows however I ran into little bit more difficulty.
Of course I could download the precompiled Emacs + AUCTex bundle from the AUCTex website but I wasn’t really thrilled about that. You see, I was already had a nice copy of Emacs on my system – on windows I’m using EmacsW32. What is the difference you ask?
Well, EmacsW32 comes with a nice MSI installer that adds all sorts of registry hooks that make it act as a first class Windows application. It also makes the GUI look more polished and native. I prefer it to other ways of getting Emacs on windows because I get an up to date binaries that work right out of the box.
AUCTex unfortunately does not ship binaries you could just “plug” into place so I had to download the sources and compile them. Compiling? From Source? On windows? Yup, that’s what I said. I can sees shock and disgust sweeping all over your faces. Before you run away let me assure you it’s easy as pie. Well, at least it was for me.
You will need a working copy of gcc and make. How do you get them on Windows? You could always get the MSYS from MinGW. Since I didn’t have MSYS but had a working Cygwin installation I used that. I simply pulled up my cygwin bash sell and did:
$ ./configure --prefix='c:/Program Files/Emacs/emacs/' --with-texmf-dir='c:/Program Files/MiKTeX 2.5' --with-lispdir='c:/Program Files/Emacs/site-lisp' $ make $ make install
You may want to tweak the parameters for the configure script with appropriate paths. As you can see I’m using MiKTeX 2.5 on my machine. If you are using something else, you should probably change that line. Also, if you are not using EmacsW32 then you might need to change the –prefix and –with-lispdir lines to point them to your emacs installation directory. If you get an error, tweak the parameter or download dependencies and try again.
I really had no dependency problems or anything but I don’t remember what exactly did I have in my Cygwin install. It’s possible that you may need to download a package or two like maybe the cygwin Emacs version. Before you ask – I don’t use the cygwin version of Emacs because I don’t feel like running a full instance of X server for the GUI. Besides, EmacsW32 is much more responsive being that it is a native app and all.
Note that I’m using the Windows path notation with inverted searator specifying the drive as c:/ instead of the cygwin notation /cygdrive/c/. Your cygwin installation should be able to map C:/ to /cygdrive/c/. If not you may need to adjust this. If you installed your cygwin in C:\ instead of C:\cygwin then you can just use / to indicate the root drive. This is actually the “smart” way to use cygwin – Steve Yagge says so, and when Steve says something you better listen and take fucking notes.
The make install command should seamlessly slip AUCTex files into your EmacsW32 directory. Unfortunately, you will need to configure your emacs manually to use them. How to do this?
Open up your C:\Program Files\Emacs\site-lisp directory and edit site-start.el file. Add the following lines somewhere:
(load "auctex.el" nil t t) (load "preview-latex.el" nil t t) (require 'tex-mik) (eval-after-load 'info '(add-to-list 'Info-directory-list "c:/Program Files/Emacs/share/info")) (setq TeX-auto-save t) (setq TeX-parse-self t)
I actually got this snippet from Oliver Sturm who figured this configuration before me.
When I tried to use the inline preview feature of AUCTex it did not work for me. It game me some odd message saying that “gs” is not a recognized command or something like that. It turns out that it was right. On windws the default ghostscript binary is not called gs but gswin32c.exe. You will need to change this – simply open some LaTex file, pull down the Preview menu, go to Customize and find the GS Command option. Set it to: C:\Program Files\gs\gs8.54\bin\gswin32c.exe. Make sure you are not using the C:\Program Files\Ghostgum\gsview\gsview32.exe binary. That is the default windows DVI viewer which ships with Ghostscript and many people confuse the two.
All that was left was to add a command to convert the DVI files into PDF. AUCTex already ships with a DVI to PS script under Command called FILE (yeah, go figure why they called it that). I simply added the following to my .emacs:
(eval-after-load "tex" '(add-to-list 'TeX-command-list '("DVI to PDF" "dvipdfm %d" TeX-run-command t t) t))
This will add a DVI to PDF option in the Command menu which will let you generate pdf files.
So, was this really hard? I thought it was a piece of cake, compared to for example setting up that nethack server.
Happy Emacsing everyone!
[tags]emacs, emacsw32, auctex, windows[/tags]