По умолчанию (с использованием стиля 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}
Измените
\bibliographystyle{plain}
к
\bibliographystyle{ieeetr}
Затем переделайте его несколько раз, чтобы заменить файлы .aux
и .bbl
, которые были сделаны, когда вы использовали простой стиль.
Если вы используете MiKTeX, вам не нужно ничего загружать.
Вы ответили на свой вопрос --- unsrt
должен использоваться, когда вы хотите, чтобы ссылки на ne перечислялись в порядке показательности.
Но вы также можете взглянуть на natbib, чрезвычайно гибкий пакет цитат. Я не могу представить себе жизнь без нее.
Лучшее, что я придумал, - это стиль unsrt
, который, как представляется, является измененным стилем plain
. то есть.
\bibliographystyle{unsrt}
\bibliography{bibliography}
Однако, что, если мой стиль не является значением по умолчанию?
Просто короткая заметка - я использую модифицированную версию plain.bst, сидящую в каталоге с моими файлами в латекс; получается, что сортировка по порядку внешнего вида - относительно легкое изменение; просто найдите фрагмент кода:
...
ITERATE {presort}
SORT
...
... и прокомментируйте это - я повернул его:
...
%% % avoid sort:
%% ITERATE {presort}
%%
%% SORT
...
... а затем, после запуска bibtex
, pdflatex
, pdflatex
- цитаты будут отсортированы по порядку появления (т.е. они будут несортированы:)).
Ура!
EDIT: просто понял, что то, что я написал, на самом деле в комментарии от @ChrisN: "можете ли вы отредактировать его, чтобы удалить команду SORT";)
Я часто использую стиль библиографии natbib
, потому что он предоставляет полный набор форматов, а также теги для нас.
Я немного новичок в Bibtex (и в латексе вообще), и я бы хотел оживить этот старый пост, так как нашел, что он вошел во многие мои запросы на поиск в 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 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 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
с unsrt
проблема - это формат. используйте \bibliographystyle{ieeetr}
, чтобы получить refences в порядке цитирования в документе.
Пакет 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}