LaTeX-এ কোড লিস্টিং
কোডটি একটি verbatim, lstlisting বা minted এনভায়রনমেন্টে রাখুন, অথবা লেখার ভেতরে \verb|...| ব্যবহার করুন; Scissor LaTeX এটি ঠিক যেমন টাইপ করা হয়েছে তেমনই একটি মনোস্পেসড ফন্টে বসায়, আর ভাষার নাম দিলে সিনট্যাক্সে রং দেয়।
verbatim
verbatim-এর ভেতরে কিছুই ব্যাখ্যা করা হয় না: ব্যাকস্ল্যাশ, বন্ধনী, $ আর % যেমন আছে তেমনই ছাপা হয়, আর লাইন ব্রেক ও স্পেস রাখা হয়। কোড বা টার্মিনালের আউটপুট দেখানোর এটাই সবচেয়ে সহজ উপায়।
একটি verbatim ব্লক
\begin{verbatim}
for i in range(44):
print(i) # $ and \textbf stay as typed
\end{verbatim}লেখার ভেতরে কোড: \verb
\verb একটি বাক্যের ভেতরে কোডের ছোট একটি অংশ দেখায়। \verb-এর ঠিক পরের অক্ষরটি হলো সীমানা-চিহ্ন; এমন একটি বেছে নিন যা কোডে নেই, যেমন | বা +।
\verb ও \texttt দিয়ে লেখার ভেতরে কোড
Call \verb|total(xs)| to add the list, or type \verb+x_1 = 44+.
For plain words in a monospaced font, \texttt{main.tex} is enough.\texttt{...} শুধু ফন্ট বদলায়: সেখানে _ আর %-এর মতো বিশেষ অক্ষর এখনো এস্কেপ করতে হয়, অথচ \verb সেগুলো যেমন আছে তেমনই নেয়।
listings: ভাষাসহ lstlisting
listings প্যাকেজ আপনাকে lstlisting দেয়। language=... দিলে কোডটি সিনট্যাক্স রং পায়।
language=Python-সহ lstlisting
\begin{lstlisting}[language=Python]
def total(xs):
"""Add up the numbers in xs."""
return sum(xs)
print(total([40, 4])) # 44
\end{lstlisting}\lstinline|code| হলো লেখার ভেতরের রূপ, \verb-এর মতো।
minted
minted ভাষাটি একটি আর্গুমেন্ট হিসেবে নেয়। একটি TeX ইনস্টলেশনে এর জন্য Python আর -shell-escape অপশন লাগে; Scissor LaTeX-এ এটি দুটোর কোনোটি ছাড়াই কাজ করে।
ভাষাসহ minted
\begin{minted}{rust}
fn main() {
let answer = 40 + 4;
println!("{}", answer);
}
\end{minted}
Inline: \mintinline{rust}{let x = 44;}যা পড়া হয়
| কমান্ড | Scissor LaTeX-এ | মন্তব্য |
|---|---|---|
verbatim, verbatim* | কাজ করে | |
\verb, \verb* | কাজ করে | |
lstlisting | আংশিক | language= পড়া হয়; বাকি সব অপশন (numbers, caption, frame, basicstyle, firstline ...) উপেক্ষা করা হয়। |
\lstinline | কাজ করে | লেখার ভেতরে সিনট্যাক্স রং নেই। |
\lstset{...} | বাদ পড়ে | এখানে ঠিক করা ভাষা ব্যবহার করা হয় না; প্রতিটি লিস্টিংয়ে language= দিন। |
minted | আংশিক | ভাষা পড়া হয়; linenos আর frame-এর মতো অপশন উপেক্ষা করা হয়। |
\mintinline{lang}{code} | কাজ করে | লেখার ভেতরে সিনট্যাক্স রং নেই। |
Verbatim, BVerbatim (fancyvrb) | আংশিক | verbatim হিসেবে দেখানো হয়; অপশন উপেক্ষা করা হয়। |
\lstinputlisting{file}, \inputminted{lang}{file} | সমর্থিত নয় | একটি বার্তাসহ বাদ দেওয়া হয়; কোডটি ডকুমেন্টে পেস্ট করুন। |
\lstnewenvironment, \newminted | সমর্থিত নয় |
প্রচলিত ভাষাগুলোর জন্য সিনট্যাক্স রং পাওয়া যায়, যেমন Python, C, C++, Java, JavaScript, TypeScript, Rust, Go, Ruby, R, Julia, MATLAB, SQL, Bash, HTML, CSS, JSON, YAML, TeX ও LaTeX। ভাষার নামে ছোট-বড় হাতের অক্ষরে পার্থক্য হয় না, তাই Python আর python একই। চেনা যায় না এমন একটি নাম দিলে রং ছাড়া সাধারণ মনোস্পেসড কোড আসে।
ফাইল থেকে কোড
একটি TeX ইনস্টলেশনে \lstinputlisting আর \inputminted অন্য একটি ফাইল থেকে কোড পড়ে। Scissor LaTeX এগুলো বাদ দেয় আর সমস্যা ট্যাবে তা জানায়:
\lstinputlisting বাদ দেওয়া হয়
The script below is not shown:
\lstinputlisting[language=Python]{scripts/total.py}
Paste the code into an lstlisting environment instead.সমস্যা ট্যাব: 1 included file is not part of this conversion
TeX ইনস্টলেশন থেকে যা আলাদা
প্যাকেজ পেজগুলোর জন্য দেখুন listings ও minted। পূর্ণ ম্যানুয়ালগুলো CTAN-এ আছে: listings, minted এবং fancyvrb।
প্রশ্ন ও উত্তর
LaTeX-এ কীভাবে একটি কোড ব্লক যোগ করব?
কোডটি \begin{verbatim} ... \end{verbatim}-এর ভেতরে রাখুন, অথবা সিনট্যাক্স রঙের জন্য [language=Python]-সহ lstlisting-এ রাখুন।
shell escape ছাড়া কি minted কাজ করে?
Scissor LaTeX-এ হ্যাঁ: Python বা -shell-escape ছাড়াই minted এনভায়রনমেন্টে রং হয়। একটি TeX ইনস্টলেশনে minted-এর এখনো দুটোই লাগে।
আমার লিস্টিংয়ের লাইন নম্বর কেন নেই?
Scissor LaTeX numbers=left আর listings-এর অন্যান্য লেআউট অপশন উপেক্ষা করে। শুধু ভাষাটি পড়া হয়।
সাইট তৈরির সময় এই পেজের প্রতিটি উদাহরণ Scissor LaTeX টাইপসেট করে। সর্বশেষ আপডেট: 2026-11-07।