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