我的硕士论文引用存在两个主要问题。我使用 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}