По умолчанию (используя 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}
+ Изменить
\bibliographystyle{plain}
в
\bibliographystyle{ieeetr}
Затем восстановить его несколько раз , чтобы заменить .auxи .bblфайлы , которые были сделаны , когда вы использовали простой стиль.
Или просто удалите .auxи .bblфайлы и перестройте.
Если вы используете MiKTeX, вам не нужно ничего загружать.
unsrtэто будет лучше, чем если ieeetrбы последняя предназначалась для бумаги IEEE, имеющей немного другое форматирование. unsrtи abbrvпроизводит тот же тип форматирования. Возможно, вы захотите взглянуть на эту ссылку
biblatexзаточенного ответ , в конечном счете путь вперед для LaTeX сообщества, сохраняющееся отсутствие Lyx о встроенной поддержке biblatexогромная (и все более неловко) блокатор. Прошло восемь лет с тех пор, как этот вопрос был впервые задан! Я никогда не буду терпеть приоритеты разработчика LyX. Наступил 2016 год. Беспилотные автомобили и портативные суперкомпьютеры - это вещь, и все же мы остаемся здесь - прикованные к тому же безупречному камню позора BibTeX.
Просто краткое замечание - я использую модифицированную версию plain.bst, сидящую в каталоге с моими латексными файлами; оказывается, что сортировка по порядку появления - относительно легкое изменение; просто найдите кусок кода:
...
ITERATE {presort}
SORT
...
... и прокомментируйте это - я превратил это в:
...
%% % avoid sort:
%% ITERATE {presort}
%%
%% SORT
...
... а затем, после запуска bibtex, pdflatex, pdflatex- цитаты будут отсортированы по порядку появления (то есть, они будут несортированными :)).
Ура!
РЕДАКТИРОВАТЬ: только что понял, что то, что я написал, на самом деле в комментарии @ChrisN: « вы можете отредактировать это, чтобы удалить команду SORT »;)
Лучшее, что я придумал, это использование unsrtстиля, который, кажется, подправлен plain. т.е.
\bibliographystyle{unsrt}
\bibliography{bibliography}
Однако что, если мой стиль не по умолчанию?
Вы ответили на свой собственный вопрос --- unsrtдолжен использоваться, если вы хотите, чтобы ссылки не были указаны в порядке появления.
Но вы также можете взглянуть на natbib , чрезвычайно гибкий пакет для цитирования. Я не могу представить себе жизнь без этого.
Я немного новичок в 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
Пакет 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}
Если вы используете, amsrefsони переопределят все вышеперечисленное - так что закомментируйте:
\usepackage{amsrefs}
Я использую 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}