ফন্টের খুঁটিনাটি : পর্ব ১

কিভাবে ফন্ট তৈরী হয় তা নিয়ে মানুষের কৌতূহলের অন্ত নেই। আমাকে প্রায়ই এধরণের প্রশ্নের মুখে পড়তে হয়। পড়ে প্রক্রিয়াটা বুঝিয়ে বললে আর কৌতূহলটা থাকেনা। প্রত্যুত্তর শোনা যায়, “থাক বাবা, আমার ফন্ট বানিয়ে কাজ নেই”। কিন্তু আগ্রহী মানুষ সবসময়ই পাওয়া যায়।
তাই প্রথমেই বলে রাখছি, ফন্ট বানানোটা সবার জন্য সুখকর কাজ নাও হতে পারে।

আসুন একনজর দেখে নেই একটা ফন্ট বানাতে কি কি লাগে-
১. টাইপোগ্রাফী সম্পর্কে মোটামুটি ধারণা।
২. বাংলা যুক্তাক্ষর নিয়ে ভালো ধারণা।
৩. ভেক্টর গ্রাফিক্স নিয়ে কাজ করার অভিজ্ঞতা (এ্যাডব ইলাস্ট্রেটর, ইঙ্কস্কেপ ইত্যাদি)।
৪. প্রয়োজনীয় সফ্টওয়্যার (ফন্টল্যাব স্টুডিও/ ফন্টফোর্জ/ ফন্ট ক্রিয়েটর, ভোল্ট ইত্যাদি)।
৫. অসীম ইচ্ছাশক্তি ও অপার্থিব ধৈর্য। (এই পয়েন্টটা পরে ব্যখ্যা করব)
এবার বাংলা ফন্ট বানানো শুরুর আগে যেসব ব্যাপার জানা থাকা জরুরী সেগুলোর দিকে আলোকপাত করছি।

ইউনিকোড ফন্টের সাথে আসকি(ASCII) ভিত্তিক ফন্টের পার্থক্য
আসকি ভিত্তিক ফন্টে রোমান অক্ষরগুলোকে প্রতিস্থাপন করে বাংলা অক্ষর বসানো হয়। বিজয়, প্রশিকাশব্দ এসব পুরোনো সফ্টওয়্যারগুলোতে এসব আসকি ভিত্তিক ফন্ট ব্যবহার করে বাংলা লিখতে হতো। এই ব্যবস্থায় কম্পিউটার বুঝতে পারেনা এটা যে বাংলা ভাষা, কারণ তার কাছে অক্ষরগুলো রোমান। যুক্তাক্ষর তৈরী করতেও এর সংশ্লিষ্ট সফটওয়্যারটি প্রয়োজন হয় (যেমন, সুতন্বীর জন্য বিজয়)।

ইউনিকোডে বাংলার প্রত্যেকটি অক্ষরের জন্য পৃথক জায়গা ও ক্রম দেয়া হয়েছে। সেই ক্রম থেকেই কম্পিউটার বুঝতে পারে অক্ষরগুলোর ভাষা বাংলা কিনা। এতে করে সার্চিং, সর্টিং, স্পেলচেক জাতীয় সব সুবিধা পাওয়া যায়। ইউনিকোড ফন্টের আরেকটি গুরুত্বপূর্ণ দিক হলো যুক্তাক্ষর তৈরী হয় ফন্ট থেকে। এর মানে কোন অক্ষরের পর কোন অক্ষর বসলে সেটা দেখতে কেমন হবে এই নির্দেশনা ফন্টে দেয়া থাকে। এটা ওপেনটাইপ ফন্টের(otf) ফিচার যেটা এখন ট্রুটাইপ ফন্টেও(ttf) যোগ করা যায়। আপনি অভ্র, গুগল বা উইন্ডোজের ডিফল্ট কিবোর্ড যা দিয়েই লিখুননা কেন ফন্টে কোন যুক্তাক্ষর না দেয়া থাকলে আপনি তা ঠিকমতো দেখতে পারবেন না। আবার একই ফন্ট দিয়ে আপনি উইন্ডোজ, লিনাক্স, অভ্র, গুগল যে কোন ব্যবস্থায় লিখতে পারছেন, নির্দিষ্ট কোন সফটওয়্যারের প্রয়োজন নেই। আরেকটি বড় সুবিধা হল বাংলা ফন্টেই যদি আপনি ইংরেজি অক্ষরগুলো যুক্ত করে দেন তাহলে লেখার সময় ফন্ট পরিবর্তন না করেই শুধুমাত্র কিবোর্ড মোড পরিবর্তন করে বাংলা ইংরেজি পাশাপাশি লিখতে পারবেন।

ইউনিকোডে বাংলা অক্ষরগুলো কিভাবে বিন্যস্ত তা দেখতে পাবেন এই পিডিএফে- http://www.unicode.org/charts/PDF/U0980.pdf

ভেক্টর গ্রাফিক্স
ফন্ট ডেভেলপমেন্টে ভেক্টর গ্রাফিক্স জানাটা বাধ্যতামূলক। একটা ব্যাপার আপনারা সবাই লক্ষ্য করেছেন যে লেখার সময় ফন্টের সাইজ যত বড়ই করা হোক না কেন তার কোয়ালিটি একই(একদম মসৃণ) থাকে। আপনারা যারা ভেক্টর গ্রাফিক্স নিয়ে কাজ করেছেন তারা হয়তো ব্যাপারটা ইতোমধ্যেই আন্দাজ করে ফেলেছেন যে কেন ভেক্টর গ্রাফিক্স বাধ্যতামূলক? ঠিক ধরেছেন J, ফন্টের অক্ষরগুলো তৈরী হয় ভেক্টর গ্রাফিক্সে। যারা ভেক্টর গ্রাফিক্স নিয়ে কাজ করেননি তাদের জন্য কাজটা একটু কঠিন হবে, তবে ভয় পাবার কিছু নেই। ভেক্টর গ্রাফিক্স আর বিটম্যাপের পার্থক্যটুকু জেনে নিয়ে এডোব ইলাস্ট্রেটর অথবা ইঙ্কস্কেপে হাত পাকিয়ে নিন। ভেক্টরে কি করে আঁকতে হয় সেটা বুঝতে পারলেই চলবে।

ভেক্টর গ্রাফিক্স সম্পর্কে উইকি- http://en.wikipedia.org/wiki/Vector_graphics

হিন্টিং
এটা অপরিহার্য কিছু নয়। তারপরেও হিন্টিং ফন্টের খুব গুরুত্বপূর্ণ অংশ।
একটি সুন্দর ফন্ট বানানোর পর সেটা যে স্ক্রিনেও দেখতে ভালো হবে, এ ব্যপারে আপনি নিশ্চিত হতে পারবেন না। কারণ, ফন্টটি ব্যবহারের সময় এর সাইজ যত ছোট করবেন সেটা তত readability হারাবে। আপনার ফন্টটা যদি স্ক্রিনে পড়াই না গেল তাহলে আপনার শ্রম অনেকাংশেই বৃথা। ফন্টের readability বাড়াতেই হিন্ট করতে হয়। হিন্ট করা মানে হল ছোট সাইজে অক্ষরগুলো দেখতে কেমন হবে সেটা পিক্সেল ধরে ধরে ঠিক করে দেয়া। কাজটা যথেষ্ট শ্রম, ধৈর্য ও সময় সাপেক্ষ।
প্রিন্টের জন্য কিন্তু হিন্টিং এর প্রয়োজন নেই।

প্রয়োজনীয় সফটওয়্যার

অসীম ইচ্ছাশক্তি ও অপার্থিব ধৈর্য কেন প্রয়োজন?
আপনি বাংলার জন্য ইউনিকোডের একটি ফন্ট বানাতে চাইলে আপনাকে ৪০০-৫০০ অক্ষর (এর বিরাট অংশ যুক্তাক্ষর) নিয়ে কাজ করতে হবে। অক্ষর তৈরীর পর যদি ফন্ট হিন্টিং করতে চান তবে সেগুলোকে ধরে ধরে ৪-৬টি সাইজের জন্য হিন্ট করতে হবে। পরে ফন্টটিতে ওপেনটাইপ টেবল যোগ করতে হতে পারে যাতে করে সে যুক্তাক্ষরগুলো তৈরী করতে পারে।

এই তিন লাইন দিয়ে ফন্ট বানানোর পুরো প্রক্রিয়াটা বলে দেয়া হলো। তিন লাইন হলেও খাটুনিটা ঠিকই টের পাচ্ছেন নিশ্চয়ই?

আজকের পর্বটা এখানেই শেষ করতে চাই। আমি বরং আপনাদের পড়াশোনার জন্য আরও কিছু লিংক দিয়ে যাই।

এতক্ষণ ধৈর্য নিয়ে পড়ার জন্য সবাইকে ধন্যবাদ। পরবর্তী পর্বে আরেকটু বেশি খুঁটিনাটি নিয়ে আলোচনা করবো।

মো. তানবিন ইসলাম সিয়াম
ফন্ট ডেভেলপার, অমিক্রনল্যাব
siyam(a)omicronlab.com


পোস্টটি বিষ্যুদ, ২০১০-০৫-০৬ ০৭:১২ তারিখে সচলায়তনে প্রথম প্রকাশিত
দ্বিতীয় পর্ব- http://www.sachalayatan.com/potasiyam/32545

Advertisements
This entry was posted in কাজকর্ম, টিউটোরিয়াল, প্রযুক্তি and tagged , , , , , , , . Bookmark the permalink.

16 Responses to ফন্টের খুঁটিনাটি : পর্ব ১

  1. পিংব্যাকঃ ফন্টের খুঁটিনাটি : পর্ব ১ | indiarrs.net Featured blogs from INDIA.

  2. kuttumiah বলেছেন:

    siyam,
    tor lekha ta chomotkar hoyeche.
    sachalayatan e jacchi diteo porbo porar jonno.

  3. তাপস বলেছেন:

    অসাধারন একটা লেখা। ধন্যবাদ ভাই।

  4. ধন্যবাদ ভাই।
    শুভেচ্ছা।

  5. isfarahmad বলেছেন:

    ভালো লেগেছে , বাকি পোস্টগুলো কোথায় ?

  6. পিংব্যাকঃ ফন্টের খুঁটিনাটি : পর্ব ২ | টেস্টটিউব

  7. dihan91 বলেছেন:

    সিয়াম ভাই আপনারই কি তৈরী সিয়াম রূপালী?? আমার এখন আপনাকে নিয়ে নাচতে ইচ্ছা করতেছে। আমি অপার্থিব পরিশ্রম করতে রাজি। ফন্ট বানাবো।

  8. অনিক বলেছেন:

    “থাক বাবা, আমার ফন্ট বানিয়ে কাজ নেই”।

    তাও খুঁটিনাটি জেনে জ্ঞানী হলাম

  9. আশিফ বলেছেন:

    আপনাদের জন্যই ভাই আমরা পরাধীনতার শীকল থেকে বেড়িয়ে আসতে পারছি।

  10. শুভ রহমান বলেছেন:

    লেখা চমৎকার হয়েছে। বর্ণানা, উপস্থাপনা সব কিছু মিলিয়েই। একটা আনুমানিক হিসাব দিতে পারবেন, ফন্ট বানাতে কত শ্রম ঘন্টা লাগে??

    • potasiyam বলেছেন:

      অনেক ধন্যবাদ।
      হিসেব দেয়াটা একটু কঠিন। প্রতিদিন ৪/৫ ঘণ্টা নিয়মিত কাজ করলে দেড় থেকে দু’মাস লেগে যাবার কথা। নির্ভর করছে আপনার কাজের গতির উপর।

  11. পিংব্যাকঃ আমার ২০১০ সালের ব্লগজীবনের রিভিউ « টেস্টটিউব

  12. sani mozumder বলেছেন:

    ami kikore softwere chara laptope bangla likbo

মন্তব্য করুন

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / পরিবর্তন )

Twitter picture

You are commenting using your Twitter account. Log Out / পরিবর্তন )

Facebook photo

You are commenting using your Facebook account. Log Out / পরিবর্তন )

Google+ photo

You are commenting using your Google+ account. Log Out / পরিবর্তন )

Connecting to %s