كيفية ترتيب الاستشهادات حسب المظهر باستخدام BibTeX؟

StackOverflow https://stackoverflow.com/questions/144639

  •  02-07-2019
  •  | 
  •  

سؤال

بشكل افتراضي (باستخدام plain style) تقوم 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 فلن تحتاج إلى تنزيل أي شيء إضافي.

مجرد ملاحظة مختصرة - أنا أستخدم نسخة معدلة من عادي.bst الجلوس في الدليل مع ملفات اللاتكس الخاصة بي؛اتضح أن الفرز حسب ترتيب المظهر يعد تغييرًا سهلًا نسبيًا؛فقط ابحث عن جزء الكود:

...
ITERATE {presort}

SORT
...

...والتعليق عليه - حولته إلى:

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

...وبعد ذلك، بعد التشغيل bibtex, pdflatex, pdflatex - سيتم فرز الاستشهادات حسب ترتيب ظهورها (أي لن يتم فرزها :)).

هتافات!

يحرر:أدركت للتو أن ما كتبته موجود بالفعل في تعليق @ChrisN:"هل يمكنك تحريره لإزالة أمر SORT" ;)

أفضل ما توصلت إليه هو استخدام unsrt النمط، الذي يبدو وكأنه أنب plain أسلوب.أي.

\bibliographystyle{unsrt}
\bibliography{bibliography}

ولكن ماذا لو لم يكن أسلوبي هو الأسلوب الافتراضي؟

لقد جاوبت علي ما سئلته بنفسك---unsrt يتم استخدامه عندما تريد إدراج المراجع حسب ترتيب ظهورها.

ولكن قد ترغب أيضًا في إلقاء نظرة عليها natbib, ، حزمة اقتباس مرنة للغاية.لا أستطيع أن أتخيل العيش بدونها.

أنا جديد بعض الشيء على 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} للحصول على المراجع حسب ترتيب الاقتباس في المستند.

ال 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}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top