diff --git a/data/tex_zathurasynctex.vim b/data/tex_zathurasynctex.vim index 4ac8be9..96f3a25 100644 --- a/data/tex_zathurasynctex.vim +++ b/data/tex_zathurasynctex.vim @@ -1,50 +1,19 @@ " See LICENSE file for license and copyright information +" This is a sample plugin that can be used for synctex forward synchronization. +" It currently uses latexsuite to obtain the file name of the document. If you +" are not using latexsuite, it should be enough to adopt output accordingly. + " avoid re-execution -if exists("b:did_zathura_synctex_plugin") +if exists("b:did_zathura_synctex_plugin") || !exists("*Tex_GetMainFileName") finish endif let b:did_zathura_synctex_plugin = 1 -" set up global variables -if !exists("g:zathura_synctex_latex_suite") - let g:zathura_synctex_latex_suite = 1 -endif - function! Zathura_SyncTexForward() let source = expand("%:p") let input = shellescape(line(".").":".col(".").":".source) - let output = "" - if exists("*Tex_GetMainFileName") && g:zathura_synctex_latex_suite == 1 - " use Tex_GetMainFileName from latex-suite if it is available - let output = Tex_GetMainFileName(":p:r").".pdf" - else - " try to find synctex files and use them to determine the output file - let synctex_files = split(glob("%:p:h/*.synctex.gz"), "\n") - if len(synctex_files) == 0 - echo "No synctex file found" - return - endif - - let found = 0 - for synctex in synctex_files - let pdffile = substitute(synctex, "synctex.gz", "pdf", "") - let out = system("synctex view -i ".input." -o ".shellescape(pdffile)) - if match(out, "No tag for ".source) >= 0 - continue - endif - - let found = 1 - let output = pdffile - break - endfor - - if found == 0 - echo "No synctex file containing reference to source file found" - return - endif - endif - + let output = Tex_GetMainFileName(":p:r").".pdf" let execstr = "zathura --synctex-forward=".input." ".shellescape(output) silent call system(execstr) endfunction