默认情况下(使用普通样式)BibTeX按字母顺序排序引用。
如何按文献中出现的顺序排列引文?
默认情况下(使用普通样式)BibTeX按字母顺序排序引用。
如何按文献中出现的顺序排列引文?
当前回答
我使用natbib结合bibliographystyle{apa}。例如:
\begin{document}
The body of the document goes here...
\newpage
\bibliography{bibliography} % Or whatever you decided to call your .bib file
\usepackage[round, comma, sort&compress ]{natbib}
bibliographystyle{apa}
\end{document}
其他回答
只是一个简短的说明-我使用的是平原的修改版本。bst和我的Latex文件一起放在目录中;事实证明,按外观顺序排序是一个相对容易的改变;只需要找到这段代码:
...
ITERATE {presort}
SORT
...
... 并发表评论-我把它变成了:
...
%% % avoid sort:
%% ITERATE {presort}
%%
%% SORT
...
... 然后,运行bibtex, pdflatex, pdflatex -引用将按出现的顺序排序(也就是说,它们将是无序的:))。
干杯!
编辑:刚刚意识到我写的东西实际上是在@ChrisN的评论中:“你能编辑它以删除SORT命令吗?”;)
我使用natbib结合bibliographystyle{apa}。例如:
\begin{document}
The body of the document goes here...
\newpage
\bibliography{bibliography} % Or whatever you decided to call your .bib file
\usepackage[round, comma, sort&compress ]{natbib}
bibliographystyle{apa}
\end{document}
我想到的最好的是使用unsrt风格,这似乎是一个调整的普通风格。即。
\bibliographystyle{unsrt}
\bibliography{bibliography}
但是,如果我的样式不是默认的呢?
datatool包提供了一种很好的方法,可以根据任意的标准对书目进行排序,首先将其转换为某种数据库格式。
简短的例子,从这里取下来,并张贴下来记录:
\documentclass{article}
\usepackage{databib}
\begin{document}
% First argument is the name of new datatool database
% Second argument is list of .bib files
\DTLloadbbl{mybibdata}{acmtr}
% Sort database in order of year starting from most recent
\DTLsort{Year=descending}{mybibdata}
% Add citations
\nocite{*}
% Display bibliography
\DTLbibliography{mybibdata}
\end{document}
改变
\bibliographystyle{plain}
to
\bibliographystyle{ieeetr}
然后重新构建它几次,以替换使用普通样式时生成的.aux和.bbl文件。
或者简单地删除.aux和.bbl文件并重新构建。
如果你使用MiKTeX,你不需要下载任何额外的东西。