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

Bre*_*dan 244 latex bibtex

默认情况下(使用plain样式)BibTeX按字母顺序命令引用.

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

Wil*_*son 183

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

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

我的个人建议:

  • 使用biblatex(链接).它是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}
Run Code Online (Sandbox Code Playgroud)

  • 使我接受这个答案的biblatex软件包的一个明显优势是它允许使用TeX宏编辑引用样式而不是奇怪的BibTeX voodoo.对于更快/更可靠的解决方案,其他封装可能更好. (2认同)
  • 如果您使用 biblatex,我需要补充一点。最好使用 \addbibresource 而不是 \bibliography。所以 `\addbibresource{journals.bib,phd-references.bib}` (2认同)
  • 我必须使用 `\usepackage[backend=bibtex, sorting=none]{biblatex}`,否则引用将不会显示。 (2认同)

小智 120

更改

\bibliographystyle{plain}
Run Code Online (Sandbox Code Playgroud)

\bibliographystyle{ieeetr}
Run Code Online (Sandbox Code Playgroud)

然后重建了几次,以取代.aux.bbl当您使用普通样式作了文件.

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

如果你使用MiKTeX,你不需要额外下载任何东西.

  • 谢谢!优秀而简单的修复! (4认同)
  • 如果你正在为ACM出版物写一篇论文,那么`unsrt`将比`ieeetr`更好,因为后者是用于IEEE论文的格式略有不同.`unsrt`和`abbrv`产生相同类型的格式.你可能想看看这个[链接](http://sites.stat.psu.edu/~surajit/present/bib.htm) (3认同)
  • 它在 Overleaf 应用程序中不起作用。我通过 https://www.overleaf.com/learn/how-to/Clearing_the_cache 在 Overleaf 中删除了它们,但它没有解决问题。 (2认同)

sda*_*aau 19

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

...
ITERATE {presort}

SORT
...
Run Code Online (Sandbox Code Playgroud)

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

...
%% % avoid sort:
%% ITERATE {presort}
%%
%% SORT
...
Run Code Online (Sandbox Code Playgroud)

...然后,在运行bibtex之后pdflatex,pdflatex- 引用将按外观顺序排序(也就是说,它们将是未分类的:)).

干杯!

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


Bre*_*dan 17

我想出的最好的是使用unsrt风格,这似乎是一种调整plain风格.即

\bibliographystyle{unsrt}
\bibliography{bibliography}
Run Code Online (Sandbox Code Playgroud)

但是如果我的风格不是默认的呢?

  • 如果您使用的是自定义BibTeX样式,是否可以编辑它以删除SORT命令? (3认同)

lin*_*lof 12

您回答了自己的问题--- unsrt当您想要在外观顺序中列出对ne的引用时使用.

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

  • natbib仅影响文档本身中\ cite命令的排版.话虽如此,它与unsrtnat.bst一起发布,以达到原始海报所要求的效果.(这些天我推荐使用biblatex而不是natbib,除非绝对稳定是最重要的.) (7认同)

小智 6

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

我对这个问题提供了一个更详细的答案,希望它可以帮助一些与我面临同样困难的新手。

以下是调用参考书目的主 .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}
Run Code Online (Sandbox Code Playgroud)

...以及 .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"
}
Run Code Online (Sandbox Code Playgroud)

请注意 .bib 文件中的参考文献以相反的顺序列出,但参考文献以它们在论文中引用的顺序列出。

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