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