\engine{pdflatex}
pdfLaTeX دليل
pdfLaTeX هو أسرع محركات LaTeX وأوسعها توافقًا. يجمّع المصدر .tex مباشرةً إلى PDF، ويملك أوسع دعم للحزم بين المحركات، ولا يزال المحرك الافتراضي لمعظم قوالب LaTeX والمحررات عبر الإنترنت.
\section{ما هو pdfLaTeX}
ما هو pdfLaTeX؟
pdfLaTeX امتداد لمحرك الصف TeX الأصلي من Donald Knuth، طوّره Hàn Thế Thành في التسعينيات. بينما كان TeX الأصلي ينتج ملفات DVI (مستقلة عن الجهاز)، ينتج pdfLaTeX ملف PDF مباشرةً، مما يلغي خطوة التحويل من DVI إلى PDF ويتيح ميزات خاصة بـ PDF مثل الروابط التشعبية والإشارات المرجعية والبيانات الوصفية والخطوط المضمّنة.
أسرع محرك
يجمّع المستندات البسيطة في أقل من ثانية. الأسرع بين جميع محركات LaTeX الرئيسية.
أقصى توافق
تستهدف كل حزمة تقريبًا في CTAN محرك pdfLaTeX أولًا. توقّع مشكلات توافق شبه معدومة.
دعم microtype
بروز وتمديد كاملان للحروف لطباعة دقيقة بمستوى احترافي.
\section{متى تستخدمه}
متى تستخدم pdfLaTeX
\subsection{أوامر التجميع}
تشغيل pdfLaTeX من سطر الأوامر
pdfLaTeX متوفر في كل تثبيت لـ TeX Live. فيما يلي أكثر طرق التشغيل شيوعًا، من التجميع الأساسي بمرحلة واحدة إلى خط معالجة كامل لقائمة المراجع. أو استخدم latexmk لأتمتة خط المعالجة متعدد المراحل.
# Basic pdfLaTeX compilation
pdflatex document.tex
# Suppress most terminal output (nonstopmode)
pdflatex -interaction=nonstopmode document.tex
# Run twice to resolve cross-references
pdflatex -interaction=nonstopmode document.tex
pdflatex -interaction=nonstopmode document.tex
# Full pipeline with bibliography
pdflatex -interaction=nonstopmode document.tex
bibtex document
pdflatex -interaction=nonstopmode document.tex
pdflatex -interaction=nonstopmode document.tex
# Write output to a specific directory
pdflatex -output-directory=./build document.texفي معظم المستندات التي تحتوي على مراجع متقاطعة، يجب تشغيل pdfLaTeX مرتين على الأقل: مرة لتسجيل المراجع ومرة أخرى لحلها. تتطلب المستندات ذات قائمة المراجع تشغيل bibtex أو biber بين مراحل pdfLaTeX.
\subsection{الخيارات الشائعة}
خيارات pdfLaTeX الشائعة
تتحكم هذه الخيارات في كيفية تعامل pdfLaTeX مع الأخطاء ومسارات المخرجات والوصول إلى الصدفة. تستخدم معظم خطوط معالجة CI/CD الخيارين -interaction=nonstopmode و-halt-on-error معًا.
-interaction=nonstopmodeشغّل دون التوقف عند الأخطاء. تُسجَّل الأخطاء ويستمر التجميع. أساسي لخطوط معالجة CI/CD.
-interaction=batchmodeمثل nonstopmode لكنه يكتم أيضًا كل مخرجات الطرفية. مفيد للتجميع الدفعي الصامت.
-output-directory=<dir>يكتب جميع ملفات المخرجات (.pdf و.log و.aux) في المجلد المحدد. يُبقي شجرة المصدر نظيفة.
-jobname=<name>يتجاوز اسم ملف المخرجات. مفيد عندما يكون اسم ملف .tex عامًا (مثل main.tex).
-halt-on-errorيتوقف فورًا عند أول خطأ. اجمعه مع -interaction=nonstopmode للتحقق الصارم في CI.
-shell-escapeيسمح لـ TeX بتشغيل أوامر صدفة خارجية. تتطلبه حزم مثل minted (تلوين الصياغة) وepstopdf.
-file-line-errorيطبع الأخطاء بصيغة file:line:error، وهي أسهل في التحليل داخل بيئات التطوير وماسحات سجلات CI.
-synctex=1يولّد ملف SyncTeX يربط مواضع PDF بأسطر المصدر. يتيح مزامنة المصدر وPDF في المحررات.
\section{Limitations}
القيود المعروفة
pdfLaTeX هو أنضج المحركات، لكنه صُمم في التسعينيات ويحمل قيودًا معمارية تعالجها المحركات الأحدث.
لا إدخال Unicode أصلي
pdfLaTeX treats source files as 8-bit byte streams. You must add \usepackage[utf8]{inputenc} and \usepackage[T1]{fontenc} for UTF-8 support. Characters outside the T1 font encoding require extra packages or workarounds.
لا وصول إلى خطوط النظام
لا يستطيع pdfLaTeX تحميل خطوط عشوائية من نظام التشغيل لديك. أنت مقيّد بالخطوط المثبّتة مسبقًا في توزيعة TeX (Computer Modern وLatin Modern وغيرها) أو الخطوط المعبّأة لـ TeX على CTAN.
لا خطوط رياضيات OpenType
خطوط رياضيات OpenType الحديثة (XITS Math وLibertinus Math وFira Math) غير متاحة في pdfLaTeX. إذا كنت تحتاج إلى هذه الخطوط، فبدّل إلى XeLaTeX أو LuaLaTeX مع حزمة unicode-math.
دعم محدود للغات من اليمين إلى اليسار والكتابات المعقدة
تتطلب اللغات من اليمين إلى اليسار (العربية والعبرية) والكتابات المعقدة (الديفاناغاري والتايلاندية) حلولًا بديلة مرهقة في pdfLaTeX. يتعامل XeLaTeX وLuaLaTeX معها أصليًا.
قيود microtype في بعض الميزات
رغم أن pdfLaTeX يملك أفضل دعم لـ microtype، فإن ميزات بروز الحروف وتمديدها الكاملة تتطلب خطوطًا بصيغة Type 1 أو OTF. وقد يكون دعم microtype أضعف في بعض حزم الخطوط الأحدث.
\section{Alternatives}
متى تنتقل إلى محرك آخر
pdfLaTeX هو الخيار الافتراضي الصحيح لمعظم المستندات. بدّل المحركات فقط عندما لا يمكن تلبية متطلب معين.
يحتوي مستندك على العربية أو الصينية أو العبرية أو كتابات أخرى غير لاتينية
XeLaTeX أو LuaLaTeXتحتاج إلى استخدام خط نظام مخصص (مثل خط الهوية البصرية من نظام التشغيل لديك)
XeLaTeXتريد البرمجة النصية بـ Lua لتوليد محتوى المستند برمجيًا
LuaLaTeXتحتاج إلى خطوط رياضيات OpenType حديثة مثل XITS Math أو Libertinus Math
XeLaTeX أو LuaLaTeXتريد أن يتولى latexmk خط معالجة التجميع متعدد المراحل تلقائيًا
latexmk (يغلّف pdfLaTeX)\subsection{استخدام API}
التجميع باستخدام pdfLaTeX عبر FormaTeX API
يشغّل FormaTeX محرك pdfLaTeX على جانب الخادم. ترسل شيفرة LaTeX المصدرية ونعيد لك ملف PDF. لا حاجة إلى تثبيت TeX Live من جانبك.
مرّر "engine": "pdflatex" في طلب التجميع
المحركات الأربعة جميعها، pdfLaTeX وXeLaTeX وLuaLaTeX وlatexmk، متاحة في كل خطة. يتطلب تبديل المحركات تغيير الحقل engine فقط في طلب API. راجع نظرة عامة على المحركات للاطلاع على القائمة الكاملة للخيارات.
جمّع مستندات pdfLaTeX فورًا
يشغّل FormaTeX محركات pdfLaTeX وXeLaTeX وLuaLaTeX وlatexmk في السحابة. لا حاجة إلى تثبيت محلي. مفتاح API واحد وبلا بنية تحتية.

