মূল অংশে যান

Scissor LaTeX-এ listings

Scissor LaTeX-এ listings প্যাকেজ আংশিকভাবে কাজ করে: lstlisting কোডটি ঠিক যেমন টাইপ করা তেমনই রাখে আর এনভায়রনমেন্টে language= দিলে রঙিন করে, আর \lstinline কাজ করে; \lstset, লাইন নম্বর, ফ্রেম, ক্যাপশন ও লেবেল উপেক্ষা করা হয়, আর \lstinputlisting বাদ পড়ে।

প্যাকেজটি কী করে

listings সোর্স কোড টাইপসেট করে। lstlisting এনভায়রনমেন্ট লাইন ব্রেক আর স্পেস ধরে রাখে, আর language=Python (বা C, Java, SQL ...) দিলে কীওয়ার্ড, কমেন্ট আর স্ট্রিং আলাদা স্টাইলে বসায়। অপশন দিয়ে লাইন নম্বর, ফ্রেম, ক্যাপশন আর রং যোগ করা যায়, প্রতিটি লিস্টিংয়ে আলাদাভাবে অথবা \lstset দিয়ে পুরো ডকুমেন্টের জন্য। \lstinline হলো এর ইনলাইন রূপ, আর \lstinputlisting একটি ফাইল থেকে কোড পড়ে।

এখানে কী কাজ করে

ফিচারScissor LaTeX-এমন্তব্য
\begin{lstlisting} ... \end{lstlisting}কাজ করেমনোস্পেসড, ঠিক যেমন টাইপ করা।
এনভায়রনমেন্টে [language=Python]কাজ করেএকটি নির্দিষ্ট স্কিমের সিনট্যাক্স রং।
[language={[Sharp]C}] ও অন্যান্য ডায়ালেক্টকাজ করেবন্ধনীর ভেতরের ডায়ালেক্ট নামের সঙ্গে পড়া হয়।
\lstinline|code|, \lstinline{code}কাজ করেমনোস্পেসড, রং ছাড়া।
numbers=left, frame=single, basicstyle, keywordstyle, backgroundcolorবাদ পড়েকোনো বার্তা ছাড়াই উপেক্ষা করা হয়।
caption=, label=বাদ পড়েকোনো ক্যাপশন ছাপা হয় না, আর লেবেলের প্রতি একটি \ref "??" দেখায়।
\lstset{...}, \lstdefinestyle, style=বাদ পড়েউপেক্ষা করা হয়, সেখানে দেওয়া language=-সহ।
\lstinputlisting{file}সমর্থিত নয়একটি বার্তাসহ বাদ দেওয়া হয়।
\lstlistoflistings, \lstnewenvironmentসমর্থিত নয়একটি বার্তাসহ বাদ দেওয়া হয়।

ভাষার নামে বড়-ছোট হাতের অক্ষরের পার্থক্য হয় না। Python, C, C++, C#, Java, JavaScript, Rust, Go, R, MATLAB, SQL, Bash, HTML ও TeX-এর মতো প্রচলিত ভাষার জন্য রং পাওয়া যায়। Fortran-এর মতো যে নাম চেনা যায় না, তা কোনো বার্তা ছাড়াই সাধারণ মনোস্পেসড কোড দেয়।

উদাহরণ

প্রতিটি লিস্টিংয়ে ভাষাটি দিন:

language=Python-সহ lstlisting

LaTeXপ্রিঅ্যাম্বল: \usepackage{listings}এডিটরে খুলুন (নতুন ট্যাবে খোলে)
\begin{lstlisting}[language=Python]
def mean(values):
    # average of a list of numbers
    return sum(values) / len(values)

print(mean([40, 44, 48]))
\end{lstlisting}
Scissor LaTeX টাইপসেট করেছে: language=Python-সহ lstlisting

\lstset দিয়ে দেওয়া ভাষা ব্যবহার হয় না, তাই এই লিস্টিংয়ে কোনো রং নেই। numbers আর frame-এর মতো লেআউট অপশনও উপেক্ষা করা হয়:

\lstset উপেক্ষা করা হয়

\documentclass{article}
\usepackage{listings}
\lstset{language=SQL, numbers=left, frame=single}
\begin{document}
\begin{lstlisting}
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\begin{lstlisting}[language=SQL]
SELECT name FROM staff WHERE id = 44;
\end{lstlisting}
\end{document}

\lstinline-এর ইনলাইন কোড \verb-এর মতোই যেকোনো ডিলিমিটার নেয়:

বাক্যের ভেতরে \lstinline

LaTeXপ্রিঅ্যাম্বল: \usepackage{listings}এডিটরে খুলুন (নতুন ট্যাবে খোলে)
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.
Scissor LaTeX টাইপসেট করেছে: বাক্যের ভেতরে \lstinline

একটি figure-এর ভেতরে ক্যাপশনসহ লিস্টিং

LaTeXপ্রিঅ্যাম্বল: \usepackage{listings}এডিটরে খুলুন (নতুন ট্যাবে খোলে)
\begin{figure}[h]
\begin{lstlisting}[language=Python]
print(sum(range(44)))
\end{lstlisting}
\caption{Adding the numbers below 44}
\label{lst:sum}
\end{figure}
The code in Listing~\ref{lst:sum} prints 946.
Scissor LaTeX টাইপসেট করেছে: একটি figure-এর ভেতরে ক্যাপশনসহ লিস্টিং

সামঞ্জস্য

  • TeX ইনস্টলেশন থেকে এখানে: প্রতিটি lstlisting-এর কোড দেখানো হয়। রং পেতে language= \lstset থেকে সরিয়ে প্রতিটি লিস্টিংয়ে দিন, আর \lstinputlisting ফাইলের কোড ডকুমেন্টে পেস্ট করুন।
  • এখান থেকে TeX ইনস্টলেশনে: ডকুমেন্টগুলো সেখানে কোনো পরিবর্তন ছাড়াই কম্পাইল হয়, আর তখন আপনার অপশনগুলো প্রয়োগ হয়।

পূর্ণ ম্যানুয়াল CTAN-এ আছে: ctan.org/pkg/listings। আরও দেখুন LaTeX-এ কোড লিস্টিং ও minted।

প্রশ্ন ও উত্তর

আমার লিস্টিংগুলো রঙিন হয় না কেন?

সম্ভবত ভাষাটি \lstset দিয়ে দেওয়া হয়েছে, যা এখানে উপেক্ষা করা হয়। \begin{lstlisting}-এর পরে [language=Python] (বা আপনার ভাষা) লিখুন।

লাইন নম্বর দেখানো যায়?

এখনো না। numbers=left গ্রহণ করে উপেক্ষা করা হয়।

সাইট তৈরির সময় এই পেজের প্রতিটি উদাহরণ Scissor LaTeX টাইপসেট করে। সর্বশেষ আপডেট: 2026-11-07।