لاتك واللغة العربية

من ويكي عربآيز
اذهب إلى: تصفح، ابحث

توجد عدة حزم لدعم اللغة العربية في لاتك، أشهرها وأقدمها حزمة عرب‌تك (ArabTeX). يعيب عرب‌تك اعتمادها على خط واحد لا يمكن تغييره (وهو خط ليس بالجميل بمعايير الطباعة). هناك أيضا حزمة عربي (Arabi) وهي حزمة حديثة وجيدة جدا، لكنها لا تعمل سوى مع عدد محدود من الخطوط المدعومة مسبقا، ويجب إضافة كل خط جديد على حدة (وهي عملية ليست بسيطة). سنركز هنا في الحديث على نظام زي‌تك لأنه أحد أفضل الحلول المتاحة.

نفترض هنا وجود معرفة مسبقة بلاتك، لذا لن نخوض في الأساسيات التي تخرج عن هدف هذه الوثيقة الصغيرة.

زي‌تك

زي‌تك (XeTeX) هو محرك تك يدعم يونيكود وتقنيات الخطوط الحديثة مثل أوبن‌تيب (OpenType). بفضل دعم زي‌تك لأوبن‌تايب ويونيكود يمكن استخدامه في تنضيد المستندات العربية.

التثبيت

في دبيان:

apt-get install texlive-latex-base texlive-xetex

لا تحتاج إلى texlive-latex-base إذا كنت لا تنوي استخدام latex وستكتفي بتِك الصِرف (لا أعتقد أن أحدا يريد ذلك). يفترض أن يعمل هذا مع أوبونتو أيضا.

الاستخدام

لا يختلف استخدام زي‌تك كثيرا عن استخدام لاتك العادي:

\documentclass{article}
\usepackage{fontspec} % هذه لنستطيع تغيير الخطوط
\usepackage{bidi} % هذه توفر أوامر تحديد اتجاه النص
 
\setmainfont[Script=Arabic]{Simplified Naskh} % الخط الرئيسي
\setsansfont[Script=Arabic]{Mothanna} % الخط غير المذيل
\setmonofont[Script=Arabic]{Thabit} % الخط ثابت العرض
 
\title{\RL{العربي مع لاتك}}
\author{\RL{خالد حسني}}
\date{\RL{6 إبريل 2008}}
 
\begin{document}

\maketitle

\setRL % يجعل كل الفقرات التالية من اليمين لليسار
هذه فقرة مكتوبة باللغة العربية، والكلمات مرتبة من اليمين لليسار، والسطر 
محاذى إلى اليمين، هل انتهينا؟ لا نريد تطويله قليلا لأنهم يدفعون لي بالكلمة
هذه الأيام.

فقرة جديدة، مايزال النص محاذا يمينا، لكن نريد كتابة جملة إنجليزية،
بسيطة اكتبها هكذا \LR{English text, left to right} ولو كانت كلمة واحده 
كهذه english فلا تحتاج لمعاملة خاصة.

\setLR % يجعل الاتجاه من اليسار لليمين
Now, we can type a left to right paragraph, that is simple, and 
all paragraphs from now on will be left to right.

But, how to insert some Arabic text, the same as what we did with LR in RL 
environtment, \RL{نص عربي، من اليمين لليسار}, and a single word عربي doesn't 
need special handling.

\end{document}
المستند الناتج.

حزمة fontspec تتيح لنا تغيير الخطوط، والتحكم في خصائصها، وهي حزمة قوية جدا لمن يريد تحكما دقيقا في الخصائص الطباعية للخطوط.

لتغيير الخطوط الرئيسية للمستند، نستخدم الأوامر:

\setmainfont[Script=Arabic]{Simplified Naskh}

لتحديد الخط الرئيسي للمستند، الذي سيُستخدم مع كل النصوص. الجزء الأول Simplified Naskh هو اسم الخط، يجب أن يكون الخط مثبتا على نظامك وإلا سيشتكي xelatex من عدم وجود الخط. من حسنات حزمة fntspec أنها ترى الخطوط المثبتة في النظام ولا تحتاج لخطوات خاصة لإخبار لاتك عن مكانها (وهذا يحل مشكلة إضافة الخطوط إلى لاتك). الجزء الثاني Script=Arabic يحدد خصائص أوبن‌تيب التي نريد تفعيلها، هنا نخبره بتفعيل كل الخصائص المرتبطة بالكتابة العربية، لكن يمكننا التحكم في المزيد من هذه الخصائص هنا. اقرأ المزيد عنها.

\setsansfont[Script=Arabic]{Mothanna}

لتحديد خط sans، الذي سيُستخدم عند طلب خط من هذا النوع.

\setmonofont[Script=Arabic]{Thabit}

لتحديد الخط ثابت العرض (teletype باصطلاح تك) الذي سيُستخدم عند طلبه، مثلا مع الأمر ‪\texttt{}‬.


حزمة bidi توفر أوامر التحكم في اتجاه النص، ‪\RL{}‬ لكتابة جملة من اليمين لليسار في سياق من اليسار لليمين، و ‪\LR{}‬ للعكس. ‪\setRL‬ تبدل الاتجاه العام ليصبح من اليمين لليسار، و ‪\setLR‬ تفعل العكس. ملاحظة مهمة ، حزمة bidi يجب أن تكون أخر حزمة يتم تحميلها ، فعلى سبيل المثال لا يمكن إدراج صورة في نص عربي (داخل‪\RL{}‬ ) باستعمال حزمة graphics إذا قمت بتحميل حزمة bidi قبلها. اقرأ المزيد عنها.

احفظ الملف، مثلا example.tex، ثم من سطر الأوامر:

xelatex example.tex

سيُنتج هذا ملف PDF بنفس الاسم.

عرب زي‌تك

مثال على استخدام عرب زي‌تك

إذا كنت معتادا على ArabTeX، أو تريد الاستفادة من الخصائص التي يقدمها (مثل إمكانية كتابة النص العربي بحروف لاتينية، والتحكم في عرض التشكيل أو عدمه) فيمكنك استخدام حزمة ArabXeTeX وهي حزمة توفر واجهة استخدام شبيهة بعرب‌تك لكن باستخدام محرك زي‌تك متخلصة من العيوب الرئيسية لعرب‌تك. اقرأ المزيد عنها.

التثبيت

نزّلها من هنا، فك الضغط، ادخل إلى الدليل الناتج، انسخ ملفات الخطوط والترميز إلى مكان تثبيت xelatex:

$ unzip arabxetex.zip
$ cd arabxetex
$ sudo cp -r fontmapping /usr/share/texmf-texlive/fonts/misc/xetex/fontmapping/arabxetex/
$ sudo cp xelatex/arabxetex.sty /usr/share/texmf-texlive/tex/xelatex/
$ sudo texhash

الماترات بأعلى على حسب دبيان، قد يختلف هذا في توزيعتك.

الاستخدام

مثال:

\documentclass{article}
\usepackage{arabxetex}

\newfontinstance\arabicfont{Simplified Naskh:script=arab}

\title{\textarab{العربي مع لاتك}}
\author{\textarab{خالد حسني}}
\date{\textarab{6 إبريل 2008}}

\begin{document}
\maketitle

\begin{arab}

فقرة عربية محاذاة لليمين، والنص يجري من اليمين لليسار ونستطيع كتابة نص لاتيني 
\textroman{English text inside Arabic environment}. وهناك الكثير من الميزات، 
مثلا لإبراز نص عربي نستخدم \aemph{نص مهم} وهي تضع سطرا فوق النص، أو يمكننا 
كتابة رقم آية هكذا [[55]].

ويمكننا استخدام أسلوب عرب‌تك الخاص حيث يتيح تحكما أكبر في النص. مثلا لكتابة 
آية من القرآن الكريم:

\end{arab}

\newcommand{\hamzaB}{\char"200D\char"0640\raise-.95ex\hbox{\char"0654}\char"200D}

\begin{arab}[fullvoc]
sUraTu 'l-ssajdaTi 15--16:
'innamA yu'minu bi-\hamzaB a|"Ay___atinA 'lla_dIna 'i_dA _dukkirUA bihA
_harrUA sujjadaN wa-sabba.hUA bi-.hamdi rabbihim wa-hum lA yastakbirUna
SAJDA [[15]] tatajAfY_a junUbuhum `ani 'l-ma.dAji`i yad`Una rabbahum
_hawfaN wa-.tama`aN wa-mimmA razaqn_ahum yunfiqUna [[16]]

\end{arab}
\end{document}

ملاحظات

hyperref

عند استخدام حزمة hyperref تحتاج لإخبارها أنك تستخدم xetex ليس pdflatex. مثلا:

\usepackage[xetex]{hyperef}

معلومات PDF

إذا كنت تريد تحديد معلومات ملف PDF (مثل المؤلف، والموضوع، والكلمات المفتاحية) فيمكنك هذا باستخدام حزمة hyperref أيضا:

\usepackage[xetex,
           pdftitle={عنوان الوثيقة}
           pdfauthor={مؤلف الوثيقة}
           pdfsubject={موضوع الوثيقة},
           pdfkeywords={كلمة كلمة أخرى}]{hyperref}

لاحظ أننا لا نحتاج لتحديد اتجاه النص هنا، فهذه المعلومات تخزن في ملف PDF كمعلومات فوقية (meta info) ولا تعرض في الملف مباشرة (يمكن الوصول إليها من نافذة معلومات الملف في عارض PDF الذي تستخدمه).

الأعمدة

لصف النص في أكثر من عمود ستحتاج لحزمة fmultico (نسخة من multicol تصف الأعمدة من اليمين لليسار)، نزل الملف وضعه في مسار حيث يجده لاتك (المجلد الحالي مثلا). استخدام الحزمة لا يختلف عن multicol العادية. مثلا:

\usepackage{fmultico}

\begin{document}

\begin{multicols}{3} % ثلاث أعمدة
ضع النص هنا
\end{multicols}

\end{document}