По умолчанию (используя 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}