\engines{comparison}

LuaLaTeX مقابل pdfLaTeX

يُنتج المحركان ملفات PDF عالية الجودة، لكن LuaLaTeX يضيف بيئة تشغيل كاملة للبرمجة النصية بـ Lua وتحميلًا حديثًا للخطوط على حساب السرعة. يغطي هذا الدليل كل فرق مهم لتختار المحرك المناسب لكل مستند.

pdfLaTeX— سريع وعالميLuaLaTeX— برمجة نصية بـ Lua وخطوط حديثة
استخدم pdfLaTeX عندما…
  • السرعة مهمة، أي أسرع محرك متاح
  • أقصى توافق مع الحزم مطلوب
  • مستندات النصوص اللاتينية القياسية
  • الحاجة إلى تباعد microtype وبروز الحروف
استخدم LuaLaTeX عندما…
  • البرمجة النصية بـ Lua لتوليد المحتوى الديناميكي
  • تحميل حديث للخطوط عبر fontspec
  • نصوص Unicode تتجاوز اللاتينية الأساسية
  • صف طباعي خوارزمي معقد

\section{الفروق التقنية}

الفروق التقنية

يساعدك فهم البنية الأساسية على توقع السلوك عند تفاعل الحزم أو تحميل الخطوط أو تشغيل النصوص البرمجية.

إمكانية البرمجة النصية بـ Lua

يضمّن LuaLaTeX مفسّر Lua 5.3 كاملًا. يمكنك كتابة شيفرة إجرائية، والمرور على البيانات في حلقات، واستدعاء tex.print()، والتحكم في محرك الصف الطباعي برمجيًا. لا يملك pdfLaTeX طبقة برمجة نصية كهذه.

تحميل الخطوط

يستخدم LuaLaTeX حزمة fontspec لتحميل أي خط OpenType أو خط نظام بالاسم دون إعداد .tfm يدوي. أما pdfLaTeX فيعتمد على نظام خطوط TeX ويتطلب inputenc + fontenc للترميز الصحيح.

دعم Unicode

يقرأ LuaLaTeX ترميز UTF-8 أصليًا على مستوى المحرك. ويقرّب pdfLaTeX دعم Unicode عبر حزمة inputenc التي تغطي معظم الكتابات اللاتينية لكنها تتطلب حلولًا بديلة للصينية واليابانية والكورية والعربية أو الرموز الرياضية المتقدمة.

سرعة التجميع

pdfLaTeX هو أسرع محرك LaTeX، فهو يستغرق عادةً من 0.6 إلى 1 ثانية لمستند بسيط. أما LuaLaTeX فيهيّئ آلة Lua الافتراضية ونظام خطوط أكبر، فيكون أبطأ بمقدار 2 إلى 3 مرات في المتوسط. وفي خطوط معالجة CI أو المعاينة الحية يكون هذا الفرق مهمًا.

\section{مقارنة الميزات}

مقارنة الميزات

الميزةpdfLaTeXLuaLaTeX
إدخال Unicode
عبر inputenc
أصلي
خطوط النظام
لا
نعم (fontspec)
البرمجة النصية بـ Lua
لا
نعم (luacode)
سرعة التجميع
سريع (~0.8 ثانية)
أبطأ (~2–3 مرات)
توافق الحزم
ممتاز
جيد
Microtype
دعم كامل
جزئي
اللغات من اليمين إلى اليسار
محدود
نعم (luabidi)
استهلاك الذاكرة
منخفض
أعلى (آلة Lua الافتراضية)

\section{أمثلة الشيفرة}

أمثلة الشيفرة

مستندات صغيرة متجاورة لكل محرك.

pdfLaTeX
% pdfLaTeX — fast, maximum compatibility
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{microtype}

\begin{document}
Standard pdfLaTeX document. Fast compilation, excellent package support.
$f(x) = \int_0^x t^2\, dt = \frac{x^3}{3}$
\end{document}
LuaLaTeX
% LuaLaTeX — Lua scripting, modern fonts
\documentclass{article}
\usepackage{fontspec}
\usepackage{luacode}

% Lua scripting inside LaTeX
\begin{luacode}
  local n = 10
  local sum = 0
  for i = 1, n do sum = sum + i end
  tex.print("Sum 1.." .. n .. " = " .. sum)
\end{luacode}

\begin{document}
LuaLaTeX natively handles Unicode and supports Lua scripts.
\end{document}

\section{متى تستخدم LuaLaTeX}

متى تستخدم LuaLaTeX

LuaLaTeX هو الخيار الصحيح في هذه السيناريوهات المحددة.

توليد المحتوى الديناميكي

استخدم حلقات Lua والشروط لتوليد صفوف الجداول المتكررة أو قوائم الفصول أو المخرجات المهيكلة برمجيًا داخل LaTeX.

عرض الخطوط المخصصة

حمّل أي خط OpenType أو خط نظام بالاسم عبر fontspec، وهو مثالي للتقارير ذات الهوية البصرية والطباعة المخصصة والكتابات غير اللاتينية.

الخوارزميات المعقدة

ضمّن شيفرة Lua للحسابات الثقيلة مباشرةً في مستندك: الإحصاءات أو التحويلات أو تنسيق البيانات قبل الصف الطباعي.

عمليات الإرسال الحديثة إلى arXiv

تتطلب بعض قوالب المجلات الأحدث وعمليات الإرسال إلى arXiv صراحةً LuaLaTeX أو تفضّله للتعامل الحديث مع الخطوط وUnicode.

\section{دليل الانتقال}

الانتقال من pdfLaTeX إلى LuaLaTeX

تُجمَّع معظم مستندات pdfLaTeX في LuaLaTeX بعد بضعة تغييرات في المقدمة (preamble).

الإجراءالحزمة / الأمر
احذف\usepackage[utf8]{inputenc}
احذف\usepackage[T1]{fontenc}
أضف\usepackage{fontspec}
اختياري\usepackage{luacode}
فكّر في\usepackage{polyglossia}

\api{FormaTeX}

استخدام LuaLaTeX عبر API

مرّر "engine": "lualatex" في طلب التجميع لاختيار LuaLaTeX.

curl -X POST https://api.formatex.io/api/v1/compile \
  -H "X-API-Key: $FORMATEX_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "engine": "lualatex",
    "latex": "\\documentclass{article}\\usepackage{fontspec}\\begin{document}Hello\\end{document}"
  }' \
  --output document.pdf

\begin{document}

جمّع LuaLaTeX في السحابة

يدعم FormaTeX محركات pdfLaTeX وLuaLaTeX وXeLaTeX. لا حاجة إلى تثبيت TeX Live محليًا؛ جمّع عبر API أو عبر الـ playground في المتصفح.