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.

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.exeSpecify 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

0 nowych
GL1zdA   11 #1 02.11.2010 10:33

Jak ktoś woli coś mniej ekstremalnego ( http://www.bemroses.net/images/curves.jpg ) to polecam http://www.texniccenter.org/ .

Airborn   8 #2 03.11.2010 02:12

A jak radzi sobie z bardziej rozbudowanymi dokumentami składającymi się z wielu plików rozsianych po katalogach?

klisza   7 #3 03.11.2010 08:36

GL1zdA - dobre te krzywe :] coś w tym jest, szczególnie z vi ;)

iluzion   5 #4 03.11.2010 10:19

@Airborn

Tak jak każdy inny edytor. Uwzględniasz tylko w którym katalogu względem głównego pliku znajdują się inne, np.

\input{chap//intro.tex}
\input{chap//chap1.tex}
\input{chap//chap2.tex}
\input{chap//chap3.tex}
{\small\bibliography{bib//bibliography}}

\begin{figure}[!ht]
\includegraphics[width=12cm]{pic//chart1}
\end{figure}

itp.

Można skompilować dokument z poziomu aktualnie edytowanego pliku innego niż plik główny.

"When you create a new file auctex will ask you about the "master" document for it. If you define a master CTRL-c CTRL-c will compile the master instead of the currently open file."

http://stackoverflow.com/questions/2199463/emacs-auctex-run-command-on-file-that...

iluzion   5 #5 03.11.2010 10:30

@GL1zdA

Wykresy zabawne i prawdziwe. Szczególnie ten dotyczący Emacsa. Można się "zapętlić", jeśli z edytora tekstu powstaje Emacs OS jako IDE, menedżer plików, klient poczty i RSS, komunikator z obsługą jabbera, przeglądarka grafiki czy nawet Google Maps http://julien.danjou.info/google-maps-el.html ;)