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
\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}\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
The loop \lstinline|for i in range(44):| runs 44 times, and
\lstinline{total += i} adds up the numbers.একটি figure-এর ভেতরে ক্যাপশনসহ লিস্টিং
\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.সামঞ্জস্য
- 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।