AUCTeX på Windows

Vegard Øye

Jeg oppgraderte nylig til GNU Emacs 22.1, og det er i gledesrus over å ha fått preview-latex til å fungere at jeg skriver dette innlegget. preview-latex er et tillegg til LaTeX-modusen til Emacs, AUCTeX, som forhåndsviser matematiske uttrykk i selve kildefilen. Når jeg velger «Generate previews for document» fra Preview-menyen, blir bufferen min seende slik ut:

Men merk at dette lille steget over i «WYSIWYG» ikke kludrer til skriveprosessen. Når jeg beveger markøren over uttrykkene, vises LaTeX-koden i stedet, som kan redigeres dersom det er behov for det. Så kan eventuelt en oppdatert forhåndsvisning genereres etterpå, når man har skrevet tilstrekkelig mye kode til at det er greit med en tilbakemelding på hva man faktisk «har gjort». Den største gevinsten med preview-latex er at det er mye lettere å få oversikt over hvor man befinner seg i dokumentet til enhver tid, og dersom man starter skriveøkten med å generere en forhåndsvisning, får man en tydelig visuell tilbakemelding om hva som er nye endringer og hva dokumentet inneholdt fra før.

Å få bildestøtten til GNU Emacs for Windows til å fungere kan imidlertid være en noe innfløkt affære, for denne støtten er ikke innebygd i selve programmet. Den enkleste måten å komme i gang på er å laste ned AUCTeX sin Emacs + AUCTeX-pakke, som inkluderer alle de nødvendige filene. Denne er det bare å pakke ut et passende sted, f.eks. C:\Programfiler, i hvilket tilfelle Emacs vil få plasseringen C:\Programfiler\Emacs. Så kan man starte opp Emacs ved å kjøre C:\Programfiler\Emacs\bin\runemacs.exe (lag ev. en snarvei til denne på skrivebordet).

Dersom en i stedet vil gjøre ting «selv» med utgangspunkt i den offisielle Emacs-utgivelsen, må en laste ned noen ekstra .dll-filer som plasseres i samme katalog som emacs.exe (eller, for å gjøre dem tilgjengelige for andre programmer også, i systemkatalogen Windows\system eller Windows\system32). Hvilke filer det er snakk om, er beskrevet i FTP-README-filen windows/README, og de kan lastes ned enkeltvis fra GnuWin32-prosjektet.

Når alt er på plass, enten man går for pakkeløsningen eller installerer Emacs, .dll-filene og AUCTeX manuelt, er det vel verdt å ta en kikk på Claus Dethlefsens LaTeX/Emacs-side, som tar for seg fintilpasning med gnuserv (lastes ned separat). Selv har jeg bl.a. dette i .emacs-filen min:

(load "gnuserv")
(gnuserv-start)
(setq gnuserv-frame (selected-frame))

(add-hook 'text-mode-hook 'turn-on-auto-fill)
(add-hook 'text-mode-hook '(lambda ()
  (setq show-trailing-whitespace t)))
(global-font-lock-mode t)
(setq-default indicate-empty-lines t)
(column-number-mode t)
(size-indication-mode t)
(cua-mode t)
(setq cua-enable-cua-keys nil)
(show-paren-mode t)
(setq show-paren-delay 0)
(global-hl-line-mode t)
(set-face-background 'hl-line "#fffacd")
(setq skeleton-pair t)
(global-set-key "(" 'skeleton-pair-insert-maybe)
(global-set-key "[" 'skeleton-pair-insert-maybe)
(global-set-key "{" 'skeleton-pair-insert-maybe)
(setq disabled-command-hook nil)
(fset 'yes-or-no-p 'y-or-n-p)
(setq visible-bell t)
(setq inhibit-startup-message t)

(require 'ido)
(ido-mode t)

(load "auctex.el" nil t t)
(load "preview-latex.el" nil t t)
(require 'tex-mik)
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)

Det blir for mye å gå inn på hva alt dette gjør (men se bloggen M-x all-things-emacs for mange nybegynnertips), men de fire siste linjene laster inn AUCTeX og preview-latex med MiKTeX-oppsett og automatisk aktivering av AUCTeX sine mattefunksjoner når Emacs går inn i LaTeX-modus.

Dersom alt har gått som det skulle, vil AUCTeX tre i kraft når du åpner en fil med endelsen .tex, og du kan generere forhåndsvisninger fra Preview-menyen. (Alt dette forutsetter naturligvis at du har en fungerende TeX-distribusjon på systemet, som f.eks. MiKTeX. Merk at plasseringen til alle de kjørbare filene til TeX-distribusjonen må være oppført i miljøvariabelen PATH, slik at TeX-programmene blir tilgjengelige som kommandoer på kommandolinjen, for det er ved å sende instruksjoner til kommandolinjen at Emacs er i stand til å nyttiggjøre seg av TeX-distribusjonen din.)