我在 lyx 中使用 natbib 和 bibtex8 来对我的参考文献进行排序。一切似乎都运行良好,只是 natbib 不能正确处理“同作者同年份”参考文献。它给出的不是:(Keiser 2005a,b),而是 (Keiser 2005,?)。
我正在使用自定义的 *.bst 文件,所以我认为问题可能出在 bst 文件中,该文件可以从以下位置下载这里。下面给出了我的 *.bib 项目的一个例子。
@article{Keiser2005b,
author = {Keiser, Jennifer and Maltese, Michael F and Erlanger, Tobias E and Bos, Robert and Tanner, Marcel and Singer, Burton H and Utzinger, Jurg},
journal = {Acta Tropica},
number = {1},
pages = {40--57},
title = {{Effect of irrigated rice agriculture on Japanese encephalitis, including challenges and opportunities for integrated vector management.}},
volume = {95},
year = {2005}
}
@article{Keiser2005,
author = {Keiser, Jennifer and Singer, Burton H and Utzinger, Jurg},
journal = {The Lancet infectious diseases},
number = {11},
pages = {695--708},
title = {{Reducing the burden of malaria in different eco-epidemiological settings with environmental management: a systematic review}},
volume = {5},
year = {2005}
}
下面是一个产生该问题的示例:
\documentclass[british]{report}
\renewcommand{\familydefault}{\rmdefault}
\usepackage[T1]{fontenc}
\usepackage[a4paper]{geometry}
\geometry{verbose,tmargin=1.5in,bmargin=1.4in,lmargin=1.5in,rmargin=1in}
\usepackage{fancyhdr}
\pagestyle{fancy}
\setcounter{secnumdepth}{0}
\setcounter{tocdepth}{3}
\setlength{\parindent}{1.5cm}
\usepackage[authoryear]{natbib}
\usepackage{babel}
\begin{document}
bla bla \citep{Keiser2005,Keiser2005b} bla bla
\bibliographystyle{Naresuan_style_nat}
\bibliography{library.bib}
\end{document}
任何帮助将不胜感激!
答案1
问题似乎出在使用 bib-it 创建的 bst 文件中,而 bib-it 是一款过时的软件。因此,它无法在最新版本的 natbib 上正常工作。这似乎与使用标准 chicago.bst 样式文件时出现的问题相同。为了解决 chicago.bst 的问题,显然可以添加
\usepackage{chicago}
到序言。这并没有真正解决自定义 bst 文件的问题,因为两个 bst 文件中并非所有函数都具有相同的名称。我使用 makebst 而不是 bib-it 重新创建了 bst 文件,现在一切似乎都正常了。