যারা কোনোদিন মাইক্রোসফ্ট ওয়র্ড বা ওইরকম কোনো ওয়র্ড প্রসেসর ছাড়া কিছু ব্যবহার করেনি, তাদের জন্যে: কোনো ফাঁকা পাতায় লেখা কেমন করে সাজানো হবে—অন্য সবকিছুর মতো এ-ও কম্পিউটারে প্রোগ্রাম লিখেই ঠিক করা হয়। ডক (doc/docx/odt) ফাইল, তার উপযুক্ত সফ্টওয়্যারে খুলে, বিভিন্ন বোতাম টিপে আমরা কম্পিউটারকে সেইসব নির্দেশই দিই। মাইক্রোসফ্ট ওয়র্ডের কথা ভাবো—যা দেখা যায়—তুমি মোটামুটি নিশ্চিত, যে, ছাপলে বা পিডিএফ বানালে মোটামুটি ওইরকমই দেখাবে (যদি না ফর্ম্যাট বদলায়: যেমন, লেটার-ফর্ম্যাটে লেখা নথিটিকে যদি না A4 ফর্ম্যাটে সেভ করা হয়)। একে বলে What You See Is What You Get (WYSIWYG) ধরনের প্রসেসর। অ্যাডোবি ইনডিজাইন এই গোত্রেরই এক সফ্টওয়্যার, যা দিয়ে নানা ধরনের নথিপত্র ছাপা যায়। গুরু-র বইও এতে বানানো হয় (*টেসলার অনেকদিন আগেই তৈরি — গুরুর গিগা ফ্যাক্টরিতে এক মেগা রোবট কর্মরত, কোড নেম – ‘পার্থ’, সে-ই এইসব সামলায়)।
যে সাদা কাগজে এমনটা লিখলাম, সেটার আকার আয়তন বদলে গেলেই, এইভাবে লেখা নথি-র গঠনও বদলে যাবে, বিশেষ করে, লেখার মাঝে ছবি, সারণী, তালিকা – এইসব থাকলে। এই যে সাইটের পাতায় এখন লেখাটা পড়ছো, সেটা মোবাইলে পড়লে তার আকার এক, কম্পিউটারে পড়লে অন্য, ট্যাবে পড়লে — আরেকটু আলাদা। আমরা যদি সব জায়গায় ঠিকঠাক লেখা দেখাতে চাই, তবে WYSIWYG করলে তো হবে না (কাঁহাতক আর নানারকম যন্ত্রে একই লেখা ফর্ম্যাট করা যায় বারবার?)। সেই কারণে, ব্রাউজারে (যেমন ক্রোম, এজ বা ফায়ারফক্স) লেখা ফর্ম্যাট করা হয় html বলে একরকম কায়দায়। কী হয় সেখানে? ধরো, এক প্যারাগ্রাফ লেখা আছে, তুমি চাও – সেটাকে ১২ ফন্ট-সাইজ, দেখানো হবে, লাইনের মধ্যে গ্যাপ থাকবে ১.৫ ইএম, প্যারার দু-পাশ মোটামুটি সমান লাইনে থাকবে। এবার, তুমি প্যারার শুরুতে বিশেষ ভাষায় এই কথাগুলোই লিখে দিলে, যাতে কিনা ব্রাউজার, পাঠককে সেটা দেখানোর সময় এই নির্দেশগুলো মেনে নিয়ে দেখায়। প্যারার মাঝের ২টো শব্দকে বোল্ড করতে চাও? প্রথম শব্দের আগে ওই ভাষায় সেটা লিখে দাও। ক-টা শব্দ বোল্ড করা হবে? সোজা — যেখানে নির্দেশ শেষ হবে, সেখানে একটা এমন কথা লেখো, যাতে কোড বোঝে — ওখানেই ওই নির্দেশের দাঁড়ি।
html-এ এগুলোকে ট্যাগ বলা হয়। যা লিখলে, তা দেখাতে চাও না, কিন্তু যেভাবে দেখাতে চাও — সেটাই লিখে রাখলে। What You See is What You Mean (WYSIWYM)। এদের Mark-up ল্যাঙ্গুয়েজও বলে। সাধারণত কম্পিউটারকে আমরা যেভাবে নির্দেশ দিই, তাকে প্রোগ্রাম/কোড বলা হয়। এ-ও একধরনের উচ্চস্তরের (ভাষা এমন কথা বলে, বোঝে রে সকলে) প্রোগ্রাম। কোড লিখে কম্পাইল করা মানে, নির্দেশগুলো বুঝে কম্পিউটার সেইমতো কাজ করলো। html কোড ধাঁ করে কম্পাইল হয়েই ব্রাউজারে এই লেখাটা ফুটে উঠছে। উপরের ‘ভূমিকা:’ কথাটা আসলে আমি লিখেছি এইভাবে: < center>< strong>ভূমিকা: < / strong>< / center>
এইরকমই আরেক WYSIWYM প্রসেসর হল LaTex (উচ্চারণ: ল্যাটেক্স নয়, ‘লেটেক’; কারণ? It’s greek to us! টেকীশ্বর নুথ-এর বই য়ের প্রথম চ্যাপ্টার পশ্য) — তাত্ত্বিক বিজ্ঞানে যারা কাজ করে, প্রায় প্রত্যেকের রুজিরুটির অংশ। ব্যাপারটা ওপেন-সোর্স, আর বহুযুগ থেকে চলে আসছে — সেই যখন সবকিছু টার্মিনালে টাইপ করে করতে হত, সেই সময় থেকে। অঙ্কের ফর্মুলা আর বিদিশি ভাষার লিপি কম্পুতে টাইপ করার উদ্দেশ্যে সত্তরের দশকে বানানো TeX, তারই আশির দশকে বানানো সহজ বেরাদর এই লেটেক।
কোনো ভাষা — সে কম্পিউটারের হোক বা মানুষের — এক-দুটো লেখায় শেখানো কঠিন। এই লেখার উদ্দেশ্যও তা নয়, সে চেষ্টাও আমরা করবো না। কাজটা হল – সবচেয়ে কম পরিশ্রমে লেটেক ব্যবহার করে বাংলায় এমন ফাইল বানানো, যাতে কিনা গুরুচণ্ডা৯-র মতো করে বই বানানো যায়। যা জানার দরকার নেই, তা আমরা উচ্চারণও করবো না, কিন্তু কিছু অনলাইন সোর্সের কথা উল্লেখ করা থাকবে, যাতে কিনা বাকিটা জেনে নেওয়া যায়।
লেটেক ডকুমেন্টের দুটি মূল অংশ: দ্বিতীয়টি ঘেরা থাকে \begin{document} আর \end{document} কথাদুটির মধ্যে। html-এ যা <> আর >, এখানে দেখো— ‘\’ ব্যবহারের বাড়াবাড়ি, আর অনেক কিছুই বিগিন আর এন্ড দিয়ে লেখা হয়। আসল নথিতে যা যা লেখা থাকবে, তা সবই এই দ্বিতীয়াংশে যায়। গঠন: প্রথমে chapter, তার মধ্যে section, subsection, subsubsection, paragraph, ইত্যাদি। কিছু বইয়ে একাধিক নির্দিষ্ট ভাগ থাকে, যার প্রতি ভাগে কিছু পরিচ্ছেদ। এই ভাগগুলো করা যায় part ব্যবহার করে।
প্রথম ভাগে তবে থাকেটা কী? নানাবিধ জিনিস, যেমন: এই যে সেকশনের হেডিং হবে, তার চেহারা কেমন হবে? ইটালিক হবে, ১৬ পয়েন্ট ফন্ট হবে, না ১৪? লেটেকে নানারকম কায়দাকসরত করা যায়, যার কোডগুলো ছোট ছোট নানারকম প্যাকেজ বানিয়ে রাখা। ডকুমেন্টে সেইরকম কিছু কায়দা চাপাতে গেলে এই উপরের অংশে প্রয়োজনীয় প্যাকেজটার নামোল্লেখ করতে হয়, \usepackage কথাটার মধ্যে। এছাড়াও, নানারকম হাতে-গড়া ফর্ম্যাট বা লেখার শর্টকাট তৈরি করা যায়, যেখানে আসল কোডের বদলে ছোট কোনো ডাকনাম ঠিক করতে পারি—এর একটা উদাহরণ দেখানো হবে পরে। এদের বলে macro। এগুলোও এই অংশেই দিতে হয়।
আগের প্যারার ফিরিস্তি শুনে ভয় পাওয়ার কিছু নেই। একটা ডকুমেন্ট ঠিক কীভাবে লেখা হবে — এটা ঠিক করে এই উপরের অংশটা বানাতে অনেকটা লেটেক জানতে হয়— এটা যেমন সত্যি, তেমনি, যেহেতু দ্বিতীয় অংশে প্রায় কিছুই তেমন জানার নেই, তাই কোনো নির্দিষ্ট টেম্পলেট যদি ঠিক করা থাকে ঊর্ধাংশে (যেমন কিনা আমাদের ঠিক করা আছে — গুরু-র বইয়ের ফর্ম্যাট হবে), তাহলে, তেমন কিছু না জেনে বা না ভেবেই, গোটা ব্যাপারটাকে কম্পাইল করে কাজ চালানো যাবে।
দুটি উপায় — অনলাইন, নয়তো অফলাইন। লিনাক্সপ্রেমীরা জানে, সবই টার্মিনাল থেকে সাঁ করে চালানো যায়। যারা অত পারে, তারা লেটেক চালিয়েও নিতে পারবে। এখানে আমরা বলবো – উইন্ডোজ বা ওই ধরনের কোনো ছবিছাবা — অপারেটিং সিস্টেমে যারা বসে কাজ করছে — তাদের উদ্দেশে। আপেল কোম্পানি নিয়ে আমার কিছু জানা নেই, মাথাব্যথাও নেই (মফস্বলের রাস্তায় রোডবাম্প — মার্সিডিজের তলার ক্লিয়ারিংয়ের কথা ভেবে বানানো হয় না)। তবে, হাতে একটি ব্রাউজার থাকলে, এই সব জায়গাতেও লেটেক স্বচ্ছন্দে চালানো যাবে। এই কারণে প্রথমে আমরা বলবো অনলাইন পদ্ধতির কথা।
যেমন বললাম, গুরু-র বইয়ের নানা ফর্ম্যাট বানানো আছে। সেগুলো পেতে হলে প্রথমেই চলে যাও গিটহাব কোম্পানির এই রেপোজিটরি-তে (মানে কোড-ভরা ফোল্ডার/ডিরেক্টরি)। তারপর সবুজ রঙের code লেখা বোতামে ক্লিকিয়ে ডাউনলোড করো একটি zip ফাইল। এই ফাইলটিকে সসম্মানে কোথাও একটা জমিয়ে রাখো, পরে কাজে লাগবে।
ওভারলিফ সাইটে লগ-ইন করে, নিজের ফাইলপত্তর আপলোড করে লেটেক চালানো যায়। আগে কোনোভাবে সাইন-ইন করে ফেলো। দেখবে, একটা ‘প্রোজেক্ট’-এর পাতা খুলছে। এবারে বাঁ-দিকে New Project- ক্লিক করে, আপলোড প্রোজেক্ট অপশনে গিয়ে, ওই যে সেই জিপফাইলখানা ডাউনলোড করেছিলে, এখানে আপলোড করে দাও। ব্যস, ‘Guruchandali-BookTemplates-Latex-main’ নামের একখানা প্রোজেক্ট খুলে যাবে। যারা ভবিষ্যতে কখনো ই-বই বানানো বা অন্য কোনো কারণে অফলাইন কায়দায় যাওয়ার কথা ভাবছো না, তাদের জন্যে—দেখবে, সরাসরি গিটহাব থেকে ইম্পোর্ট করার অপশনও আছে। ওটাও করতে পারো (কিন্তু গুরু-bot দের বলবো—যা যা করা হবে, তার একখান কপি অফলাইনে রেখো, কখন কোথায় কার সঙ্গে আবার শেয়ারাতে হয়...)।
তোমার সামনে, ফুলস্ক্রিন ব্রাউজারে এখন ৩টি প্যানেল – বাঁয়ে মেনু, ফোল্ডার লিস্টি ইত্যাদি, মাঝে এডিটর প্যানেল—তাতে কীসব \documentclass-ফ্লাস লেখা, আর ডানে Recompile লেখা একখান প্যানেল, যাতে পিডিএফটি দেখানোর কথা, কিন্তু এখন কিছুই দেখাচ্ছে না — সম্ভবত এরর দেখাচ্ছে। বাঁদিকে উপরের কোণে, Menu-তে ক্লিক করলে যে ট্যাবটা খোলে, তার নীচের দিকে একটা compiler লেখা ড্রপডাউন বাক্স আছে, যাতে দেখবে সিলেক্ট করা আছে — pdflatex। ওইটাকে ক্লিক করে xelatex করে দিতে হবে। অধিকাংশ পিডিএফ ওই প্রথম কম্পাইলারে খুললেও, গুরু-বইয়ের এই টেম্পলেটটি memoir class-এ লেখা, যাকে চালাতে xelatex লাগে।
মোদ্দা কথা, এটা করে ওই রিকম্পাইল বোতামে ক্লিক করলেই তোমার সামনে একখান ডামি বইয়ের পিডিএফ খুলে যাওয়ার কথা। খুললে, মহানন্দ। নইলে, এখানে কমেন্ট করে জানাও।
অফলাইনে এই একই জিনিস করতে চাইলে, দুটি স্টেপ। প্রথমে একখান জম্পেশ লেটেক ভার্শন ইন্সটল করতে হবে, তারপর ফ্রন্ট-এন্ড। লেটেক পিছনে বসে সবকিছু চালাবে, কিন্তু তুমি দেখবে ফ্রন্ট-এন্ডে বসে। লেটেক-এর জগতে আপেল-মাইক্রোসফ্ট হল: TexLive আর MikTex। উইন্ডোজ ব্যবহার করলে মিকটেক ইন্সটল করা বেশি ভালো। হাতের কাছে লিনাক্স কম্পু নেই, তাই মিকটেক নিয়েই যা বলার বলবো। ভালো কথা — ওভারলিফ কিন্তু টেকলাইভ ব্যবহার করে। ফ্রন্টেন্ড হিসেবে যা ইচ্ছে ব্যবহার করতে পারো, তবে আমার পছন্দ TexStudio। এদের সাইটে গিয়ে প্যাকেজ/আপডেট ভার্শন আর সেইমতো মিকটেক-ভার্শন দেখে, আগে মিকটেক, পরে টেকস্টুডিও ইন্সটল কোরো। এই পদ্ধতি নিয়ে বেশি কিছু বলছি না, কারণ, নানা কম্পু-র নানা ব্যারাম। সব সম্ভাব্য বাগ আর ফ্রিঞ্জ-কেসের কথা ভাবতে বসলে আর কিছুই লেখা হবে না। না হলে, কমেন্ট করো। সকলে মিলেই দেখবো তখন—কিছু করা যায় কিনা।
অনলাইন অফলাইনের এই সব পার করার পরে এবার পড়ে থাকে বইটা ঠিক করে বানানো। ডিটেল দেবো পরের কিস্তিতে, আপাতত শুধু একটাই কথা বলি:
দেখবে, যেকোনো লেটেক প্রোজেক্টের আসল ফাইল হল tex এক্সটেনশনের একটি ফাইল। আমাদের ওই গিটহাব রেপোতে আসলে গুরু-র বইয়ের কয়েকটি সম্ভাব্য সাইজ আর ফর্ম্যাট বানানো আছে। ওভারলিফ করেছে কি — তার একখানা খুলে তার মধ্যে টেক-ফাইলটা পেয়ে, সেটাকে দুম করে চালিয়ে দিয়েছে। কিন্তু, ফাইলটা ভালো করে দেখলে দেখবে — তাতে প্রায় কিছুই লেখা নেই, শুধু কিছু ইনপুট-ফিনপুট করা। আসলে ওই ফোল্ডারের মধ্যে আরো নানা ফোল্ডার আর ফাইলে আমরা ‘বই বানাতে লাগে—এমন’ দরকারি জিনিসগুলো ছড়িয়ে রেখেছি। এগুলো ঘাঁটতে চাইলে ওভারলিফের একদম বাঁ-দিকের প্যানেলটা নাড়াঘাঁটা করতে হবে।
করতে থাকো, পরের পর্বে ডিটেল বলবো। এখন যাই, চার্জ দিই গে...