\compare{bibtex-vs-biber}
BibTeX مقابل Biber
كلاهما معالج لقوائم المراجع في LaTeX، لكنهما يقدمان مقايضات مختلفة جذريًا. يغطي هذا الدليل دعم Unicode والترتيب والأداء ومتى يكون كل منهما الخيار الصحيح.
- يتطلبه قالب مجلة أو ناشر
- تستخدم نمط استشهاد natbib
- تحتوي قائمة المراجع على نص ASCII فقط
- أقصى سرعة تجميع أولوية لديك
- تحتوي أسماء المؤلفين على أحرف غير ASCII
- تبدأ مشروعًا جديدًا (الخيار الافتراضي الموصى به)
- تحتاج إلى ترتيب أبجدي يراعي اللغة المحلية
- تريد حقولًا موسعة: doi وurl وlangid وeprint
\section{ما الذي تفعله كل أداة}
دور معالج قائمة المراجع
لا BibTeX ولا Biber حزمة LaTeX؛ بل هما برنامجان خارجيان يُستدعيان بين مراحل تجميع LaTeX. يقرآن قاعدة بيانات .bib الخاصة بك، ويحلان الاستشهادات، ويرتبان المدخلات، ويكتبان ملف .bbl منسقًا يقرؤه LaTeX في المرحلة التالية.
BibTeX
bibtex main
كتبه Oren Patashnik وصدر عام 1985 مع LaTeX 2.09، وBibTeX هو معالج قوائم المراجع الأصلي. يستخدم ملفات الأنماط .bst المكتوبة بلغة قائمة على المكدس للتحكم في تنسيق المخرجات.
- إدخال ASCII فقط بحكم التصميم
- سريع جدًا مع أي حجم لقاعدة البيانات
- مطلوب من natbib ومعظم أنماط المجلات
- .bst styles are notoriously hard to write
Biber
biber main
كُتب Biber بلغة Perl على يد Philip Kime وصدر عام 2009، وهو الواجهة الخلفية الموصى بها لحزمة biblatex. يستخدم خوارزمية ترتيب Unicode المبنية على Perl، ويدعم UTF-8 أصليًا في كامل خط المعالجة.
- دعم كامل لـ UTF-8 دون حاجة إلى الهروب
- ترتيب بخوارزمية ترتيب Unicode
- حقول موسعة: doi وurl وlangid وeprint
- وراثة كاملة لحقول المراجع المتقاطعة
\subsection{مصفوفة الميزات}
مقارنة جنبًا إلى جنب
\begin{examples}
مقارنة ملف .bib
المدخل نفسه في قاعدة البيانات بصيغة BibTeX الكلاسيكية مقابل BibLaTeX + Biber. لاحظ كيف يدعم Biber الترميز UTF-8 مباشرةً وحقولًا إضافية.
% Classic BibTeX .bib — special characters need manual escaping
@article{einstein1905,
author = {Einstein, Albert},
title = {Zur Elektrodynamik bewegter {K\"orper}},
journal = {Annalen der Physik},
year = {1905},
volume = {17},
pages = {891--921},
}
@book{knuth1986,
author = {Knuth, Donald E.},
title = {The {\TeX}book},
publisher = {Addison-Wesley},
year = {1986},
isbn = {0-201-13447-0},
}% BibLaTeX .bib — Biber handles UTF-8 natively, no escaping needed
@article{einstein1905,
author = {Einstein, Albert},
title = {Zur Elektrodynamik bewegter Körper},
journal = {Annalen der Physik},
year = {1905},
volume = {17},
pages = {891--921},
doi = {10.1002/andp.19053221004},
langid = {german},
}
@book{knuth1986,
author = {Knuth, Donald E.},
title = {The {\TeX}book},
publisher = {Addison-Wesley},
year = {1986},
location = {Reading, MA},
isbn = {0-201-13447-0},
}دعم Unicode
BibTeX
يعالج BibTeX الملفات المصدرية بترميز ASCII ذي 8 بتات. يجب كتابة أسماء المؤلفين ذات الحروف المعلّمة (Müller وBjörk وNguyen) على الشكل M\"uller وBj\"ork وهكذا. نسيان محرف الهروب يسبب مخرجات مشوهة أو خطأ في bibtex.
Biber
يقرأ Biber ملفات .bib بترميز UTF-8. تكتب Müller وBjörk وNguyễn مباشرةً، دون هروب. تتعامل المحررات وأدوات التحكم في الإصدارات مع الملفات بشكل طبيعي.
الترتيب
BibTeX
يرتب BibTeX المدخلات باستخدام قيم بايت ASCII الخام. هذا يعني أن الأحرف الكبيرة تُرتَّب قبل الصغيرة، وأن الأحرف المعلّمة (ä وö وü) تُرتَّب بعد Z وليس في موضعها الأبجدي الطبيعي. في قوائم المراجع الإنجليزية فقط لا يظهر الفرق؛ أما في الأعمال متعددة اللغات فقد ينتج ترتيب خاطئ.
Biber
ينفّذ Biber خوارزمية ترتيب Unicode (UCA) ويراعي اللغة المحلية. يُرتَّب Ä مع A وÖ مع O، ويمكنك تحديد sortlocale=de_DE لقواعد الألمانية، وsv_SE للسويدية، وهكذا.
\subsection{دليل الانتقال}
الانتقال من BibTeX إلى Biber
يبقى تنسيق ملف .bib كما هو؛ التغييرات في مقدمة LaTeX وأوامر الاستشهاد.
% Switching bibliography backend: BibTeX → Biber + BibLaTeX
% REMOVE these (BibTeX-style):
% \bibliographystyle{plain} ← remove from preamble
% \bibliography{refs} ← remove from document body
% ADD this to the preamble:
\usepackage[
backend=biber, % use Biber processor (not bibtex)
style=authoryear, % citation style: authoryear, numeric, alphabetic…
sorting=nyt, % sort by: name, year, title
urldate=iso, % ISO 8601 dates for URL fields
]{biblatex}
\addbibresource{refs.bib} % replaces \bibliography{}
% Then in the document body:
% \parencite{einstein1905} → (Einstein, 1905)
% \textcite{knuth1986} → Knuth (1986)
% \printbibliography → full reference list
% Compile order:
% pdflatex main.tex → biber main → pdflatex main.tex → pdflatex main.tex\bibliographystyle{plain}يتحكم biblatex في نمط الاستشهاد عبر خياراته الخاصة، فلا حاجة إلى bibliographystyle
\bibliography{refs}This call at the end of your document is replaced by \printbibliography
\usepackage[backend=biber, style=authoryear]{biblatex}صرّح عن biblatex في المقدمة (preamble)؛ يحدد backend=biber أن Biber هو المعالج
\addbibresource{refs.bib}Replaces \bibliography{}; note the .bib extension is required here
\cite{key} → \parencite{key}biblatex uses \parencite (parenthetical) and \textcite (inline) by convention
\printbibliographyضعه في نهاية المستند حيث تريد طباعة قائمة المراجع
جمّع مع قائمة المراجع في ثوانٍ
يشغّل FormaTeX التجميع متعدد المراحل تلقائيًا: pdflatex ← biber ← pdflatex. لا حاجة إلى تثبيت TeX محلي.

