我正在使用 biblatex 和以下命令:
\usepackage[backend=biber,style=authoryear-comp,
bibstyle=authoryear,citestyle=authoryear-comp]{biblatex}
现在,当我执行 \textcite 时,有时会得到以下输出:
Smit 和 John Doe,2011 年
在参考书目中
Smit, Peter 和 John Doe (2011 年 5 月)。“使用
我觉得这很丑陋。我怎样才能得到引用:
Smit 和 Doe,2011 年
以及参考书目
Smit, Peter 和 Doe, John (2011 年 5 月)。“使用
答案1
这可能会导致类似(包括名字)的引用,因为 biblatex 自 v1.4 以来将完全消除个人作者姓名和姓名列表的歧义。请看我的例子\textcite
。Smit and John Doe, 2011
Doe
除了年份之外,月份的出现其实是 biblatex 的内置功能。只需使用 字段date
代替year
,并符合所需的格式即可。(详细信息可参见文档的第 2.3.8 节。)
对于名称的重新排序,我更喜欢以下形式\DeclareNameAlias{sortname}{last-first}
。请参阅自定义 biblatex 样式的指南(“参考书目——名字和姓氏的顺序”)了解详情。
\documentclass{article}
\usepackage[style=authoryear-comp,backend=biber]{biblatex}
\DeclareNameAlias{sortname}{last-first}
\begin{filecontents}{\jobname.bib}
@misc{S11x,
author = {Smit, Peter and Doe, Jane},
date = {2011},
title = {Me and Jane},
}
@misc{S11y,
author = {Smit, Peter and Doe, John},
date = {2011},
title = {Me and John},
}
@misc{S11z,
author = {Smit, Peter and McGee, Bobby},
date = {2011-05},
title = {Me and Bobby McGee},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\nocite{*}
\begin{document}
\textcite{S11x}
\textcite{S11y}
\textcite{S11z}
\printbibliography
\end{document}
编辑:名称消歧义仅适用于biber
作为后端。在我的示例中替换biber
为bibtex8
,看看会发生什么。;-)
答案2
如果两者使用相同的格式,则无需使用多个bibstyle
and命令。因此,您要加载的命令应该是:citestyle
biblatex
\usepackage[backend=biber,style=authoryear-comp]{biblatex}
(由于authoryear-comp
和authoryear
bbx
文件相同,因此在这种情况下不需要单独的bibstyle
和citestyle
规范。)
您的引文应按照您的要求以标准格式显示authoryear-comp
。如果肯定项目显示不正确,那么这可能是.bib
记录本身的输入方式存在问题。如果在比较了.bib
有效的文件记录和无效的文件记录后,您仍然遇到此问题,则应编辑问题,显示文件中.bib
导致问题的实际记录。
关于姓名的顺序,请在序言中添加以下内容:
\DeclareNameAlias{last-first/first-last}{last-first}
至于在参考书目中的日期字段中显示月份,这非常不合常规。您确定要这样做吗?我相信这是可行的,但可能需要一些工作。