引文样式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,biblatex
其行为将按照引用样式所预期的那样进行。
我使用的是 pdfTeX,版本 3.1415926-2.3-1.40.12 (TeX Live 2011) 和biblatex
v1.7。我使用 XeTeX,版本 3.1415926-2.3-0.9997.5 (TeX Live 2011) 得到了相同的结果。
有什么想法吗?
答案1
看起来您正在使用backend=biber
选项设置编译文档,但使用 bibtex 生成的 bbl 文件。biber 输出专用的\name
for labelname
。它不会\name
从 bibtex 输出中找到它,因此会打印 fallbacktitle
字段。您需要运行 latex和从 bibtex 后端切换时,运行 biber。同样,从 biber 切换时,也应该运行 bibtex。
以下是\name
biber 中您输入的元素:
\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
和)解决了这个问题。