Скомпилируйте файл LaTeX из Vim, а не из терминала
Я собираю свои файлы LaTeX из терминала, и это становится немного раздражающим, чтобы каждый раз заходить в терминал и использовать:
xelatex "file-path"
Есть ли способ сделать это изнутри Vim?
2 ответа
Если вы серьезно относитесь к паре vim
+ latex
Мой предпочтительный вариант - использовать пару latexxmk
+ LaTeXBox.
latexmk
на самом деле не зависит от редактора --- это скрипт, который просматривает файлы, необходимые для компиляции латексного документа, и при необходимости перезапускает компиляцию. Конфигурация немного сложна, но это действительно полезный инструмент. Например, моя установка для xelatex
имеет latexmkrc
файл (в том же каталоге), как это:
$pdf_previewer = "start evince";
$pdf_pdf_update_method = 0;
$dvi_mode = 0;
$pdf_mode = 1;
$preview_continuous_mode = 1;
$pdflatex = "xelatex %O %S";
теперь ты можешь бежать latexmk file-name
(из того же каталога!), и у вас будет автоматическая фоновая компиляция каждый раз, когда вы изменяете файл (или любой зависимый файл - например, чертеж или библиографию). Просто сохраните файл и посмотрите, как автоматически обновляется предварительный просмотр.
latexmk
находится в репозитории юниверса, поэтому, если у вас это включено, вы можете просто установить его sudo apt-get install latexmk
,
LaTeX-BoX - плагин для vim
что упрощает редактирование файлов LaTeX и использует latexmk
Скомпилировать. Установите его, следуя инструкциям на связанной странице, и добавьте его в свой .vimrc
:
" add a <comment> vim: set spelllang=es: to change language
" LaTeX:
let g:tex_flavor='latex'
autocmd FileType tex set spell wrap linebreak
let g:LatexBox_latexmk_async=1
let g:LatexBox_latexmk_preview_continuously=1
let g:LatexBox_quickfix=2
let g:LaTeXBox_output_type='' "Let latexmkrc choose the type
(изменить на свой вкус). Теперь вы начинаете фоновую компиляцию из vim
с командой \ll
,
Попробуйте что-то вроде:
command C !xelatex %
в вашем ~/.vimrc
,
Тогда вы можете сделать:
:C
в VIM для компиляции файла.
Вы можете выполнять более сложные операции, используя функции:
function WriteCompileTex()
write
:! xelatex %
endfunction
command WC :call WriteCompileTex()
Обратите внимание, что пользовательские команды и функции должны начинаться с заглавной буквы.
Вы также можете сделать:
au BufWritePost *.tex ! xelatex %
Это будет запускать эту команду всякий раз, когда .tex
файл записан, так что вы можете просто сделать :w
, и ваш Tex-файл будет скомпилирован после сохранения.