bibliographystyle{plainnat} - 引用和多重引用问题

bibliographystyle{plainnat} - 引用和多重引用问题

我的硕士论文引用存在两个主要问题。我使用 JabRef 来构建 bib 文件。

例如,我在 bib 文件中有以下作者:

1.

Author  = {{Silva, Peter}},
Year = {2009},

2.

Author  = {{Cash, John and Lucas, George and Noah, Steve }},
Year = {2012},

问题 1:

在硕士论文中,每次我想引用一位作者时,我希望格式为:姓氏(年份)。对于第一种情况,它将显示:席尔瓦(2009)

在论文末尾列出完整的参考书目时,将显示:席尔瓦,彼得,2009

问题2:

在硕士论文中,每次我想引用两位以上的作者时,我希望格式为:第一作者姓氏等(年份)。对于第二种情况,它将显示:现金等(2012 年)

在论文末尾列出完整的参考书目时,将显示:卡什,约翰、卢卡斯,乔治和诺亚,史蒂夫,2012 年。

答案1

正如您在评论中所确认的那样,实施@egreg 的建议并删除字段周围多余的一对花括号author(以及editor字段周围,当您这样做时)可以让 LaTeX 和 BibTeX 生成所需的引用调用格式。

为了解决第二个问题——将作者的全名列为“姓氏,名字”而不是“名字姓氏”——需要稍微修改参考书目样式文件。幸运的是,所需的修改很简单。

  • 首先在您的系统上找到该文件plainnat.bst。(如果您有 TeXLive 或 MikTeX,在命令提示符下输入“kpsewhich plainnat.bst”应该会告诉您该文件的位置。)复制此文件,并将副本命名为(例如)revplainnat.bst

  • 在文本编辑器中打开revplainnat.bst并找到函数format.names。(它在我的文件副本中从第 216 行开始。)

  • 从函数开头往下几行,找到指令

        { s nameptr "{ff~}{vv~}{ll}{, jj}" format.name$ 't :=
    
  • 将此字符串更改为

        { s nameptr "{vv~}{ll}{, jj}{, ff}" format.name$ 't :=
    

    您大概可以猜出ff从字符串的开头移动到结尾的作用nameptr是什么。

  • 将文件保存revplainnat.bst在主 tex 文件所在的目录中,或保存在 BibTeX 搜索的目录中。如果选择第二种方法,请务必更新 TeX 发行版的文件名数据库。

  • 开始使用新的参考书目样式,通过替换\bibliographystyle{plainnat}\bibliographystyle{revplainnat}重新运行 LaTeX、BibTeX 和 LaTeX 两次,以完全传播所有更改。

祝您 BibTeX 愉快!


在此处输入图片描述

\documentclass{article}

\usepackage{filecontents}
\begin{filecontents}{newtest.bib}
@misc{pub1,
  Author = {Silva, Peter}, 
  Year   = {2009},
}
@misc{pub2,
  Author = {Cash, John and Lucas, George and Noah, Steve }, 
  Year   = {2012},
}
\end{filecontents}

\usepackage[authoryear]{natbib}
\bibliographystyle{revplainnat}

\begin{document}
\cite{pub1}

\cite{pub2}

\bibliography{newtest}
\end{document}

相关内容