অ্যাসাইনমেন্ট Jupyter-এ শেষ, কিন্তু জমা দেওয়ার পোর্টাল চায় PDF। আপনি "PDF হিসেবে ডাউনলোড" বেছে নিলেন বা jupyter nbconvert --to pdf চালালেন, আর এরর এল: xelatex পাওয়া যায়নি, বা pandoc নেই। nbconvert LaTeX-এর মাধ্যমে PDF বানায়, তাই কিছু এক্সপোর্ট করার আগেই তার একটি পূর্ণ TeX ডিস্ট্রিবিউশন ইনস্টল থাকা দরকার।

Look Scanned এখন সরাসরি .ipynb ফাইল খুলতে পারে। Jupyter Notebook থেকে স্ক্যানের মতো PDF পৃষ্ঠায় আপনার নোটবুক বেছে নিন, আর সেটি আপনার ব্রাউজারেই পৃষ্ঠায় সাজানো হয়: Markdown সেল, কোড, আর ফাইলের সঙ্গে সেভ হওয়া আউটপুট। প্রিভিউতে পৃষ্ঠাগুলো দেখে নিয়ে PDF ডাউনলোড করুন। কিছুই ইনস্টল করতে হয় না, আর নোটবুক কোথাও আপলোড হয় না।

শুরুতেই একটা কথা বলে রাখি: Look Scanned নথিকে স্ক্যান করা দেখায়, তাই PDF-ও দেখতে সে রকমই হয়। যে নোটবুক প্রিন্ট করে স্ক্যান করা কপি হিসেবে জমা দিতে হবে, বা যেটি শুধু কাগজের মতো দেখানো দরকার, তার জন্য এটি একদম ঠিক। পরিষ্কার পৃষ্ঠার জন্য ঘূর্ণন, ঝাপসা ভাব আর নয়েজ শূন্যে নামাতে পারেন, কিন্তু প্রতিটি পৃষ্ঠা তখনও একটি ছবিই থাকে, তাই PDF-এর লেখা সিলেক্ট বা সার্চ করা যায় না।

.ipynb ফাইলকে স্ক্যানের মতো PDF-এ কীভাবে বদলাবেন

  1. Jupyter, JupyterLab, VS Code বা Google Colab-এ নোটবুক চালিয়ে সেভ করুন, যাতে আউটপুট ফাইলে জমা থাকে। Colab-এ ফাইল → ডাউনলোড → .ipynb ডাউনলোড ব্যবহার করুন।
  2. Jupyter Notebook থেকে স্ক্যানের মতো PDF খুলে .ipynb ফাইল বেছে নিন।
  3. প্রিভিউ পৃষ্ঠা ধরে ধরে দেখুন। কোড, টেবিল আর চার্ট মিলিয়ে নিন, আর কাগজের আকার ও মার্জিন ঠিক করুন।
  4. স্ক্যান ইফেক্ট ঠিক করুন। ছোট হরফের কোড যাতে পড়া যায়, তাই ঝাপসা ভাব আর নয়েজ কম রাখুন। ডিফল্টে পৃষ্ঠাগুলো গ্রেস্কেলে আসে; চার্টের রং রাখতে চাইলে "রঙিন" বেছে নিন।
  5. স্ক্যানের মতো PDF তৈরি করে ডাউনলোড করুন।

ছবি চাইলে প্রতিটি পৃষ্ঠা JPG বা PNG হিসেবেও এক্সপোর্ট করতে পারেন। কখন কোনটা কাজে লাগে, তা আমাদের PDF, JPG ও PNG-এর নির্দেশিকায় বলা আছে। Pro থাকলে বাল্ক স্ক্যান দিয়ে একসঙ্গে কয়েকটি .ipynb ফাইল করা যায়।

পৃষ্ঠায় যা দেখা যায়

  • Markdown সেল: শিরোনাম, তালিকা, টেবিল, লিংক আর ছবি, সরাসরি সেলে পেস্ট করা ছবিসহ।
  • কোড সেল, নোটবুকের প্রোগ্রামিং ভাষা অনুযায়ী সিনট্যাক্স হাইলাইটিং আর In [1]: প্রম্পটসহ। লম্বা লাইন পৃষ্ঠার বাইরে না গিয়ে পরের লাইনে চলে যায়।
  • সেভ করা আউটপুট, Out[1]: প্রম্পটের নিচে: প্রিন্ট করা লেখা, রিটার্ন ভ্যালু, pandas DataFrame-এর মতো HTML টেবিল আর ছবি, তাই matplotlib বা seaborn-এর চার্টও চলে আসে।
  • এরর, পুরো traceback-সহ।
  • টার্মিনাল আউটপুট ঠিক যেমন টার্মিনালে দেখায়। রঙের কোড সরিয়ে ফেলা হয়, আর tqdm-এর মতো প্রোগ্রেস বার প্রতিটি আপডেট নয়, শুধু শেষ অবস্থাটা রাখে।

শুরু করার আগে যা জানা দরকার

  • সেল চালানো হয় না। Look Scanned ফাইলে যা সেভ আছে তা-ই পড়ে; কোনো কার্নেল নেই। যে সেল আপনি কখনো চালাননি, বা আউটপুট মুছে সেভ করা নোটবুক, শুধু কোড দেখাবে, নিচে কিছুই থাকবে না। ফাইল বেছে নেওয়ার আগে সব সেল চালিয়ে সেভ করুন।
  • সূত্র TeX সোর্স হিসেবেই থাকে। Markdown সেলে $…$ বা $$…$$ দিয়ে লেখা সূত্র ঠিক যেমন টাইপ করা হয়েছে তেমনই দেখায়, যেমন $\alpha + \beta$; গাণিতিক রূপে সাজানো হয় না।
  • ইন্টার‍্যাকটিভ আউটপুট দেখা যায় না। Plotly, Bokeh আর ipywidgets JavaScript দিয়ে আঁকে, আর JavaScript চালানো হয় না। নোটবুক পাশাপাশি যে স্থির সংস্করণ সেভ করেছিল সেটিই দেখবেন, প্রায়ই শুধু এক লাইনের ছোট একটি লেখা, বা কিছুই না। ছবি হিসেবে সেভ হওয়া চার্ট, যেমন matplotlib-এর, ঠিকঠাক দেখায়।
  • নোটবুক nbformat 4 হতে হবে। Jupyter, JupyterLab, VS Code আর Colab-এর বর্তমান সংস্করণ এই ফরম্যাটেই সেভ করে। খুব পুরোনো nbformat 3 নোটবুক নেওয়া হয় না; নতুন কোনো Jupyter-এ খুলে আবার সেভ করলেই আপগ্রেড হয়ে যাবে।
  • চওড়া টেবিল চেপে যায়। টেবিল পৃষ্ঠার প্রস্থে মানিয়ে নেওয়া হয়, তাই অনেক কলামের DataFrame-এর কলামগুলো সরু হয়ে যায় আর লেখা ভেঙে পরের লাইনে যায়।
  • নিজের নোটবুক রেখে দিন। আসল স্ক্যানের মতোই PDF-টি পৃষ্ঠার ছবি দিয়ে তৈরি। কোড চালাতে ও বদলাতে .ipynb ফাইলটি রেখে দিন।

নোটবুক আপনার নিজের ডিভাইসেই পড়া ও সাজানো হয়, কোনো সার্ভারে আপলোড হয় না। একমাত্র ব্যতিক্রম এমন একটি Markdown সেল, যা ওয়েব ঠিকানা দিয়ে কোনো ছবি দেখায়: সেই ছবিটি আপনার ব্রাউজার যে সাইটে সেটি রাখা আছে সেখান থেকে নিয়ে আসে, ঠিক যেমন Jupyter আনত।

কখন nbconvert ভালো বিকল্প

সিলেক্ট করা যায় এমন লেখা, ঠিকমতো সাজানো সূত্র, বা Jupyter-এর নিজের এক্সপোর্টের হুবহু PDF দরকার হলে nbconvert-ই এখনও সঠিক টুল। একটি TeX ডিস্ট্রিবিউশন ইনস্টল করে jupyter nbconvert --to pdf চালান, অথবা --to webpdf ব্যবহার করুন, যা ইন্টারফেসহীন (headless) Chromium ব্রাউজার দিয়ে প্রিন্ট করে এবং LaTeX-এর একদমই দরকার হয় না। যেভাবেই করুন, পরে সেই PDF-এ Look Scanned-এ স্ক্যান ইফেক্ট যোগ করতে পারেন।

আপনার লেখা নোটবুক নয়, Markdown বা LaTeX ফাইলে? সেগুলোও খোলে: দেখুন Markdown ও HTML থেকে স্ক্যানের মতো PDF এবং LaTeX থেকে স্ক্যানের মতো PDF।

কোনো নোটবুক PDF হিসেবে জমা দিতে হবে? এখনই চেষ্টা করুন।