অ্যালগরিদম ও সিউডোকোড
"Algorithm 1" পেতে সিউডোকোডটি একটি \caption-সহ algorithm এনভায়রনমেন্টে রাখুন; এর ভেতরে Scissor LaTeX algorithmic-এর বড় হাতের কমান্ড (\STATE, \FOR) শুধু কনফারেন্স লেআউটে পড়ে, তাই অন্য ডকুমেন্টে ধাপগুলো একটি verbatim ব্লকে রাখুন।
algorithm এনভায়রনমেন্ট
algorithm প্যাকেজ সিউডোকোডের জন্য একটি নম্বরযুক্ত এনভায়রনমেন্ট দেয়, অনেকটা চিত্রের মতো: একটি \caption একে একটি নম্বর দেয় ("Algorithm 1"), আর ক্যাপশনের পরে একটি \label দিলে \ref দিয়ে এর উল্লেখ করা যায়। Scissor LaTeX-এ অ্যালগরিদমটি যেখানে লেখেন সেখানেই থাকে, আর এর ক্যাপশন বসে এর নিচে।
ভেতরে কী থাকবে তা নির্ভর করে ধাপগুলোর জন্য আপনি কোন প্যাকেজ ব্যবহার করছেন তার ওপর, আর সমর্থনের পার্থক্যও সেখানেই:
| প্যাকেজ | কমান্ড | Scissor LaTeX-এ |
|---|---|---|
| algorithm | algorithm এনভায়রনমেন্ট, \caption, \label | কাজ করে: নম্বরযুক্ত "Algorithm N", ক্যাপশন নিচে। |
| algorithmic | \STATE, \IF, \FOR, \WHILE, \RETURN ... (বড় হাতের) | আংশিক: শুধু কনফারেন্স লেআউটের ডকুমেন্টে পড়া হয়; অন্য জায়গায় এগুলো অজানা কমান্ড। |
| algpseudocode (algorithmicx) | \State, \If, \For, \EndFor, \Return ... | সমর্থিত নয়: একটি বার্তাসহ বাদ দেওয়া হয়, আর ধাপগুলো এক লাইনে জুড়ে যায়। |
| algorithm2e | \KwIn, \For{..}{..}, \eIf ... | সমর্থিত নয়: একটি বার্তাসহ বাদ দেওয়া হয়। |
সব জায়গায় কাজ করা সিউডোকোড
যেকোনো Scissor LaTeX ডকুমেন্টে সিউডোকোড দেখানোর সবচেয়ে নির্ভরযোগ্য উপায় হলো algorithm-এর ভেতরে একটি verbatim ব্লক। নম্বর আর ক্যাপশন থেকে যায়, আর লাইনগুলোর ইনডেন্টও ঠিক থাকে।
verbatim ধাপসহ একটি অ্যালগরিদম
\begin{algorithm}
\caption{Sum of a list}
\label{alg:sum}
\begin{verbatim}
s := 0
for each a in xs:
s := s + a
return s
\end{verbatim}
\end{algorithm}
Algorithm~\ref{alg:sum} adds the numbers of a list.সূত্রসহ সিউডোকোডের জন্য একটি lstlisting একইভাবে কাজ করে, অথবা ধাপগুলো algorithm এনভায়রনমেন্টের বাইরে সাধারণ লেখা হিসেবে, একটি নম্বরযুক্ত তালিকায় লিখুন।
গণিতসহ নম্বরযুক্ত তালিকায় ধাপগুলো
\textbf{Input:} numbers $a_1, \dots, a_n$.
\begin{enumerate}
\item Set $s \gets 0$.
\item For $i = 1, \dots, n$: set $s \gets s + a_i$.
\item Return $s$.
\end{enumerate}কনফারেন্স লেআউটে algorithmic
কনফারেন্সের মতো দেখতে লেআউটগুলো (arXiv, IEEE, NeurIPS, ICML ও অন্যান্য) algorithmic প্যাকেজের বড় হাতের কমান্ডগুলো পড়ে: for, do, end for আর return-এর মতো কীওয়ার্ড বোল্ডে বসানো হয়, আর প্রতিটি কমান্ড একটি নতুন লাইন শুরু করে। লাইন নম্বর আঁকা হয় না, আর লাইনগুলো মাঝখানে থাকে। সমস্যা ট্যাবে কোন লেআউট ব্যবহার হচ্ছে তার নাম দেখা যায়।
arXiv-স্টাইলের ডকুমেন্টে algorithmic
\documentclass{article}
\usepackage{arxiv}
\usepackage{algorithm,algorithmic}
\begin{document}
\begin{algorithm}
\caption{Sum of a list}
\begin{algorithmic}
\STATE $s \gets 0$
\FOR{$i = 1$ to $n$}
\STATE $s \gets s + a_i$
\ENDFOR
\RETURN $s$
\end{algorithmic}
\end{algorithm}
\end{document}
সমস্যা ট্যাব: Layout in the style of the arXiv preprint style (final mode). Not official. To compile elsewhere, add arxiv.sty from github.com/kourgeorge/arxiv-style.
algpseudocode সমর্থিত নয়
সাম্প্রতিক পেপারে সবচেয়ে প্রচলিত প্যাকেজ algpseudocode, যা \State আর \EndFor-এর মতো ছোট-বড় মেশানো অক্ষরের কমান্ড ব্যবহার করে। Scissor LaTeX এগুলো চেনে না: এদের নাম বাদ দেওয়া হয়, সূত্র ও শব্দগুলো রাখা হয়, আর সবকিছু এক লাইনে জুড়ে যায়। সমস্যা ট্যাবে বাদ দেওয়া কমান্ডগুলোর তালিকা থাকে।
algpseudocode: ধাপগুলো জুড়ে যায়
\begin{algorithm}
\caption{Sum of a list}
\begin{algorithmic}[1]
\State $s \gets 0$
\For{$i = 1$ to $n$}
\State $s \gets s + a_i$
\EndFor
\State \Return $s$
\end{algorithmic}
\end{algorithm}সমস্যা ট্যাব: Skipped 4 unknown commands: \State, \For, \EndFor, \Return
ডকুমেন্টটি এখানে আর একটি TeX ইনস্টলেশনে, দুই জায়গাতেই কাজ করাতে চাইলে ওপরে দেখানো মতো ধাপগুলো verbatim-এ লিখুন; এটি সব জায়গায় কম্পাইল হয়।
TeX ইনস্টলেশন থেকে যা আলাদা
প্যাকেজ পেজটি হলো algorithm, algorithmic ও algpseudocode। ম্যানুয়ালগুলো CTAN-এ আছে: algorithms, algorithmicx এবং algorithm2e।
আরও দেখুন অ্যালগরিদম প্যাকেজ, কোড লিস্টিং এবং কনফারেন্স লেআউট।
প্রশ্ন ও উত্তর
LaTeX-এ কীভাবে একটি অ্যালগরিদম লিখব?
একটি \caption-সহ algorithm এনভায়রনমেন্ট ব্যবহার করুন, আর ধাপগুলো এর ভেতরে রাখুন। Scissor LaTeX-এ ধাপগুলো সবচেয়ে ভালো কাজ করে একটি verbatim ব্লকে, অথবা কনফারেন্স লেআউটে algorithmic-এর \STATE কমান্ড দিয়ে।
আমার \State লাইনগুলো কেন জুড়ে যায়?
\State আসে algpseudocode থেকে, যা Scissor LaTeX সমর্থন করে না। কমান্ডের নামগুলো বাদ দেওয়া হয়, তাই ধাপগুলো এক লাইনে মিশে যায়। তার বদলে ধাপগুলোর জন্য verbatim ব্যবহার করুন।
নম্বর দিয়ে কি একটি অ্যালগরিদমের উল্লেখ করা যায়?
হ্যাঁ। \caption-এর পরে \label{alg:name} দিন আর লিখুন Algorithm~\ref{alg:name}।
সাইট তৈরির সময় এই পেজের প্রতিটি উদাহরণ Scissor LaTeX টাইপসেট করে। সর্বশেষ আপডেট: 2026-11-07।