我当前使用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
。