From 0dfdc6ef0517f1818badda2f63333c2bdbe4b02d Mon Sep 17 00:00:00 2001 From: Sebastian Reichel Date: Sat, 1 Dec 2012 02:16:21 +0100 Subject: improve *.tex support * drop dependency of external script for viewing PDFs * support building in included files in subdirectories. - create a master.tex.latexmain to indentify the main document - main latex document must be in the same directory, or in one of the its parent directories. --- vim/after/ftplugin/tex.vim | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/vim/after/ftplugin/tex.vim b/vim/after/ftplugin/tex.vim index 91985fa..885a065 100644 --- a/vim/after/ftplugin/tex.vim +++ b/vim/after/ftplugin/tex.vim @@ -1,9 +1,38 @@ +function! GetMainLatexFile() + let p = expand('%:p:h') + while simplify(p) != "/" + let main = globpath(p, '*.latexmain') + if main != '' + return fnamemodify(main, ":p:r") + endif + let p = globpath(p, '..') + endwhile + + " no root document found, use current one + return expand('%:p') +endfunction + +function! BuildLatex() + let oldcwd = getcwd() + let file = GetMainLatexFile() + let newcwd = fnamemodify(file, ":p:h") + exec "lcd" . newcwd + exe "! rubber -d" file + exec "lcd" . oldcwd +endfunction + +function! ShowPDF() + let texfile = GetMainLatexFile() + let pdffile = fnamemodify(texfile, ":p:r") . ".pdf" + exe "! evince" pdffile ">/dev/null 2>&1 &" +endfunction + " compile latex via -nnoremap \rubber :!rubber -d % +nnoremap \rubber :call BuildLatex() nmap \rubber imap \rubber " open pdf via -nnoremap \evince :!vim-open-pdf % >/dev/null 2>&1 & +nnoremap \evince :call ShowPDF() nmap \evince imap \evince -- cgit v1.2.3