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 :call BuildLatex() nmap \rubber imap \rubber " open pdf via nnoremap \evince :call ShowPDF() nmap \evince imap \evince