我需要实现段落内引用的特殊样式biblatex
。要求如下:
- 一般引用应为第一作者姓氏和年份:Smith (2012)
- 一年内出版更多书籍,其中包括 Smith(2012a)、Smith(2012b)等。
- 有两位作者,均列出姓氏和年份:Smith 和 Paul (2009)
- 两位以上作者应为 Chin et al. (2013)
我很高兴能够实现这一目标,因为我需要为本学期的学生准备材料。
在我尝试下面这个方法时,出现了以下问题:
- 引用:括号中未设置年份(“A. Author 2001”而不是“A. Author (2001)”)
- 引用:我只需要姓氏,例如“作者 (2001)”
- “
maxcitenames
”似乎不起作用...... - 书目:作者应始终以姓氏在前,姓名首字母缩写的形式列出,例如“作者,A. 和作者,B. (2001). Alpha.”而不是“作者,A. 和作者 B. (2001). Alpha。”
这是我尝试过的最小工作示例。
\documentclass{article}
\usepackage[%
style=authoryear,%
backend=biber,%
maxcitenames=2,%
language=ngerman]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {Author, A.},
year = {2001},
title = {Alpha},
}
@misc{A01a,
author = {Author, A. and Author, B.},
year = {2001},
title = {Alpha},
}
@misc{A01b,
author = {Author, A. and Author, B. and Author, B.},
year = {2001},
title = {Alpha},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{A01}
\cite{A01a}
\cite{A01b}
\printbibliography
\end{document}
答案1
在你的 MWE 中,首字母总是用来区分A. 作者和B. 作者,他们有相同的姓氏,必须用首字母区分。如果您更改姓名,首字母将消失。
问题maxcitenames
似乎与重复的名称有关作者以及;如果你改变名字,等工作正常。
要获取括号中的年份,请添加选项natbib
,这不会改变任何内容,但只会启用更多宏。然后,使用\citet{foo}
而不是\cite{foo}
。(请参阅在引用中将年份括起来。
要更改名称的顺序,请使用:
\DeclareNameAlias{sortname}{last-first}
\DeclareNameAlias{default}{last-first}
(有关详细说明,请参阅biblatex - 按从最后到第一位的顺序排列多个编辑者的名字?。
\documentclass{article}
\usepackage[%
style=authoryear,%
backend=biber,%
maxcitenames=2,%
language=ngerman,%
natbib
]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {Author, A.},
year = {2001},
title = {Alpha},
}
@misc{A02,
author = {Author, A.},
year = {2001},
title = {Beta},
}
@misc{A01a,
author = {Buthor, B. and Cuthor, C.},
year = {2001},
title = {Alpha},
}
@misc{A01b,
author = {Duthor, D. and Euthor, E. and Futhor, F.},
year = {2001},
title = {Alpha},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\DeclareNameAlias{sortname}{last-first}
\DeclareNameAlias{default}{last-first}
\begin{document}
\citet{A01}
\citet{A02}
\citet{A01a}
\citet{A01b}
\printbibliography
\end{document}