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

ملخص

يشرح هذا الدرس ما LaTeX ولماذا تستعمله الأوساط الأكاديمية. فينطلق من التنضيد، أي صنعة ترتيب كل حرف وكل سطر وكل صفحة، ومن المتطلبات الخاصة للنصوص الأكاديمية؛ ويوازن بإنصاف بين لغة الترميز ومعالج النصوص؛ ويروي لماذا أنشأ دونالد كنوث (Donald Knuth) نظام TeX وكيف بنى عليه ليزلي لامبورت (Leslie Lamport) نظام LaTeX، الذي يقوم على فصل المضمون عن الشكل؛ ويميّز المحرّكات الثلاثة التي يُترجَم بها اليوم، pdfLaTeX وXeLaTeX وLuaLaTeX، ويعلّل اختيار LuaLaTeX في هذا المقرّر؛ ويبيّن كيف يبدو الملف المصدري وكيف يتحوّل إلى مستند PDF؛ ويستعرض استعماله في التخصصات، من الرياضيات والفيزياء إلى الفلسفة وفقه اللغة؛ ويختم بحدوده، ليُعرَف متى يكفي معالج النصوص.

أهداف التعلم

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

التنضيد

كل نص مطبوع أو مقروء على الشاشة قد نُضِّد: فقد قرّر أحدٌ أو شيءٌ الموضعَ الدقيق الذي يقع فيه كل حرف. والتنضيد هو مجموع هذه القرارات: أيّ خط وأيّ حجم يُستعملان، وأين ينتهي كل سطر وكيف تُوزَّع المسافة بين كلماته لضبطه على العرض، وأيّ الكلمات تُقسَم في آخر السطر وعند أيّ موضع، ومتى يندمج حرفان في حرفٍ مركّب، وكيف تُضبط المسافة بين أزواج معيّنة من الحروف، وأين تُقطع كل صفحة، وعلى أيّ ارتفاع توضع الحواشي، وكيف تُرتَّب العناوين. ظلّ ذلك قرونًا صنعةَ المنضِّد الذي كان يصفّ السطور بحروف من المعدن؛ واليوم ينفّذه برنامج، لكن القرارات بقيت هي هي.

الفقرة الجيدة لا تُلحَظ: تجري العين على السطور دون أن تتعثّر بفراغات متفاوتة أو بتقسيمات عبثية. غير أن بلوغ ذلك ليس بالأمر الهيّن، لأن كل قرار يقيّد ما بعده: فالموضع الذي ينتهي فيه السطر الأول يحدّد الكلمة التي يبدأ بها الثاني، وهكذا إلى آخر الفقرة.

مثالفقرة منضَّدة بوصفها كُلًّا

تملأ طريقةٌ بسيطة كل سطر بما يتّسع له من الكلمات ثم تنتقل إلى التالي دون أن تعود إلى الوراء. فإذا لم تتّسع كلمة طويلة في آخر السطر الثالث، بقي ذلك السطر بمسافات واسعة بين كلماته، مع أنه كان يكفي نقل كلمة قصيرة من السطر الثاني لتجنّب ذلك. أما الطريقة التي صمّمها كنوث ومايكل بلاس (Michael Plass) لنظام TeX فتسلك سبيلًا آخر: إذ تنظر في جميع مواضع القطع الممكنة في الفقرة دفعةً واحدة، وتختار التوليفة التي توزّع المسافات على الجملة أحسن توزيع. ويلزم عن ذلك أن سطرًا قد يبقى أقلّ امتلاءً مما كان يحتمل، إذا تحسّنت بذلك السطور التالية.

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

الترميز ومعالج النصوص

ثمّة طريقتان لنطلب من برنامج أن ينضّد نصًّا. ففي معالج النصوص، مثل Microsoft Word أو LibreOffice Writer، يرى المؤلف على الشاشة الصفحةَ كما ستُطبع، ويعدّلها مباشرة: يحدّد كلمة فيجعلها مائلة، ويسحب هامشًا، ويختار حجمًا أكبر لعنوان. ويوصف هذا الأسلوب عادةً بالعبارة الإنجليزية what you see is what you get، أي: ما تراه هو ما تحصل عليه.

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

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

TeX وLaTeX

دونالد كنوث وTeX

كان دونالد كنوث، أستاذ علوم الحاسوب في جامعة ستانفورد، ينشر منذ عام 1968 مجلّدات كتابه The Art of Computer Programming (فنّ البرمجة). ونحو عام 1977، حين تسلّم بروفات طبعة جديدة من المجلّد الثاني، منضَّدة بالتقنية الفوتوغرافية التي حلّت محلّ الحروف المعدنية، وجدها أدنى بكثير من بروفات الطبعة الأولى، ولا سيّما في الصيغ. وبدلًا من أن يستسلم، قرّر أن يكتب بنفسه برنامج تنضيد يعيد إلى كتب الرياضيات جودة أفضل الطباعة التقليدية، ويكون ناتجه واحدًا على أيّ حاسوب. ظهرت أول نسخة من TeX عام 1978؛ ثم أعاد كنوث كتابتها كاملةً في مطلع العقد التالي، وصمّم أيضًا برنامج METAFONT الذي رسم به خطوط Computer Modern.

والاسم مأخوذ من اليونانية: فحروفه هي الحروف الكبيرة تاو وإبسيلون وخي، أول كلمة τέχνη التي تعني الفنّ والصنعة معًا، ولذلك لا يُنطق الحرف الأخير كحرف x بل قريبًا من الخاء: «تِخ». وقد أعلن كنوث اكتمال TeX ولا يقبل فيه إلا تصحيح الأخطاء: فمنذ الإصدار 3 يقترب رقم الإصدار من π، ويضيف إليه كل تصحيح رقمًا. وهذا الثبات من فضائله، لأن مستندًا كُتب قبل عقود يُترجَم اليوم بالنتيجة نفسها.

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

ليزلي لامبورت وLaTeX: المضمون منفصلًا عن الشكل

في مطلع ثمانينيات القرن العشرين كتب ليزلي لامبورت، عالم الحاسوب المعروف خاصةً بأعماله في الأنظمة الموزَّعة، مجموعةَ ماكروهات فوق TeX سمّاها LaTeX، وتداول الناس نسختها الأولى عام 1984؛ وفي عام 1986 نشر الدليل LaTeX: A Document Preparation System. ومنذ عام 1994 يتعهّد النسخةَ النافذة، المسمّاة LaTeX2e، فريقٌ من المتطوعين هو LaTeX Project.

والفكرة المحورية في LaTeX أن يرمّز المؤلف المضمون لا الشكل. فهو لا يكتب «هذا السطر بخط عريض وحجم أكبر»، بل «هذا عنوان قسم»، بالأمر \section{النتائج}؛ ولا يكتب «هذه الكلمة مائلة»، بل «هذه الكلمة مبرَزة»، بالأمر \emph{الفرضية}. أما هيئة عنوان القسم، وهل يحمل رقمًا، وعلى أيّ بُعد يقف من النص، فيقرّرها صنف المستند المعلَن في أوله، مع الأوامر التي يضيفها المؤلف في الديباجة. ويلزم عن ذلك أن هيئة المستند كلّه تتغيّر من موضع واحد، وأن النص نفسه يمكن تنضيده وفق قواعد مجلّتين مختلفتين دون المساس بسطر واحد من المتن.

مثالالبنية تُعلَن والشكل يُستنتَج

لا يوجد في الملف المصدري التالي أيّ إشارة إلى حجم أو خط أو رقم: لا يُقال فيه إلا ما كلُّ سطر. أما ترقيم القسم والقسم الفرعي، وحجم عنوانيهما وثخانتهما، وإبراز الكلمة المبرَزة، فيقرّرها صنف المستند.

شيفرة LaTeX
\section{النتائج}تؤكّد البيانات \emph{الفرضية} الأولى.​\subsection{العيّنة}تضمّ العيّنة اثني عشر نصًّا لثلاثة مؤلفين.
النتيجة
النتيجة

فإذا أُدرج لاحقًا قسمٌ قبل هذا، انتقل رقمه من تلقاء نفسه من واحد إلى اثنين، وكذلك يحدث للقسم الفرعي ولكل إحالة تشير إليهما.

المحرّكات: pdfLaTeX وXeLaTeX وLuaLaTeX

LaTeX مجموعة من الماكروهات لا برنامج: فهو يحتاج إلى محرّك، أي برنامج من عائلة TeX ينفّذها وينتج المستند. وتُستعمل اليوم ثلاثة محرّكات، تفهم كلها LaTeX نفسه؛ وتختلف في طريقة قراءتها للنص وفي الخطوط التي تستطيع استعمالها.

  • pdfLaTeX يستعمل المحرّك pdfTeX، الذي طوّره هان ثي ثانه (Hàn Thế Thành) لإنتاج ملف PDF مباشرة. وهو سريع وواسع الانتشار، وهو المحرّك الافتراضي في Overleaf. غير أن خطوطه هي خطوط صيغة TeX الكلاسيكية، لا يتجاوز كلٌّ منها 256 محرفًا، فلا يحمّل مباشرةً الخطوط المثبّتة في النظام، وتتطلّب كتابة اليونانية أو السيريلية أو العربية أو غيرها ترميزات وحزمًا خاصة؛ ومن دونها يوقف حرفٌ يوناني الترجمةَ بخطأ.
  • XeLaTeX يستعمل المحرّك XeTeX، الذي أنشأه جوناثان كيو (Jonathan Kew)، وهو يقرأ النص بترميز Unicode، المعيار الذي يمنح رقمًا لكل محرف في جميع أنظمة الكتابة، ويحمّل أيّ خط OpenType من النظام بواسطة الحزمة fontspec.
  • LuaLaTeX يستعمل المحرّك LuaTeX، الذي يقدّم ما يقدّمه XeTeX من حيث Unicode والخطوط، ويضمّ فوق ذلك لغة البرمجة Lua، التي تستطيع بها الحزم أن تتدخّل في التنضيد. وتشغّله التوزيعات الحالية مع مكتبة HarfBuzz، التي تشكّل الكتابات التي تتّصل حروفها أو تتركّب، كالعربية والديفاناغارية.

يستعمل هذا المقرّر LuaLaTeX. والأسباب تلزم عمّا سبق: فهو يكتب مباشرةً بترميز Unicode، فيُكتب اقتباسٌ من أفلاطون باليونانية متعدّدة النبرات، بنبراته وعلامات نَفَسه، كما هو؛ ويستعمل خطوط النظام، ومنها ما تشترطه جامعة أو مجلة؛ وينضّد العربية واليونانية القديمة واللاتينية في مستند واحد، كلًّا بقواعده؛ ويقبل، مع الحزم المناسبة، الكتابات التي تجري من اليمين إلى اليسار كالعربية، أو التي لا تفصل كلماتها بمسافات كالصينية واليابانية. ومن ثَمّ يكفي محرّكٌ واحد لجميع مستندات مقرّر موجّه إلى العلوم والإنسانيات معًا. وكلفته الوحيدة مقارنةً بـ pdfLaTeX ترجمةٌ أبطأ قليلًا، لا تكاد تُحَسّ في المستندات ذات الحجم المعتاد.

مثالاليونانية واللاتينية في مستند عربي يُترجَم بـ LuaLaTeX

يحمّل الملف المصدري التالي الحزمة fontspec، ويعلن بواسطة babel العربيةَ لغةً رئيسية مكتوبةً بخط Amiri، ثم اليونانية القديمة واللاتينية لغتين ثانويتين يُسند إليهما خطٌّ يحوي الحروف اليونانية، لأن خط Amiri لا يحويها. وتُكتب الكلمات اليونانية مباشرةً بمحارفها، ويتولّى الخيار bidi=basic تجاور الكتابة من اليمين إلى اليسار والكتابة من اليسار إلى اليمين.

شيفرة LaTeX
\documentclass{article}\usepackage{fontspec}\usepackage[bidi=basic]{babel}\babelprovide[import,main]{arabic}\babelprovide[import]{ancientgreek}\babelprovide[import]{latin}\babelfont{rm}[Script=Arabic]{Amiri}\babelfont[ancientgreek,latin]{rm}{Linux Libertine O}​\begin{document}يفتتح أرسطو كتاب «ما بعد الطبيعة» بهذه العبارة:\foreignlanguage{ancientgreek}{πάντες ἄνθρωποι τοῦ εἰδέναι ὀρέγονται φύσει.}ونقلها التراث اللاتيني هكذا:\foreignlanguage{latin}{omnes homines natura scire desiderant.}\end{document}
النتيجة
النتيجة

وتمييز مقطع بالأمر \foreignlanguage يدلّ على اللغة التي كُتب بها المقطع، فتُطبَّق عليه قواعد تقسيم كلماته وأعرافه واتجاه كتابته؛ وهنا يختار أيضًا خطّه، لأن الأمر \babelfont أسند إلى كل لغة خطها. ولو تُرجم هذا الملف المصدري نفسه بـ pdfLaTeX لما تُرجم: فالحزمة fontspec تتطلّب XeLaTeX أو LuaLaTeX.

الملف المصدري والترجمة وملف PDF

مستند LaTeX ملفٌّ نصي خالص امتداده .tex. ويتألّف من جزأين. الديباجة تمتدّ من السطر الأول، \documentclass{article}، الذي يعلن صنف المستند، إلى \begin{document}؛ وفيها تُحمَّل الحزم بالأمر \usepackage، وتُتّخذ قرارات الشكل. والمتن يمتدّ من \begin{document} إلى \end{document} ويحوي النص. وتبدأ الأوامر بشرطة مائلة عكسية، وما تتلقّاه يُكتب بين قوسين معقوفين.

مثالمستند كامل في أدنى صورة

هذا الملف المصدري مستند كامل: يُترجَم دون أن يُضاف إليه شيء، وسيكون نقطة الانطلاق لمستندات المقرّر.

شيفرة LaTeX
\documentclass{article}\usepackage{fontspec}\usepackage[bidi=basic]{babel}\babelprovide[import,main]{arabic}\babelfont{rm}[Script=Arabic]{Amiri}​\begin{document}\section{مقدمة}التنضيد يقرّر أين يقع كل حرف.\end{document}
النتيجة
النتيجة

ينال القسم الرقم واحدًا دون أن يكتبه أحد، ويستعمل عنوانه الخط والحجم اللذين يحدّدهما الصنف article. والأسطر من الثالث إلى الخامس خاصة بالعربية: فالخيار bidi=basic يدير اتجاه الكتابة، و\babelprovide يحمّل وصف اللغة العربية ويجعلها اللغة الرئيسية، و\babelfont يختار خطًّا يحوي الحروف العربية، لأن الخط الافتراضي (Latin Modern) لا يحويها.

لدورة العمل ثلاث مراحل: يُكتب الملف المصدري، ثم يُترجَم، ثم تُقرأ النتيجة. والترجمة هي تشغيل المحرّك على الملف، وفي هذا المقرّر بالأمر lualatex، الذي يقرأ الملف المصدري ويكتب ملف PDF بالاسم نفسه. وتبقى إلى جانبه ملفات مساعدة، منها ملف امتداده .log، وهو ملف السجل، يدوّن فيه المحرّك الأخطاء والتحذيرات، وآخر امتداده .aux، يحفظ فيه أرقام الأقسام والصفحات. ولذلك لا يظهر فهرس المحتويات أو الإحالة المتبادلة على الوجه الصحيح إلا بعد ترجمة ثانية: ففي الأولى يدوّن المحرّك أين استقرّ كل شيء، وفي الثانية يستعمل ذلك. وفي الممارسة لا يُكتب الأمر باليد: إذ ينفّذه المحرِّر بزرّ. وفي هذا المقرّر نعمل بـ Texmaker على حاسوبنا، أو بـ Overleaf في المتصفّح؛ والدرس التالي يُعدّ هذه البيئة.

لا يُنضَّد الملف المصدري كما كُتب، وثلاث قواعد تفسّر جلّ المفاجآت الأولى. أولًا، المسافات المتتالية تساوي مسافة واحدة، ونهاية السطر تُحسب مسافة: فالمحرّك يوزّع المسافة بنفسه، والمسافة التي يكتبها المؤلف لا تدلّ إلا على أن كلمةً تنتهي هناك. ثانيًا، سطرٌ فارغ أو أكثر يُنهي الفقرة ويبدأ أخرى. ثالثًا، العلامة % تبدأ تعليقًا: فيُهمل المحرّك كل ما يليها إلى آخر السطر، بما في ذلك نهاية السطر نفسها.

مثالالمسافات والفقرات والتعليقات

كُتب الملف المصدري التالي بإهمال متعمَّد. وللنتيجة فقرتان بمسافات منتظمة، ولا تظهر الملاحظة التي تلي علامة التعليق.

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

وإذا كان الأمر كذلك، فلا يكفي لطباعة علامة النسبة المئوية أن تُكتب: بل يجب أن تسبقها شرطة مائلة عكسية، هكذا: \%. وكذلك الشأن في سائر المحارف التي يحجزها LaTeX لوظائفه الخاصة، كالأقواس المعقوفة أو علامة الدولار.

LaTeX في التخصصات الأكاديمية

في الرياضيات والفيزياء وفي جزء كبير من علوم الحاسوب، LaTeX هو القاعدة: فالمجلّات تقدّم أصناف مستندات خاصة بها ليسلّم المؤلفون مقالاتهم بتنسيقها، وarXiv، المستودع الذي تُتداوَل فيه مقالات هذه التخصصات قبل نشرها، يتلقّى الملفات المصدرية لـ LaTeX ويترجمها بنفسه. والسبب هو تنضيد الصيغ، الذي لا يضاهيه نظام آخر بمثل هذا الجهد اليسير، والترقيم الآلي للمبرهنات والمعادلات. ويستعمله كذلك الاقتصاد والإحصاء والهندسة والكيمياء على نطاق واسع.

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

حدود LaTeX

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

ومن ثَمّ يلزم معيار بسيط. فالرسالة القصيرة، أو المحضر، أو الاستمارة، أو النص الذي سيراجعه شخص آخر في معالج نصوص، يُكتب على نحو أفضل في معالج نصوص. أما المستند الطويل، ذو البنية والصيغ والاقتباسات والحواشي واللغات المتعدّدة أو العمر الطويل أمامه، الذي سيُصحَّح ويُعاد نشره سنوات، فيُكتب على نحو أفضل في LaTeX.

مسائل محلولة

لا تطلب المسائل التالية تذكّر ما قيل، بل تطبيقه: فالأولى تقتضي التنبّؤ الدقيق بما ينتجه ملف مصدري، والثانية تقرير المحرّك والخطوط التي يحتاجها مستند، والثالثة فصل المضمون عن الشكل في ملف مصدري كُتب دون هذه العناية.

مسألة محلولة 1ما الذي يطبعه هذا الملف المصدري

دون ترجمته، يُراد التنبّؤ الدقيق بالنص الذي ينتجه المتن التالي، وبعدد فقراته، وبما يحدث لكل علامة نسبة مئوية.

شيفرة LaTeX
التنضيد   يقرّر    أين   يقع كل حرف.الفقرة الجيدة لا تُلحَظ.​​نحو 50 % من القرّاءلا يلاحظون الفرق. هذه الكل%مة تبقى سليمة.

الحل

  1. لا يفصل بين الأسطر الثلاثة الأولى أيّ سطر فارغ: فهي تؤلّف فقرة واحدة. والمسافات المتكرّرة والمسافات في أول السطر الثاني تُختزَل إلى واحدة، وكل نهاية سطر تُحسب مسافة. فالفقرة الأولى تقول: «التنضيد يقرّر أين يقع كل حرف. الفقرة الجيدة لا تُلحَظ.»

  2. يلي ذلك سطران فارغان. يكفي واحد لإنهاء فقرة، ولا يضيف الثاني شيئًا: فلا فقرة فارغة ولا مسافة أكبر. وعليه تبدأ الفقرة الثانية.

  3. في السطر نحو 50 % من القرّاء لا تُطبع علامة النسبة المئوية: بل تبدأ تعليقًا. فيُسقط المحرّك «من القرّاء» ونهايةَ السطر أيضًا؛ ولا يبقى إلا المسافة المكتوبة قبل العلامة، ويتّصل بها السطر التالي.

  4. في «الكل» تلتصق علامة النسبة المئوية بالكلمة: فتُسقط نهاية السطر دون أن تترك أيّ مسافة، ويتجاهل المحرّك المسافات في أول السطر التالي. ويلزم عن ذلك أن «الكل» و«مة» تتّحدان في كلمة واحدة، بل تتّصل حروفهما اتّصالها في الكلمة الواحدة.

  5. الفقرة الثانية تقول: «نحو 50 لا يلاحظون الفرق. هذه الكلمة تبقى سليمة.» لقد أراد المؤلف أن يكتب نسبة مئوية فضاع منه نصف جملة دون أن يشير المحرّك إلى أيّ خطأ؛ وكان عليه، لطباعة العلامة، أن يكتب \%.

مسألة محلولة 2محرّك أطروحة فيها يونانية ولاتينية

تكتب طالبة فلسفة بالعربية أطروحة عن محاورة فيدون. وتقتبس مقاطع من أفلاطون باليونانية متعدّدة النبرات ومقاطع من شُرّاح لاتينيين، وتشترط جامعتها خطًّا معيّنًا للعربية، مثبّتًا على حاسوبها ملفَّ OpenType، لا يحوي حروفًا يونانية. يُراد تقرير المحرّك الذي تحتاجه، وما الذي عليها أن تعلنه فوق ذلك ليخرج المستند كاملًا.

الحل

  1. يُستبعد pdfLaTeX لسببين مستقلّين: فهو لا يحمّل مباشرةً خطوط OpenType الموجودة في النظام، والحرف اليوناني المكتوب بترميز Unicode يوقف ترجمته ما لم تُهيَّأ ترميزات وخطوط خاصة؛ فضلًا عن أن العربية نفسها تحتاج فيه إلى حزم خاصة. ويكفي السبب الأول لاستبعاده، لأن خط الجامعة إلزامي.

  2. XeLaTeX وLuaLaTeX يقرآن Unicode ويحمّلان خطوط النظام بالحزمة fontspec: ومع أيٍّ منهما يُعلَن خط الجامعة في الديباجة، وهنا بالأمر \babelfont، لأنه خط اللغة العربية الرئيسية. والمقرّر يستعمل LuaLaTeX.

  3. غير أن المحرّك وحده لا يكفي. فإذا كان الخط لا يحوي حروفًا يونانية، ترجم LuaLaTeX دون خطأ، لكن الكلمات اليونانية لا تظهر في ملف PDF: إذ لا يدوّن المحرّك ذلك إلا في ملف السجل، بتحذيرات من نوع Missing character. فالمشكلة لا تظهر عند الترجمة، بل عند قراءة النتيجة.

  4. ولذلك يجب أن يُسنَد إلى اليونانية خطٌّ ثانٍ يحويها. فمع babel تُعلَن اليونانية القديمة لغةً بالأمر \babelprovide[import]{ancientgreek}، ويُسنَد إليها خطها بالأمر \babelfont[ancientgreek]{rm}{GFS Didot}؛ ويُميَّز كل مقطع يوناني بالأمر \foreignlanguage.

  5. واللاتينية تُكتب بالأبجدية اللاتينية؛ فإن لم يكن في خط الجامعة العربي حروف لاتينية، أُسند إليها خطٌّ لاتيني بالطريقة نفسها، وفي كل الأحوال تُعلَن لغةً، بالأمر \babelprovide[import]{latin}، لتُقسَّم كلماتها وفق قواعد اللاتينية، وليُضبط اتجاهها من اليسار إلى اليمين داخل النص العربي.

  6. خلاصة القول: LuaLaTeX، وخط الجامعة خطًّا رئيسيًّا للعربية، وخطٌّ يحوي اليونانية متعدّدة النبرات للمقاطع اليونانية، والعربية واليونانية القديمة واللاتينية معلَنةً لغاتٍ.

مسألة محلولة 3فصل المضمون عن الشكل

كتب مؤلفٌ بداية القسم الثاني من مقالة على هذا النحو. يُراد بيان العلامات التي تعبّر عن الشكل بدل المضمون، وإعادة كتابتها بحيث لا تقول إلا ما كلُّ شيء، وشرح ما يُكسَب إذا طلبت المجلّة لاحقًا أن تظهر المصطلحات اليونانية دون ميل.

شيفرة LaTeX
{\Large\bfseries 2. النتائج}\\[6pt]كما يقول أرسطو في \textit{ما بعد الطبيعة}، فإن الرغبةفي المعرفة \textit{فطرية}؛ والمصطلح اليوناني هو \textit{φύσει}.\\\vspace{12pt}{\large\bfseries 2.1. العيّنة}\\

الحل

  1. السطر الأول يحدّد باليد حجم ما هو في الحقيقة عنوان قسم وثخانته ورقمه والمسافة التي تليه. فيُستبدَل به \section{النتائج}، ويضع الصنف الرقم؛ ولو كُتب باليد لاختلّ بمجرّد إدراج قسم سابق.

  2. في ذلك الملف يظهر \textit ثلاث مرات بثلاث وظائف مختلفة: يميّز عنوان كتاب، وكلمة مبرَزة، ومصطلحًا يونانيًّا. وكون الثلاثة تُطبع اليوم مائلة توافقٌ في الشكل لا تطابقٌ في المضمون.

  3. تنال كل وظيفة علامتها الخاصة. فللكلمة المبرَزة يوجد \emph{فطرية}؛ وللوظيفتين الأخريين تُعرَّف في الديباجة أوامر جديدة، مثل \newcommand{\kitab}[1]{\textit{#1}} وأمرٍ مماثل، \mustalah، يُستعملان في المتن هكذا: \kitab{ما بعد الطبيعة} و\mustalah{φύσει}. ويمكن بعد ذلك أن يُعرَّف \kitab بحيث يضع العنوان بين علامتي تنصيص، كما هو مألوف في الكتابة العربية، بدل الميل.

  4. الشرطتان المائلتان العكسيتان، اللتان تفرضان قطع السطر، والمسافة العمودية المضافة باليد، تحاكي الفصل بين الفقرات. فتُحذف: إذ يُنهي سطرٌ فارغ الفقرة، ويقرّر الصنف المسافة. ويُكتب عنوان القسم الفرعي \subsection{العيّنة}.

  5. إذا طلبت المجلّة المصطلحات اليونانية دون ميل، كفى تغيير سطر واحد في الديباجة، هو الذي يعرّف \mustalah، فيبلغ التغيير جميع مصطلحات المقالة دون المساس بعناوين الكتب ولا بالكلمات المبرَزة. أما مع الملف الأصلي، فكان لا بدّ من مراجعة كل مائل على حدة، وتقرير الوظيفة التي يقابلها في كل حالة.

تمارين على الشبكة

في هذه التمارين تُكتب الشيفرة في المربّع ويراجعها المتصفّح فورًا: يتحقّق من الأقواس المعقوفة والبيئات ومما يطلبه كل تمرين، دون أن يترجمها. فإذا اجتازت المراجعة يحسن نسخ الشيفرة إلى Texmaker وترجمتها، لأن النتيجة المترجَمة وحدها تُظهر ما يُطبع حقًّا.

تمرين 1إكمال المستند الأدنى

يحوي المربّع نصَّ مستندٍ مكتوب بالإسبانية لا غير؛ والمراجعة تبحث عن هذا النص بعينه، فينبغي إبقاؤه كما هو. أكمِله حتى يصير مستندًا تامًّا يُترجَم بـ LuaLaTeX: الصنف article، والحزمتان fontspec وbabel مع الإسبانية، لغة النص، وبداية المتن ونهايته. والإسبانية تُكتب بالأبجدية اللاتينية، فلا حاجة إلى خط آخر ولا إلى bidi. ولا يتغيّر النص.

يفحص المتصفح شيفرتك فورًا، دون أن يترجمها أو يمنحها درجة. لرؤية النتيجة الحقيقية، ترجمها في Texmaker.

تلميح

يتألّف المستند من جزأين: الديباجة، التي تبدأ بالصنف وتحمّل الحزم، والمتن، الذي يحوي النص.

تمرين 2ترميز المضمون لا الشكل

المقطع التالي، المأخوذ من مقالة بالإسبانية، يقول كيف ينبغي أن يبدو كل سطر، لا ما هو. أعِد كتابته بحيث يرمّز المضمون: فالعنوان الأول قسم والثاني قسم فرعي، يرقّمهما الصنف، و«qué es» («ما هو») عبارة مبرَزة. ولا يتغيّر النص (فالمراجعة تبحث عن الكلمات الإسبانية)، وتختفي قطوع الأسطر المفروضة.

يفحص المتصفح شيفرتك فورًا، دون أن يترجمها أو يمنحها درجة. لرؤية النتيجة الحقيقية، ترجمها في Texmaker.

تلميح

اسأل نفسك عن كل سطر ما هو (عنوان قسم، أو قسم فرعي، أو عبارة مبرَزة)، وابحث عن الأمر الذي يقول ذلك؛ وكل ما سوى ذلك يقرّره الصنف.

مسائل مقترحة

لكل مسألة تلميح يحسن ألا يُفتح إلا بعد المحاولة، وجواب يظهر بعد فتح التلميح.

مسألة مقترحة 1المسافة التي تختفي

تنبّأ بالنص الذي ينتجه المتن التالي، حيث \LaTeX و\TeX هما الأمران اللذان يطبعان شعارَي LaTeX وTeX. واشرح الفرق بين السطرين، واقترح تصحيحًا للأول.

شيفرة LaTeX
أكتب بـ \LaTeX منذ عام.أستعمل \LaTeX{} و\TeX\ كل يوم.
تلميح

اسأل نفسك أين ينتهي اسم أمرٍ مؤلَّف من حروف، وماذا يفعل المحرّك بالمسافة التي تليه: أهي جزء من النص أم من الأمر؟

الإجابة

فقرة واحدة: «أكتب بـ LaTeXمنذ عام. أستعمل LaTeX وTeX كل يوم.» ينتهي اسم الأمر عند أول محرف ليس حرفًا، وتُبتلَع المسافات التي تليه عند قراءته؛ وفي السطر الثاني يُغلق القوسان الفارغان، والشرطة المائلة العكسية المتبوعة بمسافة، الأمرَ ويحفظان المسافة. ويُصحَّح السطر الأول بكتابة \LaTeX{} منذ أو بشرطة مائلة عكسية متبوعة بمسافة. وفي LuaLaTeX تُعدّ الحروف العربية حروفًا أيضًا، فلو كُتب \LaTeXمنذ دون مسافة لكان اسمًا لأمر آخر غير موجود.

مسألة مقترحة 2ثلاثة مستندات وثلاثة محرّكات

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

تلميح

اسأل نفسك عن كل مستند أمرين: هل يحتاج إلى خطٍّ من خطوط النظام، وهل يحوي أنظمة كتابة غير الأبجدية اللاتينية ينبغي أن تُقرأ بترميز Unicode، وأن تتّصل حروفها أو تتركّب في بعض الحالات.

الإجابة

تقبل أطروحة الرياضيات المحرّكات الثلاثة. ويتطلّب التحقيق اليوناني XeLaTeX أو LuaLaTeX، بسبب خط النظام وبسبب اليونانية بترميز Unicode. وتتطلّب المقالة العربية كذلك XeLaTeX أو LuaLaTeX، بسبب Unicode، وبسبب الحروف التي تتّصل وتتركّب في العربية والهندية، وبسبب الكتابة من اليمين إلى اليسار في العربية. ويكفي LuaLaTeX للثلاثة، ومع محرّك واحد تُترجَم جميع ملفات المقرّر بالطريقة نفسها.

مسألة مقترحة 3LaTeX أم معالج النصوص؟

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

تلميح

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

الإجابة

الرسالة في معالج النصوص: فهي قصيرة، بلا بنية ولا حياة لاحقة. والأطروحة في LaTeX: فطولها وصيغها وإحالاتها تنتفع بالترقيم الآلي وبقائمة المراجع قاعدةَ بيانات. والمقالة في معالج النصوص، لأن المتلقّي يفرضه. والمذكّرات في LaTeX: فعمرها الطويل وبنيتها النامية واليونانية تُرجّح النص الخالص وUnicode.