listings در Scissor LaTeX
بستهٔ listings در Scissor LaTeX تا حدی کار میکند: 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، بدون پیام کد ساده و همعرض میدهد.
نمونهها
زبان را روی هر فهرست کد بدهید:
lstlisting با language=Python
\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.فهرست کد زیرنویسدار درون یک شکل
\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.