Làm cách nào để đặt hàng trích dẫn bằng cách xuất hiện bằng BibTeX?


259

Theo mặc định (sử dụng plainkiểu) BibTeX đặt hàng trích dẫn theo thứ tự bảng chữ cái.

Làm thế nào để sắp xếp các trích dẫn theo thứ tự xuất hiện trong tài liệu?


36
Câu hỏi hữu ích (được nâng cấp), nhưng không nên thuộc về tex.stackexchange.com ?
Dự án Chthonic

12
@ChthonicProject, tôi không nghĩ tex.stackexchange.com bắt đầu cho đến năm 2010 và câu hỏi này là từ năm 2008. Ngoài ra, câu hỏi sẽ quá cũ để di chuyển, vì vậy nó tồn tại ở đây.
Richard Erickson

1
Xóa các tệp .aux và .bbl và xây dựng lại
Emad Aghayi

Câu trả lời:


195

Có ba câu trả lời tốt cho câu hỏi này.

  • Sử dụng unsrtkiểu thư mục, nếu bạn hài lòng với định dạng của nó
  • Sử dụng công cụ makebst (liên kết) để thiết kế kiểu thư mục của riêng bạn

Và đề nghị cá nhân của tôi:

  • Sử dụng biblatexgói (liên kết) . Đây là công cụ thư mục đầy đủ và linh hoạt nhất trong thế giới LaTeX.

Sử dụng biblatex, bạn sẽ viết một cái gì đó như

\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}

2
Một lợi thế rõ ràng của gói biblatex khiến tôi chấp nhận câu trả lời này là nó cho phép chỉnh sửa các kiểu tham chiếu bằng cách sử dụng macro TeX thay vì voodoo BibTeX kỳ lạ. Các gói khác có thể tốt hơn cho một giải pháp nhanh hơn / đáng tin cậy hơn.
Brendan

1
Tôi cần phải thêm rằng nếu bạn đang sử dụng biblatex. Nó sẽ được sử dụng tốt hơn \ addbibresource thay vì \ thư mục. Vì vậy\addbibresource{journals.bib,phd-references.bib}
Custodio

126

Thay đổi

\bibliographystyle{plain}

đến

\bibliographystyle{ieeetr}

Sau đó xây dựng lại một vài lần để thay thế .aux.bblcác tệp được tạo khi bạn sử dụng kiểu đơn giản.

Hoặc đơn giản là xóa .aux.bblcác tập tin và xây dựng lại.

Nếu bạn sử dụng MiKTeX, bạn không cần phải tải thêm bất cứ thứ gì.


4
Cảm ơn! Sửa chữa tuyệt vời và đơn giản!
Antillar Maximus

Tuyệt quá! Cảm ơn giải pháp đơn giản.
Bệ hạ

4
nếu bạn đang viết một bài báo cho Ấn phẩm ACM thì unsrtsẽ tốt hơn ieeetrvì bài viết này có nghĩa là bài viết có định dạng hơi khác. unsrtabbrvtạo ra cùng loại định dạng. Bạn có thể muốn xem qua liên kết
Ash Catchem

Câu trả lời đơn giản phát sinh! Trong khi câu trả lời lập dị của Will Robertson cuối cùng là con đường phía trước cho cộng đồng LaTeX, thì LyX tiếp tục thiếu sự hỗ trợ tích hợp cho là một công cụ chặn khổng lồ (và ngày càng lúng túng). Đã tám năm kể từ khi câu hỏi này lần đầu tiên được đặt ra! Tôi sẽ không bao giờ tìm kiếm ưu tiên nhà phát triển của LyX. Đó là năm 2016. Xe hơi không người lái và siêu máy tính xách tay là một thứ, nhưng ở đây chúng ta vẫn còn - bị xiềng xích với cùng một loại đá xấu hổ BibTeX có thể thực hiện được. biblatexbiblatex
Cecil Curry

1
Nó không hoạt động trong ứng dụng Overleaf. Tôi đã gỡ bỏ chúng trong trang sau bởi overleaf.com/learn/how-to/Clearing_the_cache nhưng nó không giải quyết vấn đề.
Emad Aghayi

21

Chỉ là một ghi chú ngắn gọn - Tôi đang sử dụng một phiên bản sửa đổi của plain.bst đang ngồi trong thư mục với các tệp latex của tôi; Hóa ra việc sắp xếp theo thứ tự xuất hiện là một thay đổi tương đối dễ dàng; chỉ cần tìm đoạn mã:

...
ITERATE {presort}

SORT
...

... và nhận xét nó - Tôi chuyển nó sang:

...
%% % avoid sort:
%% ITERATE {presort}
%%
%% SORT
...

... và sau đó, sau khi chạy bibtex, pdflatex, pdflatex- những trích dẫn sẽ được sắp xếp theo thứ tự xuất hiện (có nghĩa là, họ sẽ không được phân loại :)).

Chúc mừng!

EDIT: chỉ nhận ra rằng những gì tôi đã viết thực sự nằm trong phần bình luận của @ChrisN: " bạn có thể chỉnh sửa nó để loại bỏ lệnh SORT ";)


18

Điều tốt nhất tôi nghĩ ra là sử dụng unsrtphong cách, dường như là một plainphong cách tinh chỉnh . I E

\bibliographystyle{unsrt}
\bibliography{bibliography}

Tuy nhiên, nếu phong cách của tôi không phải là mặc định thì sao?


4
Nếu bạn đang sử dụng kiểu BibTeX tùy chỉnh, bạn có thể chỉnh sửa nó để xóa lệnh SORT không?
ChrisN

Theo mặc định, trang wiki khuyên bạn đơn giản. Nếu bạn sao chép-dán bất cẩn, bạn sẽ sử dụng đơn giản thay vì kiểu không văn bản. vi.wikibooks.org/wiki/LaTeX/Bibliography_Quản lý
Andras Gyomrey

12

Bạn đã trả lời câu hỏi của riêng bạn --- unsrtsẽ được sử dụng khi bạn muốn các tài liệu tham khảo đến ne được liệt kê theo thứ tự xuất hiện.

Nhưng bạn cũng có thể muốn xem qua natbib , một gói trích dẫn cực kỳ linh hoạt. Tôi không thể tưởng tượng sống mà không có nó.


7
natbib chỉ ảnh hưởng đến việc sắp chữ của các lệnh \ cite trong chính tài liệu. Phải nói rằng, nó được phân phối với unsrtnat.bst để đạt được hiệu ứng mà người đăng ban đầu tìm kiếm. (Tôi muốn giới thiệu biblatex những ngày này qua natbib, trừ khi sự ổn định tuyệt đối là quan trọng nhất.)
Will Robertson

5

Tôi là một người mới đối với Bibtex (và nói chung với latex) và tôi muốn làm sống lại bài đăng cũ này vì tôi thấy nó xuất hiện trong nhiều câu hỏi tìm kiếm trên Google của tôi về việc đặt hàng thư mục trong latex.

Tôi đang cung cấp một câu trả lời dài dòng hơn cho câu hỏi này với hy vọng rằng nó có thể giúp một số người mới ngoài kia đối mặt với những khó khăn tương tự như tôi.

Dưới đây là một ví dụ về tệp .tex chính trong đó thư mục được gọi là:

\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}

... và một ví dụ về chính tệp .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"
}

Lưu ý các tham chiếu trong tệp .bib được liệt kê theo thứ tự ngược lại nhưng các tham chiếu được liệt kê theo thứ tự chúng được trích dẫn trong bài báo.

Thông tin thêm về định dạng tệp .bib của bạn có thể được tìm thấy ở đây: http://en.wikibooks.org/wiki/LaTeX/Bibliography_Quản lý


3

Tôi thường sử dụng kiểu thư mục natbibvì nó cung cấp bộ định dạng khá đầy đủ cũng như các thẻ cho chúng tôi.


2

với unsrtvấn đề là định dạng. sử dụng \bibliographystyle{ieeetr}để có được sự tinh chỉnh theo thứ tự trích dẫn trong tài liệu.


Yêu cầu của bạn về định dạng dường như mâu thuẫn với câu trả lời được chấp nhận (và được đánh giá cao). Bạn có thể làm rõ?
Zero3

0

Các datatool gói Mời một cách tốt đẹp để sắp xếp thư mục bằng một tiêu chí tùy ý, bằng cách chuyển đổi nó lần đầu tiên vào một số định dạng cơ sở dữ liệu.

Ví dụ ngắn, lấy từ đây và đăng cho hồ sơ:

\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}

0

Nếu bạn tình cờ đang sử dụng, amsrefshọ sẽ ghi đè tất cả các mục trên - vì vậy hãy nhận xét:

\usepackage{amsrefs}


1
Chào mừng bạn đến với Stack Overflow! Câu trả lời của bạn dường như không thực sự trả lời câu hỏi được đặt ra. Thông tin của bạn có thể có giá trị, nhưng có lẽ phù hợp hơn khi bình luận cho một trong những câu trả lời khác (một khi bạn đã có được danh tiếng cần thiết để đăng bình luận).
Zero3

0

Tôi sử dụng natbibkết hợp với bibliographystyle{apa}. Ví dụ:

\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}

0

Thêm phần này nếu bạn muốn số lượng trích dẫn xuất hiện theo thứ tự trong tài liệu, chúng sẽ chỉ được hủy bỏ trong trang tham chiếu:

\bibliographystyle{unsrt}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.