Скомпилируйте файл LaTeX из Vim, а не из терминала

Скомпилируйте файл LaTeX из Vim, а не из терминала

Я компилирую файлы LaTeX из терминала, и мне становится немного раздражающим каждый раз заходить в терминал и использовать:

xelatex "file-path"

Есть ли способ сделать это из Vim?

решение1

Если вы серьезно настроены использовать пару vim+ latex, то я бы предпочел использовать пару latexxmk+ LaTeXBox.

latexmkне зависит от редактора, на самом деле --- это скрипт, который отслеживает файлы, необходимые для компиляции latex-документа, и перезапускает компиляцию при необходимости. Конфигурация немного сложна, но это действительно полезный инструмент. Например, моя настройка для 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.

решение2

Попробуйте что-то вроде:

command C !xelatex %

в вашей ~/.vimrc.

Затем вы можете сделать:

:C

в vim для компиляции файла.

С помощью функций можно выполнять более сложные операции:

function WriteCompileTex()
  write
  :! xelatex %
endfunction
command WC :call WriteCompileTex()

Обратите внимание, что определяемые пользователем команды и функции должны начинаться с заглавной буквы.

Вы также можете сделать:

au BufWritePost *.tex ! xelatex %

Эта команда будет запускаться всякий раз, когда .texвыполняется запись в файл, так что вы можете просто выполнить команду :w, и ваш Tex-файл будет скомпилирован после сохранения.

Связанный контент