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