Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Emacs jako zaawansowany edytor systemu LaTeX

Instalacja

MiKTeX

Zainstaluj MiKTeX lub pobierz kompletną dystrybucję proTeXt dla systemu Windows (~955 MB). Po rozpakowaniu zawartości archiwum przejdź do katalogu ..\ProTeXt\MiKTeX\setup i uruchom znajdujący się tam instalator.

Upewnij się, że zmienna systemowa Path zawiera wpis podobny do tego:

C:\Program Files\MiKTeX 2.8\miktex\bin;

Ghostscript + Ghostview

Zainstaluj Ghostscript i Ghostview ze strony ghost.

r   e   k   l   a   m   a

Emacs

* Pobierz najnowszą wersję edytora Emacs dla systemu Windows. Aktualna wersja to emacs-23.2-bin-i386.zip (~43 MB).

* Rozpakuj archiwum w wybranej lokalizacji, np. na dysku D:.

* Aby uruchomić Emacsa przejdź do katalogu ..\emacs-23.2\bin, np. D:\emacs-23.2\bin i uruchom plik runemacs.exe. Warto utworzyć na pulpicie skrót do tego pliku.

AUCTeX

* Ze strony AUCTeX pobierz najnowszą wersję rozszerzenia Emacsa przeznaczoną do formatowania dokumentów LaTeX-a.
* Prekompilowany pakiet AUCTeX dystrybuowany jest w postaci pliku zip, który należy rozpakować w katalogu site-lisp Emacsa, np. D:\emacs-23.2\site-lisp\auctex.

Konfiguracja

Konfiguracja Emacsa sprowadza się głównie do dodania stosownych wpisów do pliku init.el, który znajduje się (w systemie Windows Vista/7) w katalogu C:\Users\USER\AppData\Roaming\.emacs.d\, gdzie USER oznacza nazwę użytkownika. Jeśli taki plik/katalog nie istnieje to należy go utworzyć.

Konfiguracja Emacsa zależy w dużej mierze od preferencji użytkownika. Wpisy, które już teraz warto dodać to:

(set-keyboard-coding-system 'cp1250)
(prefer-coding-system 'windows-1250)
(setq-default indent-tabs-mode nil)
(setq default-tab-width 4)

Odpowiadają one za ustawienie odpowiedniego kodowania dla systemu Windows i szerokość tabulacji.

Można już korzystać z Emacsa jako zaawansowanego edytora systemu LaTeX. Z podstawową obsługą Emacsa można zapoznać się na stronie emacstour oraz w wikipedii.

Uwaga:

C - oznacza klawisz Ctrl,
M - oznacza klawisz Alt (Meta),
RET - oznacza ENTER (RETURN).

Korzystanie z AUCTeX

Plik tex kompilujemy przy pomocy kombinacji klawiszy C-c C-c RET. Ponowne użycie kombinacji C-c C-c RET uruchamia przeglądarkę Yap (podgląd dvi). Inne polecenia uzyskujemy poprzez C-c C-c TAB.

Do zaawansowanej obsługi podglądu dvi poprzez Yap brakuje jeszcze jednej funkcji - Inverse DVI Search. Opcja ta umożliwia przejście kursora w odpowiednie miejsce kodu pliku tex po dwukrotnym kliknięciu na podgląd w przeglądarce Yap.

W tym celu wciskamy kombinację M-x i wpisujemy server-start lub (jeśli chcemy aby serwer startował przy każdym uruchominiu Emacsa) dodajemy do pliku init.el:

(start-server)

Następnie uruchamiamy przeglądarkę Yap, wybieramy View > Options... > Inverse DVI Search, klikamy New i wpisujemy odpowiednio:

Name: Emacs
Specify the program you want to use to edit TeX sources files: D:\emacs-23.2\bin\emacsclientw.exe
Specify the program arguments: +%l "%f"

Otwieramy dowolony plik tex, kompilujemy C-c C-c RET, uruchamiamy podgląd C-c C-c RET, klikamy podwójnie w dowolnym miejscu poglądu i...

The source file could not be opened because the page contains no source links.

Niestety. Powód jest następujący: kombinacja C-c C-c RET uruchamia polecenie latex.exe example.tex. Jeśli zależy nam na opcji Inverse DVI View przechodzimy do wiersza poleceń przy pomocy kombinacji M-! (Alt+Shift+1) i wpisujemy latex --src example.tex, gdzie example to nazwa pliku tex.

Działa!

Jest jeszcze tylko jeden mały problem... gdy otwieramy plik DVI znajdujący się na dysku i klikamy podwójnie w wybrane miejsce to oczekujemy, że zostanie uruchomiony Emacs z kursorem ustawionym w odpowiedniej linii kodu. Niestety otrzymujemy komunikat o błędzie.

Rozwiązanie problemu

* Dodaj do zmiennej Path ścieżkę do katalogu bin Emacsa, np. D:\emacs-23.2\bin;
* Dodaj nową zmienną użytkownika ALTERNATE_EDITOR o wartości runemacs
(korzystając z Panelu Sterowania lub wpisując w cmd: set ALTERNATE_EDITOR runemacs)

(lub podaj ścieżkę do pliku runemacs.exe w przypadku gdy do zmiennej Path nie została dodana ścieżka do katalogu bin)

Teraz już wszystko działa poprawnie!

Konfiguracja AUCTeX

Aby wygodnie korzystać z Emacsa jako zaawansowanego edytora systemu LaTeX warto dodać do pliku init.el następujące wpisy:

(load "auctex.el" nil t t)
(require 'tex-mik)

(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)
(add-hook 'LaTeX-mode-hook 'auto-fill-mode)
(add-hook 'LaTeX-mode-hook 'flyspell-mode)
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
(setq reftex-plug-into-AUCTeX t)

Instalacja i konfiguracja YASnippet

Jak dotąd otrzymaliśmy edytor, który niewiele się różni możliwościami od popularnych edytorów LaTeX-a. Oczywiście jest to edytor dużo bardziej wszechstronny, o dużym stopniu konfigurowalności. Można więc rozszerzyć jego funkcjonalność o dodatkowe opcje. Jedną z interesujących są snippety YAS. YASnippet jest systemem szablonów do Emacsa, które umożliwiają automatyczne rozwinięcie wybranego skrótu. Jak działa YASnippet można przekonać się oglądając demo.

Ze strony YASnippet pobierz plik yasnippet-x.y.z.tar.bz2 (gdzie x.y.z oznacza wersję pakietu) i rozpakuj w katalogu ~\.emacs.d\plugins. Katalog plugins najprawdopodobniej nie istnieje w podanej lokalizacji, więc należy go utworzyć. W omawianym przykładzie ścieżka jest następująca: C:\Users\USER\AppData\Roaming\.emacs.d\plugins\yasnippet-0.6.1c.

Następnie dodaj do pliku init.el następujące wpisy:

(add-to-list 'load-path "~/.emacs.d/plugins/yasnippet-x.y.z")
(require 'yasnippet) ;; not yasnippet-bundle
(yas/initialize)
(yas/load-directory "~/.emacs.d/plugins/yasnippet-x.y.z/snippets")

uwzględniając odpowiedni numer wersji pakietu. W danym przykładzie jest to:

(add-to-list 'load-path "~/.emacs.d/plugins/yasnippet-0.6.1c")
(require 'yasnippet) ;; not yasnippet-bundle
(yas/initialize)
(yas/load-directory "~/.emacs.d/plugins/yasnippet-0.6.1c/snippets")

Po ponownym uruchomieniu Emacsa mamy możliwość korzystania z domyślnych snippetów dla wybranych języków oraz definiowania własnych. Jest to bardzo efektywne rozwiązanie.

Konfiguracja wyglądu i instalacja tematu graficznego

Domyślnie Emacs po uruchomieniu wyświetla niskiej jakości grafikę (logo) i posiada typowy temat graficzny z białym tłem, które przy dłuższej pracy z tekstem bywa męczący dla oczu.

Jakość wyświetlanej grafiki można poprawić dodając do Emacsa obsługę plików PNG. Emacs potrafi również wyświetlać inne formaty graficzne (JPG, TIFF, GIF), obsługiwać archiwa i wiele więcej. Lista dodatkowych bibliotek do ich obsługi znajduje się na stronie GnuWinPackages. Wybierz LibPng i pobierz Binary Zip oraz dependencies zip file. Po rozpakowaniu skopiuj pliki zlib1.dll oraz libpng12.dll do katalogu bin Emacsa, np. D:\emacs-23.2\bin. Po ponownym uruchomieniu jakość grafiki znacząco się poprawia.

Aby zmienić temat graficzny pobierz paczkę color-theme-x.y.z.zip i rozpakuj ją w katalogu ~\.emacs.d\plugins, a następnie dodaj do pliku init.el wpisy:

(add-to-list 'load-path "~/.emacs.d/plugins/color-theme-6.6.0")
(require 'color-theme)
(setq color-theme-is-global t)
(color-theme-initialize)

Tematy graficzne można zmieniać stosując kombinację klawiszy M-x i wpisując color-theme-TAB, gdzie TAB oznacza klawisz tabulacji. Można również dodać odpowiedni wpis do pliku init.el, aby wykorzystać temat przy kolejnym uruchomieniu edytora, np.

(color-theme-comidia)

Jednym z ciekawszych tematów graficznych dla Emacsa jest tango. Aby zastosować ten temat plik color-theme-tango.el skopiuj do katalogu ~\.emacs.d\plugins\color-theme-x.y.z\themes i dodaj/zmodyfikuj wpis w pliku init.el:

(color-theme-tango)

W omawianym przypadku plik color-theme-tango.el skopiowano do katalogu C:\Users\USER\AppData\Roaming\.emacs.d\plugins\color-theme-6.6.0\themes.

Podsumowanie

Przykładowy plik init.el:

(tool-bar-mode -1)
(scroll-bar-mode -1)
(setq-default truncate-lines t)

(setq line-number-mode t)
(setq column-number-mode t)

;; http:/www.emacswiki.org/cgi-bin/wiki.pl?ColorTheme
(add-to-list 'load-path "~/.emacs.d/plugins/color-theme-6.6.0")
(require 'color-theme)
(setq color-theme-is-global t)
(color-theme-initialize)
;; This is my favorite color theme.
(color-theme-tango)

(set-keyboard-coding-system 'cp1250)
(prefer-coding-system 'windows-1250)

;(setq ispell-program-name "aspell")
;(setq ispell-dictionary "polish")

(setq-default indent-tabs-mode nil)
(setq default-tab-width 4)

(set-face-attribute 'default nil :font "Consolas-11")

(add-to-list 'load-path "~/.emacs.d/plugins/yasnippet-0.6.1c")
(require 'yasnippet) ;; not yasnippet-bundle
(yas/initialize)
(yas/load-directory "~/.emacs.d/plugins/yasnippet-0.6.1c/snippets")

;; Start server for Yap Inverse DVI Search.
(server-start)

(load "auctex.el" nil t t)
(require 'tex-mik)

(setq TeX-auto-save t)
(setq TeX-parse-self t)
(setq-default TeX-master nil)
(add-hook 'LaTeX-mode-hook 'auto-fill-mode)
(add-hook 'LaTeX-mode-hook 'flyspell-mode)
(add-hook 'LaTeX-mode-hook 'LaTeX-math-mode)
(add-hook 'LaTeX-mode-hook 'turn-on-reftex)
(setq reftex-plug-into-AUCTeX t)

(setq TeX-save-query nil)

Symbol ; oznacza, że dana linia jest traktowana jako komentarz, tzn. nie jest uwzględniana przez Emacsa.


 

Komentarze