biblatex 的样式

biblatex 的样式

我需要实现段落内引用的特殊样式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}

输出

相关内容