Biblatex 重新制作了 bcf 和 bbl 文件,尽管 bib 文件没有改变

Biblatex 重新制作了 bcf 和 bbl 文件,尽管 bib 文件没有改变

对我的项目 tex 文件的任何更改(即使不涉及 bib 文件或引文)都会导致 biblatex 重新编译 bcf 和 bbl 文件。如何防止此行为以节省重新制作项目的时间?

我正在使用以下 makefile:

MAIN="file.tex"
file.pdf.dummy : *.tex 
    latexmk -xelatex -pv $(MAIN)

clean:
    latexmk -xelatex -C $(MAIN)

latexmkrc 包含:

$pdf_previewer = "start atril";

$pdf_update_method = 0;

我的后端是 biber。我尝试使 bbl 和 bcf 文件不可变,但是 biblatex 抱怨它想要写入 bcf 文件并死机。

答案1

问题是,我使用的Mendeley参考管理器bib在后台更新全局文件,而我却没有注意到。因此,文件正在发生变化。如果对任何与引用相关的内容进行任何更改(例如,对基础文件进行更改或向文件添加), bib则默认行为latexmk是重新制作所有文件。bblbib\citetex

bib您可以通过使用未链接到参考管理器的文件副本来防止这种情况- 并手动更新 latex 的版本。或者使用Makefile 中 的选项防止latexmk重新制作文件。完整的 Makefile 如下:bbl-bibtex-latexmk

MAIN="file.tex"
file.pdf.dummy : *.tex 
    latexmk -bibtex- -xelatex -pvc $(MAIN)

如果您将 refs 添加到 bib 文件中,则需要重新运行 biber。只需调用latexmk而不使用-bibtex-选项即可。

您也可以在latexmkrc文件中配置此行为;变量名称在 man 文件中有说明,并且关于 Makefile 的良好入门知识- 但是 - Makefile 是更明显的地方。

相关内容