默认情况下(使用“plain”样式),BibTeX按字母顺序排序引用。
如何按照文档中出现的顺序对引用进行排序?
默认情况下(使用“plain”样式),BibTeX按字母顺序排序引用。
如何按照文档中出现的顺序对引用进行排序?
这个问题有三个好的答案。
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}
\addbibresource{journals.bib,phd-references.bib}
。 - Custodio\usepackage[backend=bibtex, sorting=none]{biblatex}
,否则参考文献将无法显示。 - Archisman Panigrahisplncs03_unsrt.bst
解决了这个问题。 - Nav\bibliographystyle{plain}
到
\bibliographystyle{ieeetr}
然后重新构建几次,以替换使用 plain 样式时创建的 .aux 和 .bbl 文件。
或者直接删除 .aux 和 .bbl 文件并重新构建。
如果您使用的是 MiKTeX,则不需要下载任何额外的内容。
biblatex
中心化的回答最终是LaTeX社区前进的方式,但LyX仍然缺乏对biblatex
的内置支持,这是一个巨大(并且越来越尴尬)的障碍。自从第一次提出这个问题以来已经过去了八年!我永远不会理解LyX开发者的优先事项。现在是2016年。无人驾驶汽车和便携式超级计算机已经成为现实,但我们仍然被锁定在同样可怕的BibTeX石头上。 - Cecil Curry\bibliographystyle{unsrt}
\bibliography{bibliography}
但如果我的风格不是默认的呢?
简短说明一下 - 我正在使用修改过的 plain.bst 版本,它位于我的Latex文件目录中。结果表明,按出现顺序进行排序是一个相对易于更改的内容;只需找到以下代码片段:
...
ITERATE {presort}
SORT
...
...并对其进行评论 - 我将其更改为:
...
%% % avoid sort:
%% ITERATE {presort}
%%
%% SORT
...
运行 bibtex
,pdflatex
,pdflatex
后,引用将按出现的顺序排序(也就是说,它们将是未排序的 :))。
谢谢!
编辑:刚刚意识到我写的实际上是 @ChrisN 的评论:“你能编辑一下把 SORT 命令去掉吗?”;)
你已经回答了自己的问题---unsrt
用于将参考文献按出现顺序列出。
但你可能还想看一下natbib,这是一个非常灵活的引用包,我无法想象没有它该怎么生存。
\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"
}
如果您希望引用数量按顺序出现在文档中,可以添加此代码。但需要注意的是,在参考文献页面中,引用将不会按顺序排列:
\bibliographystyle{unsrt}
我经常使用参考文献样式natbib
,因为它提供了相对完整的格式和标签。
\usepackage{cite}
\bibliographystyle{unsrt}
使用 unsrt
的问题在于格式。使用 \bibliographystyle{ieeetr}
可以按照引用顺序在文档中获取参考文献。