我不反对所有只有名字和姓氏的作者;例如。引入中间名John Smith
时就会出现问题。John P. Smith
,,,J. P. Smith
J P Smith
Smith, J. P.
所有这些都使用随机处理bibtex
和 biblatex
。例如,有些作者出现为史密斯(2010)当使用\citet
来自 natbib 或(史密斯,2010)在使用时\citep
。但是,其他作者在主文档中显示为(JP Smith,2010 年)和JP Smith,2010年。
这让我抓狂,更糟糕的是,当创建 MWE 来编写问题时,这个问题从一些作者那里消失了。
梅威瑟:
\documentclass[12pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[UKenglish]{babel}
\usepackage{csquotes}
\usepackage[backend=biber,sorting=nyt,style=apa,natbib=true]{biblatex}
\DeclareLanguageMapping{british}{british-apa}
\addbibresource{./list.bib}
\begin{document}
\begin{itemize}
\item Doesn't work: \citet{Sutherland92} stated that \ldots \citep{Sutherland92}.
\item Works \citet{Bliss95} stated that \ldots \citep{Bliss95}.
\item Doesn't work: \citet{Sutherland82} stated that \ldots \citep{Sutherland82}.
\item Works! \citet{AusubelRobinson69} stated that \ldots \citep{AusubelRobinson69}.
\item Works: \citet{Ausubel68} stated that \ldots \citep{Ausubel68} (This doesn't work in the original document!!!)
\item Works: \citet{Bruner61} stated that \ldots \citep{Bruner61} (This doesn't work in the original document!!!)
\item \citet{Bruner66} stated that \ldots \citep{Bruner66} (Also doesn't work in original document :( )
\end{itemize}
\printbibliography
\end{document}
示例bib
文件:
@ARTICLE{Bliss95,
author = {Bliss, Joan},
title = {Piaget and after: the case of learning science},
year = {1995},
editor = {Bliss 95},
volume = {25},
number = {1},
pages = {139-172},
journal = {Studies in Science Education},
timestamp = {2012.05.22}
}
@BOOK{Ausubel68,
author = {Ausubel, David P.},
title = {Education Psychology: A cognitive View},
year = {1968},
publisher = {Holt, Rinhart and Winston},
address = {New York},
timestamp = {2012.05.22}
}
@BOOK{AusubelRobinson69,
author = {Ausubel, David P. and Robinson, Floyd G.},
title = {School Learning: an Introduction to Educational Psychology},
year = {1969},
publisher = {Holt, Reinhart and Winston},
address = {New York},
timestamp = {2012.05.22}
}
@BOOK{Sutherland92,
author = {Sutherland, Peter},
title = {Cognitive Development Today: Piaget and his Critics},
year = {1992},
publisher = {Sage Publications Ltd},
address = {London, UK},
timestamp = {2012.05.22}
}
@ARTICLE{Sutherland82,
author = {Sutherland, Paul A.},
title = {An Expansion of Peel's Describer - Explainer Stage Theory},
year = {1982},
volume = {34},
number = {1},
pages = {69-76},
journal = {Educational Review},
timestamp = {2012.05.22}
}
@ARTICLE{Bruner61,
author = {Bruner, Jerome S.},
title = {The Act of Discovery},
year = {1961},
editor = {Bruner 61},
volume = {31},
number = {1},
pages = {31-32},
journal = {Harvard Educational Review},
publisher = {Bruner 61},
timestamp = {2012.05.22}
}
@BOOK{Bruner66,
author = {Jerome S. Bruner},
title = {Toward a Theory of Instruction},
year = {1966},
publisher = {Bruner 66},
address = {Cambridge Mass},
timestamp = {2012.05.22}
}
我现在更加困惑了,因为我不断向示例文件添加引用(最初不起作用),它们却正常工作。只有 Sutherlands 在这个示例中不起作用。有人知道发生了什么吗?
编辑:在我阅读评论之前,我注意到在文件中bbl
,出现问题的条目在条目中有以下数据:
\entry{Sutherland92}{book}{}
\name{labelname}{1}{}{%
{{uniquename=1,hash=19d7df1fb93fb36727a88eb47c7919c6}{Sutherland}{S\bibinitperiod}{Peter}{P\bibinitperiod}{}{}{}{}}%
}
\name{author}{1}{}{%
{{uniquename=1,hash=19d7df1fb93fb36727a88eb47c7919c6}{Sutherland}{S\bibinitperiod}{Peter}{P\bibinitperiod}{}{}{}{}}%
}
\list{location}{1}{%
{London, UK}%
}
\list{publisher}{1}{%
{Sage Publications Ltd}%
}
\strng{namehash}{19d7df1fb93fb36727a88eb47c7919c6}
\strng{fullhash}{19d7df1fb93fb36727a88eb47c7919c6}
\field{sortinit}{S}
\field{labelyear}{1992}
\field{labeltitle}{Cognitive Development Today: Piaget and his Critics}
\field{title}{Cognitive Development Today: Piaget and his Critics}
\field{year}{1992}
\endentry
uniquename=1
在每个条目中重复两次。但是,对于工作条目,第一个uniquename
等于零。
編輯2:uniquename=false 作为一个选项解决了这个问题,我现在明白了:)
答案1
文件中.bib
有两个姓氏相同的不同作者,因此biblatex
( biber
) 通过在参考和引文中引入首字母来消除歧义。使用biber
后端 ( backend=biber
) 可以使用
uniquename=false
的選擇biblatex
。