أدوات المستخدم

أدوات الموقع


docs:تطوير_الخطوط

اختلافات

عرض الاختلافات بين النسخة المختارة و النسخة الحالية من الصفحة.

رابط إلى هذه المقارنة

جانبي المراجعة السابقة المراجعة السابقة
المراجعة التالية
المراجعة السابقة
docs:تطوير_الخطوط [2009/02/24 23:48]
خالد آآآآآآآه
docs:تطوير_الخطوط [2015/04/23 00:19] (حالي)
سطر 1: سطر 1:
 +{{tag>​مقالات تصميم خطوط}}
 +<box red 90%>
 +**قيد الإنشاء:​** لم يكتمل هذا الموضوع بعد، مساعدتك في إكماله أو تحسينه بأي صورة مرحب بها.
 +</​box>​
 +====== تطوير الخطوط العربية ======
 +
 +====== عدة العمل ======
 +الجزء الأكبر من عملية بناء الخط يتم باستخدام [[http://​fontforge.sourceforge.net|فونت‌فورج]] ((FontForge))؛ تطبيق حر لبناء وبرمجة الخطوط به الكثير من المميزات الرائعة ويدعم تقريبا كل أنواع الخطوط، كما أنه يتطور باستمرار.
 +
 +قد نستخدم أيضا برمجيات خارجية لرسم الحروف، مثل برنامج الرسم المتجهي [[http://​www.inkscape.org|إنكسكيب]]، و أدوات تحويل الصور النقطية إلى متجهية مثل [[http://​autotrace.sourceforge.net|autotrace]] و [[http://​potrace.sourceforge.net|potrace]] ‏((تعمل بدون واجهة رسومية)). أيضا قد نحتاج برمجيات لمسح الصور مثل [[http://​www.gimp.org|جمب]].
 +
 +جنو/​لينكس نظام التشغيل المفضل، كل هذه الأدوات متاحة بسهولة ويمكنك تنزيلها عبر مدير الحزم. يمكنك العمل على أنظمة أخرى حيث تتوفر بعض أو كل هذه الأدوات بشكل أو بآخر.
 +
 +====== تجهيز ملف الخط ======
 +افتح فونت‌فورج واضغط على زر ''​**New**''​،
 +
 +{{ docs:​new.png?​300 |ملف جديد}}
 +
 +أو من سطر الأوامر:​
 +<​code>​
 +fontforge -new
 +</​code>​
 +
 +===== بيانات الخط =====
 +{{ docs:​names.png?​300 |نافذة الأسماء}}
 +اذهب إلى قائمة ''​‪**Element -> Font Info...**''​‬ ثم عدل الحقول الموجودة:​
 +  * ''​Family Name'':​ اسم عائلة الخط، مثل Times، Mothanna الخ، وهو الاسم الذي تختاره للخط.
 +  * ''​Fontname'':​ اسم الخط ويتكون من اسم العائلة مع بعض المغيرات مثل Bold و Italic.
 +  * ''​Name For Humans'':​ كما يظهر من اسمه، هذا الحقل موجه للمستخدم نفسه وليس الآلة مثل باقي الحقول، ويمكن أن يحتوي على مسافات، مثل"​New Century Schoolbook-Bold Condensed"​.
 +  * ''​Weight'':​ نوع الخط؛ Regular، Bold، Slanted الخ.
 +كل هذه الحقول يجب أن تستعمل محارف أسكي (إنجليزية فقط)
 +
 +===== الترميز =====
 +
 +بعدها اذهب إلى قائمة ''​**Encoding -> Reencode**''​ واختر ‪''​ISO 10664-1 (Unicode, BMP)''​‬ ليوفر لك فونت‌فورج خانات للحروف العربية. الآن حرك الصفحة لأسفل حتى تصل لموضع الحروف العربية. (أو اذهب إلى ''​**View -> Go to**''​ ثم اكتب ''​U+0600''​).
 +
 +{{ :​docs:​arabic_block.png?​480 |مدخلات الحروف العربية}}
 +
 +====== رسم الحروف ======
 +يمكنك استخدام برمجيات خارجية لرسم الحروف ثم تصديرها إلى فونت‌فورج. مثلا يمكنك رسم الحروف على الورق، ومسحها بالماسحة ثم تشذيبها باستخدام إنكسكيب، وبعدها تستورد الصور من داخل فونت‌فورج. أو يمكنك رسم الحروف مباشرة في فونت‌فورج.
 +
 +===== استيراد رسم الحروف =====
 +سنشرح هنا طريقة استيراد الحروف من مصادر خارجية مثل استعمال الماسح الضوئي على نماذج الخطاطين التعليمية أو أعمالهم الفنية. حيث تساهم هذه العملية في تسريع تصميم الخط وهي تتألف من المراحل التالية:​
 +  * مسح الصورة
 +  * معالجة الصورة نقطيا
 +  * تحويل الصورة النقطية إلى متجهية
 +
 +فلنبدأ بصورة من موقع لتعليم الخط العربي على سبيل المثال صورة التالية من موقع الخطاط أحمد عبد الرحمن خلف
 +
 +{{ :​docs:​الفن_مدرسة_الإبداع.jpg?​480 |الفن مدرسة الإبداع تخطيط أحمد عبد الرحمن خلف}}
 +
 +نفتح الصورة في برنامج GIMP نستخدم الأداة ''​**color -> map -> color exchange**''​ لعمل نفور بين لون الورقة ولون الحبر حتى نميزها ونحن نعمل وذلك باستبدال أغمق لون في في الورقة بالأصفر مثلا وأفتح لون في الحبر بالأزرق مع زيادة ل threshold وبعد ذلك نزيل التلوين بالأداة desaturate (مثلا بحسب اللمعان lominusity)
 +
 +^  المرحلة الاولى من معالجة الصورة ​  ^^^
 +|  {{ :​docs:​font-imp-step1.png?​200 |تبديل لون الورقة}} \\ تبديل لون الورقة ​ |  {{ :​docs:​font-imp-step2.png?​200 |تبديل لون الحبر}} \\ تبديل لون الحبر ​ |  {{ :​docs:​font-imp-step3.png?​200 |بعد إزالة الألوان}} \\ إزالة الألوان ​ |
 +
 +ثم نستخدم الاداة color curve في تطبيق دالة درجية (تقفز من الصفر إلى القيمة الكاملة في منطقة ما بين اللونين البعيدين في المخطط) ويمكن عمل القفزة ​ بواسطة الأداة threshold أو الأداتين معا.
 +
 +
 +^  المرحلة الثانية من معالجة الصورة ​  ^^^
 +|  {{ :​docs:​font-imp-step4.png?​200 |منحنى الألوان}} \\ منحنى الألوان ​ |  {{ :​docs:​font-imp-step5.png?​200 |عمل القفزة بواسطة الأداة threshold}} \\ عمل قفزة بالأداة threshold ​ |  {{ :​docs:​font-imp-step6.png?​200 |تحويل الصورة إلى صورة متجهية}} \\ تحويل الصورة إلى متجهية ​ |
 +
 +
 +بعد أن حصلنا على صورة نظيفة متباينة جدا نستورد الصورة في برنامج الرسم المتجهي inkscape بكل بساطة بسحب الملف وإفلاته ثم نختار ''​**path -> trace bitmap**''​ تستطيع ضغط زر update لمعاينة العملية قبل تنفيذها ومن ثم الموافقة عبر زر OK ونقلق نافذة التحويل. وبعدها نحرك الصورة المتجهية التي حصلنا عليها ونحذف الصورة النقطية ونخزن الملف بهيئة svg (تستطيع تحميل لوحة {{:​docs:​الفن_مدرسة_الإبداع.svg.gz|"​الفن مدرسة الإبداع"​ من موقع أعجوبة}})
 +
 +===== أشكال الحروف =====
 +تختلف عدد الأشكال المطلوبة لكل حرف حسب طبيعة الخط الذي تصممه، أغلب الخطوط الحديثة تحتاج أربعة أشكال للحروف التي تتصل بما بعدها؛ **منفرد** و **أول** و **وسط** و **آخر** الكلمة، وشكلين فقط للحروف التي لا تتصل بما بعدها (ا، د، ذ، ر، ز، و)؛ **منفصل** و **آخر** الكلمة. بعض الخطوط تستعمل شكلين فقط لكل الحروف، حيث يكون أول ووسط الكلمة نفس الشكل. الاختيار يعود إليك وإلى الغرض من الخط الذي تستخدمه. ​
 +
 +الخطوط الاحترافية التي تحاول محاكاة القواعد التقليدية للخط والطباعة العربية قد تحتاج لعشرات الأشكال لكل حرف يتم الاختيار بينها على حسب الحروف المجاورة، في لمقابل بعض الخطوط "​الثورية"​ تستعمل شكلا واحدا لكل حرف بغض النظر عن موضعه في الكلمة.
 +
 +===== وضع الحروف في مكانها =====
 +
 +سنفترض أن الحروف موجودة الآن في ملفات SVG (أو أي نسق متجهي آخر يدعمه فونت‌فورج)، وعلينا الآن وضعها في الخط.
 +
 +اذهب إلى الحرف الذي تريده في نافذة فونت‌فورج -وليكن حرف الألف- ثم انقر عليه لفتح نافذة رسم الحروف (Outline View)، يمكنك البدء برسم الحرف داخل فونت‌فورج أو استيراده من ملف خارجي.
 +اذهب إلى ''​**File -> Import**''​ ثم اذهب إلى مكان الملفات، انقر على القائمة أمام Formate لتحديد نوع الملفات التي تريدها، ثم اختر الملف.
 +
 +{{ docs:​import.png?​184|نافذة الاستيراد}} {{docs:​alef_outline.png?​190|نافذة التحرير}}
 +
 +في هذه النافذة تستطيع ضبط أبعاد الحرف وموضعه من السطر.
 +
 +يوجد بالنافذة ثلاث خطوط أفقية وخطين رأسيين تحدد موضع الحرف وعلاقته بما يجاوره.
 +
 +الخط الثاني من أسفل هو خط الأساس الذي ترتكز عليه الحروف، ما تحته يعتبر "​تحت السطر"​ وما فوقه "​فوق السطر"​.
 +
 +الخطوط الأفقية تحدد امتداد الحرف يمينا ويسارا، أجزاء الحرف التي تتجاوز هذين الخطين ستتقاطع مع الحروف المجاورة (قد يكون هذا مقصودا أحيانا).
 +
 +==== الحروف المنفصلة ====
 +
 +كما نعرف لكل حرف عربي عدة أشكال، منها المنفصلة عندما لا يتصل بحرف آخر.
 +عند برمجة الخط تكون الصورة المنفصلة هي الشكل الأساسي و الأشكال الأخرى هي تنويعات سياقية منه (أي تتحدث حسب السياق وموضع الحرف من الكلمة.) في يونيكود توجد الحروف العربية في منطقتين؛ ''​U+0600''​ - ''​U+06FF''​ و ''​U+0750''​ - ''​U+077F''​. ليست كل هذه الحروف (نقاط الترميز) مستخدمة في اللغة العربية، حروف اللغة العربية تتركز في الجزء الأول حتى ''​U+06CC''​. عند النقر على أي مدخلة يعرض لك فونت‌فورج اسم الحرف وبعض المعلومات عنه -إن وجدت- مما يساعدك على التعرف عليه.
 +
 +بعد ملء كل خانات الحروف المنفصلة، ننتقل للأشكال الأخرى.
 +
 +==== التنويعات ====
 +الحروف التي تتصل بما بعدها لها ثلاث صور بالإضافة إلى الصورة المنفصلة، وهي أول والكلمة ووسطها وآخرها، مثل **ب بـ ـبـ ـب**. الحروف التي لا تتصل بما بعدها لها صورتين فقط؛ منفصلة و متصلة (آخر الكلمة)، مثل **د ـد**. ​
 +
 +هذه هي الأشكال الأساسية التي تعد الحد الأدنى، لكنك لست محدودا بها، فكل صورة من هذه قد يكون لها عدة تنويعات، فمثلا في خط النسخ الباء في أول الكلمة "​بـ"​ تأخذ شكل خاصا إدا كانت متبوعة بسين أو شين، وشكلا آخر مع الياء، وثالث مع الحاء، ورابع مع النون في آخر الكلمة والراء إلخ... سنحاول تغطية المواضيع المتقدمة في فصول لاحقة، الآن سنتحدث عن الأشكال الأساسية فقط.
 +
 +توضع هذه الصور من الحروف العربية عادة في منطقة ''​Arabic Presentation Forms-A''​ (سنعرف فيما بعد أن هذا ليس ضروريا ويمكننا وضعها في أي مكان)، ستجدها قرب النهاية في نافذة فونت‌فورج الرئيسية.
 +
 +ستجد لكل حرف أربع خانات (أو اثنتين)، أحدها الخانة المنفصلة وهذه ليست ضرورية. سيكون عليك ملء الحروف كما فعلنا مع الصور المنفصلة سابقا، لكن تذكر أن تضع الصورة الصحيحة في المكان الصحيح.
 +
 +{{ docs:​beh_forms.png?​480 |الصور المختلفة لحرف التاء}}
 +
 +بعد ملء كل الخانات بالحروف المناسبة سنلاحظ وجود بعض النقوش ((glyphs)) الخاصة التي تمثل أكثر من حرف، مثل "​لا"​ و "​الله"​، هذا ما يعرف باسم الاقترانات ((ligatures)).
 +
 +==== الاقترانات ====
 +
 +الاقترانات ((Ligatures)) هو صنف خاص من النقوش يتكون من حرفين أو أكثر يتخذان معا شكلا خاصا يختلف عن شكل كل منهما لو لم يتصل بالآخر، أشهرها في اللغة العربية لام ألف "​لا"​ وأخواتها. تعد اللام ألف الاقتران الوحيد الضروري في الخطوط العربية الحديثة، ولا يخلو منها أي خط تقريبا، يليها في الشهرة "​الله"​ (أو "​لله"​ فقط). ​
 +
 +يعتمد شكلها على تصميمك للخط. ​
 +
 +بعد ملء هذه الخانات يكون خطنا الجديد قد اكتمل ولم يبق إلا اختباره.
 +
 +{{ docs:​kacstbook_full.png?​480 |الحروف الكاملة لخط عربي أساسي.}}
 +
 +فائدة: اذهب إلى قائمة ''​**Encoding**''​ واختر ''​**Compact**''​، هكذا سيظهر فونت‌فورج الحروف المشغولة فقط ويخفي الخانات الخالية بحيث التنقل بينها بسهولة.
 +
 +====== اختبار الخط ======
 +
 +بعد الانتهاء من الحروف كلها، يتبقى توليد الخط وتجربته.
 +
 +لتوليد الخط اذهب إلى ''​**‪File -> Generate Fonts...‬**'' ​
 +
 +{{ docs:​generate_fonts.png?​300 |}}
 +
 +من القائمة المنسدلة على اليسار اختر نوع الخط، سنختار حاليا ''​TrueType''​، ثم انقر ''​**Save**''​.
 +
 +
 +
 +
 +
 +
 +
 +
 +بعدها انسخ الخط إلى مجلد الخطوط، في لينكس ‪~/​.fonts‬
 +
 +الآن افتح أي محرر نصوص وجرب الخط الجديد (اسم الخط هو الاسم الذي وضعته في نافذة بيانات الخط).
 +
 +**فائدة**:​ استخدم معاين الخطوط gnome-specimen فهو يسهل معاينة واستعراض الخطوط.
 +
 +لكن مهلا، الخط لا يظهر كما ينبغي؛ الحروف كلها منفصلة!
 +{{ docs:​output_unshaped.png?​600 |}}
 +
 +هذا لأننا لم نضع بعد معلومات أوبن‌تيب اللازمة لعرض الخط بشكل سليم.
 +
 +====== إثراء الخط ======
 +
 +===== مقدمة =====
 +
 +حتى الآن لم يحتو الخط على أي معلومات عن طريقة عرضه، مجرد مجموعة من صور الحروف دون تحديد لعلاقتها ببعضها. قد يناسب هذا الكتابة اللاتينية، حيث يكفي رص الحروف بجوار بعضها لتكوين الكلمات، لكن في الكتابة العربية يتحدد شكل الحرف حسب موضعه من الجملة وعلاقته بالحروف الأخرى المحيطه به. سنتحدث في هذا الجزء عن كيفية إثراء الخط بالمعلومات المطلوبة لعرض الكتابة العربية بشكل سليم اعتمادا على تقنية أوبن‌تيب.
 +
 +==== المحرف والصورة ====
 +
 +يجب أن نفرق بين مفهومين أساسيين؛ المحرف (character) و صورته (glyph). المحرف ((يشمل المحرف الحروف "​اب"​، والأرقام "​12"​ وعلامات الترقيم ":​؛"​ الخ...)) هو معنى مجرد يمثل الطريقة التي يخزن بها الحاسوب النصوص، فالألف محرف يخزن في الحاسوب على صورة رمز معين (0627 في يونيكود)، بينما الصورة ((احترت في هذا المصطلح، مرة أسميه نقشا ومرة صورة. لا أجد تعريبا مرضيا له.)) (glyph) هي التمثيل البصري للمحرف (الشكل الذي تراه على الشاشة أو يطبع على الورق). رغم الارتباط الوثيق بين المحرف والصورة إلا أن العلاقة بينهما ليست خطية، فالمحرف الواحد قد يمثل بصورتين أو أكثر والعكس صحيح. فمثلا "​لا"​ تتكون من محرفين (حرف "​ل"​ وحرف "​ا"​) إلا أننا نمثلها غالبا بصورة واحدة في ملف الخط، نفس الشيء مع "​أ"​ فرغم أنها محرف واحد إلا أننا قد نمثلها بطريقة مركبة من "​ا"​ و همزة "​ٔ"​. أيضا قد يكون للمحرف الواحد صور متعددة تختلف حسب موضعه في الكلمة وحسب المحارف المحيطة به، مثلا "​ب"​ محرف واحد لكنها قد تكون "​ب"​ أو "​ـبـ"​ أو "​بـ"​ أو "​ـب"​. وقد تمثل الصورة الواحدة محارف مختلفة، مثلا "​ى"​ و "​ی"​ محرفين مختلفين (ألف مقصورة وياء فارسية) لكنهما يأخذان نفس الصورة.
 +
 +==== الخطوط البسيطة والخطوط الذكية ====
 +
 +خطوط الحاسوب الآن نوعان خطوط بسيطة ((dumb fonts)) وخطوط ذكية ((smart fonts)). في الخطوط البسيطة لا يوجد تمييز كبير بين الحرف وصورته، فكل صورة في ملف الخط تمثل محرفا واحدا والتطبيق الذي يعرض النص يقوم بعملية استبدال بسيطة "​محرف -> صورة"​، فالتتابع a b c سينتج الصورة a.glyph b.glyph c.glyph (على أن .glyph هو الصورة المقابلة لكل محرف).
 +
 +للوهلة الأولى يبدو هذا بسيطا وفعالا، لكن هذا لا يصلح للغة العربية، فالتتابع "​أبجد"​ لا يفترض أن يعطي أ.glyph ب.glyph ج.glyph د.glyph لأنها ستظهر "​أ‌ب‌ج‌د"​ وليس هذا ما نريده بالطبع. في عصر الخطوط البسيطة كان يجري التغلب على هذا باستخدام برمجية معالجة أولية تحول النص إلى صورة وسيطة تتشكل من محارف تمثل الصور المختلفة للحرف، فتحول الباء إلى باء أولية والجيم إلى جيم وسطية والدال إلى دال آخرة، لاحظ أن هذا التحويل على مستوى المحارف لا الصور، أي أن الترميز يحتوي رمزا لكل صورة من صور الحرف وملف الخط يظل بسيطا؛ مجرد "​محرف -> صورة"​. ​
 +
 +يبدو هذا أيضا كافيا للوهلة الأولى، لكن مع النظر يتضح لنا أن به أوجه قصور عدة، فتنويعات الحروف ثابتة بمعنى أن مصمم الخط لا يستطيع التحكم فيها، فمثلا إذا أردنا عمل خط نسخ يتبع قواعد الخط العربي فسيكون هذا شبه مستحيل، فبعض الحروف لها عشرات التنويعات التي تختلف حسب الحروف المحيطة بها وحسب موقعها من الجملة، أشياء كهذه لا يمكن الوصول إليها مع تقنيات الخطوط البسيطة إلا إذا برمجنا البرمجية التي ستعرض النص لتفهم كل هذه القواعد واستخدمنا خطوطا غير قياسية لن تعمل إلا على هذه البرمجية فقط، وليس هذا ما نريد. لا تتيح الخطوط الذكية أيضا إضافة أي معلومات غنية إلى الخط، مثل مواضع علامات التشكيل بالنسبة لكل حرف، اتصال الحروف ببعضها بطريقة تسلسلية، والكثير الكثير من الخصائص المطلوبة للحصول على جودة طباعية عالية.
 +
 +في المقابل، الخطوط الذكية تحل كل هذا. فيمكنك "​برمجة"​ الخط بحيث يحتوي معلومات عن الصور المختلفة لكل حرف ومتى يتم اختيارها، هذه المرة على مستوى الخط لا المحارف، بحيث يصبح المصمم مطلق اليد ليطوع سلوك الخط كما يريد. تتيح لنا أيضا التحكم الدقيق في علاقة الصور ببعضها، أين يوضع التشكيل فوق الحرف، كيف يتصل حرفين ببعضهما إلخ...
 +
 +توجد عدة أنظمة خطوط ذكية، أشهرها أوبن‌تيب حيث تدعمه أغلب أنظمة التشغيل، كما يوجد "​طباعة أبل المتقدمة"​ ((Apple Advanced Tyography)) التي تعمل على أنظمة أبل فقط، و جرافيت التي تعمل على الأنظمة الثلاث الشهيرة.
 +
 +سنركز على أوبن‌تيب فقط لكونه معيارا دوليا معتمد من أغلب الأنظمة والنظم الطباعية الحديثة، ما يضمن أن تعمل الخطوط التي نطورها على أي نظام ولا ترتبط بنظام أم منتج برمجيات معين.
 +
 +==== أوبن‌تيب ====
 +
 +ببساطة، أوبن‌تيب ((OpenType)) عبارة عن معيار يحدد مجموعة من الجداول الإضافية على تروتيب التي تحتوي معلومات تتحكم في سلوك الخط والجوانب المختلفة لكيفية عرض النص بهذا الخط.
 +
 +يتكون أوبن‌تيب من أربع جداول رئيسية:​
 +  * GSUB: جدول استبدال الصور ((Glyph SUBstistution))، ويحتوي المعلومات التي تتحكم في استبدال صورة محرف بأخرى؛ مثل "​س->​‍س‍"​ عندما تكون في وسط الكلمة، و "​ل‍ا->​لا"​ الخ.
 +  * GPOS: جدول تموضع الصور ((Glyph POSitioning))، ويحتوي المعلومات الخاصة بالعلاقة المكانية لصور المحارف، مثل مواضع علامات التشكيل، أو اتصال الحرف بما قبله في الخطوط التي لا تلتزم بالسطر مثل الخط الفارسي (النستعليق)، الخ.
 +  * BASE: جدول سطر الكتابة (سطر الأساس)، يستخدم لمحاذاة أنظمة الكتابة التي تستخدم سطور كتابة مختلفة (مثلا أنظمة الكتابة الهندية تكتب معلقة في سطر الكتابة على عكس العربية واللاتينية التي تكتب غالبا فوق السطر).
 +  * JUST: جدول المساواة ((JUSTification)) يحتوي هذا الجدول على المعلومات اللازمة لمساواة النص على جانبي الصفحة، مثل اختيار بعض صور المحارف الطويلة أو إضافة تطويل (كشيدة) في الكتابة العربية.
 +
 +الجدول الأول والثاني هي ما تهمنا أكثر وتدعمها كل البرمجيات التي تدعم أوبن‌تيب، الجدول الثالث ليس مهما كثيرا للخطوط العربية كما أن دعمه في البرمجيات ضعيف. جدول المساواة يبدو من وثائق المعيار مفيدا جدا للخطوط العربي لكن للأسف يبدو أنه لا توجد أي برمجيات تدعمه على الإطلاق.
 +
 +===== إضافة جداول أوبن‌تيب =====
 +يوفر فونت‌فورج واجهة سهلة (وغنية في الوقت ذاته) لإضافة جداول أوبن‌تيب. اذهب إلى **''​Element -> Font Info... -> Lookups''​** حيث ستجد لسانين؛ GSUB و GPOS.الوثيقة بهيئات أخرى HTML ODT PDF
 +
 +
 +{{ :​docs:​lookups.png?​400 |نافذة جداول أوبن‌تيب}}
 +
 +==== GSUB ====
 +يحتوي هذا الجدول على المعلومات اللازمة لاستبدال المحرف بصورته المناسبة حسب موضعه من الكلمة، وكذلك عمل الاقترانات.
 +
 +=== الأشكال الأربعة لكل حرف ===
 +
 +الخطوات التالية لتحديد الشكل الذي سيأخذه الحرف إذا وقع في بداية، نهاية ووسط الكلمة. شكل الحرف مفردا يأخذ تلقائيا من المدخلة التي تحمل ترميز الحرف، لكن إذا أردنا أن نستخدم شكلا آخر للحرف مفردا (مثلا استخدام الهاء "​ه‍"​ بدلا من "​ه"​ لتمييزها عن رقم خمسة "​٥"​) فيمكن إضافة جدول لهذا.
 +
 +== خطوة ١ ==
 +اذهب إلى لسان ''​GSUB''​ ثم اضغط على زر ''​Add Lookup''​، ثم اختر ''​Single Substitution''​ من قائمة ''​Type''​ و في عمود ''​Feature''​ اختر ''​Initial Forms''​ (أو اكتب ''​init''​ مباشرة)، في عمود ‪''​Script(s) and Language(s)''​‬ اكتب ‪''​arab{dflt}''​‬. اكتب أي اسم تريده في خانة ''​Lokup Name''​ (هذا الاسم لك ولن يظهر في الخط الناتج).
 +
 +== خطوة ٢ ==
 +قف على اسم الجدول الذي أنشأناه، وانقر على ''​Add Subtable''​، ثم اختر أي اسم تريده. بعدها ستظهر لك نافذة إضافة بيانات الاستبدال. في هذه النافذة نكتب في العمود الأيسر اسم الحرف في صورته المفردة وفي العمود الأيمن اسمه في صورته الأولى (في أي الكلمة)، هذه الأسماء هي أسماء الحروف في حسب تسميتها في ملف الخط.
 +
 +انقر على زر ''​Populate''​ ويحاول فونت‌فورج تخمين الخانات المناسبة (يعتمد هذا على وضعك الحروف في منطقة Presentation Forms) وبعدها انقر على زر ''​Remove Empty''​ لإزالة الخانات التي تشير إلى حروف لا يحتويها هذا الخط. إذا لم يف هذا بغرضك فسيكون عليك كتابة الحروف يدويا.
 +
 +== خطوة ٣ ==
 +في حال لم تف الخطوة السابقة بغرضك -أو أردت تحكما أكثر- فيمكنك تحرير محتوي الجدول يدويا. اتبع نفس الخطوات السابقة، أو انقر على الجدول الفرعي الذي أنشأته إن كنت فعلت هذا مسبقا. سيعرض عليك فونت‌فورج نافذة تحتوي جدولا، كل خانة به من قسمين: القسم الأول يحتوي اسم صورة الحرف التي ستحوّل إلى صورة أخرى، مثلا في حالة جدول صور الحروف في أول الكلمة (''​init''​) سيكون القسم الأول اسم الحرف في صورته المفردة والثاني اسم الحرف في صورته في أول الكلمة. تختلف أسماء الحروف من خط لآخر، ويمكنك التحكم فيها أو حتى تغييرها كما يناسبك.
 +
 +== خطوة ٤ ==
 +سنكرر الخطوات الثلاث السابقة مرتين أخريتين، ونختار جداول من نوع ''​Medial Forms''​ (أو ''​medi''​) و ''​Terminal Forms''​ (أو ''​fina''​). ويمكن إضافة جدول خاص لصور الحروف المفردة وإن كان غير ضروري في أغلب الخطوط البسيطة، ويكون هذا من نوع ''​Isolated Forms''​ (أو ''​isol''​).
 +
 +
 +=== الاقترانات ===
 +الاقترانات هي الصور التي تمثل أكثر من حرف مثل "​لا"​ "​لأ"​ أو لفظ الجلالة "​الله"​، حيث يفضل أغلب المصممين رسمها في صورة مرتبطة، ثم إخبار أوبن‌تيب أن يبدل مثلا حرفي "​ل"​ و "​ا"​ بالصورة "​لا"​. تتشابه كثيرا عملية إضافة الاقترانات مع العملية السابقة باستثناء اختلافات في بعض التفاصيل.
 +
 +== خطوة ١ ==
 +اذهب إلى لسان ''​GSUB''​ ثم اضغط على زر ''​Add Lookup''​، ثم اختر ''​Ligature Substitution''​ من قائمة ''​Type''​ و في عمود ''​Feature''​ اختر ''​Standard Ligatures''​ (أو ''​liga''​ مباشرة)، في عمود ‪''​Script(s) and Language(s)''​‬ اكتب ‪''​arab{dflt}''​‬. اكتب أي اسم تريده في خانة ''​Lokup Name''​ (هذا الاسم لك ولن يظهر في الخط الناتج).
 +
 +== خطوة ٢ ==
 +قف على اسم الجدول الذي أنشأناه، وانقر على ''​Add Subtable''​، ثم اختر أي اسم تريده. بعدها ستظهر لك نافذة إضافة بيانات الاستبدال. في هذه النافذة نكتب في العمود الأيسر اسم الحرف في صورته المفردة وفي العمود الأيمن اسمه في صورته الأولى (في أي الكلمة)، هذه الأسماء هي أسماء الحروف في حسب تسميتها في ملف الخط.
 +
 +انقر على زر ''​Populate''​ ويحاول فونت‌فورج تخمين الخانات المناسبة (يعتمد هذا على وضعك الحروف في منطقة Presentation Forms) وبعدها انقر على زر ''​Remove Empty''​ لإزالة الخانات التي تشير إلى حروف لا يحتويها هذا الخط. إذا لم يف هذا بغرضك فسيكون عليك كتابة الحروف يدويا.
 +
 +== خطوة ٣ ==
 +في حال لم تف الخطوة السابقة بغرضك -أو أردت تحكما أكثر- فيمكنك تحرير محتوي الجدول يدويا. مثلما فعلنا سابقنا. الاختلاف هنا أن القسم الثاني من كل  خانة سيحتوي على مدخلتين فأكثر التي تشكل مكونات هذا الاقتران، مثلا في حالة "​لا"​ سيحتوي على اسمي حرفي "​ل"​ و "​ا"​، لاحظ أن تستخدم اسم صورة الحرف التي تحتاجها وليس الصور المفردة، يعني "​لا"​ تتكون من ''​لام في أول الكلمة''​ ''​ل‍''​ و ''​ألف في آخر الكلمة''​ ''​‍ا''​، وفي حالة لفظ الجلالة ستتكون من ''​ألف مفردة''​ + ''​لام أول الكلمة''​ + ''​لام وسط الكلمة''​ + ''​هاء آخر الكلمة''​ (''​ا''​+''​ل‍''​+''​‍ل‍''​+''​‍ه''​) وقس على هذا. لاحظ أيضا أن جداول الاقترانات يجب أن تأتي في الترتيب بعد جداول تغيير صورة الحرف، لأن البرامج تطبق جداول أوبن‌تيب واحدا واحدا حسب ترتيبها في ملف الخط، لذا يجب تطبيق الجداول التي تبدل كل حرف إلى صورته المناسبة للسياق قبل تطبيق الاقترانات.
 +
 +
 +
 +
 +==== GPOS ====
 +يغطي هذا القسم دعم ضبط والتحكم في مواضع علامات التشكيل.
 +
 +في البداية يوفر أوبن‌تيب خاصيتان يهماننا في هذا السياق:​
 +  * mark: لتحديد موضع علامة التشكيل نسبة إلى الحرف الأساسي
 +  * mkmk: لتحديد مواضع علامات التشكيل بالنسبة لبعضها، مثلا الفتحة بالنسبة للشدة، بحيث تتراكب علامات التشكيل فوق بعضها بشكل صحيح بدلا من تكدسها في بقعة واحدة
 +
 +توضح هذه الصورة الخط قبل أن نضيف دعم التشكيل إليه، لاحظ كيف أن علامات التشكيل على ارتفاع واحد من كل الحروف وعلى يسارها، ولاحظ اشتباك الشدة مع الفتحة:​
 +
 +{{ :​docs:​mark_1.png?​400 |}}
 +
 +
 +=== خطوة ١ ===
 +
 +افتح ملف الخط ثم اذهب إلى ''​**Element -> Font Info... -> Lookups**''​ واختر لسان ''​GPOS''​ ثم اضغط على زر ''​Add Lookup''​ لإضافة جدول جديد:
 +
 +{{ :​docs:​lookups.png?​400 |نافذة جداول أوبن‌تيب}}
 +
 +من قائمة النوع (أعلى النافذة) اختر ''​Mark to Base Position''​، ثم في عمود ''​feature''​ اضغط على ''<​color blue>​New</​color>''​ واختر ''​Mark Positioning''​، وفي عمود ''​Script(s) and Language(s)‎''​ اكتب ''​arab{dflt}‎''​ كما في الصورة:​
 +
 +{{ :​docs:​mark_3.png?​300 |نافذة إضافة جدول بحث (Lookup table)}}
 +
 +في خانة ''​Lookup Name''​ يمكنك اختيار أي اسم تريد أو قبول الاسم الذي يقترحه فونت‌فورج، ثم اضغط ''​OK''​.
 +
 +=== خطوة ٢ ===
 +
 +الآن اضغط على اسم الجدول في القائمة ثم اضغط زر ''​Add Subtable''​ وبعد الموافقة على الاسم ستظهر لك هذه النافذة:​
 +
 +{{ :​docs:​mark_4.png?​300 |نافذة إضافة صنف مرابط (Anchor class)}}
 +
 +ثم اضغط على ''<​color blue><​New Anchor Class></​color>''​ وضع اسما مختصرا وليكن ''​Tashkil''​ ثم اضغط ''​OK''​. ثم اضغط ''​OK''​ في نافذة معلومات الخط لتعود إلى النافذة الرئيسية للبرنامج.
 +
 +=== خطوة ٣ ===
 +
 +الآن اذهب لمكان علامات التشكيل، ولنبدأ بالفتحة، لنقر فوق الحرف لفتح نافذته الخاصة ثم انقر بالفأرة في نقطة تحت علامة الفتحة ثم اذهب إلى قائمة ''​**Point**''​ واختر ''​**Add Anchor**''​ اختر النقطة التي أضفناها سابقا وأشر على نوع ''​Mark''​ ويمكنك التحكم في موضع النقطة من هنا أو باستخدام الفأرة لاحقا.
 +
 +{{ :​docs:​mark_5.png?​500 |إضافة نقطة ربط}}
 +
 +ثم عليك تكرار هذه الخطوة مع كل علامات التشكيل التي تقع فوق الحرف.
 +
 +=== خطوة ٤ ===
 +
 +بعدها اذهب إلى أحد الحروف وليكن الباء وانقر فوقها على مسافة مناسبة حيث تريد أن توضع علامة التشكيل ثم أضف نفس النقطة لكن أشر على نوع ''​Base Glyph''​ هذه المرة، وكرر هذه العملية مع كل الحروف التي يمكن أن تحمل تشكيلا فوقها. هذه هي المرحلة التي تضبط فيها موضع علامة التشكيل بالنسبة لكل حروف.
 +
 +بعدها نعود لخطوة ٢، ونضيف نقطة جديدة، ولتكن ''​Tashkil2''​ لعلامات التشكيل التي توضع تحت الحرف، ونكرر نفس الخطوات باستثناء أنه توضع تحت الحرف طبعا.
 +
 +الآن مواضع التشكيل مضبوطة، لكن الفتحة ليست موضوعة جيدا فوق الشدة:
 +
 +{{ :​docs:​mark_6.png?​400 |}}
 +
 +=== خطوة ٥ ===
 +
 +نعود لخطوة ١، وننشئ جدولا جديدا لكن من نوع ''​Mark to Mark Position''​ ونختار ''​Mark to Mark''​ في عمود ''​feature''​. ثم نكرر خطوة ٢ ولنسمها هذه المرة ''​TaskhilTashkil''​.
 +
 +=== خطوة ٦ ===
 +
 +نذهب إلى علامة التشكيل التي تحتمل علامات أخرى فوقها، الشدة مثلا ونضيف نقطة ''​TashkilTashkil''​ فوقها ونؤشر على Base Mark. 
 +
 +=== خطوة ٧ ===
 +
 +نذهب لعلامة تشكيل مثل الفتحة ونضيف ''​TashkilTashkil''​ ونؤشر على ''​Mark''​.
 +
 +الآن كل علامات التشكيل مضبوطة:​
 +
 +{{ :​docs:​mark_7.png?​400 |}}
 +=== خطوة ٨ ===
 +
 +قد نحتاج لتحسين وضبط المواضع بدقة ونريد رؤية الحركة في مكانها فوق الحرف، اذهب إلى موضع الجدول ثم انقر على الدول الفرعي واضغط زر ''​Anchor Control''​ ومن هذه النافذة تستطيع التحكم في مواضع الحركات ومشاهدة تأثيرها في مكانه:
 +
 +{{ :​docs:​mark_8.png?​400 |نافذة التحكم في المربط}}
  
docs/تطوير_الخطوط.txt · آخر تعديل: 2015/04/23 00:19 (تحرير خارجي)