![编译 BibTex 时出错:\citation、\bibdata 和 \bibstyle 未找到。](https://linux22.com/image/356989/%E7%BC%96%E8%AF%91%20BibTex%20%E6%97%B6%E5%87%BA%E9%94%99%EF%BC%9A%5Ccitation%E3%80%81%5Cbibdata%20%E5%92%8C%20%5Cbibstyle%20%E6%9C%AA%E6%89%BE%E5%88%B0%E3%80%82.png)
我尝试在 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
第三种方法是使用latexmk
TeXShop 中的引擎之一,它将自动检查要使用哪个程序,并执行所有相关的编译。为此,您可以添加:
% !TEX TS-program = pdflatexmk
(或等效于如果您使用xelatex
或lualatex
。)
如果最后一个解决方案不起作用,您可能需要将 Engine 文件从 Inactive 文件夹移动到 Engines 文件夹并重新启动 TeXShop。请参阅:
对于其他有用的指令,另请参阅: