فانٹ کرننگ کے حوالے سے بہت اچھی گفتگو جاری ہے۔ اس لئے جی چاہا کہ میں بھی کچھ اپنے تجربات شیئر کردوں۔ شائد اردو فانٹس کی ترقی کے لئے کوئی راہ متعین ہوسکے۔
اول تو معذرت کے ساتھ یہ کہوں گا کہ اتنی بڑی تعداد میں لیگچرز کو اکٹھے کرکے پھر ان کے کرننگ پیئر بنانا فانٹ کے ساتھ زیادتی ہوگی۔ اس سے تو بہتر ہے کہ ہم فانٹ بنانے کے بجائے ٹیکسٹ ایڈیٹر ٹائپ کوئی سافٹ وئیر بنالیں یا پھر موجودہ ایڈیٹرز جیسے مائیکروسافٹ ورڈ میں میکروز کے ذریعے کرننگ کے مسائل حل کریں۔ جہاں تک میرا خیال ہے کہ ان پیج کی کرننگ کے کمالات اس کے فانٹ میں نہیں ہیں بلکہ ایڈیٹر میں کی جانے والی پروگرامنگ کی وجہ سے ہیں۔
اگر ہم سارے لیگچرز کو سامنے رکھ کر کوئی ایسا حل نکال لیں کہ کرننگ پیئرز کی تعداد کم سے کم ہوجائے تو پھر یقیناً موجودہ فانٹس کے لئے بہتر ہوسکے گا ورنہ یہ فانٹ پہلے ہی سائز کی وجہ سے اتنے بھاری بھرکم ہیں اوپر سے ان کے GPOS ٹیبل کو سینکڑوں کرننگ پیئرز کو کنٹرول کرنے کا کام حوالہ کردیا تو ان کی اسپیڈ کافی کم ہوجائے گی۔ ویسے دعوت فکر دے رہا ہوں کہ اگر ہم کرننگ کا کام بجائےGPOS ٹیبل کو دینے کے GSUB ٹیبل کے حوالے کردیں تو شائد فانٹ کی اسپیڈ پر کافی اچھا اثر پڑے گا۔
ایک اور چیز جو میرے ذہن میں ہے اور مجھے نہیں اندازہ کہ وولٹ یا پھر کسی اور فانٹ ایڈیٹر میں میں ایسا کوئی ایسا ٹول یا آپشن موجود ہے کہ نہیں کہ جو عمودی اور افقی پوائنٹ کی بناء پر کرننگ ویلیوز کو متعین کرنے میں مدد دے یعنی اس بات کا تعین ہوسکے کہ پچھلے حرف کا اختتامی پوائنٹ اور اگلے حرف کا ابتدائی پوائنٹ کس افقی یا عمودی پوزیشن پر ہے تو اس کی بنیاد پر کرننگ ویلیو کا کوئی قانون مخصوس کیا جاسکتا ہے۔
یعنی وہ تمام لیگیچرز جن کے اختتامی پوائنٹ 1X افقی پوزیشن کی حدود میں ہوں اور وہ تمام لیگیچرز جن کے ابتدائی پوائنٹ 2X افقی پوائنٹ کی حدود میں ہوں پر ہوں تو ان کے درمیان اسپیس کو Y درجے کم کردے۔
اگر ایسا کوئی آپشن دستیاب ہو تو بجائے سینکڑوں لیگیچرز کے پیئر بنانے کے صرف چند لائنوں میں شائدکرننگ کا مسئلہ باآسانی حل ہوجائے۔
فانٹ میں کرننگ کے ساتھ دوسرا بڑا مسئلہ سائز کا بھی ہے جو ان فانٹس کی ترویج کی راہ میں حائل ہورہے ہیں۔ مجھے نہیں اندازہ کہ میں آنکھوں کی موجودہ تکالیف کی بناء پر علوی نستعلیق کے نئے ورزن کو کبھی مکمل کرپاوں یا نہیں لیکن اس نئے ورز ن کی تکمیل میں سب سے بڑی رکاوٹ یہی تھی کہ میں فانٹ کا سائز کم سے کم کرنا کرنا چاہتا تھا اس لئے زیادہ تر توجہ اس بات پر تھی کہ بجائے لیگیچرز کو بڑھانے کے کم کیسے کیا جائے۔ اس کے لئے بغیر نقاط کے کشتیاں چنی تھیں جس سے نہ صرف لیگیچرز کی تعداد بہت کم ہوجاتی ہے بلکہ فانٹ کا سائز بھی کلو بائٹ میں آجاتا ہے۔ اور اس میں سب سے زیادہ آسانی کرننگ پیئرز کو کنٹرول کرنے کے حوالے سے تھی۔ لیکن یہاں جو بڑا مسئلہ آرہا تھا وہ نقاط کی بہتر پلیسمنٹ تھی جوبہت زیادہ وقت لے رہی تھی۔ اصل میں دیگر دوستوں کی طرح میری خواہش بھی یہی ہے کہ فانٹ ہر لحاظ سے پرفیکٹ ہو اور نہ صرف ویب بلکہ پرنٹ پروڈکشن انڈسٹری کے لئے بھی قابل قبول ہے۔
آخر میں ، میں یہ ضرور کہنا چاہوں گا کہ شائد ہم نے اردو فانٹ ڈیویلپمنٹ کو کچھ غلط انداز سے لے لیا۔ یعنی جو فانٹ ڈیویلپمنٹ کی بنیاد تھی یعنی کیریکٹر بیسڈ اس کو ماضی کے تجربات کی روشنی میں بجائے بہتر کرنے کے ہم اس کو کمتر کرکے لیگیچرز بیسڈ پر چلے گئے۔ لیگیچر بیسڈ شائد ہماری سہل پسندی کی وجہ سے آسانی سے پروگرام تو ہوجاتی ہے لیکن اردو جیسی کمپلکس فانٹس کے لئے شائد مناسب نہیں۔ یہی وجہ ہے کہ ہمارے فانٹ بہت بھاری بھرکم ہورہے ہیں اور اتنی بھاری تعداد میں لیگیچرز مائیکروسافٹ وولٹ کو بھی مشکل میں ڈال دیتے ہیں اور یہی وجہ ہے کہ ہماری ہمت بھی جواب دے جاتی ہے۔
اوپر شاکر بھائی کی دی ہوئی تصویر کو ذرا سامنے رکھئیے اور سوچیئے کہ اگر ہم اس کی کرننگ ویلیوز یوں ڈیفائن کریں کہ
صرف "م" کی ابتدائی شکل اور "د" کی اختتامی شکل +کچھ الفاظ کی تعداد کے حواسلے سے سے قوانین<---- کرننگ کی مقدار
تو ہم سینکڑوں کرننگ پیئرز کو ڈیفائن کرنے سے بچ سکتے ہیں۔
اب ذرا اس بات پر آئیں کہ ہم نے کیریکٹر بیسڈ کو کیوں چھوڑا اور اس میں بنیادی مسائل کیا تھے۔ جیسے
۱۔ فانٹ کی اسپیڈ بہت سلو ہوجاتی ہے۔ جس کی وجہ شائد بہت زیادہ کیریکٹرز کے قوانین متعین کرنے کی وجہ سے تھی۔
۲- نقاط کی پلیسمنٹ غلط ہوجاتی تھی جو کہ تحریر کی خوبصورتی کو ختم کردیتی ہے۔ ویسے بھی اردو کی خوبصورتی گولائیوں اور نقاط پر منحصر ہے۔
۳۔ فانٹ ویب ڈیویلپمنٹ کے لئے استعمال نہیں ہوسکتے۔ وجہ شائد شیپنگ انجن۔
یقیناْ میں بھی انہی افراد میں شامل تھا کہ جنہوں نے اس حوالے سے اعتراضات کئے تھے اوربغاوت کرکے لیگیچر بیسڈ کی طرف چھلانگ لگائی تھی لیکن آج اتنے برس گذرنے کے بعد اب احساس ہورہا ہے کہ ہم غلط راستے کے طرف چل نکلے۔ ہم نے بجائے اردو ٹائپوگرافی کو آسان بنانے کے اسے اور زیادہ مشکل بنانا شروع کردیا۔
اگر کیریکٹر بیسڈ میں چند بنیادی مسائل حل کرلئے جائیں یعنی اسپیڈ کو تیز کرنے کے لئے GPOS ٹیبل کو کم کرکے GSUB ٹیبل پر زیادہ توجہ دی جائے ۔ نقاط کے لئے بہتر اورٹکراو سے مبرا الگورتھم متعین کرلیا جائے اور شیپنگ انجن کی حدود کے اندر رہ کر پروگرامنگ کی جائے تو ایک کیریکٹر بیسڈ فانٹ اردو ٹائپوگرافی کے لئے بہترین حل ہے۔