Cieľom tejto stránky je poskytnúť postup inštalácie GNU emacsu pod operačným systémom MS Windows tak, aby v ňom bolo možné editovať a spracovávať dokumenty v systéme LaTeX. Privítam akékoľvek pripomienky a doplnenia, ktoré tento postup pomôžu vylepšiť či aktualizovať. Predpokladá sa spolupráca s distribúciou MikTeX a kódovanie 1250. Postup je overený na čistej inštalácii vo Windows 2000 inštalovaním Emacsu 21.3 a MikTeXu 2.4 dňa 24.9.2005.
Podobná stránka sa venuje inštalácii pod Linuxom. Trocha z iného uhla rozoberám možnosti jednotlivých modifikácií Emacsu pre LaTeX na tejto stránke a občas prednášam doktorandom Krátky kurz LaTeXu. Tie doplňujú túto stránku, vysvetľujú, ako ktoré balíky používať.
Podrobný postup uvedený v nasledovných kapitolách má už svoj vek. Nechávam ho, pretože je v ňom podrobne vysvetlené, čo všetko treba urobiť. V tejto časti ponúkam najnovší návod na kompletnú inštaláciu z 2/2009. Použitý je Emacs 22 a Miktex 2.7. Návod je koncipovaný tak, aby s ním bolo čo najmenej problémov. Na druhej strane ale nevysvetľuje.
c:\
, takže vznikne c:\emacs
. c:\emacs\bin\addpm.exe
, ktorý Emacsu
nainštaluje niektoré informácie do registrov. Tiež stiahneme a
spustíme súbory emacs-home.reg
a emacs-edit.reg.c:\emacs
prekopírujeme
súbor .emacs
do hlavného adresára c:\
.PATH
(pre všetkých
používateľov) pridáme adresár Emacsu (dopíšeme na
koniec ;c:\emacs\bin
.tex
súbor a poklepeme naň. Po
opýtaní, ktorý program s ním treba používať,
zvolíme c:\emacs\bin\gnuclientw.exe
, aby bol používaný
vždy. Toto opakujeme aj pre bib
a iné súbory, ktoré
chceme poklepaním otvoriť v Emacse.Podrobný postup inštalácie Emacsu pre Windows možno napríklad nájsť na tejto stránke.
c:\emacs
a rozbalíme doň obsah
archívov emacs
a leim
tak, aby vznikli
podadresáre
c:\emacs\{bin,etc,info,leim,lisp,lock,site-lisp}
gnuserv.zip/Release/
prenesieme 4 exe
súbory do c:\emacs\bin
a z gnuserv.zip
prenesieme gnuserv.el
do
c:\emacs\site-lisp
. reg.zip
. Obsahuje emacs-home.reg
pre nastavenie domovského adresára pre súbor .emacs
pre
všetkých užívateľov počítača a súbor emacs-edit.reg
,
ktorý pridáva do menu pravého tlačidla myši príkaz "Edit with GNU
Emacs". Ak máme o tieto dve konfiguračné zmeny záujem, poklepaním
myšou na každý z nich ich vložíme do registrov Windows.c:\autoexec.bat
nasledovný riadok:
PATH=c:\emacs\bin;c:\texmf\miktex\bin;%PATH%
. Je možné
túto zmenu urobiť aj cez ovládacie panely, ale je to na mňa veľa
klikania a nie je to možné v starších verziách Windows. Samozrejme,
predpokladá sa, že binárky MikTeXu sú v danom adresári. Ale,
modifikácia autoexec.bat
vyžaduje reštart počítača.
.emacs
do
adresára c:\
a rozbalenie archívu
site-lisp.zip
miesto c:\emacs\site-lisp
,
alebo aspoň jeho doplnenie do tohto adresára.Tým by mala byť celá inštalácia a aj konfigurácia emacsu ukončená
a mal by plne podporovať prácu s (Pdf)(Cs)(La)TeXom. Ak niečo
nefunguje, alebo chcete vedieť, čo všetko je v archíve
site-lisp.zip
a súbore .emacs
konfigurované, čítajte ďalej.
Všetky tieto nastavenia sú súčasťou konfiguračných súborov z predošlého odstavca.
.emacs
nasledovné riadky:
(load "gnuserv") (setq gnuserv-frame t) (gnuserv-start) (setq gnuserv-frame (selected-frame))Tie zabezpečia, aby spustenie ďalšieho emacsu, či už príkazom
runemacs
alebo iným, otvorilo vždy aktuálnu inštanciu
emacsu a nespustilo ďalší. ./configure; make;
make contrib; make install; make install-contrib
. Výsledkom je
adresár c:\emacs\site-lisp\auctex
.
Pridáme do .emacs:
(require 'tex-mik)
Po reštarte Emacsu by malo byť pri práci s .tex súborom dostupné
menu Command
a v ňom základné príkazy.
.emacs
doplníme nasledovné riadky:
(set-language-environment "slovak") (set-input-method "slovak-prog-2") (codepage-setup '1250) (prefer-coding-system 'cp1250) (define-coding-system-alias 'windows-1250 'cp1250) (setq default-input-method "slovak-prog-2") (set-selection-coding-system 'cp1250)
Toto nastavenie funguje najlepšie, keď je Windows nastavený na EN
klávesnicu, inak sa obe klávesnice bijú. Po reštarte emacsu by sme
mali byť schopní sa prepnúť do SK klávesnice príkazom C-\
a písať po slovensky. Klávesnica slovak-prog-2 je nastavená tak, aby
[]{} a pod, boli ako na anglickej a teda ú treba písať cez dĺžeň +
u. Sú ešte ďalšie klávesnice (aj české) či kódovania, treba zistiť,
ktoré komu vyhovuje.
c:\texmf\miktex\bin\{cslatex,pdfcslatex}.exe
a podobne,
ktoré predpokladajú kódovanie tex súborov vo formáte iso-8859-2.
Znamená to, že z príkazového riadku fungujú príkazy:
cslatex.exe --tcx=cp1250cs --src subor.tex yap -1 subor.dvi dvips subor.dvi -o subor.ps ps2pdf subor.ps pdfcslatex.exe --tcx=cp1250cs --src subor.tex
Ak nie, treba prekontrolovať inštaláciu.
c:\emacs\site-lisp\auctex\tex.el
pomocou emacsu priamo
alebo pomocou customize (preferujem priamu metódu). Premennú
TeX-command-list
doplníme o nasledovné riadky:
("CsTeX" "csplain --tcx=cp1250cs \\input{%t}" TeX-run-TeX nil (latex-mode doctex-mode) :help "Run CsPlain") ("CsLaTeX" "cslatex --src --tcx=cp1250cs \\input{%t}" TeX-run-TeX nil (latex-mode doctex-mode) :help "Run CsLaTeX") ("PdfCsLaTeX" "pdfcslatex --tcx=cp1250cs \\input{%t}" TeX-run-TeX nil (latex-mode doctex-mode) :help "Run PdfCsLaTeX") ("Ps2Pdf" "ps2df %f" TeX-run-command nil t :help "Create PDF from PS")
Súbor tex.el
dáme v emacse skompilovať: menu Emacs-lisp
-> Byte compile this file.
Tento súbor treba mať odložený, keby ho AUCTeX prepísal.
Spätné a Dopredné vyhľadávanie. Spätné vyhľadávanie znamená, že v
Yape stačí niekde poklepať a otvorí sa Emacs s kurzorom v správnom
súbore a na približne správnom riadku. Dopredné vyhľadávanie zase spustí
Yap tak, aby sa otvorila stránka a text, na ktorom bol kurzor v Emacse
naposledy. Pri CsLaTeX-u je pridaný natvrdo parameter
--src
na dopredné a spätné vyhľadávanie v dvi súbore. Asi
by to tam nemuselo byť, ale neviem ako to urobiť inak. Ďalej, aby
fungovalo dopredné vyhľadávanie, musí byť v menu Command
,
v položke TeXing Options
byť zapnutá voľba Source
Specials
. Potom je Yap spustený s parametrom
-s
. Aby fungovalo aj spätné hľadanie z Yapu do Emacsu, je
v Yape potrebné v menu View
, príkaze
Options
, karte Inverse Search
nastaviť
program Gnu Emacs (Single Instance)
.
Po reštarte emacsu a otvorení súboru s príponou tex sa v menu command zjavia príkazy CsTeX, CsLaTeX a PdfCsLaTeX, ktoré otestujeme, či robia, čo majú.
C-c C-c
alebo
pomocou menu Command
, pričom ten prvý spôsob je celkom
inteligentný a ponúka možnosť, ktorá je asi potrebná (najprv latex,
potom občas bibtex, potom view,...). Na to, aby sme spustili konkrétny
príkaz, si môžeme vytvoriť nasledovné funkcie:
;;;;Define functions useful for AUC-TeX ;;If you do not want to use 'C-c C-c' or the pull-down menu "Command" (defun do-LaTeX () "LaTeX the curent file." (interactive) (save-some-buffers t) (TeX-command "LaTeX" 'TeX-master-file)) (defun do-CsLaTeX () "CsLaTeX the curent file." (interactive) (save-some-buffers t) (TeX-command "CsLaTeX" 'TeX-master-file)) (defun do-DVIview () "YAPview the curent file." (interactive) (TeX-view)) (defun do-DVIPS () "DVIPS the curent file." (interactive) (TeX-command "File" 'TeX-master-file)) (defun do-PSview () "DVIPS the curent file." (interactive) (TeX-command "ViewPS" 'TeX-master-file)) (defun do-PS2PDF () "dvips + ps2pdf the curent dvi file." (interactive) (TeX-command "Ps2Pdf" 'TeX-master-file))
Po reštarte emacsu (alebo ich aktivácii cez C-x C-e
)
môžeme skúsiť ich funkčnosť napr M-x do-CsLaTeX
, pričom
by sa mali všetky súbory automaticky uložiť a až potom spustiť
kompiláciu.
Ďalším krokom potom môže byť nadefinovanie kláves:
(eval-after-load "tex-site" '(add-hook 'LaTeX-mode-hook '(lambda () "" (interactive) ;; (require 'textilde) (define-key LaTeX-mode-map [(control f5)] 'do-LaTeX) (define-key LaTeX-mode-map [(control S-f5)] 'do-CsLaTeX) (define-key LaTeX-mode-map [(S-f5)] 'do-DVIview) (define-key LaTeX-mode-map [(control f7)] 'do-DVIPS) (define-key LaTeX-mode-map [(control S-f7)] 'do-PS2PDF) (define-key LaTeX-mode-map [(control f8)] 'do-PSview) ) ; end lambda ) ; end add-hook ) ; end eval-after-load
Po reštarte emacsu by mali byť pri editácii súboru s príponou .tex
tieto klávesy aktívne. Dá sa to skontrolovať príkazom C-h k
F5
, kedy by mal emacs ukázať, že k tejto klávese je priradená
funkcia do-LaTeX.
;; tex default mode (setq tex-default-mode 'latex-mode) ; If you want to make AUC TeX aware of style files and multi-file ; documents right away. (setq enable-local-variables t) (setq-default TeX-master nil) (setq TeX-parse-self t) (setq TeX-auto-save t)
\label,
\ref, \cite, \index
):
;;; REFTEX ;;; (autoload 'reftex-mode "reftex" "RefTeX Minor Mode" t) (autoload 'turn-on-reftex "reftex" "RefTeX Minor Mode" nil) (autoload 'reftex-citation "reftex-cite" "Make citation" nil) (autoload 'reftex-index-phrase-mode "reftex-index" "Phrase mode" t) (add-hook 'LaTeX-mode-hook 'turn-on-reftex) ; with AUCTeX LaTeX mode (add-hook 'latex-mode-hook 'turn-on-reftex) ; with Emacs latex mode (setq reftex-enable-partial-scans t) (setq reftex-save-parse-info t) (setq reftex-use-multiple-selection-buffers t) (setq reftex-plug-into-AUCTeX t) (setq reftex-extra-bindings t) (setq bib-cite-use-reftex-view-crossref t)
Pripojíme k Reftex aj bib-cite
pre prácu s BIB
súbormi:
(autoload 'turn-on-bib-cite "bib-cite") (add-hook 'LaTeX-mode-hook 'turn-on-bib-cite)
c:\emacs\site-lisp
súbor cdlatex.el na ešte jednoduchšie písanie v tex súboroch
(pozor, aktivuje aprostrofy a iné klávesy - viď jeho manuál). Pribudne
menu CDLTX:
(autoload 'cdlatex-mode "cdlatex" "CDLaTeX Mode" t) (autoload 'turn-on-cdlatex "cdlatex" "CDLaTeX Mode" nil) (add-hook 'LaTeX-mode-hook 'turn-on-cdlatex) ; with AUCTeX LaTeX mode
;; (require 'textilde)Skopírujeme textilde.el do
c:\emacs\site-lisp
a v tex súbore napíšeme M-x
textilde-on (M-x textilde-off)
. Druhou možnosťou je súbor
M-x tildify-buffer
, ktorým sa to dá robiť dávkovo po
napísaní dokumentu.
;; Colorized fonts (global-font-lock-mode t) ;; Recent Files Menu in Files (require 'recentf) (recentf-mode 1) (require 'cua) (CUA-mode t)CUA mode je dostupné tu. Nastavuje Windows klávesy pre prácu so schránkou (
C-c, C-v, C-x,
C-z
) a iné. Treba si na to trocha zvyknúť, že C-c može mať iný
význam ako v štandardnom Emacse.
Preview-latex je zaujímavý balík, ktorý dovoľuje vidieť v priamo Emacse obrázky generované zo vzorcov, tabuliek, obrázkov, atď. Úpravy, ako uvedené vyššie, tento režim nepodporujú, ale je dobré sa o ňom zmieniť, pretože je to zaujímavá myšlienka smerom k WYSIWYG a od budúcej verzie AUCTeXu bude jeho súčasťou. Preview-latex funguje tak, že cestou cez dvi-ps vytvorí png obrázky objektov, ktoré "nalepí" na objekt, pričom je ho ale stále možné editovať. Balík podporuje Emacs od verzie 21.3, čiže nie aktuálnu stabilnú verziu pod Windows. Je možné ale stiahnuť predkompilovanú vývojovú verziu Emacsu 22.1 z adresy http://nqmacs.sf.net, s ktorou to funguje k maximálnej spokojnosti. Potrebný je ďalej Ghostscript.