جداول (OpenType) هي البنية الأساسية التي تجعل الخطوط الذكية تفاعلية وتتكيف مع سياقات النصوص المختلفة. تعمل هذه الجداول على تحديد كيفية عرض الأحرف وتنسيقها بما يتناسب مع اللغات المتنوعة والتصاميم المعقدة، كما تسمع بإجراء العديد من الخصائص، مثل: البدائل السياقية، والحروف المترابطة، وتحديد وضبط المسافات بين الحروف أو ضبط الحروف نفسها. فهم هذه الجداول يعدّ مفتاحاً مهماً للمصممين الذين يسعون لابتكار خطوط غنية تدعم احتياجات النصوص متعددة اللغات، وجذابة وسهلة المقروئية.
ونستعرض فيما يلي جداول (OpenType) المهمة:
1) جدول (GSUB) – جدول استبدال المحارف (Glyph Substitution Table):
(GSUB) هو اختصار لجدول استبدال المحارف (Glyph Substitution Table)، ويُعتبر هذا الجدول جزءاً أساسياً في مواصفات الخط الرقمي (OpenType)، حيث يعد نظاماً برمجياً داخل الخط يحتوي على استبدالات مختلفة للمحارف وفقاً لسياق معين أو بناءً على اختيار المستخدم لخصائص معينة.
الوظائف الخاصة بـ (GSUB)
– الفائدة
- يدعم اللغات المعقدة (مثل العربية والفارسية والأردية) التي تحتاج إلى أشكال مختلفة لنفس الحرف حسب موضعه في الكلمة.
يُستخدم جدول (GSUB) لتعريف كيفية استبدال محرف بمحرف آخر أو كيفية استبدال تسلسل من المحارف بتسلسل مختلف.
يعمل على استبدال الأشكال بناءً على السياق، مما يتيح وجود أشكال مختلفة لنفس الحرف وفقاً للموضع (كالبداية، المنتصف، النهاية)، أو نمط الخط (كالزخارف أو الأشكال البديلة).
يتيح استخدام ميزات مثل: الارتباط، والزخرفة، والبدائل الأسلوبية، وهي مفيدة لجعل النصوص غنية بالمواصفات وأكثر تنوعاً في المظهر.
يضيف المرونة في عرض النصوص، مما يسمح للخط بدعم ميزات متقدمة تجعل النصوص تبدو طبيعية وأكثر جمالية، خاصة في اللغات التي تتطلب أشكالاً متعددة للحروف.
ملاحظة/ بعض التطبيقات قد تتيح للمستخدمين التحكم في تفعيل ميزات (GSUB)، مثل: تفعيل الأحرف التزينية أو الأشكال البديلة.
– التطبيقات:
- التراكيب: دمج اثنين أو أكثر من المحارف في محرف واحد، مثل تحويل “لا” إلى تركيب
- الاستبدال السياقي: تغيير المحارف بناءً على موقعها داخل الكلمة أو الجملة (مثل الأشكال المختلفة لحرف بناءً على ما إذا كان في بداية أو وسط أو نهاية الكلمة).
- البدائل الأسلوبية: السماح باستخدام نسخ زخرفية مختلفة لمحرف معين بناءً على متطلبات التصميم.
مثال: يمكن لجدول (GSUB) إدارة طريقة تغيير شكل الحروف مثل “ب” عند اتصاله بحروف أخرى. فهو يسمح للخط بعرض الأشكال المناسبة تلقائياً بناءً على السياق أو بناءً على الحروف المحيطة به.
2) جدول (cmap) – جدول (خارطة) تموضع الحروف (Character to Glyph Mapping):
(cmap) هو جدول في خطوط (OpenType) يتم فيه تعيين الأحرف إلى أشكال أو رموز خاصة بها (glyphs)، ويتضمن كل شكل اسم الحرف بالإضافة إلى رمز اليونوكود الخاص به (Unicode).
– الفائدة:
- يعتبر جدول (cmap) ضرورياً لعملية عرض النصوص لأنه يوفر التعيين الأساسي الذي يستخدمه النظام لتحديد الشكل المناسب لكل حرف من الحروف.
- يسمح بترجمة الرموز النصية إلى أشكال محددة داخل الخط، مما يساعد التطبيقات مثل متصفحات الويب، برامج تحرير النصوص، وغيرها، على معرفة كيفية عرض كل حرف استناداً إلى النصوص المكتوبة.
توضيح الفرق بين (cmap) و (GSUB)، بمثال:
(cmap) يعطي النظام الشكل الأساسي للحرف “ب” المفرد (الموجود تحت الاسم “beh-ar” أو “uni0628”) بحيث يُعرض بشكله الفريد والخاص عندما يتم كتابة رمز اليونوكود الخاص بحرف الباء: مثل (U+0628) بدون أي تعديل.
(GSUB) يتدخل إذا كان الحرف “ب” يأتي في سياق خاص، كأن يكون في بداية الكلمة أو نهايتها، أو يتم استبدال الشكل الأساسي بشكل مناسب آخر طبقاً لمحيطه من الأحرف.
3) جدول (GPOS) – جدول موضعة (ارتساء) المحارف (Glyph Positioning Table):
يُعد جدول (GPOS) جزءاً أساسياً ضمن جداول تنسيق الخطوط الرقمية في صيغة (OpenType) حيث يُستخدم هذا الجدول لتحديد المواقع الدقيقة للمحارف داخل الخط الرقمي، مما يتيح تعديل المسافات بينها، وتطبيق الإزاحات الرأسية والأفقية من أجل الحصول على نتائج دقيقة وجذابة في النصوص ولا سيما في حالة اللغات المعقدة مثل اللغة العربية.
– فوائد جدول (GPOS):
- تحسين تنسيق النصوص: يسهم (GPOS) في تحسين عرض النصوص عبر تعديل المسافات بين المحارف (kerning) للحصول على حروف متناسقة ومتجانسة.
- التعامل مع الخطوط المتصلة: في اللغات التي تتطلب اتصالاً بين الحروف، مثل اللغة العربية، يُمكِّن (GPOS) من ضبط المواقع لتجنب التداخلات الخاطئة بين الحروف المتصلة.
- ضبط أماكن التشكيل: يوفر (GPOS) إمكانيات دقيقة لوضع الحركات التشكيلية في اللغة العربية فوق أو تحت الحروف الرئيسية. هذا يجعل النصوص المقروءة دقيقة وجميلة.
- التعامل مع لغات متعددة الاتجاهات: يدعم (GPOS) الاتجاهات النصية المختلفة ويتيح التحكم في المواضع للمحافظة على تنسيق جمالي مناسب بينهما.
- التنسيق الرأسي والأفقي للأحرف: يمكن من خلاله ضبط الإزاحات الرأسية والأفقية بحيث تتوافق النصوص مع متطلبات التصميم.
– محتويات جدول:(GPOS): يتكون جدول (GPOS) من عدة أنواع من البيانات المرتبطة بالمواضع، والتي يمكن أن تشمل:
- الاقتران :(Kerning) لضبط المسافات بين الحروف الفردية لتحسين التناسق.
- مواضع التشكيل :(Mark Positioning) لتحديد المواضع الدقيقة للتشكيل بالنسبة للحرف الأساسي.
- الإزاحة :(Shift and Offset) لضبط المواقع الرأسية والأفقية.
- مجموعات تحديد المواقع :(Positioning Sets) لتحديد نماذج متعددة للمواضع حيث يتم استخدامها حسب الحاجة.
* هناك عدة جداول أخرى في صيغة (OpenType)، ولكل جدول منها دور مهم ومختلف، نختصرها في الجدول التالي:
اسم الجدول | الاسم الانجليزي | الترجمة | الاستعمال |
CMAP | Character to Glyph Index Mapping | جدول المطابقة بين المحارف والأشكال | يربط الرموز (مثل الحروف والأرقام) بالأشكال المحددة لها في الخط، لضمان ظهورها بشكل صحيح. |
GSUB | Glyph Substitution | جدول استبدال الأشكال | يُستخدم لاستبدال الأشكال وفقاً لسياق معين، مثل تحويل الحروف المفردة إلى حروف متصلة، أو أشكال مترابطة أو أشكال بديلة. |
GPOS | Glyph Positioning | جدول تحديد مواضع الأشكال | يتحكم في المسافات والتراصف بين الأشكال، مثل ضبط المسافات بين الحروف ومواضع الحركات التشكيلية |
HEAD | Font Header | جدول الرأس | يحتوي على معلومات عامة عن الخط، مثل الإصدار والأبعاد والتنسيق. |
HHEA | Horizontal Header | جدول الرأس الأفقي | يحتوي على معلومات التنسيق الأفقي، مثل الارتفاعات والمسافات العلوية والسفلية للأحرف. |
VHEA | Vertical Header | جدول الرأس العمودي | يُستخدم لتنسيق الأحرف رأسياً، خصوصاً في النصوص التي تتطلب اتجاه عمودي. |
HMTX | Horizontal Metrics | جدول الأبعاد الأفقية | يحتوي على معلومات حول عرض الحروف والمسافات الأفقية بينها. |
VMTX | Vertical Metrics | جدول الأبعاد العمودية | يحتوي على معلومات حول ارتفاع الأحرف والمسافات العمودية بينها. |
OS/2 | OS/2 and Windows Metrics | جدول أبعاد (OS/2) وويندوز | يحتوي على معلومات إضافية حول الخط، مثل الوزن، والأسلوب، ودعم اللغات، وأبعاد التباعد. |
POST | PostScript | جدول بوست سكريبت | يتضمن معلومات الخط الرقمي التي تدعم صيغة (PostScript)، مثل أسماء الأحرف وخصائص الطباعة. |
KERN | Kerning | جدول ضبط المسافات بين الأحرف | يحدد المسافات بين أزواج الأحرف لتجنب تداخلها، مما يحسن من تناسق النص. |
BASE | Baseline | جدول خط الأساس | يحتوي على معلومات حول مواضع النصوص بالنسبة لخط الأساس في مختلف اللغات لضبط مستوى الكتابة. |
GASP | Grid-fitting and Scan Conversion Procedure | جدول مطابقة الشبكة والتحويل | يتحكم في عرض الأحرف الصغيرة على الشاشات من خلال تحديد مستوى التنعيم. |
NAME | Naming | جدول الأسماء | يحتوي عن معلومات عن اسم الخط، مثل اسم عائلة الخط، واسم النمط، ورقم الإصدار، مما يسهل التعرف عليه في التطبيقات. |
MAXP | Maximum Profile | جدول الملف الشخصي الأقصى | يحتوي على معلومات حول مكونات الخط، مثل عدد الأحرف والمعلومات اللازمة لمعالجة الخط بشكل صحيح. |
LOCA | Index to Location | جدول المواقع | يُستخدم لتحديد مواقع الأشكال داخل الخط، مما يسهل الوصول إلى بيانات المحارف عند عرض النص. |
GLYF | Glyph Data | جدول بيانات المحارف | يحتوي على بيانات رسم المحارف المستخدمة في الخط، وهو من الجداول الأساسية التي تحدد شكل كل حرف أو رمز. |
FPGM | Font Program | جدول برنامج الخط | يحتوي على تعليمات برمجية للتحكم في عرض الخط على الشاشات، ويعمل غالباً مع الخطوط المصممة باستخدام (TrueType) |
PREP | Control Value Program | جدول برنامج قيم التحكم | يتضمن تعليمات لضبط مواضع الأحرف قبل عرضها، مثل إعدادات التحجيم والتنعيم. |
CVT | Control Value | جدول قيم التحكم | يحتوي على قيم تحكم لضبط تنسيق الأحرف وتحديد مواضعها بشكل دقيق. |
COLR | Color | جدول الألوان | يُستخدم لدعم الألوان في الخطوط، وخاصة في الرموز التعبيرية والرموز الملونة. |
CPAL | Color Palette | جدول لوحات الألوان | يُخزّن لوحات الألوان المستخدمة في جدول (COLR) لعرض الأشكال الملونة. |
SVG | Scalable Vector Graphics | جدول الرسومات المتجهة | يدعم الرسومات المتجهة (SVG) للأشكال، مما يسمح بتضمين رسومات معقدة ومتحركة في الخط. |
DSIG | Digital Signature | جدول التوقيع الرقمي | يحتوي على توقيع رقمي للتحقق من سلامة الخط ومصدره. |
GDEF | Glyph Definition | جدول تعريف الأشكال | يحتوي على تصنيفات للأشكال مثل علامات التشكيل، أو الأحرف الأساسية، مما يساعد في تطبيق خصائص (OpenType) المتقدمة. |
JSTF | Justification | جدول الضبط | يحتوي على معلومات حول كيفية توسيع أو ضغط النص لضبط المسافات، خاصة في النصوص الآسيوية. |
MATH | Math Layout | جدول التنسيق الرياضي | يحتوي على معلومات لضبط النصوص الرياضية وتنسيقها بشكل صحيح. |
AVAR | Axis Variations | جدول اختلاف المحاور | يُستخدم لضبط التباينات في الخطوط المتغيرة عن طريق تعديل قيم المحاور. |
STAT | Style Attributes | جدول سمات الأسلوب | يُستخدم في الخطوط المتغيرة لتعريف السمات الأسلوبية، مما يساعد التطبيقات في عرض خيارات الأسلوب المتاحة للمستخدمين. |
FEAT | Feature | جدول الخصائص | يحدد الخصائص التي يدعمها الخط ويتيح تخصيص عرض النص وفقاً لتلك الخصائص. |
META | Metadata | جدول البيانات الوصفية | يحتوي على معلومات وصفية حول الخط، مثل الوصف أو العلامات. |
TRAK | Tracking | جدول التتبع | يحتوي على إعدادات التباعد الأفقي أو الرأسي بين الأحرف لتحسين قابلية القراءة. |
MORT | Morph | جدول التحول | يُستخدم في بعض الخطوط لضبط التحولات (مثل تدوير أو إمالة الحروف)، وهو موجود أساساً في خطوط (TrueType) |
MORX | Extended Morph | جدول التحول الموسّع | نسخة متقدمة من جدول (mort)، يضيف دعماً لخصائص تحويل إضافية. |
EBLC | Embedded Bitmap Location | جدول موقع الصور النقطية المضمَّنة | يُستخدم في الخطوط التي تحتوي على رسوم نقطية (bitmap) لتحديد مواقعها. |
EBDT | Embedded Bitmap Data | جدول بيانات الصور النقطية المضمَّنة | يحتوي على بيانات للرسوم النقطية المضمَّنة، مما يسمح بعرض صور نقطية صغيرة للحروف. |
EBSC | Embedded Bitmap Scaling | جدول تحجيم الصور النقطية المضمَّنة | يُستخدم لتحديد حجم الرسوم النقطية عند عرضها في الأحجام الصغيرة. |
VORG | Vertical Origin | جدول الأصل الرأسي | يُحدد مواضع الأحرف الرأسيّة، وهو مفيد بشكل خاص للخطوط الرأسية مثل اليابانية والصينية. |