vim-latex 忽略编译规则

vim-latex 忽略编译规则

我刚刚了解了 Vim 版 LaTeX-Suite,但很难设置一个编译规则来调用它处理make我的自定义。我阅读的Makefile相关部分.vimrc

" vim-latex-suite setup:
filetype plugin on
filetype indent on
let g:tex_flavor='latex'

.vim/ftplugin/tex.vim包含

" this is mostly a matter of taste. but LaTeX looks good with just a bit
" of indentation.
set sw=2
" TIP: if you write your \label's as \label{fig:something}, then if you
" type in \ref{fig: and press <C-n> you will automatically cycle through
" all the figure labels. Very useful!
set iskeyword+=:

" Compilation rules:
let g:Tex_DefaultTargetFormat = 'pdf'
let g:Tex_CompileRule_pdf = 'make $*.pdf'

如果我省略let g:Tex_DefaultTargetFormat = 'pdf'-line,\ll将使用 进行构建latex,因此DefaultTargetFormat被正确处理。但我可以将任何内容写入CompileRule,它始终会产生GNU make错误make: *** No rule to make target 'pdf'

FAQ 告诉我要确保:set makeprg?显示的值与相同:set Tex_CompileRule_dvi,但它却显示makeprg=make "pdf"。因此 LaTeX-Suite 似乎正在执行make "pdf",完全忽略了我的编译规则。

我试过了set makeprg=make\ %:r.pdf,但它甚至没有改变的输出:set makeprg?,而是让我遇到了同样的错误。

答案1

这听起来像是预期的行为,因为g:Tex_UseMakefile它采用了默认值1。这导致 vim-latex 覆盖任何Tex_CompileRule_<fmt> 如果makefile找到a ,并将g:Tex_DefaultTargetFormat设为目标make,因此您看到make "pdf"

使用,即使发现,也会遵循let g:Tex_UseMakefile="0"适当的编译规则(仍然可以调用)。makemakefile

根据编译规则,可以在 vim-latex 中进行配置,以g:Tex_FormatDependency_<fmt>指示多个编译规则,然后利用例如自动多重编译来尝试从单个\ll编译调用中获取交叉引用。

相关内容