用于在Vim中编译和查看LaTeX文档的映射

时间:2018-03-17 08:21:37

标签: vim latexmk

我曾经使用LaTeX-Box plugin来编译和查看these mappings的LaTeX文档。

但是我不再使用它,因为\begin\end突出显示(以及较低程度的括号匹配),这些都无法关闭,使Vim受到很多影响大.tex个文件中速度较慢。

我知道如何创建用于编译.tex文档的替代映射:

autocmd FileType tex nnoremap <buffer> <F2> :!latexmk -xelatex %<cr>
autocmd FileType tex inoremap <buffer> <F2> <Esc>:!latexmk -xelatex %<cr>a

但是这将在我当前所在的目录中创建输出文件,而不是在.tex文件所在的目录中(例如,如果我在~/Desktop并且我在Vim中打开一个文件,这是在~/Documents中,如果我按F2.pdf,则所有其他文件都在~/Desktop而不是~/Documents中创建。

我不知道如何创建用于查看已编译的.pdf文档的映射。

所以,我要求你帮我创建编译.tex文件的映射,并查看创建的.pdf文件。

2 个答案:

答案 0 :(得分:1)

您可以使用Complete Match轻松修改映射以生成与源文件位于同一目录中的文件:

:help filename-modifiers

使用虚构的augroup LaTeX autocmd! autocmd FileType tex nnoremap <buffer> <F2> :!cd %:p:h && latexmk -xelatex %<cr> autocmd FileType tex inoremap <buffer> <F2> <Esc>:!cd %:p:h && latexmk -xelatex %<cr>a augroup END 程序打开生成的文件(命令缩短为易读性):

pdfviewer

答案 1 :(得分:0)

augroup LaTeX
        autocmd!
        autocmd FileType tex nnoremap <buffer> <F2> :!cd '%:p:h' && latexmk -xelatex '%:t'<CR>
        autocmd FileType tex inoremap <buffer> <F2> <Esc>:!cd '%:p:h' && latexmk -xelatex '%:t'<CR>a
        autocmd FileType tex nnoremap <buffer> <F3> :silent !mupdf '%:p:r.pdf'&<CR>
        autocmd FileType tex inoremap <buffer> <F3> <Esc>:silent !mupdf '%:p:r.pdf'&<CR>a
augroup END

这对我有用。感谢romainlhelping me明白了。