如何使用BibTeX通过外观订购引文?

时间:2008-09-27 22:34:07

标签: latex bibtex

默认情况下(使用plain样式)BibTeX按字母顺序排序引文。

如何按文件中的出现顺序订购引文?

13 个答案:

答案 0 :(得分:176)

这个问题有三个很好的答案。

  • 如果您对其格式感到满意,请使用unsrt参考书目样式
  • 使用makebst (link)工具设计自己的参考书目风格

我个人的建议:

  • 使用biblatex(link)。它是LaTeX世界中最完整,最灵活的书目工具。

使用biblatex,您可以编写类似

的内容
\documentclass[12pt]{article}
\usepackage[sorting=none]{biblatex}
\bibliography{journals,phd-references} % Where journals.bib and phd-references.bib are BibTeX databases
\begin{document}
\cite{robertson2007}
\cite{earnshaw1842}
\printbibliography
\end{document}

答案 1 :(得分:117)

更改

\bibliographystyle{plain}

\bibliographystyle{ieeetr}

然后重建几次以替换使用普通样式时生成的.aux.bbl文件。

或者只是删除.aux.bbl文件并重建。

如果您使用MiKTeX,则无需额外下载任何内容。

答案 2 :(得分:17)

只是一个简短的说明 - 我正在使用我的Latex文件的目录中的plain.bst的修改版本;事实证明按照外观顺序排序是一个相对容易的变化;找到这段代码:

...
ITERATE {presort}

SORT
...

...并评论它 - 我转向:

...
%% % avoid sort:
%% ITERATE {presort}
%%
%% SORT
...

...然后,在运行bibtexpdflatexpdflatex后,引文将按照出现的顺序排序(也就是说,它们将是未分类的:))。

干杯!

编辑:刚才意识到我写的内容实际上是@ChrisN的评论:“你可以编辑它以删除SORT命令”;)

答案 3 :(得分:16)

我提出的最好的方法是使用unsrt样式,这似乎是一种经过调整的plain样式。即。

\bibliographystyle{unsrt}
\bibliography{bibliography}

但是,如果我的风格不是默认风格怎么办?

答案 4 :(得分:11)

您回答了自己的问题---当您希望在上诉顺序中列出对ne的引用时,将使用unsrt

但您可能还想看看natbib,这是一个非常灵活的引文包。我无法想象没有它的生活。

答案 5 :(得分:4)

我对Bibtex(以及一般的Latex)有点新意,我想恢复这篇旧帖子,因为我发现它出现在我的许多Google搜索查询中,关于Latex参考书目的排序。

我正在为这个问题提供一个更冗长的答案,希望它可以帮助那些面临与我相同困难的新手。

以下是调用参考书目的主要.tex文件示例:

\documentclass{article}
\begin{document}

So basically this is where the body of your document goes.

``FreeBSD is easy to install,'' said no one ever \cite{drugtrafficker88}.

``Yeah well at least I've got chicken,'' said Leeroy Jenkins \cite{goodenough04}.

\newpage
\bibliographystyle{ieeetr} % Use ieeetr to list refs in the order they're cited
\bibliography{references} % Or whatever your .bib file is called
\end{document}

...以及.bib文件本身的一个示例:

@ARTICLE{ goodenough04,
AUTHOR    = "G. D. Goodenough and others", 
TITLE     = "What it's like to have a sick-nasty last name",
JOURNAL   = "IEEE Trans. Geosci. Rem. Sens.",
YEAR      = "xxxx",
volume    = "xx",
number    = "xx",
pages     = "xx--xx"
}
@BOOK{ drugtrafficker88,
AUTHOR    = "G. Drugtrafficker", 
TITLE     = "What it's Like to Have a Misleading Last Name",
YEAR      = "xxxx",
PUBLISHER = "Harcourt Brace Jovanovich, Inc."
ADDRESS   = "The Florida Alps, FL, USA"
}

请注意.bib文件中的引用以相反的顺序列出,但引用按文档中引用的顺序列出。

有关.bib文件格式的更多信息,请访问:http://en.wikibooks.org/wiki/LaTeX/Bibliography_Management

答案 6 :(得分:3)

我经常使用参考书目样式natbib,因为它为我们提供了完整的格式和标签。

答案 7 :(得分:2)

unsrt问题是格式。使用\bibliographystyle{ieeetr}按文档中的引文顺序获取引用。

答案 8 :(得分:0)

datatool包提供了一种很好的方法,可以通过任意标准对参考书目进行排序,方法是先将其转换为某种数据库格式。

简短的例子,取from here并张贴记录:

\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}

答案 9 :(得分:0)

如果您正在使用amsrefs,他们将覆盖以上所有内容 - 请注释掉:

\usepackage{amsrefs}

答案 10 :(得分:0)

我将 FopFactoryBuilder builder = new FopFactoryBuilder(new File(".").toURI()); builder = builder.setConfiguration(config); fopFactory = builder.build(); def parse(self, response): item = dict() item['name'] = response.xpath("...").extract_first() urls = response.xpath("//a/@href").extract() for url in urls: yield Request(url, self.parse2, meta={'item':item}) # <-- this is the important bit def prase2(self, response): # now lets retrieve our item generated in parse() item = response.meta['item'] item['last_name'] = response.xpath("...").extract_first() return item # {'name': 'some_name', 'last_name': 'some_last_name'} 结合使用。例如:

natbib

答案 11 :(得分:0)

如果您希望引用数量在文档中按顺序显示,请添加此选项 它们只会在参考页面中未排序:

\bibliographystyle{unsrt}

答案 12 :(得分:0)

我在背面使用了以下内容并按升序排列:

\usepackage{cite}

\bibliographystyle{unsrt}