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