কিভাবে ফন্ট তৈরী হয় তা নিয়ে মানুষের কৌতূহলের অন্ত নেই। আমাকে প্রায়ই এধরণের প্রশ্নের মুখে পড়তে হয়। পড়ে প্রক্রিয়াটা বুঝিয়ে বললে আর কৌতূহলটা থাকেনা। প্রত্যুত্তর শোনা যায়, “থাক বাবা, আমার ফন্ট বানিয়ে কাজ নেই”। কিন্তু আগ্রহী মানুষ সবসময়ই পাওয়া যায়।
তাই প্রথমেই বলে রাখছি, ফন্ট বানানোটা সবার জন্য সুখকর কাজ নাও হতে পারে।
আসুন একনজর দেখে নেই একটা ফন্ট বানাতে কি কি লাগে-
১. টাইপোগ্রাফী সম্পর্কে মোটামুটি ধারণা।
২. বাংলা যুক্তাক্ষর নিয়ে ভালো ধারণা।
৩. ভেক্টর গ্রাফিক্স নিয়ে কাজ করার অভিজ্ঞতা (এ্যাডব ইলাস্ট্রেটর, ইঙ্কস্কেপ ইত্যাদি)।
৪. প্রয়োজনীয় সফ্টওয়্যার (ফন্টল্যাব স্টুডিও/ ফন্টফোর্জ/ ফন্ট ক্রিয়েটর, ভোল্ট ইত্যাদি)।
৫. অসীম ইচ্ছাশক্তি ও অপার্থিব ধৈর্য। (এই পয়েন্টটা পরে ব্যখ্যা করব)
এবার বাংলা ফন্ট বানানো শুরুর আগে যেসব ব্যাপার জানা থাকা জরুরী সেগুলোর দিকে আলোকপাত করছি।
ইউনিকোড ফন্টের সাথে আসকি(ASCII) ভিত্তিক ফন্টের পার্থক্য
আসকি ভিত্তিক ফন্টে রোমান অক্ষরগুলোকে প্রতিস্থাপন করে বাংলা অক্ষর বসানো হয়। বিজয়, প্রশিকাশব্দ এসব পুরোনো সফ্টওয়্যারগুলোতে এসব আসকি ভিত্তিক ফন্ট ব্যবহার করে বাংলা লিখতে হতো। এই ব্যবস্থায় কম্পিউটার বুঝতে পারেনা এটা যে বাংলা ভাষা, কারণ তার কাছে অক্ষরগুলো রোমান। যুক্তাক্ষর তৈরী করতেও এর সংশ্লিষ্ট সফটওয়্যারটি প্রয়োজন হয় (যেমন, সুতন্বীর জন্য বিজয়)।
ইউনিকোডে বাংলার প্রত্যেকটি অক্ষরের জন্য পৃথক জায়গা ও ক্রম দেয়া হয়েছে। সেই ক্রম থেকেই কম্পিউটার বুঝতে পারে অক্ষরগুলোর ভাষা বাংলা কিনা। এতে করে সার্চিং, সর্টিং, স্পেলচেক জাতীয় সব সুবিধা পাওয়া যায়। ইউনিকোড ফন্টের আরেকটি গুরুত্বপূর্ণ দিক হলো যুক্তাক্ষর তৈরী হয় ফন্ট থেকে। এর মানে কোন অক্ষরের পর কোন অক্ষর বসলে সেটা দেখতে কেমন হবে এই নির্দেশনা ফন্টে দেয়া থাকে। এটা ওপেনটাইপ ফন্টের(otf) ফিচার যেটা এখন ট্রুটাইপ ফন্টেও(ttf) যোগ করা যায়। আপনি অভ্র, গুগল বা উইন্ডোজের ডিফল্ট কিবোর্ড যা দিয়েই লিখুননা কেন ফন্টে কোন যুক্তাক্ষর না দেয়া থাকলে আপনি তা ঠিকমতো দেখতে পারবেন না। আবার একই ফন্ট দিয়ে আপনি উইন্ডোজ, লিনাক্স, অভ্র, গুগল যে কোন ব্যবস্থায় লিখতে পারছেন, নির্দিষ্ট কোন সফটওয়্যারের প্রয়োজন নেই। আরেকটি বড় সুবিধা হল বাংলা ফন্টেই যদি আপনি ইংরেজি অক্ষরগুলো যুক্ত করে দেন তাহলে লেখার সময় ফন্ট পরিবর্তন না করেই শুধুমাত্র কিবোর্ড মোড পরিবর্তন করে বাংলা ইংরেজি পাশাপাশি লিখতে পারবেন।
ইউনিকোডে বাংলা অক্ষরগুলো কিভাবে বিন্যস্ত তা দেখতে পাবেন এই পিডিএফে- http://www.unicode.org/charts/PDF/U0980.pdf
ভেক্টর গ্রাফিক্স
ফন্ট ডেভেলপমেন্টে ভেক্টর গ্রাফিক্স জানাটা বাধ্যতামূলক। একটা ব্যাপার আপনারা সবাই লক্ষ্য করেছেন যে লেখার সময় ফন্টের সাইজ যত বড়ই করা হোক না কেন তার কোয়ালিটি একই(একদম মসৃণ) থাকে। আপনারা যারা ভেক্টর গ্রাফিক্স নিয়ে কাজ করেছেন তারা হয়তো ব্যাপারটা ইতোমধ্যেই আন্দাজ করে ফেলেছেন যে কেন ভেক্টর গ্রাফিক্স বাধ্যতামূলক? ঠিক ধরেছেন J, ফন্টের অক্ষরগুলো তৈরী হয় ভেক্টর গ্রাফিক্সে। যারা ভেক্টর গ্রাফিক্স নিয়ে কাজ করেননি তাদের জন্য কাজটা একটু কঠিন হবে, তবে ভয় পাবার কিছু নেই। ভেক্টর গ্রাফিক্স আর বিটম্যাপের পার্থক্যটুকু জেনে নিয়ে এডোব ইলাস্ট্রেটর অথবা ইঙ্কস্কেপে হাত পাকিয়ে নিন। ভেক্টরে কি করে আঁকতে হয় সেটা বুঝতে পারলেই চলবে।
ভেক্টর গ্রাফিক্স সম্পর্কে উইকি- http://en.wikipedia.org/wiki/Vector_graphics
হিন্টিং
এটা অপরিহার্য কিছু নয়। তারপরেও হিন্টিং ফন্টের খুব গুরুত্বপূর্ণ অংশ।
একটি সুন্দর ফন্ট বানানোর পর সেটা যে স্ক্রিনেও দেখতে ভালো হবে, এ ব্যপারে আপনি নিশ্চিত হতে পারবেন না। কারণ, ফন্টটি ব্যবহারের সময় এর সাইজ যত ছোট করবেন সেটা তত readability হারাবে। আপনার ফন্টটা যদি স্ক্রিনে পড়াই না গেল তাহলে আপনার শ্রম অনেকাংশেই বৃথা। ফন্টের readability বাড়াতেই হিন্ট করতে হয়। হিন্ট করা মানে হল ছোট সাইজে অক্ষরগুলো দেখতে কেমন হবে সেটা পিক্সেল ধরে ধরে ঠিক করে দেয়া। কাজটা যথেষ্ট শ্রম, ধৈর্য ও সময় সাপেক্ষ।
প্রিন্টের জন্য কিন্তু হিন্টিং এর প্রয়োজন নেই।
প্রয়োজনীয় সফটওয়্যার
- ভেক্টর আঁকার জন্য:
- এডোব ইলাস্ট্রেটর- http://www.adobe.com/products/illustrator/
- ইন্কস্কেপ- http://www.inkscape.org/
- ফন্ট তৈরীর জন্য:
- ফন্টল্যাব স্টুডিও- http://www.fontlab.com/font-editor/fontlab-studio/
- ফন্ট ক্রিয়েটর- http://www.high-logic.com/fontcreator.html
- ফন্টফোর্জ- http://fontforge.sourceforge.net/
- মাইক্রোসফ্ট ভোল্ট- http://www.microsoft.com/typography/volt.mspx
অসীম ইচ্ছাশক্তি ও অপার্থিব ধৈর্য কেন প্রয়োজন?
আপনি বাংলার জন্য ইউনিকোডের একটি ফন্ট বানাতে চাইলে আপনাকে ৪০০-৫০০ অক্ষর (এর বিরাট অংশ যুক্তাক্ষর) নিয়ে কাজ করতে হবে। অক্ষর তৈরীর পর যদি ফন্ট হিন্টিং করতে চান তবে সেগুলোকে ধরে ধরে ৪-৬টি সাইজের জন্য হিন্ট করতে হবে। পরে ফন্টটিতে ওপেনটাইপ টেবল যোগ করতে হতে পারে যাতে করে সে যুক্তাক্ষরগুলো তৈরী করতে পারে।
এই তিন লাইন দিয়ে ফন্ট বানানোর পুরো প্রক্রিয়াটা বলে দেয়া হলো। তিন লাইন হলেও খাটুনিটা ঠিকই টের পাচ্ছেন নিশ্চয়ই?
আজকের পর্বটা এখানেই শেষ করতে চাই। আমি বরং আপনাদের পড়াশোনার জন্য আরও কিছু লিংক দিয়ে যাই।
- ওপেনটাইপ ফন্ট আর ট্রুটাইপ ফন্টের পার্থক্য-
- বাংলার জন্য মাইক্রোসফট টাইপোগ্রাফির ডকুমেন্টেশন-
- জ্ঞানার্জনের প্রথম হাতিয়ার-
- জ্ঞানার্জনের দ্বিতীয় হাতিয়ার-
এতক্ষণ ধৈর্য নিয়ে পড়ার জন্য সবাইকে ধন্যবাদ। পরবর্তী পর্বে আরেকটু বেশি খুঁটিনাটি নিয়ে আলোচনা করবো।
মো. তানবিন ইসলাম সিয়াম
ফন্ট ডেভেলপার, অমিক্রনল্যাব
siyam(a)omicronlab.com
পোস্টটি বিষ্যুদ, ২০১০-০৫-০৬ ০৭:১২ তারিখে সচলায়তনে প্রথম প্রকাশিত
দ্বিতীয় পর্ব- http://www.sachalayatan.com/potasiyam/32545


Pingback: ফন্টের খুঁটিনাটি : পর্ব ১ | indiarrs.net Featured blogs from INDIA.
siyam,
tor lekha ta chomotkar hoyeche.
sachalayatan e jacchi diteo porbo porar jonno.
অসাধারন একটা লেখা। ধন্যবাদ ভাই।
আপনাকেও অনেক ধন্যবাদ।
ধন্যবাদ ভাই।
শুভেচ্ছা।
ভালো লেগেছে , বাকি পোস্টগুলো কোথায় ?
বাকি গুলো শেষ করার সময় পাচ্ছি না। একটু ফ্রি হলে আবার শুরু করব।
Pingback: ফন্টের খুঁটিনাটি : পর্ব ২ | টেস্টটিউব
সিয়াম ভাই আপনারই কি তৈরী সিয়াম রূপালী?? আমার এখন আপনাকে নিয়ে নাচতে ইচ্ছা করতেছে। আমি অপার্থিব পরিশ্রম করতে রাজি। ফন্ট বানাবো।
“থাক বাবা, আমার ফন্ট বানিয়ে কাজ নেই”।
তাও খুঁটিনাটি জেনে জ্ঞানী হলাম
আপনাদের জন্যই ভাই আমরা পরাধীনতার শীকল থেকে বেড়িয়ে আসতে পারছি।
লেখা চমৎকার হয়েছে। বর্ণানা, উপস্থাপনা সব কিছু মিলিয়েই। একটা আনুমানিক হিসাব দিতে পারবেন, ফন্ট বানাতে কত শ্রম ঘন্টা লাগে??
অনেক ধন্যবাদ।
হিসেব দেয়াটা একটু কঠিন। প্রতিদিন ৪/৫ ঘণ্টা নিয়মিত কাজ করলে দেড় থেকে দু’মাস লেগে যাবার কথা। নির্ভর করছে আপনার কাজের গতির উপর।
Pingback: আমার ২০১০ সালের ব্লগজীবনের রিভিউ « টেস্টটিউব