نبیل
تکنیکی معاون
اس ربط پر کچھ انفارمیشن موجود ہے جو عربی اور اردو فونٹس کو ایڈوبی پلیٹ فارمز کے ساتھ کمپیٹیبل بنانے کے لیے کارآمد ثابت ہو سکتی ہے۔ اس سمت میں بھی تحقیق کی جانی چاہیے۔ میں ذیل میں اس انفارمیشن کا کچھ خلاصہ پیش کر رہا ہوں۔
۔ سب سے پہلے فونٹ لیب میں ایک فونٹ تیار کریں اور اسے وولٹ میں کام کے لیے بطور اوپن ٹائپ ٹی ٹی ایف (ttf) فونٹ کے جنریٹ کر دیں۔ یہاں یہ خیال رکھنا ہوگا کہ فونٹ لیب فونٹ ایکسپورٹ کرتے وقت گلفس کی ترتیب نہ بدل دے۔
۔ اب وولٹ کے ذریعے فونٹ میں اوپن ٹائپ ٹیبلز شامل کر دیں۔
۔ اس کے بعد دوبارہ فونٹ لیب میں پرانے فونٹ پراجیکٹ کے ذریعے ایک اوپن ٹائپ سی ایف ایف (CFF) فونٹ جنریٹ کر دیں۔ اس موقعے پر ttf اور CFF فونٹ میں ایک جیسی گلفس شامل ہوں گی اور ان کی ترتیب بھی ایک جیسی ہوگی۔
۔ آخری مرحلہ ttf فونٹ سے اوپن ٹائپ ٹیبلز ڈیٹا پڑھ کر اسے CFF فونٹ میں شامل کرنا ہے۔ یہ کام قدرے مہارت طلب ہے۔ اس کے لیے یہ طریقہ بیان کیا گیا ہے کہ ٹی ٹی ایکس ٹولز کے ذریعے دونوں فونٹس کو ایکس ایم فائل میں ایکسپورٹ کیا جائے اور اس کے بعد ttf فونٹ والی ایکس ایم ایل فائل سے اوپن ٹائپ ٹیبلز ڈیٹا کو دوسرے فونٹ میں کاپی پیسٹ کرکے دوبارہ ٹی ٹی ایکس کے ذریعے ہی فونٹ جنریٹ کروا لیا جائے۔ اس طریقے سے حاصل کردہ فونٹ ایڈوبی اپلیکیشنز پر درست کام کرے گا۔
نوٹ: سی ایف ایف فونٹ میں اوپن ٹائپ ٹیبلز شامل کرنے کے بارے میں ٹائپوفائل کے جان ہڈسن کی جانب سے ایک اہم اپڈیٹ بھی فراہم کی گئی ہے جسے میں ذیل میں من و عن پیش کر رہا ہوں:
۔ سب سے پہلے فونٹ لیب میں ایک فونٹ تیار کریں اور اسے وولٹ میں کام کے لیے بطور اوپن ٹائپ ٹی ٹی ایف (ttf) فونٹ کے جنریٹ کر دیں۔ یہاں یہ خیال رکھنا ہوگا کہ فونٹ لیب فونٹ ایکسپورٹ کرتے وقت گلفس کی ترتیب نہ بدل دے۔
۔ اب وولٹ کے ذریعے فونٹ میں اوپن ٹائپ ٹیبلز شامل کر دیں۔
۔ اس کے بعد دوبارہ فونٹ لیب میں پرانے فونٹ پراجیکٹ کے ذریعے ایک اوپن ٹائپ سی ایف ایف (CFF) فونٹ جنریٹ کر دیں۔ اس موقعے پر ttf اور CFF فونٹ میں ایک جیسی گلفس شامل ہوں گی اور ان کی ترتیب بھی ایک جیسی ہوگی۔
۔ آخری مرحلہ ttf فونٹ سے اوپن ٹائپ ٹیبلز ڈیٹا پڑھ کر اسے CFF فونٹ میں شامل کرنا ہے۔ یہ کام قدرے مہارت طلب ہے۔ اس کے لیے یہ طریقہ بیان کیا گیا ہے کہ ٹی ٹی ایکس ٹولز کے ذریعے دونوں فونٹس کو ایکس ایم فائل میں ایکسپورٹ کیا جائے اور اس کے بعد ttf فونٹ والی ایکس ایم ایل فائل سے اوپن ٹائپ ٹیبلز ڈیٹا کو دوسرے فونٹ میں کاپی پیسٹ کرکے دوبارہ ٹی ٹی ایکس کے ذریعے ہی فونٹ جنریٹ کروا لیا جائے۔ اس طریقے سے حاصل کردہ فونٹ ایڈوبی اپلیکیشنز پر درست کام کرے گا۔
نوٹ: سی ایف ایف فونٹ میں اوپن ٹائپ ٹیبلز شامل کرنے کے بارے میں ٹائپوفائل کے جان ہڈسن کی جانب سے ایک اہم اپڈیٹ بھی فراہم کی گئی ہے جسے میں ذیل میں من و عن پیش کر رہا ہوں:
کوڈ:
Actually, Thomas, the final stage of the CFF font is simpler than described. VOLT will actually open a CFF OT font fine, it just won’t display any glyphs because VOLT doesn’t have access to a PostScript rasteriser. But you can open a CFF font, import a VOLT project file, compile and ship the font. So it isn’t necessary to copy and paste the compiled OTL tables from a TT to a CFF font. When I first started doing this kind of workflow, I thought that would be necessary, but then discovered the easier method.
There is some post-VOLT work that needs to be done, though, and for that I do use TTX. VOLT assumes that fonts are following the TT spec, so expects the first four glyphs in a font to be
.notdef
.null
CR
space
If one is making a CFF font following Adobe’s preferences it will not include the .null and CR glyphs. What this means is that the first section of the Mac cmap table will be incorrectly written by VOLT, and needs to be edited in a TTX dump.
The usMaxContext field in the OS/2 table also needs to be updated after a font is compiled in VOLT, but this is true for TT as well as CFF fonts.
After some discussion with Read Roberts at Adobe during development of the Adobe Arabic, Hebrew and Thai fonts, it was determined that the first section of the Mac cmap should look like this:
0×000 .notdef
0×0001 .notdef
0×0002 .notdef
0×0003 .notdef
0×0004 .notdef
0×0005 .notdef
0×0006 .notdef
0×0007 .notdef
0×0008 .notdef
0×0009 space
0x000A .notdef
0x000B .notdef
0x000C .notdef
0x000D space
0x000E .notdef
0x000F .notdef
0×0010 .notdef
0×0011 .notdef
0×0012 .notdef
0×0013 .notdef
0×0014 .notdef
0×0015 .notdef
0×0016 .notdef
0×0017 .notdef
0×0018 .notdef
0×0019 .notdef
0x001A .notdef
0x001B .notdef
0x001C .notdef
0x001D .notdef
0x001E .notdef
0x001F .notdef
0×0020 space