我的项目使用多个 bib 文件:a.bib
和b.bib
。为了编译文档,我需要pdflatex
首先,然后bibtex
对aux
从这两个单独的bib
文件生成的文件执行,最后pdflatex
再执行两次。TexStudio 似乎无法bibtex
在生成的aux
文件上运行。但是,当我的项目曾经使用单个bib
文件时,TexStudio 曾经运行完美。我该如何修复它?
答案1
多个.bib
文件本身并不需要多次运行 BibTeX。
仅在文件的基本名称上运行 pdfLaTeX、BibTeX、pdfLaTeX、pdfLaTeX 后,以下示例文档看起来正常.tex
。
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=bibtex, style=authoryear]{biblatex}
\begin{filecontents}{\jobname-a.bib}
@book{elk,
author = {Anne Elk},
title = {A Theory on Brontosauruses},
year = {1972},
publisher = {Monthy \& Co.},
location = {London},
}
\end{filecontents}
\begin{filecontents}{\jobname-b.bib}
@book{belk,
author = {Anne Belk},
title = {A Theory on Brontosauruses},
year = {1973},
publisher = {Monthy \& Co.},
location = {London},
}
\end{filecontents}
\addbibresource{\jobname-a.bib}
\addbibresource{\jobname-b.bib}
\begin{document}
Lorem \autocite{belk,elk}
\printbibliography
\end{document}
使用 和后,一旦您开始使用 s 和其他高级功能(本质上需要生成单独的参考书目),您将需要多次运行 BibTeX 。但是,这biblatex
与您正在使用的文件数量无关(并且您通常会对名称源自文件基本名称的文件运行 BibTeX ,而不是对任何文件运行 BibTeX)。backend=bibtex,
refsection
.bib
.tex
.bib
如果您backend=biber,
按照建议使用,biblatex
则只需在主文件的基本名称上调用 Biber,.tex
即使您使用refsection
s 等高级功能也是如此。无需在不同的文件上运行 Biber。在特殊情况下可能需要的唯一内容是更长的编译序列,形式为 LaTeX、Biber、LaTeX、Biber、LaTeX、LaTeX。
这个答案是从一个biblatex
角度写的,但它仍然适用于经典的 BibTeX 角度。多个.bib
文件不需要在多个文件上运行 BibTeX。多个参考书目,如由bibtopic
和朋友们也可能会这么做。
据我所知,TeXStudio 在需要时可以自动为您运行 LaTeX 和 BibTeX/Biber,但至少对我来说,这种启发式方法并不总是正确的,我相信它不支持在多个文件上调用 BibTeX 之类的功能。如果您可以始终如一地重现 TeXstudio 不愿按照文档的要求运行 BibTeX 的情况,您可以打开一个问题https://github.com/texstudio-org/texstudio/issues请求对多个 BibTeX 运行的支持。