لگیچرز کے لُک اپس تیار کرنا!

علوی امجد

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

میں اپنے ذاتی تجربے کی روشنی میں چند باتیں کہوں گا:
1) کیریکٹر بیسڈ فانٹس خصوصا نستعلیق لئے وہ رزلٹ نہیں دے سکتے جو کہ لیگیچرز بیسڈ فانٹس دے سکتے ہیں۔ جس میں خوبصورتی کے علاوہ سپیڈ بھی اہم ہے۔ چونکہ کیریکٹر بیسڈ فانٹس میں بہت زیادہ لُک اپس اور گروپس ہوتے ہیں خصوصا پوزیشنگ ٹیبلز جس کی وجہ سے سپیڈ بہت کم ہوجاتی ہے۔
2)مکمل 2200 لیگچرز کو ایک ہی فانٹ میں سمونا مشکل ہے۔ یہاں ایک بات نوٹ کرنے والی ہے کہ وولٹ 12 MB سے بڑی فائل کو ہینڈل نہیں کرسکتا۔ اگر تمام لیگیچرز کو فانٹ میں ڈال کر وولٹ میں پروگرامنگ کی جائے تو فائل 12 MB سے زیادہ ہوجائے گی۔ جو مسائل بناتی ہے۔ اس کو حل کرنے کے لئے دو تجاویز ہیں:
3) جیسے کے بات ہورہی ہےکہ لیگچرز میں سے نقاط کو علیحدہ کردیا جائے۔ تاکہ لیگیچرز کی تعداد کم ہوسکے۔
3 دو حرفی اور سہ حرفی الفاظ کو کیریکٹر بیسڈ کردیا جائے اور صرف چار حرفی یا زائد کے لیگیچرز بنائیں جائیں۔
4) لیگچیرز کا سائز چھوٹا کردیا جائے۔ اس میں دو طریقے ہوسکتے ہیں۔ ایک تو Nodes کو کم کرکے اور دوسرا لیگیچرز کو Transformation ٹولز کی مدد سے 50% سے 75% تک چھوٹا کردیا جائے۔ تاکہ وہ کم جگہ گھیر سکیں۔
5) پروگرامنگ لینگویجز کی خدمات حاصل کی جائیں جیسے Python یا VB۔ اس سے فانٹ کی اوپن ٹائپ فانٹ ہونے کی حیثیت شائد ختم ہوجائے۔
6) ایک اور چیز جس پر میں آج کل سٹڈی کررہا ہوں وہ ہے۔ TTC فانٹس۔ جس میں ایک ماسٹر فانٹ ہوتا ہے اور باقی اس سے منسلکہ دیگر فانٹس۔ جو کیریکٹر ماسٹر فانٹ میں نہیں ملتا وہ دیگر فانٹس میں سے اٹھاتا ہے۔ کیا اس کو استعمال کیا جاسکتا ہے؟
 

علوی امجد

محفلین
دو حرفی لیگیچرز کی تعداد تقریبا 600 ہے جب کہ سہ حرفی لیگیچرز کی تعداد 3400 کے لگ بھگ ہے یعنی کل 4000 لیگیچرز کو ہم اصل میں سے کم کرکے باقی 18000 لیگیچرز کو دیکھ لیتے ہیں۔ اس میں سے اگر ہم وہ لیگیچرز اٹھا لیں جن کے لئے اگر نقاط کا علیحدہ سیٹ ہو جیسے " بننا بنیا بیبا بیتا بیٹا بینا" میں بیس لیگچرز ایک ہی ہے صرف نقاط علیحدہ ہیں۔ ہم اس جیسے تمام الفاظ کو علیحدہ کرکے لیگیچرز کی تعداد کو مزید کم کے تقریبا 14000 تک لایا جاسکتا ہے۔ اور یہ وہ تعداد ہے جس کو ہم بآسانی وولٹ کے اندر لا سکتے ہیں۔

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

یہ کچھ آئیڈیاز ہیں جن کی بنیاد پر کام کا آغاز کیا جاسکتا ہے۔ اب آپ دوست مشورہ دیں کہ اس میں کس طریقہ کار کو اپنایا جائے۔
 

arifkarim

معطل
بہت خوب۔۔۔۔۔۔۔ ttc کے بارے میں اہم معلومات ملی ہیں۔۔۔۔۔۔
TrueType Collections

A TrueType Collection (TTC) is a means of delivering multiple OpenType fonts in a single file structure. TrueType Collections are most useful when the fonts to be delivered together share many glyphs in common. By allowing multiple fonts to share glyph sets, TTCs can result in a significant saving of file space.

For example, a group of Japanese fonts may each have their own designs for the kana glyphs, but share identical designs for the kanji. With ordinary OpenType font files, the only way to include the common kanji glyphs is to copy their glyph data into each font. Since the kanji represent much more data than the kana, this results in a great deal of wasteful duplication of glyph data. TTCs were defined to solve this problem.

The CFF rasterizer does not currently support TTC files.


The TTC File Structure

A TrueType Collection file consists of a single TTC Header table, one or more Offset Tables with Table Directories, and a number of OpenType tables. The TTC Header must be located at the beginning of the TTC file.

The TTC file must contain a complete Offset Table and Table Directory for each font. A TTC file Table Directory has exactly the same format as a TTF file Table Directory. The table offsets in all Table Directories within a TTC file are measured from the beginning of the TTC file.

Each OpenType table in a TTC file is referenced through the Offset Table and Table Directory of each font which uses that table. Some of the OpenType tables must appear multiple times, once for each font included in the TTC; while other tables may be shared by multiple fonts in the TTC.

As an example, consider a TTC file which combines two Japanese fonts (Font1 and Font2). The fonts have different kana designs (Kana1 and Kana2) but use the same design for kanji. The TTC file contains a single 'glyf' table which includes both designs of kana together with the kanji; both fonts' Table Directories point to this 'glyf' table. But each font's Table Directory points to a different 'cmap' table, which identifies the glyph set to use. Font1's 'cmap' table points to the Kana1 region of the 'loca' and 'glyf' tables for kana glyphs, and to the kanji region for the kanji. Font2's 'cmap' table points to the Kana2 region of the 'loca' and 'glyf' tables for kana glyphs, and to the same kanji region for the kanji.

The tables that should have a unique copy per font are those that are used by the system in identifying the font and its character mapping, including 'cmap', 'name', and 'OS/2'. The tables that should be shared by fonts in the TTC are those that define glyph and instruction data or use glyph indices to access data: 'glyf', 'loca', 'hmtx', 'hdmx', 'LTSH', 'cvt ', 'fpgm', 'prep', 'EBLC', 'EBDT', 'EBSC', 'maxp', and so on. In practice, any tables which have identical data for two or more fonts may be shared.

A tool is available from Microsoft to help build .TTC files. The process involves paying close attention the issue of glyph renumbering in a font and the side effects that can result, in the 'cmap' table and elsewhere. The fonts to be merged must also have compatible TrueType instructions-that is, their preprograms, function definitions, and control values must not conflict.

TrueType Collection files use the filename suffix .TTC.


TTC Header

There are two versions of the TTC Header: Version 1.0 has been used for TTC files without digital signatures. Version 2.0 can be used for TTC files with or without digital signatures -- if there's no signature, then the last three fields of the version 2.0 header are left null.

If a digital signature is used, the DSIG table for the file must be the last table in the TTC file. Signatures in a TTC file are expected to be Format 1 signatures.

The purpose of the TTC Header table is to locate the different Offset Tables within a TTC file. The TTC Header is located at the beginning of the TTC file (offset = 0). It consists of an identification tag, a version number, a count of the number of OpenType fonts in the file, and an array of offsets to each Offset Table.

TTC Header Version 1.0 Type Name Description
TAG TTCTag TrueType Collection ID string: 'ttcf'
ULONG Version Version of the TTC Header (1.0), 0x00010000
ULONG numFonts Number of fonts in TTC
ULONG OffsetTable[numFonts] Array of offsets to the OffsetTable for each font from the beginning of the file

TTC Header Version 2.0 Type Name Description
TAG TTCTag TrueType Collection ID string: 'ttcf'
ULONG Version Version of the TTC Header (2.0), 0x00020000
ULONG numFonts Number of fonts in TTC
ULONG OffsetTable[numFonts] Array of offsets to the OffsetTable for each font from the beginning of the file
ULONG ulDsigTag Tag indicating that a DSIG table exists, 0x44534947 ('DSIG') (null if no signature)
ULONG ulDsigLength The length (in bytes) of the DSIG table (null if no signature)
ULONG ulDsigOffset The offset (in bytes) of the DSIG table from the beginning of the TTC file (null if no signature)​

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

شاکرالقادری

لائبریرین
دو حرفی لیگیچرز کی تعداد تقریبا 600 ہے جب کہ سہ حرفی لیگیچرز کی تعداد 3400 کے لگ بھگ ہے یعنی کل 4000 لیگیچرز کو ہم اصل میں سے کم کرکے باقی 18000 لیگیچرز کو دیکھ لیتے ہیں۔ اس میں سے اگر ہم وہ لیگیچرز اٹھا لیں جن کے لئے اگر نقاط کا علیحدہ سیٹ ہو جیسے " بننا بنیا بیبا بیتا بیٹا بینا" میں بیس لیگچرز ایک ہی ہے صرف نقاط علیحدہ ہیں۔ ہم اس جیسے تمام الفاظ کو علیحدہ کرکے لیگیچرز کی تعداد کو مزید کم کے تقریبا 14000 تک لایا جاسکتا ہے۔ اور یہ وہ تعداد ہے جس کو ہم بآسانی وولٹ کے اندر لا سکتے ہیں۔
مندرجہ بالا اقتباس میں بحروف سرخ ظاہر کیے جانے والے لگیچرز بھی اس طرح کے بیں کہ انہیں بآسانی کریکٹرز ﴿حرفی اشکال کے جڑاٶ﴾ کے تحت اپنی اصلی اور درست شکل میں دکھا سکتے ہیں بلکہ اس طرح کے کئی اور لگیچرز بھی ہونگے جنہیں حرفی جڑاٶ سے درست طور پر ظاہر کیا جا سکے
۔۔۔۔۔۔ دو حرفی اور سہ حرفی ترسیموں کی تو ضرورت ہی نہیں
۔۔۔۔۔۔ البتہ چار حرفی ترسیموں میں سے فونٹ میں صرف وہی ترسیمے فونٹ میں ڈالے جائیں جو ﴿بذریعہ حرفی جڑاٶ﴾ درست طور پر ظاہر نہ ہو سکیں
اس طرح ترسیموں کی خاصی تعداد کم ہو جائے گی
 

arifkarim

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

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

محسن حجازی

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

نبیل

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

arifkarim

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

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

arifkarim

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

امکان ہی نہیں، تجربہ ہے۔ آپ جوہر نستعلیق استعمال کر چکے ہیں۔ اس میں بغیر نکتے کے 1700 لگچرز ہیں۔ نکتے ڈالنے کا نظام وولٹ میں سیٹ کیا گیا ہے۔ جب تک لگچرز پر نکتے لگتے رہیں، گزارہ ہو جاتا ہے۔ ذرا کہیں ان ڈیفائنڈ جگہ پر اعراب ڈالا، وہیں سارا کام خراب ہوگیا۔ اور اوپر سے اگر زیادہ نقطوں والے الفاظ آجائیں تو کچھوے جیسی چال چلنے لگتا ہے۔ یعنی مصیبت پر مصیبت۔
 

محسن حجازی

محفلین
جی عارف بہت شکریہ۔ میں کچھ جلدی میں ہوں کہ نظر چیک کروانا ہے۔ سو ایسا ہے کہ:

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

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

مزید کل۔
 

نبیل

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

نبیل

تکنیکی معاون
میں نے محض ایک لفظ قلم کو ٹیسٹ کرنے کے لیے سی شارپ میں ایک چھوٹا سا پروگرام لکھا ہے جو بظاہر اس کے لیے صحیح کام کر رہا ہے۔

کوڈ:
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;

namespace LigName
{
    class Program
    {
        static void Main(string[] args)
        {
            string strTest = "قلم";
            Dictionary<char, char> keyMap;
            keyMap = new Dictionary<char, char>();
            keyMap['ا'] = 'a';
            keyMap['ب'] = 'b';
            keyMap['پ'] = 'p';
            keyMap['ت'] = 't';
            keyMap['ٹ'] = 'T';
            keyMap['ث'] = 'C';
            keyMap['ج'] = 'j';
            keyMap['چ'] = 'c';
            keyMap['ح'] = 'e';
            keyMap['خ'] = 'G';
            keyMap['د'] = 'd';
            keyMap['ڈ'] = 'D';
            keyMap['ذ'] = 'Z';
            keyMap['ر'] = 'r';
            keyMap['ز'] = 'z';
            keyMap['ژ'] = 'X';
            keyMap['ڑ'] = 'R';
            keyMap['ف'] = 'f';
            keyMap['ق'] = 'q';
            keyMap['ک'] = 'k';
            keyMap['گ'] = 'g';
            keyMap['ل'] = 'l';
            keyMap['م'] = 'm';
            keyMap['ن'] = 'n';
            keyMap['و'] = 'w';
            keyMap['ہ'] = 'o';
            keyMap['ء'] = 'U';
            keyMap['ی'] = 'i';
            keyMap['ے'] = 'y';

            string strResult= "";
            for(int i=0; i<strTest.Length; i++)
            {
                strResult +=keyMap[strTest[i]];
            }
        }
    }
}
 

arifkarim

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

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

شاکرالقادری

لائبریرین
- - - - - - - - - - - - - -
ایسا شاید اسلئے ممکن نہیں کہ انپیج کے نوری نستعلیق کے لگچرز کے مابین کوئی ترتیب نہیں‌ ہے۔ - - - - - - - - - - - - - - - - - - - - -
اگر ہم تمام ترسیموں‌ کے نام کو اردو میں ہی لکھیں، اور نبیل بھائی کا پروگرام انہیں انگلش میں تبدیل کردے۔ تو ہو سکتا ہے کہ محسن بھائی کا پلان کامیاب ہوجائے۔۔۔۔۔۔

لیکن یہ تو پہلے طے ہو چکا ہے کہ فی الحال ہم کرلپ کے ترسیموں کی فہرست میں موجود 18000 ترسیموں کو ہی استعمال کریں گے اور اگلے مرحلہ میں باقی ترسیمے زیر غور آئیں گے

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

چونکہ محسن نے اپنے پلان کے متعلق تفصیل سے وضاحت نہیں کی اس لیے شاید یہ کنفیوزن پیدا ہو رہا ہے ویسے مجھے تو یہ پلان قابل عمل لگ رہا ہے تاہم اگر محسن اس کی مزید وضاحت کریں تو الجھنیں دور ہو سکتی ہیں
 

arifkarim

معطل
محسن بھائی: آپ تفصیلا اپنے پلان کے بارے میں بتائیں کہ یہ کام کیسے ہوگا؟ علوی بھائی کے پاس انپیج کے تمام لگچرز ایک ہی فانٹ میں موجود ہیں۔ کیا اسے ہی استعمال کیا جاسکتا ہے؟
 

علوی امجد

محفلین
تمام لیگیچرز کو اردو کے نام دینا مناسب نہیں ہوگا اور اس کو ٹائپ کرنا بہت مشکل ہو جائے گا۔ بہترین حل تو یہی ہے کہ تمام لیگیچرز کو 0001 یا اس جیسی کوئی اور نمبرنگ دے دینی چاھیئے۔ صرف حروف کو نام دینا ٹھیک ہوگا جیسے ba_ini, noom_mid وغیرہ اور اس میں لیگیچرز یوں ٹائپ ہوں گے۔

ba_ini ya_mid tta_mid alif_fin -> 0001 وغیرہ۔

وولٹ کا سب سے بڑا مسئلہ اس کا غیر یقینی روہہ ہے اور ایسی جگہ جا کر کام چھوڑ دیتا ہے جہاں آپ کا وہم و گمان بھی نہیں ہوتا۔ وولٹ سے بہتر Font Lab ہے جو نہ صرف Glyphes پر مکمل کنٹرول فراھم کرتا ہے بلکہ انہیں اوپن ٹائپ کی تمام کمانڈوں کو بھی سپورٹ کرتا ہے۔ اور سب سے بڑا فائدہ اس میں Phyton کی سپورٹ ہے۔ جس سے ہم کافی فائدہ اٹھا سکتے ہیں۔

جہاں تک کمانڈ لائن ٹولز کا تعلق ہے ان پر شائد ہمارے کچھ دوستوں کو استعمال میں مسئلہ ہو۔ کیونکہ کمانڈ لائن ٹولز کو پروگرامر حضرات ہی بہتر سمجھ سکتے ہیں۔ باقیوں کو نئے سرے سے سکھانا پڑے گا۔ جو وقت کا ضیاع ہے۔

کل میں نے اپنے پہلے نوری نستعلیق پراجیکٹ کی فائل کو جھاڑ پونچھ کر نکالا تو دیکھا کہ اس میں میں نے 16000 لیگیچرز ڈالے تھے۔ جن میں کم و بیش 8000 کے قریب لیگیچرز کے لک اپس ٹائپ شدہ ہیں۔ اس میں مسئلہ وہی تھا کہ فائل کافی بڑی ہوگئی تھی اور وولٹ اس کو کمپائل نہیں کرسکتا تھا۔ آج اس پر میں تھوڑے سے مزید تجربات کروں گا شائد یہ مسئلہ بھی حل ہوجائے۔ آپ حضرات دیکھ لیں کہ اس کو استعمال کیا جاسکتا ہے تو ضرور بتائیے گا۔

میں نے آپ لوگوں سے کل آدھے لیگیچرز کا ذکر بھی کیا تھا جو کہ GIST کے نبیل اور عابد فانٹس میں استعمال ہوئے ہیں۔ اس کو دیکھیں وہ کافی بہتر آئیڈیا ہے۔ اپنایا جاسکتا ہے۔ صرف مسئلہ اس کے لئے لیگیچرز لکھوانے یا بنوانے کا آئے گا۔ اس میں لیگیچرز کی تعداد کو کافی حد تک کم کیا جاسکتا ہے۔
 

علوی امجد

محفلین
عارف بھائی !
کیا آپ مجھے Asia Font Studio کا کوئی ڈانلوڈ لنک دے سکتے ہیں جہاں سے مکمل ڈانلوڈ ہوجائے۔
 

محسن حجازی

محفلین
جی عارف اسے ہی استعمال کیا جا سکتا ہے اور اس طرح ایک کام تو بچا۔ میں آج شام مزید وضاحت کرتا ہوں۔
علوی امجد بھائی!
سلام قبول کیجئے۔ کیا آپ کے پاس موجود فونٹ میں تمام جی ہاں تمام ترسیمہ جات موجود ہیں؟
 

علوی امجد

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

نبیل

تکنیکی معاون
علوی امجد، اگر آپ کو اپلوڈنگ کے سلسلے میں کسی مدد کی ضرورت پیش آئے تو ہم خدمت کے لیے حاضر ہیں۔ آپ یہاں اٹیچمنٹ پوسٹ کر سکتے ہیں لیکن اس میں شاید فائل سائز کی حد مقرر ہے۔ ایسی صورت میں ہم آپ کے لیے ایف ٹی پی سپیس کا بندوبست کر دیں گے۔
 
Top