Сопоставления для компиляции и просмотра документов LaTeX в Vim
Раньше я использовал плагин LaTeX-Box для компиляции и просмотра документов 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 ответа
Вы можете легко изменить свои сопоставления для генерации файлов в том же каталоге, что и исходный файл с :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
программа (команда сокращена для удобочитаемости):
!cd %:p:h && latexmk -xelatex % && pdfviewer %:p:r.pdf
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 за помощь в выяснении.