我在 Ubuntu 13.10 上安装 latex 时遇到了问题。在 Ubuntu 13.04 上成功使用了一段时间,更新 bibtex 后似乎无法正常工作。
我收到的错误是:
This is BibTeX, Version 0.99d (TeX Live 2013/Debian)
The top-level auxiliary file: paper.aux
I found no \citation commands---while reading file paper.aux
I found no \bibdata command---while reading file paper.aux
I found no \bibstyle command---while reading file paper.aux
(There were 3 error messages)
我已经从系统中删除了所有 texlive 包并重新安装了 texlive-full 和 kile,但没有成功。
关于如何解决这个问题有什么想法吗?
谢谢!
编辑1:.tex 文件示例:
\documentclass[a4paper,10pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc} % File encoding, you should try to stick to utf8.
\usepackage{csquotes} % Needed for biblatex
\usepackage[maxnames= 10, minnames = 10]{biblatex} % Modern bibliography facilities (you may change style to numeric). change to old bibtex if you insist on using that.
\usepackage{booktabs}
\usepackage{mathtools} % All your math related needs
\usepackage{tikz} % Draw figures, required for cover page
\usepackage{subfig} % Subfloats
\addbibresource{bibliography}
\title{}
\author{}
\begin{document}
\section{test}
Citation\cite{Pironneau1984}
\cleardoublepage
\printbibliography
\end{document}
和 bibliography.bib:
@article{Pironneau1984,
author = {Pironneau, O.},
journal = {Springer-Verlag},
title = {{Optimal Shape Design for Elliptic Systems}},
year = {1984}
}
解决方案:
当您建议运行 biber 时,我找到了解决此问题的方法。
sudo apt-get install biber
即使没有 .bib 扩展名,参考书目也能再次工作。不知道为什么我必须单独安装它,因为它之前工作得很好。
感谢@CV4、@Māris Ozols 和@MMA 的建议!
正如@jon 所解释的,默认引擎现在是 biber 而不是 bibtex,这解释了为什么需要 biber 包。
答案1
您正在使用biblatex
而不是常规的bibtex
。这意味着两件事:
- 添加 *.bib 文件时必须指定文件扩展名:
\addbibresource{bibliography.bib}
。 - 您必须
biber paper
从命令行调用来编译参考书目。
此后,只需再次编译你的论文并查看它是否有效。
答案2
您使用的是 biblatex,那么您必须为 biblatex 定义一个后端。我认为您必须在编译时看到这样的警告:Package biblatex Warning: No "backend" specified, using Biber backend.
因此,我认为最好的方法是配置您的编辑器(如果我没看错的话,是 kile)以用作biber
参考书目的处理器。您的编译链将是:
pdflatex paper.tex -> biber paper -> pdflatex paper.tex -> pdflatex paper.tex
此外,你可以biblatex
通过添加选项明确将 biber 定义为你的后端
backend=biber
到\usepackage[...]{biblatex}
。
还请考虑定义 bibencoding,就像您通过传递选项指定 inputenc 一样
bibencoding=utf8
执行相同的\usepackage
命令。
答案3
不要忘记,如果需要或者想要的话,您仍然可以使用 BibTeX;默认引擎现在是biber
,所以如果您没有明确声明的话,它就会默认使用该引擎,但是您可以在序言中使用它:
\usepackage[backend=bibtex, % <--
maxnames=10, minnames=10]{biblatex}
\addbibresource{bibliography.bib}
之后begin{document}
,标准
\printbibliography
然后使用普通(或“旧”)工具链进行编译:
latex file.tex
bibtex file.aux
latex file.tex
latex file.tex
biblatex
除非您使用专门要求biber
作为引擎的()书目样式,否则一切都会正常工作。