اوپن‌ٹائپ 2.0

سعادت

تکنیکی معاون
پچھلے مہینے (مئی ۲۰۲۳ میں) منعقد ہونے والی ATypI 2023 کانفرنس میں ایک دلچسپ پینل گفتگو، OpenType 2.0، پیش کی گئی تھی۔ اس گفتگو میں اوپن‌ٹائپ سٹینڈرڈ میں تبدیلیوں اور اضافوں کی مختلف تجاویز شامل تھیں، اور کچھ ڈیموز بھی دکھائے گئے تھے۔ ان تجاویز کا ایک اچھا خلاصہ اس مضمون میں موجود ہے، اور گفتگو کی سلائیڈز (از بهداد اسفهبد) بھی ملاحظہ کی جا سکتی ہیں۔

دو تجاویز ایسی ہیں جو عربی خط/اردو کے لیے دلچسپ ہیں، اور میں اِس لڑی میں انھی پر کچھ بات کرنا چاہوں گا…

ویری‌ایبل جسٹِفیکیشن

ویری‌ایبل فونٹس یا فونٹ ویری‌ایشنز کے منظرِ عام پر آنے کے بعد مجھ سمیت کئی احباب متجسس تھے کہ کیا اِن کے ذریعے ویری‌ایبل کشیدہ کی سہولت ممکن بنائی جا سکتی ہے (یعنی، کیا ایسا ممکن ہو سکے گا کہ سطروں کی جسٹِفیکیشن کے لیے کشیدہ خط یا کشیدہ اشکال کی لمبائی کو حسبِ ضرورت اور خودکار طور پر کم یا زیادہ کیا جا سکے)۔

سو اِس بارے میں ایک تجویز یہ پیش کی گئی ہے کہ فونٹ کے اندر ایک عدد jstf ویری‌ایبل ایکسِس (axis) موجود ہو، جس میں جسٹِفیکیشن کی تمام ترجیحات درج ہوں، اور ٹائپ‌سیٹنگ انجن سطر کو برابر کرتے ہوئے اُن ترجیحات میں سے موزوں سیٹنگ کا انتخاب کر لیا کرے۔

اِس کی ایک مثال درج ذیل تصویر میں ہے (گفتگو کی سلائیڈ ۳۷ سے لی گئی)، جس میں خالد حُسنی کے رقّ فونٹ کے jstf ایکسِس کو کام کرتے ہوئے دیکھا جا سکتا ہے:

52955573503_9b77a1fd21_o.gif

ویری‌ایبل جسٹِفیکیشن کی تجرباتی سپّورٹ حرف‌باز میں شامل ہے۔

”سمارٹ“ فونٹس

”پیچیدہ“ خطوط پر مبنی فونٹس اکثر اوپن‌ٹائپ کی حدود کو آزماتے رہتے ہیں۔ اگر اپنے نستعلیق ہی کی بات کی جائے تو اس کی درج ذیل باتیں اوپن‌ٹائپ میں مسائل/بگز کا باعث بنتی ہیں:
  • بڑی ے پر ختم ہونے والے سلسلے۔ بڑی ے کے نچلے سٹروک کی وجہ سے پچھلے حروف کے زیریں نقطوں کو اکثر ایڈجسٹ کرنا پڑتا ہے۔ اس کے علاوہ، بڑی ے پر ختم ہونے والے الفاظ/سلسلوں کی کرننگ بھی خود اس لفظ/سلسلے کی لمبائی پر منحصر ہوتی ہے۔
  • نقطوں اور اعراب کی اپنے بنیادی گلف کے ساتھ پوزیشننگ، اور دیگر گلفس، نقطوں، یا اعراب کے ساتھ ان کا ٹکراؤ۔ نقطوں، اعراب، اور گلفس کے ٹکراؤ کی جانچ (collision detection) اور اس کی پیش‌بندی اوپن‌ٹائپ کے کمزور ترین پہلوؤں میں شامل ہیں۔
  • الفاظ (یا لیٹر‌گروپس) کی آپس میں کرننگ، جس کی غیرموجودگی میں سطر میں خالی جگہوں کا توازن بگڑ جاتا ہے۔
اِن (اور دیگر) مسائل کا کچھ حل موجودہ اوپن‌ٹائپ میں ہو تو جاتا ہے، لیکن اس کے لیے فونٹ میں لُک‌اَپس کی بھرمار شامل ہوتی ہے، جس کی قیمت فونٹ کی پرفارمنس میں کمی کے طور پر چکانی پڑتی ہے (جبکہ بہتیری غلطیاں پھر بھی باقی رہتی ہیں)۔ اور صرف نستعلیق ہی نہیں، اس سے مِلتے جُلتے چیلنجز دنیا کے دیگر خطوط میں بھی پائے جاتے ہیں۔

ان سب مسائل کے حل کے لیے ایک تجویز یہ ہے (جو اس گفتگو میں پیش کی گئی) کہ فونٹ کے اندر ایک نیا ٹیبل متعارف کیا جائے، جس کے اندر ویب‌اسمبلی (WebAssembly یا Wasm یا واسم :)) میں شیپنگ کا کوڈ موجود ہو، جو runtime پر حساب لگائے کہ کہاں کہاں کس ایڈجسٹمنٹ کی ضرورت ہے (مثلاً نقطوں کو آگے پیچھے کرنا، یا کرننگ کو بہتر کرنا)، اور پھر اُس ایڈجسٹمنٹ کا اطلاق کرے۔ اس کی ایک مثال اس تصویر میں دیکھیے (جو گفتگو کی سلائیڈ ۵۳ سے لی گئی ہے):

52955124996_f8d0458659_o.png

اس تصویر میں:
  • بائیں ہاتھ پر اوپن‌ٹائپ شیپنگ کا نتیجہ ہے، جس میں نکتوں کے ٹکراؤ وغیرہ کے لیے کچھ بھی نہیں کِیا گیا۔
  • درمیان میں بھی اوپن‌ٹائپ شیپنگ کا نتیجہ ہے، لیکن یہاں اوپن‌ٹائپ کی حدود میں رہتے ہوئے نکتوں کو ایڈجسٹ کیا گیا ہے۔
  • دائیں جانب ویب‌اسمبلی میں کی جانے والی شیپنگ کا نتیجہ ہے۔ یہاں نہ صرف نکتوں کی ترتیب بلکہ ”جر“ اور ”پپل“ کے درمیان کرننگ بھی بہتر ہے۔
(اِس تصویر کے بارے میں ایک اہم بات ذہن میں رکھیے کہ یہ نستعلیق کی بہترین شیپنگ ہرگز نہیں ہے، بلکہ ویب‌اسمبلی میں نستعلیق کی شیپنگ کے امکانات کی محض ایک مثال یا proof of concept ہے۔)

یہاں ایک اور دلچسپ بات: اِس مثال میں موجود متن کو پہلے اوپن‌ٹائپ شیپنگ سے گزارا گیا ہے، اور اُس کے نتیجے کی ویب‌اسمبلی میں شیپنگ کی گئی ہے۔ یوں ویب‌اسمبلی میں صرف وہی کام کیا گیا ہے جو اوپن‌ٹائپ میں بوجھل یا ناممکن ہو۔ البتہ، اگر آپ اوپن‌ٹائپ شیپنگ سے بالکل ہی غیر‌مطمئن ہوں، تو ایک کسٹم اور مکمل شیپنگ انجن کو بھی ویب‌اسمبلی میں لکھ کر فونٹ میں ایمبیڈ کیا جا سکتا ہے! مثال کے طور پر، محفل پر گریفائٹ کے بارے میں کئی مقامات پر گفتگو ہوتی رہی ہے۔ ویب‌اسمبلی شیپنگ کی بدولت گریفائٹ کا پورا انجن ہی فونٹ میں شامل کیا جا سکتا ہے (اور کِیا گیا بھی ہے!) یہی نہیں، بلکہ ڈیکوٹائپ کا ACE، اور ڈیجیٹل خط، اور دیگر کسٹم تراکیب وغیرہ بھی فونٹ کے Wasm ٹیبل میں سموئی جا سکتی ہیں۔ یوں اوپن‌ٹائپ کے ڈھانچے میں رہتے ہوئے دیگر شیپنگ انجنز کا (جن میں نستعلیق، یا کسی بھی اور تحریری نظام، کی بہتر شیپنگ کی صلاحیت ہو) استعمال ممکن ہو سکتا ہے۔

ویب‌اسمبلی شیپنگ کی سپّورٹ فی الحال صرف حرف‌باز میں شامل ہے، اور ابھی یہ تجرباتی ٹیکنالوجی ہی ہے۔ اوپن‌‌ٹائپ سٹینڈرڈ اور دیگر شیپنگ انجنز (مائکروسوفٹ کا ڈائریکٹ‌رائٹ، ایپل کا کور‌ٹیکسٹ، وغیرہ) میں اس کی شمولیت ابھی کافی دور ہے۔ البتہ اگر آپ اس کے بارے میں مزید جاننا چاہیں تو درج ذیل روابط ملاحظہ کر سکتے ہیں:
  • گفتگو کی سلائیڈز (سلائیڈ ۴۳ اور آگے)
  • گِٹ‌ہب پر سائمن کزنز کی ریپو، جس میں ویب‌اسمبلی کو استعمال کرنے والے فونٹس (مع سورس کوڈ) موجود ہیں۔ یہ فونٹس عام ایپلیکیشنز میں تو کام نہیں کریں گے، لیکن ریپو میں FontGoggles نامی ایپلیکیشن کی ایک بِلڈ بھی شامل ہے جس کے ذریعے آپ ان فونٹس کے ساتھ کھیل سکتے ہیں (البتہ یہ ایپلیکیشن بھی صرف میک‌او‌ایس پر چلے گی۔ :() ریپو کی README فائل بھی پڑھنے کے لائق ہے۔
  • حرف‌باز کی ڈاکیومینٹیشن میں ویب‌اسمبلی شیپر کا صفحہ۔
 
آخری تدوین:

سعادت

تکنیکی معاون
اِس پینل گفتگو کی ویڈیو اب یُوٹیوب پر دستیاب ہے (ابھی مَیں نے بھی مکمل نہیں دیکھی کہ ڈیڑھ گھنٹے کی ہے!)

 

سعادت

تکنیکی معاون
ذیل کی گفتگو اِس لڑی کے موضوع سے کچھ غیر‌متعلق ہے، لیکن چونکہ اِسے ATypI 2023 ہی میں پیش کیا گیا تھا، سو یہاں شریک کر رہا ہوں۔

یہ گفتگو برنا ایزدپناہ کی جانب سے ہے، اور اِس کا عنوان Decolonizing Ascenders and Descenders: Resisting homogenization and encouraging diversity ہے۔ گفتگو کا موضوع وہ مخصوص تاریخی، ثقافتی، اقتصادی، اور سماجی و سیاسی عوامل ہیں جو عربی خط کی ٹائپوگرافی کی حالیہ صورتحال، اور اُس میں مختلف زبانوں کی حیرت‌انگیز طور پر غیر متناسب نمائندگی میں حصہ ڈالتے آئے ہیں۔ گفتگو میں اُن مسائل کا احاطہ بھی کیا گیا ہے جو عربی خط پر لاطینی ٹائپوگرافی کے معیار نافذ کرنے اور عربی خط کی اشکال کے مقامی اسلوب کو نظرانداز کرنے کے باعث پیدا ہوتے ہیں۔ دلچسپ اور معلوماتی گفتگو ہے، اور کئی مرتبہ اردو اور نستعلیق کا ذکر بھی ہوا ہے۔

 
Top