سعد نستعلیق نسخہ 2 میں خودکار کرننگ!

رانا

محفلین
زبردست! تو کیا مختلف پوائنٹ سائز کے متن کے حساب سے اسکے قوائد سیٹ کئے جا سکتے ہیں؟ جیسا کہ بالفرض 100 پوائنٹ سائز کے متن کے مطابق کرننگ ویلیوز ڈیٹا بیس میں ڈال دی جائیں اور جب کہیں اس سے کم یا زیادہ پوائنٹ سائز کا متن آئے تو پلگ ان خود کار طور پر انکی نسبت نکال کرننگ ویلیو ایڈجسٹ کر دے؟ کیونکہ مختلف سائز کے متن پر یکساں کرننگ ویلیوز اپلائی کرنا بھی درست نہیں ہوگا :)
بالکل کئے جاسکتے ہیں۔ بشرطیکہ اسکا کوئی ایک فارمولا ڈیفائن کیا جاسکے۔ مثلا اگر ہم کوئی ایسا فارمولا بناسکیں کہ جس میں فونٹ کا سائز دیں اور وہ جواب میں ہمیں اس سائز کے مطابق کرننگ ویلیو کیلکولیٹ کرکے دے سکے تو یہ کچھ بھی مشکل نہیں۔ ڈیٹا بیس میں کرننگ ویلیو کے ساتھ فونٹ کا وہ سائز بھی ڈالنا پڑے گا جس کے لئے وہ کرننگ ویلیو معیاری کام کرے گی۔ پلگ ان نے بس یہ کرنا ہوگا کہ ڈیٹا بیس سے کسی پئیر کی کرننگ ویلیو بمع فونٹ سائز لے کر اسکو اپلائی کرنے سے پہلے ان ترسیموں کے فونٹ سائز کو چیک کرلے جن پر اپلائی کرنا ہے اور پھر اسکے مطابق کرننگ ویلیو کو ری کیلکولیٹ کرکے نئی حاصل شدہ ویلیو اپلائی کردے۔ اگر ہم کوئی ایسا معیاری فارمولا نہ بھی بناسکیں جو ہر فونٹ سائز کے مطابق مطلوبہ کرننگ ویلیو دے سکے تو ہم یہ انفارمیشن ڈیٹا بیس میں ہی ڈال سکتے ہیں کہ کس فونٹ سائز پر کیا کرننگ ویلیو ہونی چاہئے۔ کام کچھ بڑھ جائے گا کہ مثلا فونٹ سائز پانچ سے لے کر فونٹ سائز سو تک بھی رکھیں تو ان سب کے لئے پہلے سے کرننگ ویلیو کیلکولیٹ کرکے ڈیٹا بیس میں ڈیفائن کرنا۔ یوں سمجھ لیں کہ ہر پئیر کے سامنے ایک کرننگ ویلیو کی بجائے سو کے قریب کرننگ ویلیوز ڈیفائن کرنی پڑیں گی۔
لیکن یہ سارا کام تو بعد کی بات ہے، اصل چیز تو یہ چیک کرنا ہے کہ ورڈ کے متن میں کہیں بھی موجود دو ترسیموں کے پئیرز کے درمیان اپنی مرضی سے فاصلہ اس طرح سیٹ کیا جاسکے کہ وہ باقی کے متن میں موجود ترسیموں کی کرننگ کو متاثر نہ کرے۔ اگر تو ورڈ میں ایسا ممکن ہو تو پھر اس لائن پر کام کو شروع کیا جاسکتا ہے۔ اور جہاں تک میرا خیال ہے ایسا شائد ممکن ہو لیکن چیک کئے بغیر کچھ بھی وثوق سے نہیں کہا جاسکتا۔ میرے ساتھ مسئلہ یہ ہے کہ مجھے فونٹس بنانے کی تکنیک اور پھر انکے رینڈرنگ کی تکنیک کے بارے میں کچھ بھی نہیں علم نہیں۔ اس لئے میں اس بات کو اپنی سمجھ کے مطابق ہی لے کر گفتگو کررہا ہوں۔
 

عبدالحفیظ

محفلین
شاید عارف بھائی نے انڈیزائن میں کیریکٹر سپیسنگ کم کرکے 20- کی ویلیو دی ہے۔ عارف 0 کی ویلیو پر ٹیکسٹ دکھائیں یا 10- کی ویلیو پر ۔
 

arifkarim

معطل
شاید عارف بھائی نے انڈیزائن میں کیریکٹر سپیسنگ کم کرکے 20- کی ویلیو دی ہے۔ عارف 0 کی ویلیو پر ٹیکسٹ دکھائیں یا 10- کی ویلیو پر ۔
میں نے اوپر متن ، منفی 10 کی ٹریکنگ پر سیٹ کیا تھا۔ یہ صفر ٹریکنگ کیساتھ نتیجہ:
Saad_Kerning2.png
 
مدیر کی آخری تدوین:

عبدالحفیظ

محفلین
صرف بعض حروف جیسے 'کو' ، 'کر'، 'گر' ، 'گ' میں فاصلہ زائد ہے باقی مجموعی طور پر نتائج بہت ز بردست ہیں۔
 

محمدصابر

محفلین
صبح آپ کی بات کا جواب لکھنے ہی لگا کہ بجلی چلی گئی اور اب آئی ہے۔:)
سی شارپ میں پلگ ان تو بنایا جاسکتا ہے اور وہ ڈیٹا بیس سے کرننگ پئیر بھی اٹھا سکتا ہے۔ لیکن اس کا فائدہ تب ہوگا جب کہ ورڈ میں کوئی ایسا آپشن بھی موجود ہو۔ مثلا جو آپشن میں نے دیکھا تھا اس میں ایک کرننگ ویلیو سیٹ کرنی ہوتی تھی اور پھر ٹائپنگ کے دوران ورڈ ہر دو حروف کے درمیان اس ویلیو کے مطابق فاصلہ دے دیتا تھا۔ جبکہ ہمیں جو کام کرنا ہے اس میں مختلف ترسیموں کے لئے مخصوص پئیر کی بنیاد پر مختلف ویلیو سیٹ کرنی پڑے گی۔ اگر تو ورڈ میں کرننگ ویلیو اسٹیٹک کے طور پر ڈاکیومنٹ مین محفوظ ہوتی ہے تو پھر یہ پلگ ان والا آئیڈیا شائد کام نہ کرے۔ لیکن اگر ہر حرف کے ساتھ اسکی پراپرٹی کے طور پر محفوظ ہوتی ہو جیسے بولڈ اٹالک وغیرہ تو پھر پلگ ان بنا کر فائدہ اٹھایا جاسکتا ہے کیونکہ ہمیں مکمل ڈاکیومنٹ کی اسٹیٹک کرننگ ویلیو کی بجائے حروف کی بنیاد پر ویری ایبل کرننگ ویلیو اپلائی کرنی ہے۔ میں انشاءاللہ وقت نکال کر اسے چیک کرنے کی کوشش کروں گا پھر حتمی طور پر کچھ کہا جاسکے گا۔
یہ ڈاکومنٹ پر نہیں بلکہ پیئرز کے درمیان ہی محفوظ ہوتا ہے۔کیونکہ آر ٹی ایف کے ورژن 1.9.1کے مطابق
\krnprsnet This control word specifies whether applications shall use the ANSI or Unicode kerning pair information from fonts stored in the document when displaying those characters within the document's contents.
Typically, applications shall use the Unicode kerning pair information to determine all possible kerning pairs in the fonts in use. This control word, when present specifies that the ANSI kerning information shall be used instead.

\nojkernpunct Kerning for Latin text only, as opposed to Latin text and punctuation (Asian Typography option).

\kerningN Point size (in half-points) above which to kern character pairs. \kerning0 turns off kerning.

gtextFKern Use character pair kerning if it is supported by the font. Boolean FALSE
 

رانا

محفلین
یہ ڈاکومنٹ پر نہیں بلکہ پیئرز کے درمیان ہی محفوظ ہوتا ہے۔کیونکہ آر ٹی ایف کے ورژن 1.9.1کے مطابق
بہت کام کی بات بتائی ہے صابر بھائی آپ نے۔ اب میں وقت نکال کر پلگ ان میں اس چیز کو دیکھنے کی کوشش کرتا ہوں۔ کیونکہ اگر یہ کرننگ ویلیو پئیرز کے درمیان موجود ہوتی ہے تو یہ بہت ہی حوصلہ افزا بات ہے پلگ ان پر کام شروع کرنے کے لئے۔:)
 

متلاشی

محفلین
عارف بھائی اگر برا نہ منائیں تو میرے خیال سے یہ آٹو کرننگ نا قابل استعمال ہے ۔۔ کم از کم الفاظ اور کریکٹرز کا فرق تو پتا چلنا چاہیے اس میں تو یہ بھی پتہ نہیں چلتا کہ الف اگلے حرف کے ساتھ ہے یا پچھلے کے ساتھ ۔۔۔
 

arifkarim

معطل
عارف بھائی اگر برا نہ منائیں تو میرے خیال سے یہ آٹو کرننگ نا قابل استعمال ہے ۔۔ کم از کم الفاظ اور کریکٹرز کا فرق تو پتا چلنا چاہیے اس میں تو یہ بھی پتہ نہیں چلتا کہ الف اگلے حرف کے ساتھ ہے یا پچھلے کے ساتھ ۔۔۔
اسے ہم گلفس بیئرنگ کے ذریعہ کنٹرول کر سکتے ہیں۔ اور ویسے بھی نفیس نستعلیق کی خطاطی کوئی ایسی بہترین نہیں کہ اسمیں ایسی اونچ نیچ کی کمی ہونا کوئی بہت بڑا مسئلہ ہو :)
پہلے محفلینز اوپن ٹائپ فانٹس میں خود کارکرننگ نہ ہونے کا رونا روتے رہتے تھے۔ اب جبکہ یہ فانٹ کا حصہ بن چکی ہے تو اسکو مزید بہتر کرنا کوئی مشکل کام نہیں ہونا چاہئے :)
 

متلاشی

محفلین
اسے ہم گلفس بیئرنگ کے ذریعہ کنٹرول کر سکتے ہیں۔ اور ویسے بھی نفیس نستعلیق کی خطاطی کوئی ایسی بہترین نہیں کہ اسمیں ایسی اونچ نیچ کی کمی ہونا کوئی بہت بڑا مسئلہ ہو :)
پہلے محفلینز اوپن ٹائپ فانٹس میں خود کارکرننگ نہ ہونے کا رونا روتے رہتے تھے۔ اب جبکہ یہ فانٹ کا حصہ بن چکی ہے تو اسکو مزید بہتر کرنا کوئی مشکل کام نہیں ہونا چاہئے :)
چلیں اللہ کرے یہ پہاڑ سر ہو جائے
 

متلاشی

محفلین
چند دن ہوئے ایک محفلین نے ایسے ہی ایک دھاگے میں یہ کہا تھا کہ وہ ایم ایس ورڈ میں ان پیج سے اچھی آٹو کرننگ دے سکتے ہیں۔ کچھ پتہ لگا کہ ان کے ذہن میں کیا تھا؟ ہمیں فونٹ کی تکنیک کے بارے میں کچھ بھی علم نہیں۔ اور کرننگ کے بارے میں بھی آپ لوگوں کی گفتگو میں اس کے مسلسل ذکر سے یہ سمجھے ہیں کہ الفاظ کے مخصوص پئیرز کے مابین خود بخود مناسب فاصلہ قائم ہوجائے۔ تو اس بنیاد پر ہم نے ایک بار یہ سوچا تھا کہ اگر ورڈ میں کوئی ایسا آپشن ہو جس کے ذریعے مینئولی الفاظ کے مابین فاصلے کی کیلکولیشن کو ایڈجسٹ کیا جاسکتا ہو تو سی شارپ میں ایک پلگ ان بنایا جاسکتا ہےجس میں فونٹ کا تمام ترسیموں کے متوقع پئیر ایک ٹیبل کی صورت بنا کر پروگرامنگ کی جائے اور ورڈ میں اس پلگ ان کو انسٹال کرادیا جائے۔ اسطرح جیسے جیسے ٹائپنگ ہوتی جائے گی وہ پلگ ان خودکار طور پر پہلے سے ڈیفائن پروگرامنگ کی مدد سے الفاظ کے پئیر چیک کرتا جائے اور ان کے مابین پہلے سے پروگرام کیا ہوا مجوزہ فاصلہ دیتا جائے۔ لیکن ہمیں ورڈ میں اس وقت ایک آپشن ملا تو تھا لیکن وہ تو مینئولی ہی ٹھیک کام نہیں کررہا تھا یا شائد ہم ٹھیک سے کام نہیں لے سکے۔ اس لئے پلگ ان پر کام شروع کرنے کا خیال چھوڑنا پڑا۔ ان صاحب کے علم میں اگر کوئی ایسا آپشن ایم ایس ورڈ میں ہے تو وہ شئیر کریں شائد اس پر کام کیا جاسکے۔
جی رانا بھائی ایسا ممکن ہے اور ٹول بنائے بغیر آٹو کریکٹ کے ذریعہ سپیس کی دبانے کے بعد کرننگ اپلائی بھی کروائی جا سکتی ہے ۔۔۔ لیکن اگر آپ پلگ ان بنا دیں تو اس سے سپیس کی دبانے کے جھنجٹ سے نجات مل سکتی ہے ۔۔۔ ویسے یہ جھنجھٹ تو نہیں کیوں کہ ہر لفظ کے بعد سپیس کی ٹائپنگ کے دوران دبانا تو ضروری ہوتا ہے ۔۔۔
اس کے مقصد کے حصول کے لئے ہمیں فونٹ میں کوڈنگ کرنی پڑے گی یعنی تین چار کرننگ کی ویلیوز ڈیفائن کرنا پڑیں گے اور پھر جس پیئر میں جو ویلیو مناسب لگے آٹو کریکٹ کی مدد سے ہی لگائی جا سکے گی ۔ ۔۔۔میں کل اس کا عملی مظاہرہ پیش کر کے دکھاؤن گا انشاء اللہ
 

arifkarim

معطل
متلاشی کی خاص فرمائش پر فانٹ کو مزید تیز کر نے کیلئے اسکی بنیادی پروگرامنگ جمیل نوری نستعلیق کے بیس فانٹ جوہر نستعلیق کی طرز پر کر دی گئی ہے۔ یوں ہمارا محبوب سعد نستعلیق، حرفی نفیس نستعلیق کے مقابلہ میں اب پہلے سے کہیں زیادہ تیز رفتار ہو چکا ہے۔ ذیل میں 90،000 سے زائد ترسیموں کی رینڈرنگ ملاحظہ ہو:
b559.gif

شاکرالقادری نبیل ابن سعید سعادت محمد سعد اسد محمد صابر محب علوی عبدالمجید عبدالحفیظ ابرارحسین
 
مدیر کی آخری تدوین:

arifkarim

معطل
کچھ وضاحت ہو جائے نا
نفیس نستعلیق کے initial, medial اور final والے ٹیبلز دیگر نستعلیق حرفی فانٹس کی طرح ہی ڈیفائن کئے گئے تھے۔ جنکی وجہ سے ہمیں مجبوراً ترسیموں کے لک اپس بھی اسی انداز میں نقطوں اسمیت جنریٹ کرنا پڑے۔ میری تحقیق کے مطابق ایسا کرنے سے فانٹ کی رینڈرنگ رفتار میں واضح بہتری واقع نہیں ہوتی کیونکہ رینڈرنگ انجن لک اپس کو نقطوں اسمیٹ اٹھا رہا ہوتا ہے۔ جبکہ جمیل نوری نستعلیق میں اسکے برعکس ترسیموں کے تمام لک اپس نسخ فانٹس ہی کی طرح رینڈر ہوتے ہیں اور یوں انکی برق رفتاری نظر آنا شروع ہو جاتی۔
کل متلاشی نے اس کیطرف توجہ دلائی تھی کہ سعد نستعلیق انپیج میں ابھی بھی سست ہے البتہ جمیل نوری نستعلیق ٹھیک ہے۔ جسپر ہم نے باہم مشاورت سے یہی طے کیا تھا نفیس نستعلیق ترسیموں کے تمام لک اپس جوہر نستعلیق یعنی جمیل نوری نستعلیق کے حرفی کی طرز پر سیٹ کر دئے جائیں۔ جسکا نتیجہ آپکے القلم جوہر نستعلیق میں بھی نمایاں نظر آرہا ہے:
b560.gif
 
مدیر کی آخری تدوین:

نبیل

تکنیکی معاون
میں یہ سمجھ پایا ہوں کہ سعد نستعلیق کا بیس فونٹ نفیس نستعلیق ہی ہے جبکہ اس کے ترسیمہ جات کے لک اپس اب جمیل نستعلیق کے مطابق کر دیے گئے ہیں۔ کیا ایسا ہی ہے؟
 

arifkarim

معطل
میں یہ سمجھ پایا ہوں کہ سعد نستعلیق کا بیس فونٹ نفیس نستعلیق ہی ہے جبکہ اس کے ترسیمہ جات کے لک اپس اب جمیل نستعلیق کے مطابق کر دیے گئے ہیں۔ کیا ایسا ہی ہے؟
جی ایسا ہی ہے۔ ہمیں فی الحال یہ معلوم نہیں ہو سکاکہ فانٹ رینڈرنگ انجنزنکتوں اور کشتیوں اسمیت لک اپس کو اتنا سست کیوں رینڈر کرتے ہیں۔ بہرحال جب تک اسکا کوئی مناسب حل ملتا ہے، ہمیں انہیں نسخ فانٹس کی طرح بنا کر ہی استعمال کرنا ہوگا۔
 

متلاشی

محفلین
متلاشی کی خاص فرمائش پر فانٹ کو مزید تیز کر نے کیلئے اسکی بنیادی پروگرامنگ جمیل نوری نستعلیق کے بیس فانٹ جوہر نستعلیق کی طرز پر کر دی گئی ہے۔ یوں ہمارا محبوب سعد نستعلیق، حرفی نفیس نستعلیق کے مقابلہ میں اب پہلے سے کہیں زیادہ تیز رفتار ہو چکا ہے۔ ذیل میں 90،000 سے زائد ترسیموں کی رینڈرنگ ملاحظہ ہو:
b559.gif

شاکرالقادری نبیل ابن سعید سعادت محمد سعد اسد محمد صابر محب علوی عبدالمجید عبدالحفیظ ابرارحسین
زبردست عارف بھائی اب صحیح کام کرے گا یہ ہر جگہ
 
مدیر کی آخری تدوین:
Top