ملخص
يعلّم هذا الدرس التصريح بلغات المستند واختيار خطوطه. فهو يشرح ما يغيّره babel حين يُصرَّح بلغة (تقسيم الكلمات، والتسميات، والتواريخ، والأرقام) ويميّز الطرق الثلاث لتغيير اللغة: \selectlanguage و\foreignlanguage والبيئة otherlanguage. ويطبّق ذلك على نص عربي يقتبس اليونانية القديمة بالتشكيل المتعدد واللاتينية، بمقطع من كل منهما. ثم يعرض حزمة fontspec: العائلات الثلاث في المستند، والأمر \babelfont لإسناد خط إلى كل لغة، وأنفع خصائص OpenType (أشكال الأرقام، والتركيبات، والأحرف الصغيرة الكبيرة في الخطوط اللاتينية). ويعلّم كيف نتحقق من أن الخط يحتوي جميع محارف المستند، بقراءة التنبيهات «Missing character» والبحث عن الخطوط ببرنامج albatross، ويشرح لماذا يحسن تفضيل خطوط TeX Live حين يجب أن يُترجَم المستند في Overleaf أيضًا. ويختم بكلمة عن الكتابة من اليمين إلى اليسار التي يقوم عليها كل مستند عربي، وعن الكتابات الآسيوية وعن حزمة polyglossia.
أهداف التعلم
- التصريح بلغة المستند الرئيسية ولغاته الثانوية بحزمة babel، وشرح ما تحدده كل لغة في النتيجة.
- الاختيار بين
\foreignlanguageوotherlanguageو\selectlanguageبحسب ما يجب أن يتغير، وتوقّع التاريخ والتسميات وعلامات التنصيص الناتجة. - تنضيد مقاطع باليونانية القديمة بالتشكيل المتعدد وباللاتينية، بتقسيم كلماتها الصحيح وبخط مناسب.
- إسناد الخطوط بحزمتي fontspec وbabel، وتفعيل أشكال الأرقام والتركيبات والأحرف الصغيرة الكبيرة.
- التحقق من أن الخطوط المختارة تحتوي جميع المحارف والأشكال التي يستعملها المستند، وتفسير التنبيهات التي تدل على خلاف ذلك.
- الاختيار بين خط من TeX Live وخط من النظام بحسب المكان الذي يجب أن يُترجَم فيه المستند.
ما الذي يتغير مع اللغة
حمّلت الدروس السابقة دائمًا \usepackage[bidi=basic]{babel} ثم \babelprovide[import,main]{arabic} دون أن تتوقف عند ما يفعلانه. غير أن اللغة ليست مجرد قائمة حروف: فلها قواعدها في تقسيم الكلمات في آخر السطر، وأسماؤها لأجزاء المستند، وطريقتها في كتابة التواريخ والأعداد، واتجاه كتابتها. وحزمة babel تجمع هذه الأعراف بحسب اللغة، والتصريح بلغة هو أن نطلب منها تطبيقها. وتحديدًا، تحدد اللغة:
- تقسيم الكلمات: أي الأنماط يبحث بها المحرك عن المواضع التي يجوز فيها قطع الكلمة؛
- التسميات التي يكتبها LaTeX من تلقاء نفسه، مثل عنوان قائمة المحتويات أو اسم الجداول والأشكال؛
- التاريخ الذي يطبعه
\today، وهو تاريخ الترجمة؛ - الأرقام: فالعربية تعرف الأرقام المستعملة في المغرب العربي (1، 2، 3) والأرقام المشرقية (١، ٢، ٣)، ومع الخيار
maparabicفي\babelprovideتُكتب العدادات، كأرقام الصفحات والأقسام، بالمشرقية.
تستعمل الفقرات الثلاث الأوامر نفسها، ولا يتغير إلا اللغة التي تُقرأ بها. والأوامر \tablename و\figurename و\contentsname هي تسميات الجداول والأشكال وقائمة المحتويات.
\documentclass{article}\usepackage{fontspec}\usepackage[bidi=basic, latin, english]{babel}\babelprovide[import,main]{arabic}\babelfont{rm}[Script=Arabic]{Amiri}\begin{document}التاريخ: \today. التسميات: \tablename، \figurename، \contentsname.\begin{otherlanguage}{english}Date: \today. Captions: \tablename, \figurename, \contentsname.\end{otherlanguage}\begin{otherlanguage}{latin}Dies: \today. Tituli: \tablename, \figurename, \contentsname.\end{otherlanguage}\end{document}السطر \babelfont{rm}[Script=Arabic]{Amiri} يختار خطًّا عربيًّا، كما في جميع المستندات العربية لهذا الدرس، وسيُشرح في القسم الخاص بالخطوط. وتكتب اللاتينية اليوم والسنة بالأرقام الرومانية. ويلاحَظ أيضًا أن كل فقرة تُنضَّد في اتجاه لغتها: العربية من اليمين إلى اليسار، والإنجليزية واللاتينية من اليسار إلى اليمين؛ وهذا من عمل الخيار bidi=basic.
تقسيم الكلمات
تقسيم الكلمات هو أقل آثار اللغة ظهورًا وأهمها. فكل لغة تقطع كلماتها بحسب تقاليدها: الكتابة العربية لا تقطع كلماتها بالواصلة في آخر السطر، والإنجليزية تراعي غالبًا تكوين الكلمة، كما في stand-ing، واللاتينية، بحسب التقليد الذي تتبعه أنماطها، تنقل الحرف s المتبوع بحرف ساكن إلى السطر التالي. وإذا لم يُعلَّم مقطع بلغة أخرى، قسّمه المحرك بأنماط اللغة السارية، فتكون المواضع التي يقترحها خاطئة في تلك اللغة أو معدومة.
والأمر \showhyphens يكتب في السجل مواضع القطع التي يقبلها المحرك في الكلمات التي يتلقاها، دون أن يطبع شيئًا في المستند. وهو يفيد في التحقق من الأنماط السارية في كل موضع.
تطلب الشيفرة مواضع القطع في كلمتين إنجليزيتين وكلمتين لاتينيتين، أولًا بأنماط العربية، وهي اللغة الرئيسية، ثم بأنماط لغتها.
\documentclass{article}\usepackage{fontspec}\usepackage[bidi=basic, latin, english]{babel}\babelprovide[import,main]{arabic}\begin{document}\showhyphens{understanding knowledge}\foreignlanguage{english}{\showhyphens{understanding knowledge}}\showhyphens{nostrum conscientia}\foreignlanguage{latin}{\showhyphens{nostrum conscientia}}\end{document}يُظهر السجل، لكل سطر، تنبيهًا عن صندوق (لا ضرر منه: فالأمر \showhyphens ينضّد الكلمات في سطر عريض جدًّا ليفحصها)، تليه الكلمات بمواضع قطعها.
Underfull \hbox (badness 10000) in paragraph at lines 6--6[] \TU/lmr/m/n/10 understanding knowledgeUnderfull \hbox (badness 10000) in paragraph at lines 7--7[] \TU/lmr/m/n/10 un-der-stand-ing knowl-edgeUnderfull \hbox (badness 10000) in paragraph at lines 8--8[] \TU/lmr/m/n/10 nostrum conscientiaUnderfull \hbox (badness 10000) in paragraph at lines 9--9[] \TU/lmr/m/n/10 no-strum con-scien-tiaأنماط العربية لا تعرف الحروف اللاتينية، ولذلك لا تنال الكلمات الإنجليزية واللاتينية في السطرين 6 و8 أي موضع للقطع: فالكلمة الطويلة غير المعلَّمة في آخر السطر لن تنقطع، وسيخرج السطر إلى الهامش أو تتسع مسافاته. أما بأنماط الإنجليزية فتراعي المواضع تكوين الكلمات، وبأنماط اللاتينية (السطر 9) تتبع التقليد اللاتيني.
علامات التنصيص في العربية
تستعمل الكتابة العربية في المستوى الأول علامتي التنصيص الزاويّتين «…»، وفي داخلهما العلامتين المزدوجتين “…”. ولا يعرّف babel للعربية اختصارات لعلامات التنصيص ولا يبدّلها بحسب المستوى، ولا يعرف csquotes أسلوبًا للعربية ما لم يُعرَّف له بالأمر \DeclareQuoteStyle. ومع LuaLaTeX تُكتب العلامات مباشرة من لوحة المفاتيح، كما في المثال، وتُكتب علامة الفتح أولًا في ترتيب الكتابة.
يُظهر السطر الثاني، وهو بالإنجليزية، الطريقة الكلاسيكية في LaTeX، التي لا تتوقف على اللغة: علامتا نبر منخفض تفتحان علامتي التنصيص الإنجليزيتين وفاصلتان علويتان تغلقانهما، وواحدة من كل منهما تعطي العلامتين المفردتين. أما العلامتان الزاويّتان في السطر الأول فتتّجهان في الصورة نحو النص لا إلى خارجه، لأن المحرّك لا يقلبهما مع اتجاه الكتابة، كما رأينا في درس الفقرات والمسافات والعلامات.
ويجب مع ذلك التمييز بين الاختصار والمصادفة. فالخط الذي تحمّله fontspec بخاصية تركيبات TeX، التي ستأتي لاحقًا، يحوّل من تلقاء نفسه علامتي < متتاليتين إلى علامة تنصيص زاويّة، في أي لغة. ولذلك يعطي <<…>> أيضًا علامات زاويّة، لكنها واحدة في جميع المستويات: فالاقتباس المتداخل المكتوب هكذا تخرج فيه زاويّتان داخل زاويّتين، وعلى الكاتب أن يضع “…” بنفسه. وسيتناول درس الحواشي والاقتباسات والأبيات الاقتباسات بتفصيل أكبر.
جارٍ تحميل المحتوى…