我曾经使用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
文件。
答案 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
这对我有用。感谢romainl让helping me明白了。