วิธีการสั่งซื้อการอ้างอิงด้วยรูปลักษณ์โดยใช้ BibTeX


259

ตามค่าเริ่มต้น (ใช้plainสไตล์) BibTeX สั่งการอ้างอิงตามตัวอักษร

วิธีการสั่งซื้อการอ้างอิงตามลำดับที่ปรากฏในเอกสาร


36
คำถามที่มีประโยชน์ ( อัปโหลดแล้ว) แต่สิ่งนี้ควรเป็นของtex.stackexchange.comหรือไม่
โครงการ Chthonic

12
@ChthonicProject ฉันไม่คิดว่า tex.stackexchange.com จะเริ่มต้นจนถึงปี 2010 และคำถามนี้มาจากปี 2008 นอกจากนี้คำถามจะแก่เกินไปที่จะโยกย้ายดังนั้นจึงอยู่ที่นี่
Richard Erickson

1
ลบไฟล์ .aux และ. bbl และสร้างใหม่
Emad Aghayi

คำตอบ:


195

มีสามคำตอบที่ดีสำหรับคำถามนี้

  • ใช้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}

2
ข้อดีอย่างหนึ่งที่เห็นได้ชัดของแพ็คเกจ biblatex ที่ทำให้ฉันยอมรับคำตอบนี้คือมันอนุญาตให้แก้ไขสไตล์การอ้างอิงโดยใช้มาโคร TeX แทน BibTeX voodoo แปลก ๆ แพคเกจอื่น ๆ อาจจะดีกว่าสำหรับวิธีแก้ปัญหาที่เร็วขึ้น
เบรนแดน

1
ฉันต้องการเพิ่มว่าถ้าคุณใช้ biblatex มันจะเป็นการดีกว่าถ้าใช้ \ addbibresource แทน \ bibliography ดังนั้น\addbibresource{journals.bib,phd-references.bib}
Custodio

126

เปลี่ยนแปลง

\bibliographystyle{plain}

ถึง

\bibliographystyle{ieeetr}

จากนั้นสร้างใหม่สองสามครั้งเพื่อแทนที่.auxและ.bblไฟล์ที่สร้างขึ้นเมื่อคุณใช้สไตล์ธรรมดา

หรือเพียงแค่ลบ.auxและ.bblไฟล์และสร้าง

หากคุณใช้ MiKTeX คุณไม่จำเป็นต้องดาวน์โหลดอะไรเพิ่มเติม


4
ขอบคุณ! การแก้ไขที่ยอดเยี่ยมและเรียบง่าย!
Antillar Maximus

ที่ดี! ขอบคุณสำหรับคำตอบง่ายๆ
พระบาทสมเด็จพระเจ้าอยู่หัวของคุณ

4
หากคุณกำลังเขียนกระดาษสำหรับการตีพิมพ์ ACM unsrtจะดีกว่าieeetrเนื่องจากฉบับหลังมีไว้สำหรับกระดาษ IEEE ซึ่งมีการจัดรูปแบบที่แตกต่างกันเล็กน้อย unsrtและabbrvสร้างการจัดรูปแบบชนิดเดียวกัน คุณอาจต้องการดูลิงค์
Ash Catchem

คำตอบง่าย ๆ เกิดขึ้น! ในขณะที่คำตอบที่เป็นศูนย์กลางของWill Robertson จะเป็นหนทางไปสู่ชุมชน LaTeX ในที่สุดแต่ทว่า LyX ยังขาดการสนับสนุนในตัวอย่างต่อเนื่องเป็นตัวบล็อกขนาดใหญ่ แปดปีแล้วที่คำถามนี้ถูกโพสต์ครั้งแรก! ฉันจะไม่หาความสำคัญของผู้พัฒนา LyX มันเป็นปี 2016 รถยนต์ที่ไม่มีคนขับและซูเปอร์คอมพิวเตอร์พกพาเป็นสิ่งสำคัญ แต่ที่นี่เรายังคงอยู่ - ถูกผูกมัดกับหิน BibTeX ที่น่ารังเกียจเหมือนเดิม biblatexbiblatex
Cecil Curry

1
มันไม่ทำงานในแอปพลิเคชัน Overleaf ฉันออกพวกเขาในด้านหนึ่งของใบโดยoverleaf.com/learn/how-to/Clearing_the_cacheแต่มันก็ไม่สามารถแก้ไขปัญหาได้
Emad Aghayi

21

แค่ข้อความสั้น ๆ - ฉันกำลังใช้plain.bstรุ่นดัดแปลงที่อยู่ในไดเรกทอรีพร้อมกับไฟล์ Latex ของฉัน ปรากฎว่ามีการเรียงลำดับตามลักษณะที่ปรากฏเป็นการเปลี่ยนแปลงที่ค่อนข้างง่าย เพียงค้นหาชิ้นส่วนของรหัส:

...
ITERATE {presort}

SORT
...

... และแสดงความคิดเห็น - ฉันเปิดไปที่:

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

... และแล้วหลังจากทำงานbibtex, pdflatex, pdflatex- การอ้างอิงจะเรียงตามลำดับที่ปรากฏ (นั่นคือพวกเขาจะไม่ได้เรียงลำดับ :))

ไชโย!

แก้ไข: เพิ่งรู้ว่าสิ่งที่ฉันเขียนเป็นจริงในความคิดเห็นโดย @ChrisN: " คุณสามารถแก้ไขเพื่อลบคำสั่ง SORT ";)


18

สิ่งที่ดีที่สุดของฉันคือการใช้unsrtสไตล์ซึ่งดูเหมือนจะเป็นplainสไตล์ที่ปรับแต่ง กล่าวคือ

\bibliographystyle{unsrt}
\bibliography{bibliography}

อย่างไรก็ตามถ้าสไตล์ของฉันไม่ได้เป็นค่าเริ่มต้น


4
หากคุณใช้สไตล์ BibTeX ที่กำหนดเองคุณสามารถแก้ไขเพื่อลบคำสั่ง SORT ได้หรือไม่
ChrisN

โดยค่าเริ่มต้นหน้าวิกิแนะนำให้คุณธรรมดา หากคุณคัดลอกวางอย่างไม่ระมัดระวังคุณจะใช้งานแบบธรรมดาแทนที่จะเป็นแบบไม่สไตล์ en.wikibooks.org/wiki/LaTeX/Bibliography_Management
Andras Gyomrey

12

คุณตอบคำถามของคุณเอง --- unsrtจะถูกใช้เมื่อคุณต้องการการอ้างอิงถึงรายการที่อยู่ในลำดับของการอุทธรณ์

แต่คุณอาจต้องการดูnatbibซึ่งเป็นแพคเกจการอ้างอิงที่ยืดหยุ่นมาก ฉันนึกภาพออกไม่ได้ถ้าไม่มีมัน


7
natbib มีผลกับการเรียงพิมพ์ของคำสั่ง \ cite ในเอกสารเท่านั้น ต้องบอกว่ามันถูกแจกจ่ายกับ unsrtnat.bst เพื่อให้ได้ผลตามที่ต้องการโดยโปสเตอร์ดั้งเดิม (ฉันขอแนะนำ biblatex ทุกวันนี้เกี่ยวกับ natbib เว้นแต่ว่าเสถียรภาพที่สำคัญที่สุดคือ)
Will Robertson

5

ฉันค่อนข้างใหม่สำหรับ 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


3

ฉันมักจะใช้สไตล์บรรณานุกรมnatbibเพราะมันมีรูปแบบที่ค่อนข้างสมบูรณ์รวมถึงแท็กสำหรับเรา


2

ด้วยunsrtปัญหาคือรูปแบบ ใช้\bibliographystyle{ieeetr}เพื่อรับการอ้างอิงตามลำดับการอ้างอิงในเอกสาร


การอ้างสิทธิ์ของคุณเกี่ยวกับรูปแบบดูเหมือนจะขัดแย้งกับคำตอบที่ยอมรับ (และ upvoted มาก) คุณช่วยอธิบายได้ไหม
Zero3

0

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}

0

หากคุณกำลังใช้งานอยู่amsrefsพวกเขาจะลบล้างทั้งหมดข้างต้น - ดังนั้นควรแสดงความคิดเห็น:

\usepackage{amsrefs}


1
ยินดีต้อนรับสู่ Stack Overflow! คำตอบของคุณดูเหมือนจะไม่ตอบคำถามจริง ๆ ข้อมูลของคุณอาจมีค่า แต่อาจเหมาะสมกว่าในการแสดงความคิดเห็นต่อหนึ่งในคำตอบอื่น ๆ (เมื่อคุณได้รับชื่อเสียงที่จำเป็นในการโพสต์ความคิดเห็น)
Zero3

0

ผมใช้ร่วมกับ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}

0

เพิ่มสิ่งนี้หากคุณต้องการให้จำนวนการอ้างอิงปรากฏตามลำดับในเอกสารพวกเขาจะไม่ถูกเรียงลำดับในหน้าอ้างอิงเท่านั้น:

\bibliographystyle{unsrt}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.