我正在尝试让 biblatex 与 Vim-Latex(又名 Latex-Suite)配合使用。使用 bibtex 作为后端可以正常工作,但使用 biber 则不行。我使用的是 Miktex 2.9,并且在我的 .vimrc 文件中有以下内容:
" Latex configuration
set shellslash
set grepprg=grep\ -nH\ $*
let g:tex_flavor='latex'
let g:Tex_BibtexFlavor = 'biber'
let g:Tex_CompileRule_pdf = 'pdflatex --synctex=-1 -src-specials -interaction=nonstopmode -file-line-error-style $*'
let g:Tex_DefaultTargetFormat='pdf'
let g:Tex_MultipleCompileFormats='pdf'
我也尝试过设置:
let g:Tex_CompileRule_bib = 'biber $*'
但我仍然收到“存在未定义的引用”警告。
答案1
正如 MarcoDaniel 所建议的,一种可能性是使用这个神奇的arara
工具。为了使其与 Vim-Latex 一起工作,编译器设置必须vimrc
是:
let g:tex_flavor='latex'
let g:Tex_DefaultTargetFormat='pdf'
let g:Tex_CompileRule_pdf = 'arara -v $*'
为了能够通过在“QuickFix”窗口中按回车键跳转到源窗口中的错误位置,您必须将“file-line-error-style”标志传递给 arara,例如像这样:
% arara: pdflatex: {options: "-file-line-error-style"}
要使用biber
,只需添加指令:% arara: biber
答案2
在上述 Paul 和 Werner 的回答对我没有帮助之后,我根据他们所写的内容做了以下事情:
在 中~/.vimrc
,我添加了:
let g:Tex_BibtexFlavor = 'biber'
let g:Tex_DefaultTargetFormat="pdf"
" The following is relevant to make LaTeX rerun after biber if necessary:
" (include all formats for which re-running is to be enabled)
let g:Tex_MultipleCompileFormats='pdf,dvi'
在~/.vim/ftplugin/latex-suite/compiler.vim
第567行左右,我做了以下代码替换:
" old code:
" if runCount == 0 && Tex_IsPresentInFile('\\bibdata', mainFileName_root.'.aux')
" let bibFileName = mainFileName_root.'.bbl'
" new code:
if runCount == 0 && Tex_IsPresentInFile('Please \(re\)run Biber on the file', mainFileName_root.'.log')
let bibFileName = mainFileName_root.'.bcf'
第二行 ( .bbl
-> .bcf
) 中的更改与使 biber 在正确的文件上运行有关。第一行中的更改使 biber 仅在 LaTeX 在 -File 中输出通常的“请在文件上 (重新) 运行 Biber ...”时才执行.log
。在 Louisa Grey 上面建议的版本中,只要源文件包含引用,biber 就会运行;但通常这不是必要的。
如果这对您有用,请告诉我。
编辑:
有时手动运行 biber 很方便,而不是作为由快捷键触发的编译过程的一部分\ll
。为此,您\lb
只需将以下行添加到即可配置新的快捷键~/.vimrc
:
map <Leader>lb :<C-U>exec '!biber '.Tex_GetMainFileName(':p:t:r')<CR>
答案3
我所做的是在 vim-latex 插件中,~/.vim/ftplugin/latex-suite/texrc
我更改了:
TexLet g:Tex_BibtexFlavor = 'bibtex'
到
TexLet g:Tex_BibtexFlavor = 'biber'
然后,就像@PLK提到的那样,您想要在文件biber
上执行.bcf
(参见biblatex
手动的),所以在~/.vim/ftplugin/latex-suite/compiler.vim
568 左右,我改变了
let bibFileName = mainFileName_root.'.bbl'
到
let bibFileName = mainFileName_root.'.bcf'
如果这对您有用,请告诉我。