意外的引用行为:biblatex 与 biber 和 authoryear

意外的引用行为:biblatex 与 biber 和 authoryear

引文样式authoryear-comp旨在输出“(Doe, 1992)”形式的引文。(参见biblatex文档) 这对我来说已经达到了预期的效果,即使使用 Biber 作为后端。

authoryear-comp然而,最近with的行为biblatex与此不符。它不再输出 (Doe, 1992) 形式的引文,而是简单地打印标题以及相应条目的年份。

这是一个简单的例子:

\documentclass{article}

\usepackage[style=authoryear-comp,backend=biber]{biblatex}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@article{Bli74,
  author = {Blinder, Alan S.},
  year = {1974},
  title = {The economics of brushing teeth},
  journaltitle = {Journal of Political Economy},
  volume = {82},
  number = {4},
  pages = {887--891},  
}
\end{filecontents}

\bibliography{\jobname}

\begin{document}

This paper is very good: \cite{Bli74}.

\printbibliography

\end{document}

生成的pdf如下:

使用 biber 和 authoryear-comp 输出

再者,如果我不打电话给 Biber,biblatex其行为将按照引用样式所预期的那样进行。

我使用的是 pdfTeX,版本 3.1415926-2.3-1.40.12 (TeX Live 2011) 和biblatexv1.7。我使用 XeTeX,版本 3.1415926-2.3-0.9997.5 (TeX Live 2011) 得到了相同的结果。

有什么想法吗?

答案1

看起来您正在使用backend=biber选项设置编译文档,但使用 bibtex 生成的 bbl 文件。biber 输出专用的\namefor labelname。它不会\name从 bibtex 输出中找到它,因此会打印 fallbacktitle字段。您需要运行 latex从 bibtex 后端切换时,运行 biber。同样,从 biber 切换时,也应该运行 bibtex。

以下是\namebiber 中您输入的元素:

\entry{Bli74}{article}{}
  \name{labelname}{1}{}{%
    {{uniquename=0,hash=8a4ba46206eec0a36340f92bf9ee4f86}{Blinder}{B\bibinitperiod}{Alan\bibnamedelima S.}{A\bibinitperiod\bibinitdelim S\bibinitperiod}{}{}{}{}}%
  }
  \name{author}{1}{}{%
    {{uniquename=0,hash=8a4ba46206eec0a36340f92bf9ee4f86}{Blinder}{B\bibinitperiod}{Alan\bibnamedelima S.}{A\bibinitperiod\bibinitdelim S\bibinitperiod}{}{}{}{}}%
  }
...

将其与 bibtex 的输出进行比较:

\entry{Bli74}{article}{}
  \name{author}{1}{}{%
    {{}%
     {Blinder}{B.}%
     {Alan~S.}{A.~S.}%
     {}{}%
     {}{}}%
  }
...

答案2

当我将引用样式从 切换alphabetic到 时,就发生了authoryear这种情况。我通过“重置”编译期间生成的文件(即删除所有不是的文件*.tex- 尤其*.bbl*.bcf和)解决了这个问题。

相关内容