انتقل إلى المحتوى
Topos Uranos

ملخص

يفكّك هذا الدرس الملف المصدري لـ LaTeX إلى أجزائه. فيميّز الديباجة من المتن ويشرح ما يجوز وضعه في كلٍّ منهما ولماذا؛ ويصف الأوامر بنوعَي أسمائها ووسائطها الإلزامية والاختيارية وصيغها النجمية، ويحدّد بدقة أين ينتهي اسم الأمر؛ ويبيّن كيف تحدّ المجموعات من نطاق التصريحات؛ ويعرض البيئات والخطأ الذي ينتج عن تداخلها غير الصحيح؛ ويستعرض المحارف العشرة المحجوزة، وما يفعله كلٌّ منها وكيف يُطبع؛ ويشرح التعليقات وسيلةً لتعطيل الشيفرة؛ ويقدّم باختصار الحزم وصنف المستند وخياراته، وهي ما ستتوسّع فيه الوحدة المخصّصة لبنية المستند.

أهداف التعلم

  1. التمييز بين الديباجة والمتن، وتقرير موضع الأمر بحسب ما يفعله.
  2. التعرّف في الأمر على اسمه ووسائطه الإلزامية والاختيارية وصيغته النجمية، والتنبؤ بموضع انتهاء اسمه.
  3. التنبؤ بنطاق التصريح داخل المجموعات والبيئات، وكتابته بحيث لا يؤثّر إلا في النص المقصود.
  4. تداخل البيئات تداخلًا صحيحًا، وتفسير الخطأ الذي ينتج عن التداخل غير الصحيح.
  5. طباعة كل محرف من المحارف العشرة المحجوزة، وشرح ما يفعله كلٌّ منها حين لا يُحمى.

جزءا الملف المصدري

لكل ملف مصدري لـ LaTeX الشكلُ نفسه. فهو يبدأ بالأمر \documentclass الذي يعلن صنف المستند. وما يليه حتى \begin{document} هو الديباجة: فيها تُحمَّل الحزم وتُتّخذ القرارات التي تسري على المستند كله، ولكن لا يُنضَّد فيها شيء. وبين \begin{document} و\end{document} يقع المتن، وهو الموضع الوحيد الذي يُنضَّد فيه النص. أما ما يُكتب بعد \end{document} فيُهمَل كليًّا.

وليس هذا التقسيم عُرفًا أسلوبيًّا، بل هو نتيجة لطريقة عمل LaTeX. فعند الوصول إلى \begin{document} يُغلق LaTeX باب الإعداد: إذ صار معلومًا أيّ الحزم موجودة، وأيّ خط ولغة وقياس صفحة هي السارية، ومن تلك اللحظة يبدأ التنضيد. ومن ذلك تلزم قاعدتان، وخطآن. الأولى: لا تُحمَّل الحزمة إلا في الديباجة، لأنها قد تغيّر قرارات طُبّقت من قبل؛ فإن وُضع \usepackage في المتن نتج الخطأ «Can be used only in preamble». والثانية: لا يُنضَّد شيء في الديباجة؛ فالنص أو عنوان القسم أو فهرس المحتويات إذا كُتب قبل \begin{document} نتج عنه الخطأ «Missing \begin{document}».

وبين هذين الطرفين أوامر لا تفعل سوى أن تعرّف شيئًا أو تحفظه من غير أن تنضّده: مثل \newcommand الذي يعرّف أمرًا جديدًا، و\title الذي يحفظ العنوان إلى أن يطبعه \maketitle. وهذه تعمل في أيٍّ من الجزأين، لكن موضعها الديباجة، لأنها تسري هكذا من البداية، ويجدها قارئ الملف المصدري مجتمعةً.

مثالمستند عُلِّمت أجزاؤه

التعليقات، وهي تبدأ بالمحرف %، تعلّم الأجزاء؛ ويتجاهلها المحرّك. والسطر الأخير، المكتوب بعد \end{document}، لا يظهر هو أيضًا في النتيجة.

شيفرة LaTeX
\documentclass{article}      % الصنف\usepackage{fontspec}        % الديباجة: الحزم\usepackage[bidi=basic]{babel}\babelprovide[import,main]{arabic}\babelfont{rm}[Script=Arabic]{Amiri} % خط يحوي الحروف العربية\title{تقرير قراءة}          % الديباجة: بيانات تُحفظ\author{سارة أحمد}\date{}​\begin{document}             % بداية المتن\maketitle\section{طرح المسألة}المتن هو الموضع الوحيد الذي يُنضَّد فيه النص.\end{document}               % نهاية المتنهذا السطر لا يظهر في النتيجة.
النتيجة
النتيجة

الأمر \date{}، بوسيط فارغ، يجعل \maketitle لا يطبع تاريخًا، وإلا لطبع تاريخ الترجمة. وأما الأسطر الثلاثة لحزمة babel فتعدّ العربية لغةً رئيسة: الخيار bidi=basic يتولّى اتجاه الكتابة من اليمين إلى اليسار، و\babelprovide يستورد إعدادات العربية، و\babelfont يختار خط Amiri، لأن الخط الافتراضي (Latin Modern) لا يحوي الحروف العربية.