更改参考书目格式

更改参考书目格式

我用natbib它来做参考。我目前的格式是“作者、标题、期刊、卷页、年份”。我应该做哪些更改才能像“作者、年份、标题、期刊、卷页”一样在作者后面加上年份?

答案1

经过一番思考,我认为我无法成功破解natbib内部结构。作为替代方案,您可以切换到比布拉特克斯。在下面的例子中,我禁用了排序,将 citestylenumeric-compauthoryearbibstyle 结合起来,为这个 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/

相关内容