Скомпилируйте файл 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-файл будет скомпилирован после сохранения.

Другие вопросы по тегам