私は自分のtexファイルをコンパイルするためにこの関数を持っています:
function! CompileTex()
silent write!
call setqflist([])
echon "compiling with arara ..."
exec 'lcd %:h'
if expand("%:p") =~# '\(figuras\|figures\)'
let mainfile = fnameescape(expand("%:p"))
else
let mainfile = fnameescape(Tex_GetMainFileName())
endif
let &l:makeprg = 'arara -v ' . mainfile
silent make!
if !empty(getqflist())
copen
wincmd J
else
cclose
redraw
echon "successfully compiled"
endif
endfunction
最初の条件は、図を作成するときに、メイン ファイルがあっても現在のバッファーをコンパイルしたいためです。ただし、「図」を含むパスで関数を呼び出すと、
Error detected while processing function CompileTex:
line 4:
E499: Empty file name for '%' or '#', only works with ":p:h": lcd %:h
mainfile
変数は、必要に応じて現在のバッファーではなく、メインの tex ファイルに設定されます。