.bbl 文件顺序混乱

.bbl 文件顺序混乱

我在 Mac 上使用 TexShop,并使用 BibDesk 作为引文管理器。

这是我的问题的简短版本,如果你能回答,则无需继续阅读:我如何修改.bst按作者排序,但当作者和年份都匹配时,按照文章中引用的顺序排序?

现在来看看更长的版本,其中包括 MWE。

以下是两个 MWE,错误发生在第二个中。在编写我的 MWE 时,我使用的所有代码均引用了我文章中出现的参考书目。

\documentclass{article}

\usepackage{natbib,url}
\bibpunct{(}{)}{;}{a}{ }{,}

\begin{document}
Minimal working example \citep{Author:2013}.

\newpage
\bibliographystyle{myapalike-url}
\bibliography{\string~/Desktop/Test}
\end{document}

打印结果如下:

最小工作示例(作者 2013)。

创建.bbl的如下:

\begin{thebibliography}{}

\bibitem[{Author}, 2013]{author:2013}
{Author} (2013).
\newblock {Protected Sites Map}.
\newblock Available from:
\url{http://}
[Accessed 1 October 2013].

\end{thebibliography}

当我为该年份添加第二个参考文献时,尽管引用关键字不同,后缀仍然无效:

\documentclass{article}

\usepackage{natbib,url}
\bibpunct{(}{)}{;}{a}{ }{,}

\begin{document}
Minimal working example \citep{author:2013}.

And another \citep{author:2013b}.

\newpage
\bibliographystyle{myapalike-url}
\bibliography{\string~/Desktop/Test}
\end{document}

打印结果如下:

最小工作示例 (Author 2013b)。还有另一个 (Author 2013a)。

请注意,第一个引文之前打印为 (Author 2013),现已修改为 (Author 2013b)

现在.bbl看起来像这样:

\begin{thebibliography}{}

\bibitem[Author, 2013a]{author:2013b}
Author (2013a).
\newblock {Eryri}.

\bibitem[Author, 2013b]{author:2013}
Author (2013b).
\newblock {Protected Sites Map}.

\end{thebibliography}

现在,我知道我正在使用我自己的myapalike-url.bst,但那是因为我已经对其进行了编辑(非常小心且很少改变 URL)。

我还知道我可以使用 unsrtnat 之类的包,它使我的引文在文本中的显示顺序与输入顺序相同(即它不会混淆“a”和“b”后缀),但也会从完整参考书目中删除任何排序。这也让我认为.bbl错误发生在文件的生成和排序过程中(而不是文件内的命令错误.tex)。

当我处理这个问题时,我想我已经找到了问题所在,但我不知道如何解决它。引用 2013b 的标题是“Eryri”,而引用 2013a 的标题是“受保护的站点地图”。看起来,如果作者相同,它会检查年份,但如果年份相同,它会检查标题,然后按字母顺序排序。

所以问题是:我该如何修改.bst以按作者排序,但是当作者和年份都匹配时,然后按照文章中引用的顺序排序?

编辑:

查看 .bst 文件内部,第 42-43 行显示以下内容:

%   24-jan-88   (OP)    Updated for BibTeX version 0.99a, from alpha.bst 0.99a;
%           apalike now sorts by author, then year, then title;

因此我想将其改为按作者排序,然后按年份排序,然后文章中调用的命令。我想你会同意,将对作者的第一次引用写为 2013b,将第二次引用写为 2013a,这完全是错误的。

答案1

不,这没错,如果参考书目的顺序是作者、年份、标题,这是标准的。BibTeX 在这里是正确的,没有必要尝试更改它。

相关内容