Vim és LaTeX

A MathWikiből
A lap korábbi változatát látod, amilyen Morap (vitalap | szerkesztései) 2009. április 1., 22:14-kor történt szerkesztése után volt.

Áttekintés

Az alábbiakban a Vim szövegszerkesztőt konfiguráljuk be úgy, hogy könnyebben, gyorsabban lehessen dolgozni. Akik nem ismerik a Vim szövegszerkesztőt, azok számára nem ajánlanám, hogy ezen leírás szerint induljanak el.

Az omnibus-on fent van a LaTeX-Suite csomag, ami rögtön automatizálódik, amint egy tex kiterjesztésű fájlt nyitunk meg. A csomag beállításai alapból a /usr/share/vim/addons/ftplugin/latex-suite/ könyvtárban vannak, ezek globális beállítások, így nincs jogunk módosítani rajtuk. A következőkben a módosítandó fájlról egy példányt hozunk létra a saját mappánkban, így a Vim ezt fogja használni.

Inverse/forward search DVI-nál, PDF fordítás, beállítások

Hozzuk létre a home mappánkban a .vimrc fájlt a következő tartalommal, illetve ha már létezik, akkor egészítsük ki:

map <F2> mp:TTarget<CR><BS><BS><BS>dvi<CR>:w<CR>\ll\ls`p
imap <F2> <Esc>mp:TTarget<CR><BS><BS><BS>dvi<CR>:w<CR>\ll\ls`pa
map <F3> mp:TTarget<CR><BS><BS><BS>pdf<CR>:w<CR>\ll\lv`p
imap <F3> <Esc>mp:TTarget<CR><BS><BS><BS>pdf<CR>:w<CR>\ll\lv`pa
set fencs=utf-8,latin2
set cursorline
set scrolloff=5

Magyarázat: Az első 4 sor az F2 és F3 gombok ezentúl DVI-t, illetve PDF fájlt generálnak. Azért van duplán minden, mert ezen gombok így működnek szerkesztői (insert) módban is. A fencs beállításai hatására ha nem néz ki utf-8 kódolásúnak a fájl, akkor nem latin1 (amerikai kódolás, ebben rosszul jelenik meg az ő és ű), hanem a helyes latin2-es kódolással nyitja meg a fájlt (és abban is menti el). A cursorline hatására kiemeli az aktuális sort, ami hasznos lehet, ám lehet zavaró is. A scrolloff opció hatására nem akkor kezdi el görgetni a képernyőt, amikor a képernyő aljához érünk, hanem 5 sorral hamarabb.

Amennyiben még nem létezik, akkor hozzuk létre a következő könyvtárstruktúrát a home könyvtárunkban:

.vim/ftplugin/tex

ezután helyezzük el ebbe a mappába a texrc fájlt (vagyis a végső helye: /home/username/.vim/ftplugin/tex/texrc legyen).

A texrc fájl az xdvi-t adja meg mint dvi megjelenítőt azzal a meghagyással, hogy az xdvi nevű Vim ablakot hívja meg inverse search-nél. Ezért utolsó lépésként írjuk be a home mappánkban lévő .bashrc-be a következő sorokat:

alias vi='vim'
alias vim='vim --servername xdvi'
alias gvim='gvim --servername xdvi'

Ezután lépjünk ki minden konzolból, hogy legközelebb az új beállításokkal működjön.

Használat

Működik Vim-mel és Gvim-mel is. Az F2 hatására menti a fájlt, dvi-t fordít, megjeleníti, az adott sort bekeretezi, odaugrik. Az xdvi ablakban a Ctrl gombot lenyomva a bal egérgombbal kattintva a forrásban a megfelelő sorhoz ugrik. Az F3 hatására menti a fájlt, pdf-t fordít (pdflatex paranccsal), amelyet megjelenít, de sajnos mindig az első oldalt.

Hátrányok: néha az inverse searchnél nyomni kell egy plusz Enter-t. Ezt a Vim alul kiírja. Továbbá az inverse search nem tolerálja, hogy ha több Vim van megnyitva ugyanazzal a szervernévvel. Esetünkben az összes Vim-nek ugyanaz lesz a szerverneve, ezért ez a funkció csak akkor fog jól működni, ha csak egy Vim fut. (Cserébe vim file.tex paranccsal lehet megnyitni egy fájlt, és nem kell mindig --servername opcióval indítani.)

Ha hibás a tex fájl, akkor alul kiírja a hibát. Nem ugrik a hiba helyére (nekem ezzel negatív tapasztalataim voltak, aki akar kísérletezni, az kapcsolj a be a Tex_GotoError opciót a texrm fájlba és szedje ki a `p részeket a .vimrc-ből). A hibát kiírja alul, de ez következő (már helyes kóddal történő) fordításnál eltűnik.

Személyes eszközök