\compare{xelatex-vs-lualatex}
XeLaTeX مقابل LuaLaTeX
يدعم المحركان Unicode أصلًا ويحمّلان خطوط النظام عبر fontspec. الفرق الحقيقي هو محرك البرمجة Lua المدمج في LuaLaTeX وخط معالجة تشكيل النصوص الأفضل لديه. يغطي هذا الدليل كل فرق ذي أهمية.
- سرعة التجميع أولوية
- تحتاج إلى خطوط النظام مع ميزات OpenType
- كتابات من اليمين إلى اليسار (العربية والعبرية) مع الحزمة bidi
- لا تحتاج إلى البرمجة بـ Lua أثناء التجميع
- تحتاج إلى البرمجة بـ Lua داخل مستندك
- تحتاج إلى تشكيل نصوص متقدم (HarfBuzz)
- توليد جداول ديناميكية أو محتوى محسوب
- تحتاج إلى ميزات luacolor أو luatextra
\section{الفروق التقنية}
ما الذي يختلف فعلًا في الداخل
محرك البرمجة Lua
XeLaTeX
لا يحتوي XeLaTeX على لغة برمجة نصية مدمجة. يجب التعبير عن منطق المستند بالكامل عبر وحدات ماكرو TeX أو الحزم. وهذا كافٍ لمعظم مهام التنضيد، لكنه يحدّ من توليد المحتوى الديناميكي أثناء التجميع.
LuaLaTeX
يدمج LuaLaTeX مفسّر Lua 5.3 كاملًا يمكن الوصول إليه من داخل مستندك عبر luacode. يمكنك حساب القيم والمرور على البيانات واستدعاء مكتبات Lua الخارجية وإعادة النتائج إلى مجرى تنضيد TeX أثناء التجميع.
تشكيل النصوص والكتابات المعقدة
XeLaTeX
يستخدم XeLaTeX مكتبتي ICU وSIL لتشكيل النصوص عبر محرك XeTeX. وتُدعم الكتابات المعقدة (العربية والديفاناغارية والتايلاندية) عبر الحزمتين bidi وpolyglossia. عمليًا يغطي هذا معظم متطلبات التنضيد متعدد اللغات.
LuaLaTeX
يدمج LuaLaTeX محرك HarfBuzz (عبر LuaHarfBuzz)، وهو محرك التشكيل نفسه الذي تستخدمه المتصفحات وAndroid وmacOS. يتمتع HarfBuzz بتغطية أوسع للكتابات وتطبيق أدق لميزات OpenType، مما يجعله الخيار الأفضل للمستندات ذات متطلبات الكتابات المعقدة أو استبدال الرموز (glyph) المتقدم.
سرعة التجميع
XeLaTeX أسرع باستمرار من LuaLaTeX. ويعود الفرق إلى كلفة تهيئة آلة Lua الافتراضية في LuaLaTeX وخط معالجة تشكيل HarfBuzz. في المستندات البسيطة يكون الفارق صغيرًا، أما في المستندات الكبيرة الكثيفة الخطوط فقد يكون LuaLaTeX أبطأ بنسبة 30–50%.
XeLaTeX
~1.5s
مستند نموذجي بتمريرة واحدة
LuaLaTeX
~2.0s
مستند نموذجي بتمريرة واحدة
توافق الحزم
XeLaTeX
تعمل معظم حزم CTAN التي تعمل مع pdfLaTeX مع XeLaTeX أيضًا، باستثناء الحزم منخفضة المستوى الخاصة بـ pdfLaTeX. وتُعدّ الحزمتان fontspec وunicode-math من الحزم الأساسية المدعومة بالكامل.
LuaLaTeX
يدعم LuaLaTeX الحزم نفسها التي يدعمها XeLaTeX، إضافة إلى الوصول إلى منظومة Lua. وحزم مثل luacode وluacolor وluatextra حصرية بـ LuaLaTeX.
\subsection{مصفوفة الميزات}
مقارنة جنبًا إلى جنب
\section{Recommendations}
أي محرك لأي نوع من المستندات؟
يعتمد المحرك المناسب على متطلباتك المحددة، لا على ترتيب عام شامل.
بحث أكاديمي (نص لاتيني)
XeLaTeXتجميع أسرع، ودعم ممتاز لـ fontspec، ودعم كامل لـ unicode-math لخطوط الرياضيات الحديثة.
تقرير متعدد اللغات (كتابات معقدة)
LuaLaTeXيتعامل تشكيل HarfBuzz مع العربية والديفاناغارية والتايلاندية بدقة أعلى من محرك ICU في XeLaTeX.
توليد التقارير آليًا
LuaLaTeXتتيح لك البرمجة بـ Lua المرور على البيانات وتوليد جداول أو أقسام أثناء التجميع دون معالجة مسبقة خارجية.
أطروحة / رسالة دكتوراه
XeLaTeXتكرار أسرع أثناء الكتابة، ودعم واسع للقوالب، وfontspec يغطي جميع متطلبات الخطوط المعتادة.
كتاب أو مستند طويل
LuaLaTeXتتيح استدعاءات Lua الرجعية تخصيصات طباعية دقيقة تتجاوز ما تسمح به وحدات ماكرو TeX. ويحسّن HarfBuzz جودة الرموز (glyph) للخطوط المخصصة.
سيرة ذاتية
XeLaTeXمستند قصير وتجميع سريع، وfontspec يتعامل مع جميع خطوط الهوية البصرية المخصصة التي قد تحتاجها.
\begin{examples}
أمثلة دنيا عاملة
يُجمَّع المثالان كلاهما مع FormaTeX. جرّبهما مباشرة في الـ playground.
% XeLaTeX — Unicode native, system fonts via fontspec
\documentclass{article}
\usepackage{fontspec}
\usepackage{unicode-math}
\setmainfont{Linux Libertine O}
\setmathfont{XITS Math}
\begin{document}
XeLaTeX handles Unicode natively: α β γ — no inputenc needed.
Arabic: \textarabic{مرحبا} \quad Greek: Αλφαβητικό
$\int_0^\infty e^{-x^2}\, dx = \frac{\sqrt{\pi}}{2}$
\end{document}% LuaLaTeX — Lua scripting + modern font loading
\documentclass{article}
\usepackage{fontspec}
\usepackage{luacode}
\setmainfont{Linux Libertine O}
% Generate content with Lua at compile time
\begin{luacode*}
local items = {"Introduction", "Methods", "Results", "Discussion"}
for i, v in ipairs(items) do
tex.print(i .. ". " .. v .. "\\\\")
end
\end{luacode*}
\begin{document}
LuaLaTeX: Unicode + Lua scripting in a single engine.
$f(x) = \sum_{n=0}^{\infty} \frac{f^{(n)}(a)}{n!}(x-a)^n$
\end{document}\section{FAQ}
الأسئلة الشائعة
جمّع بالمحرك الذي تفضله
يشغّل FormaTeX المحركات XeLaTeX وLuaLaTeX وpdfLaTeX وlatexmk. بدّل المحرك بتغيير حقل واحد في API، دون أي بنية تحتية.

