对我的项目 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
是重新制作所有文件。bbl
bib
\cite
tex
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 是更明显的地方。