编译 BibTex 时出错:\citation、\bibdata 和 \bibstyle 未找到。

编译 BibTex 时出错:\citation、\bibdata 和 \bibstyle 未找到。

我尝试在 ShareLaTex 中编译 biblatex 的最基本示例,来自https://www.sharelatex.com/learn/Bibliography_management_with_biblatex在 Texshop 中。我尝试先用 LaTex 编译,然后用 BibTex 编译,但是当我运行 BibTex 时,出现了以下三个错误:

I found no \citation commands---while reading file try2.aux
I found no \bibdata command---while reading file try2.aux
I found no \bibstyle command---while reading file try2.aux

try2.tex 文件直接从 ShareLaTex 网站复制:

% The main .tex file:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}

\usepackage{biblatex}
\addbibresource{sample.bib}

\begin{document}
Let's cite! The Einstein's journal paper \cite{einstein} and the 
Dirac's book \cite{dirac} are physics related items. 

\printbibliography

\end{document}

以下是sample.bib文件,也是从ShareLatex网站复制过来的:

% The sample.bib file:
@article{einstein,
author =       "Albert Einstein",
title =        "{Zur Elektrodynamik bewegter K{\"o}rper}. ({German})
             [{On} the electrodynamics of moving bodies]",
journal =      "Annalen der Physik",
volume =       "322",
number =       "10",
pages =        "891--921",
year =         "1905",
DOI =          "http://dx.doi.org/10.1002/andp.19053221004",
keywords =     "physics"
}

@book{dirac,
title={The Principles of Quantum Mechanics},
author={Paul Adrien Maurice Dirac},
isbn={9780198520115},
series={International series of monographs on physics},
year={1981},
publisher={Clarendon Press},
keywords = {physics}
}

我发现 ShareLaTex 很有用,但有时无法离线工作,所以我还使用 TexShop 作为补充。我知道 ShareLatex 和 TexShop 之间肯定有区别,但我不确定我应该如何修改它以使其在 TexShop 中编译。或者,有没有其他方法可以让它工作?

太感谢了!

答案1

TeXShop 假定bibtex为处理文件的程序.bib,但biblatex使用biber。因此您需要告诉 TeXShop 使用 来处理文件biber。您可以通过两种方式执行此操作:如果您始终要使用,biber那么您可以在 TeXShop 首选项引擎面板中将默认的 BibTeX 引擎更改为biber而不是bibtex

或者,(或者另外)您可以在源文件的顶部添加以下行,以告诉 TeXShop 根据文件使用哪个程序:

对于biber(如果您的文档使用biblatex):

% !BIB TS-program = biber

敌人bibtex(如果您的文档使用例如natbib或根本没有参考书目包):

% !BIB TS-program = bibtex

第三种方法是使用latexmkTeXShop 中的引擎之一,它将自动检查要使用哪个程序,并执行所有相关的编译。为此,您可以添加:

% !TEX TS-program = pdflatexmk

(或等效于如果您使用xelatexlualatex。)

如果最后一个解决方案不起作用,您可能需要将 Engine 文件从 Inactive 文件夹移动到 Engines 文件夹并重新启动 TeXShop。请参阅:

对于其他有用的指令,另请参阅:

相关内容