\compare{bibtex-vs-biber}

BibTeX مقابل Biber

كلاهما معالج لقوائم المراجع في LaTeX، لكنهما يقدمان مقايضات مختلفة جذريًا. يغطي هذا الدليل دعم Unicode والترتيب والأداء ومتى يكون كل منهما الخيار الصحيح.

BibTeX— كلاسيكي وسريعBiber— حديث ويدعم Unicode
استخدم BibTeX عندما…
  • يتطلبه قالب مجلة أو ناشر
  • تستخدم نمط استشهاد natbib
  • تحتوي قائمة المراجع على نص ASCII فقط
  • أقصى سرعة تجميع أولوية لديك
استخدم Biber عندما…
  • تحتوي أسماء المؤلفين على أحرف غير 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{مصفوفة الميزات}

مقارنة جنبًا إلى جنب

الميزة
BibTeX
Biber
إدخال Unicode
ASCII فقط (هروب يدوي)
UTF-8 أصلي
خوارزمية الترتيب
ترتيب بايتات ASCII
خوارزمية ترتيب Unicode
الأداء
سريع جدًا
أبطأ في قواعد البيانات الكبيرة
يعمل مع
natbib وأنماط plain
biblatex فقط
الحقول الموسعة
تُتجاهل أو تسبب أخطاء
doi, url, langid, eprint…
Cross-references
أساسي
وراثة كاملة للحقول
التدويل
هروب يدوي في LaTeX
دعم أصلي للغات المحلية
قوالب المجلات
معظمها يتطلب BibTeX
المشاريع الجديدة والقوالب الخاصة

\begin{examples}

مقارنة ملف .bib

المدخل نفسه في قاعدة البيانات بصيغة BibTeX الكلاسيكية مقابل BibLaTeX + Biber. لاحظ كيف يدعم Biber الترميز UTF-8 مباشرةً وحقولًا إضافية.

BibTeX
% 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 + Biber
% 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 وأوامر الاستشهاد.

الانتقال في المقدمة (preamble)
% 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

ضعه في نهاية المستند حيث تريد طباعة قائمة المراجع

يدعم كلًا من BibTeX وBiber

جمّع مع قائمة المراجع في ثوانٍ

يشغّل FormaTeX التجميع متعدد المراحل تلقائيًا: pdflatex ← biber ← pdflatex. لا حاجة إلى تثبيت TeX محلي.