我用natbib
它来做参考。我目前的格式是“作者、标题、期刊、卷页、年份”。我应该做哪些更改才能像“作者、年份、标题、期刊、卷页”一样在作者后面加上年份?
答案1
经过一番思考,我认为我无法成功破解natbib
内部结构。作为替代方案,您可以切换到比布拉特克斯。在下面的例子中,我禁用了排序,将 citestylenumeric-comp
与authoryear
bibstyle 结合起来,为这个 bibstyle 添加了标签,并更改了一些其他设置以模拟输出natbib
。(这可能需要进一步调整。)
\documentclass{article}
\usepackage[sorting=none,citestyle=numeric-comp,bibstyle=authoryear]{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}
\renewbibmacro{in:}{%
\ifentrytype{article}{}{%
\printtext{\bibstring{in}\intitlepunct}}}
\renewcommand*{\newunitpunct}{\addcomma\space}
% The following hack only works for some values of the "mergedate" option
\renewbibmacro*{date+extrayear}{%
\iffieldundef{year}{%
}{%
\addcomma\space
\printtext{\printdateextra}%
}%
}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@article{Bli74,
author = {Blinder, Alan S.},
year = {1974},
title = {The economics of brushing teeth},
journaltitle = {Journal of Political Economy},
volume = {82},
number = {4},
pages = {887--891},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\textcite{Bli74}
\printbibliography
\end{document}
答案2
您描述的参考书目样式在经济学和金融期刊中相当常见。我建议您查看jf.bst
位于以下位置的样式文件(“金融期刊”的缩写)http://www.ivo-welch.info/computers/bstfiles/。(Welch 教授在此网站上列出了更多 bst 文件。)如果其他方法都失败了,您可以始终makebst.tex
通过 LaTeX 运行该程序以交互方式构建自己的bst
文件。如果makebst.tex
您的计算机系统上还没有该文件,您可以从以下位置获取该文件的最新版本http://www.ctan.org/tex-archive/macros/latex/contrib/custom-bib/。