Ubuntu 从 13.04 升级到 13.10 后 Bibtex 无法运行

Ubuntu 从 13.04 升级到 13.10 后 Bibtex 无法运行

我在 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。这意味着两件事:

  1. 添加 *.bib 文件时必须指定文件扩展名:\addbibresource{bibliography.bib}
  2. 您必须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作为引擎的()书目样式,否则一切都会正常工作。

相关内容