从 Vim 而不是从终端编译 LaTeX 文件

从 Vim 而不是从终端编译 LaTeX 文件

我正在从终端编译我的 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 盒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 文件就会在保存后被编译。

相关内容