Biblatex 条目以姓氏开头,以作者名字开头,年份在后

Biblatex 条目以姓氏开头,以作者名字开头,年份在后

我当前使用biblatex以下设置:

\usepackage[firstinits=true, sorting=nyt, maxbibnames=99]{biblatex}

%Document stuff...

\printbibliography

最终的参考书目看起来不错,但我缺少两个细节:

  • 作者的名字在前(尽管他们似乎是按姓氏排序的)。我想要的是姓氏在前。
  • 年份与期刊/出版商一起显示。我希望年份显示在作者后面。

例如。我得到的是

JJ Monaghan。“光滑粒子流体动力学”。《物理学进展报告》68.8(2005 年),第 1703-1759 页。issn:0034-4885。doi:10.1088/0034-4885/68/8/R01。

我想要的是

莫纳汉,JJ(2005) “光滑粒子流体动力学”。《物理学进展报告》68.8,第 1703-1759 页。issn:0034-4885。doi:10.1088/0034-4885/68/8/R01。

是否可以通过一些设置来做到这一点,或者我是否必须修改样式文件?

答案1

一种可能性是简单地切换到style=authoryear。但是,这不仅会改变年份的位置,还会删除参考书目条目的标签编号(并更改引用的格式)。解决方法:声明bibstyle=authoryear并添加 bibstyle 的参考书目环境定义numeric

要更改名称的顺序,请使用\DeclareNameAlias。请参阅询问详情。

\documentclass{article}

\usepackage[bibstyle=authoryear,firstinits=true,maxbibnames=99]{biblatex}

\DeclareFieldFormat{bibentrysetcount}{\mkbibparens{\mknumalph{#1}}}
\DeclareFieldFormat{labelnumberwidth}{\mkbibbrackets{#1}}

\defbibenvironment{bibliography}
  {\list
     {\printtext[labelnumberwidth]{%
    \printfield{prefixnumber}%
    \printfield{labelnumber}}}
     {\setlength{\labelwidth}{\labelnumberwidth}%
      \setlength{\leftmargin}{\labelwidth}%
      \setlength{\labelsep}{\biblabelsep}%
      \addtolength{\leftmargin}{\labelsep}%
      \setlength{\itemsep}{\bibitemsep}%
      \setlength{\parsep}{\bibparsep}}%
      \renewcommand*{\makelabel}[1]{\hss##1}}
  {\endlist}
  {\item}

\DeclareNameAlias{sortname}{last-first}

\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@misc{A01,
  author = {Author, A. and Buthor, B.},
  year = {2001},
  title = {Alpha},
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}

Some text \autocite{A01}.

\printbibliography

\end{document}

编辑:删除了包选项,sorting=nyt因为这是默认的bibstyle=authoryear

在此处输入图片描述

相关内容